Scripting: Freeplane Utility Classes
From Freeplane - free mind mapping and knowledge management software
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 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 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 text, String string, 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, 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); public static String removeHtmlTagsFromString(String text); public static String toXMLEscapedText(String text); public static String toXMLEscapedTextExpandingWhitespace(String text); public static String toXMLUnescapedText(String text); public static String unescapeHTMLUnicodeEntity(String text); public static String unicodeToHTMLUnicodeEntity(String text); public static int endOfText(String html); // the remainder could/should be static as well: public int getMaximalOriginalPosition(int pI, ArrayList pListOfIndices); public int getMinimalOriginalPosition(int pI, ArrayList pListOfIndices); public String getReplaceResult(Pattern pattern, String replacement, String text); public boolean isWellformedXml(String xml); public String toHtml(String xhtmlText); public String toXhtml(String htmlText);
} </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>