/* * Copyright (C) 2007, 2008 Quadduc <quadduc@gmail.com> * * This file is part of LateralGM. * LateralGM is free software and comes with ABSOLUTELY NO WARRANTY. * See LICENSE for details. */ package org.lateralgm.main; import java.awt.Color; import java.awt.Rectangle; import java.util.ArrayList; import java.util.prefs.Preferences; import org.lateralgm.jedit.SyntaxStyle; import org.lateralgm.jedit.Token; public final class PrefsStore { private PrefsStore() { } private static final Preferences PREFS = Preferences.userRoot().node("/org/lateralgm"); public static ArrayList<String> getRecentFiles() { String value = PREFS.get("FILE_RECENT",null); if (value == null) return new ArrayList<String>(0); String[] array = value.split(" "); ArrayList<String> list = new ArrayList<String>(array.length); for (String name : array) list.add(Util.urlDecode(name)); return list; } public static void addRecentFile(String name) { int maxcount = PREFS.getInt("FILE_RECENT_COUNT",4); ArrayList<String> oldList = getRecentFiles(); oldList.remove(name); String newList; newList = Util.urlEncode(name); for (int i = 0; i + 1 < maxcount && i < oldList.size(); i++) newList += " " + Util.urlEncode(oldList.get(i)); PREFS.put("FILE_RECENT",newList); } public static Rectangle getWindowBounds() { return Util.stringToRectangle(PREFS.get("WINDOW_BOUNDS",null),new Rectangle(800,600)); } public static void setWindowBounds(Rectangle r) { PREFS.put("WINDOW_BOUNDS",Util.rectangleToString(r)); } public static boolean getWindowMaximized() { return PREFS.getBoolean("WINDOW_MAXIMIZED",true); } public static void setWindowMaximized(boolean b) { PREFS.putBoolean("WINDOW_MAXIMIZED",b); } public static SyntaxStyle[] getSyntaxStyles() { SyntaxStyle[] styles = new SyntaxStyle[Token.ID_COUNT]; styles[Token.COMMENT1] = new SyntaxStyle(new Color(0x338833),true,false); //Standard Comments styles[Token.COMMENT2] = new SyntaxStyle(new Color(0x333388),true,false); //Javadocs styles[Token.KEYWORD1] = new SyntaxStyle(new Color(0x000000),false,true); //Keywords (if, for, etc) styles[Token.KEYWORD2] = new SyntaxStyle(new Color(0x1111DD),true,false); //Predefined Variables styles[Token.KEYWORD3] = new SyntaxStyle(new Color(0x770077),false,false); //Resource Names styles[Token.LITERAL1] = new SyntaxStyle(new Color(0x660099),false,false); //Strings styles[Token.LITERAL2] = new SyntaxStyle(new Color(0x771111),false,false); //Predefined Constants styles[Token.LABEL] = new SyntaxStyle(new Color(0x111177),false,false); //Functions styles[Token.OPERATOR] = new SyntaxStyle(new Color(0x000000),false,true); //? styles[Token.INVALID] = new SyntaxStyle(new Color(0xEE0000),false,true); //? for (int i = 1; i < styles.length; i++) { String key = String.format("SYNTAX_STYLE_%02X",i); styles[i] = Util.stringToSyntaxStyle(PREFS.get(key,null),styles[i]); } return styles; } public static int getNumberOfBackups() { return PREFS.getInt("FILE_BACKUP_COUNT",1); } }