Ignore:
Timestamp:
01/29/14 11:22:51 (10 years ago)
Author:
jts21
Message:

Move some settings into subpackages to tidy up the main settings page a bit, and make settings parser look for settings in subpages of the current settings page if it finds a setting it doesn't know what to do with

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/settings/UserSettings.java

    r777 r778  
    11package org.expeditee.settings;
    22
    3 import java.awt.Color;
    4 import java.awt.Font;
    5 import java.awt.GraphicsEnvironment;
    63import java.io.File;
    74import java.io.FileNotFoundException;
    85import java.io.IOException;
    96import java.util.ArrayList;
    10 import java.util.Arrays;
    117import java.util.LinkedList;
    128import java.util.List;
     
    1511import org.expeditee.agents.mail.MailSession;
    1612import org.expeditee.agents.wordprocessing.JSpellChecker;
    17 import org.expeditee.gui.AttributeValuePair;
    18 import org.expeditee.gui.DisplayIO;
    1913import org.expeditee.gui.Frame;
    2014import org.expeditee.gui.FrameIO;
    2115import org.expeditee.gui.FrameUtils;
    22 import org.expeditee.gui.FreeItems;
    2316import org.expeditee.gui.MessageBay;
    24 import org.expeditee.items.Item;
    25 import org.expeditee.items.ItemUtils;
    2617import org.expeditee.items.Text;
    27 import org.expeditee.setting.ArraySetting;
    2818import org.expeditee.setting.BooleanSetting;
    2919import org.expeditee.setting.FloatSetting;
     
    3222import org.expeditee.setting.IntegerSetting;
    3323import org.expeditee.setting.ListSetting;
    34 import org.expeditee.setting.Setting;
    3524import org.expeditee.setting.StringSetting;
    36 import org.expeditee.setting.TextSetting;
     25import org.expeditee.settings.folders.FolderSettings;
    3726
    3827/**
     
    7261                }
    7362        };
    74         public static final StringSetting DefaultFrame = new StringSetting("The default frame", null) {
    75                 @Override
    76                 public boolean setSetting(Text text) {
    77                         _value = FrameUtils.getLink(text, _value);
    78                         return true;
    79                 }
    80         };
    8163        public static final IntegerSetting InitialWidth = new IntegerSetting("Initial width of Expeditee window", 1024);
    8264       
    8365        public static final IntegerSetting InitialHeight = new IntegerSetting("Initial height of Expeditee window", 768);
    8466       
    85         public static final TextSetting ItemTemplate = new TextSetting("Template for normal text items") {
    86                 @Override
    87                 public Text generateText() {
    88                         return new Text("ItemTemplate");
    89                 }
    90         };
    91         public static final TextSetting AnnotationTemplate = new TextSetting("Template for annotation text items") {
    92                 @Override
    93                 public Text generateText() {
    94                         Text t = new Text("AnnotationTemplate");
    95                 t.setColor(Color.gray);
    96                 return t;
    97                 }
    98         };
    99 
    100         public static final TextSetting CommentTemplate = new TextSetting("Template for code comment text items") {
    101                 @Override
    102                 public Text generateText() {
    103                         Text t = new Text("CommentTemplate");
    104                 t.setColor(Color.green.darker());
    105                 return t;
    106                 }
    107         };
    108 
    109         public static final TextSetting StatTemplate = new TextSetting("Template for statistics (e.g. extracted attributes) text items") {
    110                 @Override
    111                 public Text generateText() {
    112                         Text t = new Text("StatsTemplate");
    113                 t.setColor(Color.BLACK);
    114                 t.setBackgroundColor(new Color(0.9F, 0.9F, 0.9F));
    115                 t.setFamily(Text.MONOSPACED_FONT);
    116                 t.setSize(14);
    117                 return t;
    118                 }
    119         };
    120        
    12167        /*
    12268         * General settings (no setter functions)
     
    157103
    158104        public static final StringSetting MenuFrame = new StringSetting("The menu frame", null);
    159 
    160         /*
    161          *  Directories
    162          */
    163         public static final ListSetting<String> FrameDirs = new ListSetting<String>("Directories to look in for frames") {
    164                 @Override
    165                 public boolean setSetting(Text text) {
    166                         _value.addAll(FrameUtils.getDirs(text));
    167                         return true;
    168                 }
    169         };
    170         public static final Setting FramesetDir = new Setting("Adds a directory to look in for frames") {
    171                 @Override
    172                 public boolean setSetting(Text text) {
    173                         if(text.getText().indexOf(':') == -1) {
    174                                 return false;
    175                 }
    176                 AttributeValuePair avp = new AttributeValuePair(text.getText());
    177                 if(avp.getValue().trim().length() != 0) {
    178                         String dir = FrameUtils.getDir(avp.getValue());
    179                         if (dir != null) {
    180                                 UserSettings.FrameDirs.get().add(dir);
    181                                 return true;
    182                         }
    183                 }
    184                 return false;
    185                 }
    186         };
    187 
    188         public static ListSetting<String> ImageDirs = new ListSetting<String>("Directories to look in for images") {
    189                 @Override
    190                 public boolean setSetting(Text text) {
    191                         _value.addAll(FrameUtils.getDirs(text));
    192                         return true;
    193                 }
    194         };
    195         public static final Setting ImageDir = new Setting("Adds a directory to look in for images") {
    196                 @Override
    197                 public boolean setSetting(Text text) {
    198                 if(text.getText().indexOf(':') == -1) {
    199                         return false;
    200                 }
    201                 AttributeValuePair avp = new AttributeValuePair(text.getText());
    202                 if(avp.getValue().trim().length() != 0) {
    203                         String dir = FrameUtils.getDir(avp.getValue());
    204                         if(dir != null) {
    205                                 UserSettings.ImageDirs.get().add(0, dir);
    206                                 return true;
    207                         }
    208                 }
    209                 return false;
    210                 }
    211         };
    212        
    213         public static final Setting LogDir = new Setting("Set the directory to save logs") {
    214                 @Override
    215                 public boolean setSetting(Text text) {
    216                         if(text.getText().indexOf(':') == -1) {
    217                         return false;
    218                 }
    219                 AttributeValuePair avp = new AttributeValuePair(text.getText());
    220                 if(avp.getValue().trim().length() != 0) {
    221                         FrameIO.LOGS_DIR = FrameUtils.getDir(avp.getValue());
    222                 }
    223                 return true;
    224                 }
    225         };
    226 
    227         /*
    228          *  Templates
    229          */
    230         public static final TextSetting TitleTemplate = new TextSetting("Template for Title text item") {
    231                 @Override
    232                 public Text generateText() {
    233                         Text t = new Text("TitleTemplate");
    234                         t.setSize(30);
    235                 t.setFontStyle("Bold");
    236                 t.setFamily("SansSerif");
    237                 t.setColor(Color.BLUE);
    238                 t.setPosition(25, 50);
    239                 return t;
    240                 }
    241         };
    242        
    243         public static final TextSetting DotTemplate = new TextSetting("Template for dot items") {
    244                 @Override
    245                 public Text generateText() {
    246                         return new Text("DotTemplate");
    247                 }
    248         };
    249        
    250         public static final TextSetting TooltipTemplate = new TextSetting("Template for tooltips") {
    251                 @Override
    252                 public Text generateText() {
    253                         Text t = new Text("TooltipTemplate");
    254                 t.setColor(Color.BLACK);
    255                 t.setBackgroundColor(new Color(0.7F, 0.7F, 0.9F));
    256                 // t.setFamily(Text.MONOSPACED_FONT);
    257                 t.setSize(14);
    258                 return t;
    259                 }
    260         };
    261        
    262         /*
    263          * Colorwheels
    264          */
    265         public static final ArraySetting<Color> ColorWheel = new ArraySetting<Color>("The colours of items in the child frame are used to populate the colour wheel",
    266                         new Color[] { Color.BLACK, Color.RED, Color.BLUE, Item.GREEN, Color.MAGENTA, Color.YELLOW.darker(), Color.WHITE }) {
    267                 @Override
    268                 public boolean setSetting(Text text) {
    269                         Frame child = text.getChild();
    270                 if (child == null) {
    271                         return false;
    272                 }
    273                 _value = FrameUtils.getColorWheel(child);
    274                 return true;
    275                 }
    276         };
    277        
    278         public static final ArraySetting<Color> FillColorWheel = new ArraySetting<Color>("The colours of items in the child frame are used to populate the colour wheel",
    279                         new Color[] { new Color(255, 150, 150), new Color(150, 150, 255), new Color(150, 255, 150),
    280                         new Color(255, 150, 255), new Color(255, 255, 100), Color.WHITE, Color.BLACK }) {
    281                 @Override
    282                 public boolean setSetting(Text text) {
    283                         Frame child = text.getChild();
    284                 if (child == null) {
    285                         return false;
    286                 }
    287                 _value = FrameUtils.getColorWheel(child);
    288                 return true;
    289                 }
    290         };
    291        
    292         public static final ArraySetting<Color> BackgroundColorWheel = new ArraySetting<Color>("The colours of items in the child frame are used to populate the colour wheel",
    293                         new Color[] { new Color(235, 235, 235), new Color(225, 225, 255), new Color(195, 255, 255),
    294                         new Color(225, 255, 225), new Color(255, 255, 195), new Color(255, 225, 225),
    295                         new Color(255, 195, 255), Color.WHITE, Color.GRAY, Color.DARK_GRAY, Color.BLACK, null }) {
    296                 @Override
    297                 public boolean setSetting(Text text) {
    298                         Frame child = text.getChild();
    299                 if (child == null) {
    300                         return false;
    301                 }
    302                 _value = FrameUtils.getColorWheel(child);
    303                 return true;
    304                 }
    305         };
    306105       
    307106        /*
     
    380179                }
    381180        };
    382        
    383         public static final FrameSetting CursorFrame = new FrameSetting("Items on this frame will be used as the cursor (clearing the frame or removing the link will default back to a normal cursor)") {
    384                 @Override
    385                 public void run(Frame frame) {
    386                         FreeItems.getCursor().addAll(ItemUtils.CopyItems(frame.getAllItems()));
    387                         for (Item i : FreeItems.getCursor()) {
    388                                 i.setParent(null);
    389                         }
    390                         DisplayIO.setCursor(Item.HIDDEN_CURSOR);
    391                         DisplayIO.setCursor(Item.DEFAULT_CURSOR);
    392                 }
    393         };
    394181
    395182        // add default values
     
    402189                }
    403190         
    404                 UserSettings.FrameDirs.get().add(FrameIO.FRAME_PATH);
    405                 UserSettings.FrameDirs.get().add(FrameIO.PUBLIC_PATH);
    406                 UserSettings.FrameDirs.get().add(FrameIO.PROFILE_PATH);
    407                 UserSettings.FrameDirs.get().add(FrameIO.HELP_PATH);
    408                 UserSettings.FrameDirs.get().add(FrameIO.MESSAGES_PATH);
    409                 UserSettings.FrameDirs.setDefault(UserSettings.FrameDirs.get());
    410                 UserSettings.ImageDirs.get().add(FrameIO.IMAGES_PATH);
    411                 UserSettings.ImageDirs.setDefault(UserSettings.ImageDirs.get());
     191                FolderSettings.FrameDirs.get().add(FrameIO.FRAME_PATH);
     192                FolderSettings.FrameDirs.get().add(FrameIO.PUBLIC_PATH);
     193                FolderSettings.FrameDirs.get().add(FrameIO.PROFILE_PATH);
     194                FolderSettings.FrameDirs.get().add(FrameIO.HELP_PATH);
     195                FolderSettings.FrameDirs.get().add(FrameIO.MESSAGES_PATH);
     196                FolderSettings.FrameDirs.setDefault(FolderSettings.FrameDirs.get());
     197                FolderSettings.ImageDirs.get().add(FrameIO.IMAGES_PATH);
     198                FolderSettings.ImageDirs.setDefault(FolderSettings.ImageDirs.get());
    412199        }
    413200
Note: See TracChangeset for help on using the changeset viewer.