Scripting: Freeplane Utility Classes
From Freeplane - free mind mapping and knowledge management software
Revision as of 04:06, 24 November 2010 by Irajawapys (talk | contribs)
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: * <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>