package org.basex.gui;
import java.awt.Font;
import org.basex.core.AProp;
import org.basex.core.Prop;
import org.basex.io.IO;
import org.basex.io.IOFile;
import org.basex.util.list.StringList;
/**
* This class contains properties which are used in the GUI.
* They are also stored in the project's home directory.
*
* @author BaseX Team 2005-12, BSD License
* @author Christian Gruen
*/
public final class GUIProp extends AProp {
// DATABASE & PROGRAM PATHS =================================================
/** Default GUI Font. */
public static final Object[] FONT = { "FONT", Font.SANS_SERIF };
/** Default GUI Monospace Font. */
public static final Object[] MONOFONT = { "MONOFONT", Font.MONOSPACED };
/** Font TYPE = plain, bold, italics). */
public static final Object[] FONTTYPE = { "FONTTYPE", 0 };
/** Font size. */
public static final Object[] FONTSIZE = { "FONTSIZE", 13 };
/** Red GUI color factor. */
public static final Object[] COLORRED = { "COLORRED", 20 };
/** Green GUI color factor. */
public static final Object[] COLORGREEN = { "COLORGREEN", 17 };
/** Blue GUI color factor. */
public static final Object[] COLORBLUE = { "COLORBLUE", 7 };
/** Paint gradients as background. */
public static final Object[] GRADIENT = { "GRADIENT", true };
// MAIN WINDOW OPTIONS ======================================================
/** GUI height. */
public static final Object[] GUISIZE = { "GUISIZE", new int[] { 1004, 748 } };
/** GUI position. */
public static final Object[] GUILOC = { "GUILOC", new int[] { 10, 10 } };
/** Flag for maximized GUI window. */
public static final Object[] MAXSTATE = { "MAXSTATE", false };
/** Flag for displaying buttons in the GUI window. */
public static final Object[] SHOWBUTTONS = { "SHOWBUTTONS", true };
/** Flag for displaying the text field in the GUI window. */
public static final Object[] SHOWINPUT = { "SHOWINPUT", true };
/** Flag for displaying the status bar in the GUI window. */
public static final Object[] SHOWSTATUS = { "SHOWSTATUS", true };
/** GUI Layout. */
public static final Object[] VIEWS = { "VIEWS", GUIConstants.VIEWS };
/** Flag for activated info view. */
public static final Object[] SHOWINFO = { "SHOWINFO", true };
/** Flag for activated map view. */
public static final Object[] SHOWMAP = { "SHOWMAP", true };
/** Flag for activated table view. */
public static final Object[] SHOWTABLE = { "SHOWTABLE", false };
/** Flag for activated result view. */
public static final Object[] SHOWTEXT = { "SHOWTEXT", true };
/** Flag for activated tree view. */
public static final Object[] SHOWFOLDER = { "SHOWFOLDER", false };
/** Flag for activated query view. */
public static final Object[] SHOWEXPLORE = { "SHOWEXPLORE", false };
/** Flag for activated plot view. */
public static final Object[] SHOWPLOT = { "SHOWPLOT", false };
/** Flag for activated xquery view. */
public static final Object[] SHOWEDITOR = { "SHOWEDITOR", true };
/** Flag for activated tree view. */
public static final Object[] SHOWTREE = { "SHOWTREE", false };
/** Flag for Java look and feel. */
public static final Object[] JAVALOOK = { "JAVALOOK", false };
/** Flag for dissolving name attributes. */
public static final Object[] SHOWNAME = { "SHOWNAME", true };
/** Focus follows mouse. */
public static final Object[] MOUSEFOCUS = { "MOUSEFOCUS", false };
/** Flag for showing the simple file dialog. */
public static final Object[] SIMPLEFD = { "SIMPLEFD", false };
// LAYOUT & INPUT OPTIONS ===================================================
/** Current input mode in global text field (Search, XQuery, Command). */
public static final Object[] SEARCHMODE = { "SEARCHMODE", 0 };
/** Flag for realtime context filtering. */
public static final Object[] FILTERRT = { "FILTERRT", false };
/** Flag for realtime query execution. */
public static final Object[] EXECRT = { "EXECRT", false };
/** Show attributes in treemap. */
public static final Object[] MAPATTS = { "MAPATTS", false };
/** Treemap Offsets. */
public static final Object[] MAPOFFSETS = { "MAPOFFSETS", 3 };
/** Map algorithm. */
public static final Object[] MAPALGO = { "MAPALGO", 0 };
/** number of children <-> size weight in (0;100). */
public static final Object[] MAPWEIGHT = { "MAPWEIGHT", 0 };
/** Slim rectangles to text length. */
public static final Object[] TREESLIMS = { "TREESLIM", true};
/** Show attributes in treeview. */
public static final Object[] TREEATTS = { "TREEATTS", false};
/** Dot sizes in plot. */
public static final Object[] PLOTDOTS = { "PLOTDOTS", 0 };
/** Logarithmic plot. */
public static final Object[] PLOTXLOG = { "PLOTXLOG", false };
/** Logarithmic plot. */
public static final Object[] PLOTYLOG = { "PLOTYLOG", false };
/** Dialog location. */
public static final Object[] MAPLAYOUTLOC =
{ "MAPLAYOUTLOC", new int[] { 790, 520 } };
/** Dialog location. */
public static final Object[] FONTSLOC =
{ "FONTSLOC", new int[] { 10, 530 } };
/** Dialog location. */
public static final Object[] COLORSLOC =
{ "COLORSLOC", new int[] { 530, 620 } };
/** Path for creating new databases. */
public static final Object[] CREATEPATH = { "CREATEPATH", Prop.HOME };
/** Path for creating new XML Documents. */
public static final Object[] SAVEPATH = { "SAVEPATH", Prop.HOME };
/** Path for XQuery files. */
public static final Object[] XQPATH = { "XQPATH", Prop.HOME };
/** Path for stopwords. */
public static final Object[] STOPPATH = { "STOPPATH", Prop.HOME };
/** Name of new database. */
public static final Object[] CREATENAME = { "CREATENAME", "" };
/** Last insertion type. */
public static final Object[] LASTINSERT = { "LASTINSERT", 1 };
/** Last command inputs. */
public static final Object[] COMMANDS = { "COMMANDS", new String[0] };
/** Last keyword inputs. */
public static final Object[] SEARCH = { "SEARCH", new String[0] };
/** Last XQuery inputs. */
public static final Object[] XQUERY = { "XQUERY", new String[0] };
/** Last XQuery files. */
public static final Object[] QUERIES = { "QUERIES", new String[0] };
/** Last updated version. */
public static final Object[] UPDATEVERSION = { "UPDATEVERSION",
Prop.VERSION.replaceAll(" .*", "") };
/** Server user. */
public static final Object[] SERVERUSER = { "SERVERUSER", "admin" };
/** Maximum text size to be displayed. */
public static final Object[] MAXTEXT = { "MAXTEXT", 1 << 21 };
/**
* Constructor.
*/
public GUIProp() {
super("gui");
recent(null);
Prop.gui = true;
}
/**
* Refreshes the list of recent query files and updates the query path.
* @param file new file
*/
public void recent(final IOFile file) {
final StringList sl = new StringList();
String path = null;
if(file != null) {
path = file.path();
set(XQPATH, file.dir());
sl.add(path);
}
final String[] qu = strings(QUERIES);
for(int q = 0; q < qu.length && q < 9; ++q) {
final String f = qu[q];
if(!f.equalsIgnoreCase(path) && IO.get(f).exists()) sl.add(f);
}
set(QUERIES, sl.toArray());
}
}