Hyperlinks: Difference between revisions

From FreeMind
Jump to navigationJump to search
(→‎Implementation: +descriptions)
Line 29: Line 29:
| [http://freemind.cvs.sourceforge.net/freemind/freemind/freemind/main/Tools.java Tools]
| [http://freemind.cvs.sourceforge.net/freemind/freemind/freemind/main/Tools.java Tools]
| isAbsolutePath
| isAbsolutePath
| Used in the loadURL method.
| 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.
|}
|}



Revision as of 17:08, 8 February 2009

FreeMind supports having one hyperlink per node, linking to web pages, mail addresses, and to local files.

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.

Methods
Class Method Description
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.
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.
Tools urlGetFile A heuristic workaround.
Tools fileToUrl Converts a file to URL, working around Java issues.
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.

Cases

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: 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://"[1] -- for Microsoft OneNote
  • "mid://"[2] -- for messages
  • "notes://"[3] -- for Lotus Notes
  • "svn://"[4]
  • "outlook://"[5]

Tracker items

Links