Hyperlinks: Difference between revisions

From FreeMind
Jump to navigationJump to search
Line 34: Line 34:
==Cases==
==Cases==
{| {{Table style}}
{| {{Table style}}
|+ Cases of hyperlink paths
! Type
! Type
! Case
! Case

Revision as of 10:06, 6 June 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

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: 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

Forum entries

Links