package com.baselet.control.constants; import java.awt.Color; import java.awt.Font; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import javax.swing.UIManager; import javax.swing.UIManager.LookAndFeelInfo; import com.baselet.control.enums.Program; public abstract class Constants extends SharedConstants { private Constants() {} // private constructor to avoid instantiation /**** NEWLINE CHARACTER AND DEFAULT HELP- AND MAILTEXT ****/ public static final String NEWLINE = "\n"; public static final String COMMENT = "//"; //@formatter:off public static String getDefaultHelptext() { String returnString = "// Uncomment the following line to change the fontsize and font:" + NEWLINE + "// fontsize=14" + NEWLINE + "// fontfamily=SansSerif //possible: SansSerif,Serif,Monospaced" + NEWLINE + "" + NEWLINE + "" + NEWLINE + "//////////////////////////////////////////////////////////////////////////////////////////////" + NEWLINE + "// Welcome to " + Program.getInstance().getProgramName() + "!" + NEWLINE + "//" + NEWLINE + "// Double-click on elements to add them to the diagram, or to copy them" + NEWLINE + "// Edit elements by modifying the text in this panel" + NEWLINE + "// Hold " + SystemInfo.META_KEY + " to select multiple elements" + NEWLINE + "// Use " + SystemInfo.META_KEY + "+mouse to select via lasso" + NEWLINE + "//" + NEWLINE + "// Use +/- or " + SystemInfo.META_KEY + "+mouse wheel to zoom" + NEWLINE + "// Drag a whole relation at its central square icon" + NEWLINE + "//" + NEWLINE + "// Press " + SystemInfo.META_KEY + "+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word)" + NEWLINE + "// Edit the files in the \"palettes\" directory to create your own element palettes" + NEWLINE + "//" + NEWLINE + "// Select \"Custom Elements > New...\" to create new element types" + NEWLINE; returnString += "//////////////////////////////////////////////////////////////////////////////////////////////" + NEWLINE + "" + NEWLINE + "" + NEWLINE + "// This text will be stored with each diagram; use it for notes."; return returnString; } public static String getDefaultMailtext() { return "Type your message here.." + NEWLINE + "" + NEWLINE + "__" + NEWLINE + "To edit the diagram, open the attached " + Program.getInstance().getExtension() + "-file with the free editing tool " + Program.getInstance().getProgramName() + " (" + Program.getInstance().getWebsite() + ")"; } //@formatter:on /**** EXPORT FORMATS ****/ public static final List<String> exportFormatList = Arrays.asList(new String[] { "bmp", "eps", "gif", "jpg", "pdf", "png", "svg" }); /**** ZOOM VALUES ****/ public static final ArrayList<String> zoomValueList = new ArrayList<String>(); static { for (int i = 1; i <= 20; i++) { zoomValueList.add(i + "0%"); } } /**** REGULAR EXPRESSIONS ****/ public static final String REGEX_FLOAT = "(\\d+(\\.\\d+)?)"; /**** OTHER CONSTANTS ****/ public static final double EXPORT_DISPLACEMENT = 0.5; public static final String LOG4J_PROPERTIES = "log4j.properties"; public static final String CUSTOM_ELEMENT_CLASSNAME = "CustomElementImpl"; public static final int DEFAULTGRIDSIZE = 10; public static final int INTERFACE_LINE_LENGTH = 40; public static final int CUSTOM_ELEMENT_COMPILE_INTERVAL = 500; public static final String DELIMITER_ENTITIES = "~~~~~|||||~~~~~|||||"; public static final String DELIMITER_STATE_AND_HIDDEN_STATE = "/////<<<<</////<<<<<"; public static final String DELIMITER_FIELDS = "#####_____#####_____"; public static final String DELIMITER_ADDITIONAL_ATTRIBUTES = ";"; public static final int PASTE_DISPLACEMENT_GRIDS = 2; public static final Color GRID_COLOR = new Color(235, 235, 235); public static final List<String> fontFamilyList = Arrays.asList(new String[] { Font.SANS_SERIF, Font.SERIF, Font.MONOSPACED }); public static final List<LookAndFeelInfo> lookAndFeels = Arrays.asList(UIManager.getInstalledLookAndFeels()); protected static final String DEFAULT_STRING = "Default"; public static final Comparator<String> DEFAULT_FIRST_COMPARATOR = new Comparator<String>() { @Override public int compare(String s1, String s2) { // "UML Common Elements" before "Default" before anything else for (String prefixFirst : Arrays.asList("UML Common Elements", Constants.DEFAULT_STRING)) { if (s1.startsWith(prefixFirst) && !s2.startsWith(prefixFirst)) { return -1; } if (s2.startsWith(prefixFirst) && !s1.startsWith(prefixFirst)) { return 1; } } // "Deprecated" after "Plot" after anything else for (String prefixLast : Arrays.asList("Deprecated", "Plots")) { if (s1.startsWith(prefixLast) && !s2.startsWith(prefixLast)) { return 1; } if (s2.startsWith(prefixLast) && !s1.startsWith(prefixLast)) { return -1; } } return s1.compareTo(s2); } }; public static final int MIN_MAIN_SPLITPANEL_SIZE = 100; public static final int MIN_MAIL_SPLITPANEL_SIZE = 250; }