Difference between revisions of "Scripting: Freeplane Utility Classes"
From Freeplane - free mind mapping and knowledge management software
Line 13: | Line 13: | ||
public static void addEscapeActionToDialog(JDialog dialog); | public static void addEscapeActionToDialog(JDialog dialog); | ||
− | |||
− | |||
− | |||
public void actionPerformed(ActionEvent e); | public void actionPerformed(ActionEvent e); | ||
public static void addEscapeActionToDialog(JDialog dialog, Action action); | public static void addEscapeActionToDialog(JDialog dialog, Action action); | ||
Line 87: | Line 84: | ||
public int getMinimalOriginalPosition(int pI, ArrayList pListOfIndices); | public int getMinimalOriginalPosition(int pI, ArrayList pListOfIndices); | ||
/** | /** | ||
− | * Replaces text in node content without replacing tags. | + | * Replaces text in node content without replacing tags. |
− | |||
− | |||
*/ | */ | ||
public String getReplaceResult(Pattern pattern, String replacement, String text); | public String getReplaceResult(Pattern pattern, String replacement, String text); | ||
Line 125: | Line 120: | ||
[http://freeplane.bzr.sf.net/bzr/freeplane/freeplane_program/release_branches/1_0_x/annotate/head%3A/freeplane/src/org/freeplane/core/controller/FreeplaneVersion.java FreeplaneVersion.java] | [http://freeplane.bzr.sf.net/bzr/freeplane/freeplane_program/release_branches/1_0_x/annotate/head%3A/freeplane/src/org/freeplane/core/controller/FreeplaneVersion.java FreeplaneVersion.java] | ||
<groovy> | <groovy> | ||
+ | public class FreeplaneVersion implements Comparable<FreeplaneVersion> { | ||
+ | public static String XML_VERSION = "0.9.0"; | ||
+ | /** returns a initialized version. */ | ||
+ | public static FreeplaneVersion getVersion(); | ||
+ | /** major version, the 1 in "1.0.38 rc" */ | ||
+ | public int getMaj(); | ||
+ | /** mid version, the 0 in "1.0.38 rc" */ | ||
+ | public int getMid(); | ||
+ | /** minor version, the 38 in "1.0.38 rc" */ | ||
+ | public int getMin(); | ||
+ | /** optional patch level (testversion only). */ | ||
+ | public int getNum(); | ||
+ | /** release type e.g. "", "rc", "beta", "alpha" or "nightly_build". */ | ||
+ | public String getType(); | ||
+ | /** Use it like this: | ||
+ | * <pre> | ||
+ | * FreeplaneVersion required = FreeplaneVersion.getVersion("1.0.38"); | ||
+ | * if (FreeplaneVersion.getVersion().compareTo(required) < 0) | ||
+ | * UITools.errorMessage("Freeplane version not supported" | ||
+ | * + " - update to at least " + required); | ||
+ | * </pre> | ||
+ | */ | ||
+ | public int compareTo(FreeplaneVersion o); | ||
+ | /** returns the full version number, e.g. "1.0.38 rc". */ | ||
+ | public String toString(); | ||
+ | /** returns the version number only, e.g. "1.0.38". */ | ||
+ | public String numberToString(); | ||
+ | } | ||
</groovy> | </groovy> |
Revision as of 18:47, 22 January 2010
Contents
There are a few utility classes in Freeplane that are of special use for scripting. (For details look up the code.) For example:
UITools
UITools.java <groovy> public class UITools {
public static String MAIN_FREEPLANE_FRAME = "mainFreeplaneFrame";
public static void addEscapeActionToDialog(JDialog dialog); public void actionPerformed(ActionEvent e); public static void addEscapeActionToDialog(JDialog dialog, Action action); public static void addKeyActionToDialog(JDialog dialog, Action action, String keyStroke, String actionId); public static void convertPointFromAncestor(Component source, Point p, Component c); public static void convertPointToAncestor(Component source, Point point, Class ancestorClass); public static void convertPointToAncestor(Component c, Point p, Component destination); public static void errorMessage(Object message); public void run(); public static Frame getFrame(); public static KeyStroke getKeyStroke(String keyStrokeDescription); public static void informationMessage(Frame frame, String message); public static void informationMessage(Frame frame, String message, String title); public static void informationMessage(Frame frame, String message, String title, int type); public static void setBounds(Component frame, int win_x, int win_y, int win_width, int win_height); public static void setDialogLocationRelativeTo(JDialog dialog, Component c); public static void setDialogLocationRelativeTo(JDialog dialog, Controller controller, NodeModel node); public static void setDialogLocationUnder(JDialog dialog, Controller controller, NodeModel node); public static int showConfirmDialog(Controller controller, NodeModel node, Object message, String title, int optionType); public static String showInputDialog(Controller controller, NodeModel node, String text, String string); public static String showInputDialog(Controller controller, NodeModel node, String text, String title, int type);
} </groovy>
HtmlTools
HtmlTools.java <groovy> public class HtmlTools {
public static HtmlTools getInstance(); public static String htmlToPlain(String text); public static String htmlToPlain(String text, boolean strictHTMLOnly); public static boolean isHtmlNode(String text); public static String plainToHTML(String text); public static String removeAllTagsFromString(String text); /** * Removes all tags (<..>) from a string if it starts with "<html>..." to * make it compareable. */ public static String removeHtmlTagsFromString(String text); public static String toXMLEscapedText(String text); public static String toXMLEscapedTextExpandingWhitespace(String text); public static String toXMLUnescapedText(String text); /** * warning: only decodes unicode entities like ä. Use * toXMLUnescapedText(unescapeHTMLUnicodeEntity(text)) to decode & * etc. too. */ public static String unescapeHTMLUnicodeEntity(String text); public static String unicodeToHTMLUnicodeEntity(String text);
// the remainder could/should be static as well (use getInstance() to get the singleton
/** * @return the maximal index i such that pI is mapped to i by removing all * tags from the original input. */ public int getMaximalOriginalPosition(int pI, ArrayList pListOfIndices); public int getMinimalOriginalPosition(int pI, ArrayList pListOfIndices); /** * Replaces text in node content without replacing tags. */ public String getReplaceResult(Pattern pattern, String replacement, String text); /** * @return true, if well formed XML. */ public boolean isWellformedXml(String xml); public String toHtml(String xhtmlText); public String toXhtml(String htmlText); static public int endOfText(String html);
} </groovy>
LogTool
Gives access to Freeplane's standard logging facility:
LogTool.java <groovy> public class LogTool {
public static void createLogger(); public static void info(String string); public static void info(Transferable t); public static void severe(String message); public static void severe(String comment, Throwable e); public static void severe(Throwable e); public static void warn(String msg); public static void warn(String comment, Throwable e); public static void warn(Throwable e);
} </groovy>
FreeplaneVersion
FreeplaneVersion.java <groovy> public class FreeplaneVersion implements Comparable<FreeplaneVersion> {
public static String XML_VERSION = "0.9.0"; /** returns a initialized version. */ public static FreeplaneVersion getVersion(); /** major version, the 1 in "1.0.38 rc" */ public int getMaj(); /** mid version, the 0 in "1.0.38 rc" */ public int getMid(); /** minor version, the 38 in "1.0.38 rc" */ public int getMin(); /** optional patch level (testversion only). */ public int getNum(); /** release type e.g. "", "rc", "beta", "alpha" or "nightly_build". */ public String getType(); /** Use it like this:
*
* FreeplaneVersion required = FreeplaneVersion.getVersion("1.0.38"); * if (FreeplaneVersion.getVersion().compareTo(required) < 0) * UITools.errorMessage("Freeplane version not supported" * + " - update to at least " + required); *
*/ public int compareTo(FreeplaneVersion o); /** returns the full version number, e.g. "1.0.38 rc". */ public String toString(); /** returns the version number only, e.g. "1.0.38". */ public String numberToString();
} </groovy>