Hyperlinks: Difference between revisions

From FreeMind
Jump to navigationJump to search
(→‎Limitations: +on parameters)
Line 1: Line 1:
FreeMind supports having one hyperlink per node, linking to web pages, mail addresses, and to local files.
==Limitations==
==Limitations==
* Opening of hyperlinks that contain various custom protocols such as "onenote://" and "outlook://" is unsupported. An example error message upon an attempt to open the hyperlink: "java.net.MalformedURLException:unknown protocol:". See also [[#Protocols]].
* Opening of hyperlinks that contain various custom protocols such as "onenote://" and "outlook://" is unsupported. An example error message upon an attempt to open the hyperlink: "java.net.MalformedURLException:unknown protocol:". See also [[#Protocols]].
* Hyperlinks to executables with parameters is unsupported: passing parameters to executables is not possible in hyperlinks. The following does not work: "C:/Program Files/Windows Media Player/wmplayer.exe C:/My Documents/file.mp3"; the part "C:/My Documents/file.mp3" is not understood as a parameter. See also a [http://sourceforge.net/projects/freemind/forums/forum/22102/topic/3042693 Help forum post].
* Hyperlinking to executables with parameters is unsupported: passing parameters to executables is not possible in hyperlinks. The following does not work: "C:/Program Files/Windows Media Player/wmplayer.exe C:/My Documents/file.mp3"; the part "C:/My Documents/file.mp3" is not understood as a parameter. See also a [http://sourceforge.net/projects/freemind/forums/forum/22102/topic/3042693 Help forum post].
 
==Implementation==
 
Making hyperlinks work fine on all the supported platforms including Microsoft Windows, Max OS X and Linux is technically tricky, requiring dedicated code for each group of platforms.
 
{| {{Table style}}
|+ Methods
! Class
! Method
! Description
|-
| [http://freemind.cvs.sourceforge.net/freemind/freemind/freemind/main/FreeMind.java FreeMind]
| openDocument
| Opens the given URL in a browser or using the appropriate service of the operating system, using the browser command appropriate for the operating system.
|-
| [http://freemind.cvs.sourceforge.net/viewvc/freemind/freemind/freemind/modes/ControllerAdapter.java ControllerAdapter]
| loadURL
| Takes an URL as a string, checks whether it is relative or absolute, and whether it ends in ".mm", and opens it as a mind map, centers the target node if the URL is of the form "#nodeID", or forwards the URL to the openDocument method.
|-
| [http://freemind.cvs.sourceforge.net/freemind/freemind/freemind/main/Tools.java Tools]
| urlGetFile
| A heuristic workaround.
|-
| [http://freemind.cvs.sourceforge.net/freemind/freemind/freemind/main/Tools.java Tools]
| fileToUrl
| Converts a file to URL, working around Java issues.
|-
| [http://freemind.cvs.sourceforge.net/freemind/freemind/freemind/main/Tools.java Tools]
| isAbsolutePath
| Tells whether the given string path is absolute or relative. For non-Windows, it decides based on whether the path starts with a file separator. The logic picked depends on the operating system. Used in the loadURL method.
|}
 
FreeMind could, yet does not, open hyperlinks by using the [http://java.sun.com/javase/6/docs/api/java/awt/Desktop.html Desktop class] introduced in Java 6. A downside: this would make FreeMind dependent on Java 6 rather than on Java 1.4.
 
==Cases==
{| {{Table style}}
|+ Cases of hyperlink paths
! Type
! Case
! Example Path
! Note
|-
| Local file
| Unix path
| "/folder/some more/file"
|
|-
| Local file
| Windows drive path
| "C:\Users\User Joe\file"
|
|-
| Local file
| Windows network path
| "\\hostname\folder\file"
| Following is broken in 0.9.0 beta 18.
|}
 
==Browser commands==
The various default browser commands per operating system:
Source: [http://freemind.cvs.sourceforge.net/viewvc/freemind/freemind/freemind.properties?view=log freemind.properties].
* default_browser_command_windows_nt = cmd.exe /c start "" "{0}"
* default_browser_command_windows_9x = command.com /c start "{0}"
* default_browser_command_mac = open {0}
* default_browser_command_other_os = xdg-open {0}
 
==Protocols==
Users are requesting that FreeMind supports various protocols that are currently unsupported. These include the following:
* "onenote://"[http://sourceforge.net/tracker/index.php?func=detail&aid=2306014&group_id=7118&atid=107118] -- for Microsoft OneNote
* "mid://"[http://sourceforge.net/tracker/index.php?func=detail&aid=1738366&group_id=7118&atid=307118] -- for messages
* "notes://"[http://sourceforge.net/tracker/index.php?func=detail&aid=1763220&group_id=7118&atid=357118] -- for Lotus Notes
* "svn://"[http://sourceforge.net/tracker/index.php?func=detail&aid=2102800&group_id=7118&atid=357118]
* "outlook://"[http://sourceforge.net/tracker/index.php?func=detail&aid=2102800&group_id=7118&atid=357118]
* "message://" -- Email helper protocol call on Mac OS X
 
There is a patch fixing the issue for all the protocols: [http://sourceforge.net/tracker/index.php?func=detail&aid=1889293&group_id=7118&atid=307118 Support for arbitrary URIs]<br>
''Would be nice if someone wrote an instruction on how to apply this patch!''
 
==Tracker items==
* [http://sourceforge.net/tracker/index.php?func=detail&aid=2002285&group_id=7118&atid=1006953 URLs of local files - spaces]
* Bug: [http://sourceforge.net/tracker/index.php?func=detail&aid=1984395&group_id=7118&atid=107118 Error opening files from network PCs in Windows]
* RFE: [http://sourceforge.net/tracker/index.php?func=detail&aid=2102800&group_id=7118&atid=357118 Customisable hyperlink protocols (like Firefox)]
* Bug: [http://sourceforge.net/tracker/index.php?func=detail&aid=2306014&group_id=7118&atid=107118 'Unknown protocol' for custom protocol hyperlinks]
* Patch: [http://sourceforge.net/tracker/index.php?func=detail&aid=1889293&group_id=7118&atid=307118 Support for arbitrary URIs]
 
==Forum entries==
* [http://sourceforge.net/forum/message.php?msg_id=6450308 Lotus Notes hyperlink], 2009-02-17
 
==See also==
* [[Local hyperlink]]
 
==Links==
* [http://udk.openoffice.org/cpp/man/spec/uris.html  URIs in UDK - Open Office]
 
[[Category:Development]]

Revision as of 16:45, 25 August 2010

Limitations

  • Opening of hyperlinks that contain various custom protocols such as "onenote://" and "outlook://" is unsupported. An example error message upon an attempt to open the hyperlink: "java.net.MalformedURLException:unknown protocol:". See also #Protocols.
  • Hyperlinking to executables with parameters is unsupported: passing parameters to executables is not possible in hyperlinks. The following does not work: "C:/Program Files/Windows Media Player/wmplayer.exe C:/My Documents/file.mp3"; the part "C:/My Documents/file.mp3" is not understood as a parameter. See also a Help forum post.