From: <cpm...@us...> - 2009-09-05 01:23:53
|
Revision: 10402 http://pcgen.svn.sourceforge.net/pcgen/?rev=10402&view=rev Author: cpmeister Date: 2009-09-05 01:23:46 +0000 (Sat, 05 Sep 2009) Log Message: ----------- Startup system update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/FilePathsDialog.form sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/FilePathsDialog.java sandbox/cdomui/code/src/java/pcgen/system/SystemUtilities.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2009-09-05 00:56:21 UTC (rev 10401) +++ sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2009-09-05 01:23:46 UTC (rev 10402) @@ -22,19 +22,15 @@ import java.awt.BorderLayout; import java.awt.Container; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; import java.io.File; +import java.net.URI; import java.net.URL; import java.util.Observable; import java.util.Observer; -import javax.swing.ImageIcon; import javax.swing.JLabel; -import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.JWindow; +import pcgen.core.SettingsHandler; import pcgen.gui2.tools.ResourceManager; /** @@ -82,7 +78,8 @@ { URL url = (URL) arg; File file = new File(url.getFile()); - loadingLabel.setText(file.getName()); + URI uri = SettingsHandler.getGmgenPluginDir().toURI().relativize(file.toURI()); + loadingLabel.setText(uri.toString()); loadProgress.setValue(loadProgress.getValue() + 1); } else if (arg instanceof String) @@ -95,29 +92,4 @@ } } - private static class SplashPanel extends JPanel - { - - private final ImageIcon splashImage; - - public SplashPanel() - { - splashImage = ResourceManager.getImageIcon("SplashPcgen_Alpha.png"); - if (splashImage != null) - { - setPreferredSize(new Dimension(splashImage.getIconWidth(), - splashImage.getIconHeight())); - } - } - - @Override - public void paintComponent(Graphics g) - { - if (splashImage != null) - { - splashImage.paintIcon(this, g, 0, 0); - } - } - - } } Added: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2009-09-05 01:23:46 UTC (rev 10402) @@ -0,0 +1,185 @@ +/* + * OptionsPathDialog.java + * Copyright 2009 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Sep 3, 2009, 9:08:14 PM + */ +package pcgen.gui2.dialog; + +import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.ButtonGroup; +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JFileChooser; +import javax.swing.JLabel; +import javax.swing.JRadioButton; +import javax.swing.JRootPane; +import javax.swing.JSeparator; +import javax.swing.JTextField; +import org.apache.commons.lang.SystemUtils; +import pcgen.gui2.util.SimpleTextIcon; +import pcgen.system.SystemUtilities; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class OptionsPathDialog extends JDialog +{ + + private final JTextField dirField; + private final JButton dirButton; + private String selectedDir; + + public OptionsPathDialog() + { + this.dirField = new JTextField(); + this.dirButton = new JButton(); + this.selectedDir = "pcgen"; + initComponents(); + } + + private void initComponents() + { + setResizable(false); + setTitle("Directory for options.ini location"); + setModal(true); + setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); + + getContentPane().setLayout(new java.awt.GridBagLayout()); + GridBagConstraints gridBagConstraints = new GridBagConstraints(); + + JLabel label = new JLabel("Select a directory to store PCGen options in:"); + gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; + gridBagConstraints.fill = GridBagConstraints.BOTH; + gridBagConstraints.insets = new Insets(4, 4, 0, 4); + getContentPane().add(label, gridBagConstraints); + + gridBagConstraints.insets = new Insets(2, 0, 2, 0); + getContentPane().add(new JSeparator(), gridBagConstraints); + + label = new JLabel("If you have an existing options.ini file," + + "then select the directory containing that file"); + gridBagConstraints.insets = new Insets(4, 4, 4, 4); + getContentPane().add(label, gridBagConstraints); + + ActionHandler handler = new ActionHandler(); + ButtonGroup group = new ButtonGroup(); + + gridBagConstraints.insets = new Insets(0, 4, 0, 4); + addRadioButton( + "<html><b>PCGen Dir</b>: This is the directory that PCGen is installed into (default)", + "pcgen", group, handler, gridBagConstraints); + if (SystemUtils.IS_OS_MAC_OSX) + { + addRadioButton("<html><b>Mac User Dir</b>", + "mac_user", group, handler, gridBagConstraints); + } + addRadioButton("<html><b>Home Dir</b>: This is your home directory", + "user", group, handler, gridBagConstraints); + addRadioButton("Select a directory to use", + "select", group, handler, gridBagConstraints); + + + dirField.setText(SystemUtilities.getOptionsDirectoryFromFilePath(selectedDir)); + dirField.setEditable(false); + + gridBagConstraints.gridwidth = GridBagConstraints.RELATIVE; + gridBagConstraints.weightx = 1; + gridBagConstraints.insets = new Insets(0, 4, 0, 0); + getContentPane().add(dirField, gridBagConstraints); + + + dirButton.setIcon(new SimpleTextIcon(dirButton, "...")); + dirButton.addActionListener(handler); + dirButton.setActionCommand("custom"); + + gridBagConstraints = new GridBagConstraints(); + gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; + gridBagConstraints.insets = new Insets(0, 0, 0, 4); + getContentPane().add(dirButton, gridBagConstraints); + + JButton okButton = new JButton("OK"); + okButton.setPreferredSize(new Dimension(75, 23)); + okButton.setActionCommand("ok"); + okButton.addActionListener(handler); + + gridBagConstraints.insets = new Insets(4, 0, 4, 0); + getContentPane().add(okButton, gridBagConstraints); + + pack(); + setLocationRelativeTo(null); + } + + public String getSelectedDirectory() + { + return selectedDir; + } + + private void addRadioButton(String text, String command, ButtonGroup group, + ActionListener listener, GridBagConstraints gbc) + { + JRadioButton rButton = new JRadioButton(text); + rButton.setActionCommand(command); + rButton.setSelected(command.equals(selectedDir)); + rButton.addActionListener(listener); + group.add(rButton); + getContentPane().add(rButton, gbc); + } + + private class ActionHandler implements ActionListener + { + + public void actionPerformed(ActionEvent e) + { + String command = e.getActionCommand(); + if (command.equals("custom")) + { + JFileChooser fc = new JFileChooser(dirField.getText()); + + fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + + final int rVal = fc.showOpenDialog(null); + + if (rVal == JFileChooser.APPROVE_OPTION) + { + selectedDir = String.valueOf(fc.getSelectedFile()); + dirField.setText(selectedDir); + } + } + else if (command.equals("select")) + { + dirButton.setEnabled(true); + } + else if (command.equals("ok")) + { + OptionsPathDialog.this.dispose(); + } + else + { + dirButton.setEnabled(false); + selectedDir = command; + dirField.setText(SystemUtilities.getOptionsDirectoryFromFilePath(selectedDir)); + } + } + + } +} Added: sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/FilePathsDialog.form =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/FilePathsDialog.form (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/FilePathsDialog.form 2009-09-05 01:23:46 UTC (rev 10402) @@ -0,0 +1,116 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JDialogFormInfo"> + <Properties> + <Property name="defaultCloseOperation" type="int" value="2"/> + </Properties> + <SyntheticProperties> + <SyntheticProperty name="formSizePolicy" type="int" value="1"/> + </SyntheticProperties> + <AuxValues> + <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> + <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/> + <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/> + <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> + <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> + <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,2,113,0,0,1,-94"/> + </AuxValues> + + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> + <SubComponents> + <Component class="javax.swing.JLabel" name="jLabel2"> + <Properties> + <Property name="text" type="java.lang.String" value="Select a directory to store PCGen options in:"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JSeparator" name="jSeparator1"> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="0" insetsBottom="2" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JLabel" name="jLabel3"> + <Properties> + <Property name="text" type="java.lang.String" value="If you have an existing options.ini file, then select the directory containing that file"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JRadioButton" name="jRadioButton1"> + <Properties> + <Property name="text" type="java.lang.String" value="<html><b>PCGen Dir</b>: This is the directory that PCGen is installed into (default)"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JRadioButton" name="jRadioButton2"> + <Properties> + <Property name="text" type="java.lang.String" value="jRadioButton2"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JRadioButton" name="jRadioButton3"> + <Properties> + <Property name="text" type="java.lang.String" value="jRadioButton3"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JTextField" name="jTextField1"> + <Properties> + <Property name="text" type="java.lang.String" value="jTextField1"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="4" insetsBottom="0" insetsRight="0" anchor="10" weightX="1.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JButton" name="jButton1"> + <Properties> + <Property name="text" type="java.lang.String" value="..."/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JButton" name="jButton2"> + <Properties> + <Property name="text" type="java.lang.String" value="OK"/> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[75, 23]"/> + </Property> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="0" insetsBottom="4" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + </SubComponents> +</Form> Added: sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/FilePathsDialog.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/FilePathsDialog.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/FilePathsDialog.java 2009-09-05 01:23:46 UTC (rev 10402) @@ -0,0 +1,158 @@ +/* + * FilePathsDialog.java + * Copyright 2009 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Sep 3, 2009, 7:23:30 PM + */ + +/* + * FilePathsDialog.java + * + * Created on Sep 3, 2009, 7:23:30 PM + */ + +package pcgen.gui2.proto.dialog; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class FilePathsDialog extends javax.swing.JDialog { + + /** Creates new form FilePathsDialog */ + public FilePathsDialog(java.awt.Frame parent, boolean modal) { + super(parent, modal); + initComponents(); + } + + /** This method is called from within the constructor to + * initialize the form. + * WARNING: Do NOT modify this code. The content of this method is + * always regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents + private void initComponents() + { + java.awt.GridBagConstraints gridBagConstraints; + + jLabel2 = new javax.swing.JLabel(); + jSeparator1 = new javax.swing.JSeparator(); + jLabel3 = new javax.swing.JLabel(); + jRadioButton1 = new javax.swing.JRadioButton(); + jRadioButton2 = new javax.swing.JRadioButton(); + jRadioButton3 = new javax.swing.JRadioButton(); + jTextField1 = new javax.swing.JTextField(); + jButton1 = new javax.swing.JButton(); + jButton2 = new javax.swing.JButton(); + + setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); + getContentPane().setLayout(new java.awt.GridBagLayout()); + + jLabel2.setText("Select a directory to store PCGen options in:"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.insets = new java.awt.Insets(4, 4, 0, 4); + getContentPane().add(jLabel2, gridBagConstraints); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.insets = new java.awt.Insets(2, 0, 2, 0); + getContentPane().add(jSeparator1, gridBagConstraints); + + jLabel3.setText("If you have an existing options.ini file, then select the directory containing that file"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.insets = new java.awt.Insets(4, 4, 4, 4); + getContentPane().add(jLabel3, gridBagConstraints); + + jRadioButton1.setText("<html><b>PCGen Dir</b>: This is the directory that PCGen is installed into (default)"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4); + getContentPane().add(jRadioButton1, gridBagConstraints); + + jRadioButton2.setText("jRadioButton2"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4); + getContentPane().add(jRadioButton2, gridBagConstraints); + + jRadioButton3.setText("jRadioButton3"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 4); + getContentPane().add(jRadioButton3, gridBagConstraints); + + jTextField1.setText("jTextField1"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.weightx = 1.0; + gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); + getContentPane().add(jTextField1, gridBagConstraints); + + jButton1.setText("..."); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 4); + getContentPane().add(jButton1, gridBagConstraints); + + jButton2.setText("OK"); + jButton2.setPreferredSize(new java.awt.Dimension(75, 23)); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.insets = new java.awt.Insets(4, 0, 4, 0); + getContentPane().add(jButton2, gridBagConstraints); + + pack(); + }// </editor-fold>//GEN-END:initComponents + + /** + * @param args the command line arguments + */ + public static void main(String args[]) { + java.awt.EventQueue.invokeLater(new Runnable() { + public void run() { + FilePathsDialog dialog = new FilePathsDialog(new javax.swing.JFrame(), true); + dialog.addWindowListener(new java.awt.event.WindowAdapter() { + public void windowClosing(java.awt.event.WindowEvent e) { + System.exit(0); + } + }); + dialog.setVisible(true); + } + }); + } + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton jButton1; + private javax.swing.JButton jButton2; + private javax.swing.JLabel jLabel2; + private javax.swing.JLabel jLabel3; + private javax.swing.JRadioButton jRadioButton1; + private javax.swing.JRadioButton jRadioButton2; + private javax.swing.JRadioButton jRadioButton3; + private javax.swing.JSeparator jSeparator1; + private javax.swing.JTextField jTextField1; + // End of variables declaration//GEN-END:variables + +} Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2009-09-05 00:56:21 UTC (rev 10401) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2009-09-05 01:23:46 UTC (rev 10402) @@ -20,22 +20,17 @@ */ package pcgen.system; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; -import org.apache.commons.lang.SystemUtils; -import pcgen.core.Globals; import pcgen.core.SettingsHandler; import pcgen.core.bonus.Bonus; import pcgen.core.prereq.PrerequisiteTestFactory; import pcgen.gui2.SplashScreen; +import pcgen.gui2.dialog.OptionsPathDialog; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterFactory; import pcgen.persistence.lst.prereq.PreParserFactory; import pcgen.rules.persistence.TokenLibrary; -import pcgen.util.Logging; /** * @@ -53,11 +48,12 @@ String inFileName = System.getProperty("pcgen.inputfile"); String outFileName = System.getProperty("pcgen.outputfile"); //TODO: Do some console handling + + loadProperties(); - - loadPlugins(); + //loadPlugins(); } private static void loadProperties() @@ -65,10 +61,18 @@ //If the filePath was specified in the command line, make sure it is loaded //into PCGenProperties before anything else is loaded. String filePaths = System.getProperty(PCGenProperties.FILE_PATH); - PCGenProperties.setPCGenProperty(PCGenProperties.FILE_PATH, filePaths); + if (filePaths != null) + { + PCGenProperties.setPCGenProperty(PCGenProperties.FILE_PATH, filePaths); + } if (!PCGenProperties.loadFilePathProperties()) { + OptionsPathDialog dialog = new OptionsPathDialog(); + dialog.setVisible(true); + filePaths = dialog.getSelectedDirectory(); + PCGenProperties.setPCGenProperty(PCGenProperties.FILE_PATH, filePaths); } + } private static void loadPlugins() Modified: sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java 2009-09-05 00:56:21 UTC (rev 10401) +++ sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java 2009-09-05 01:23:46 UTC (rev 10402) @@ -43,7 +43,7 @@ { } - public static PCGenProperties getInstance() + private static PCGenProperties getInstance() { if (instance == null) { @@ -52,22 +52,22 @@ return instance; } - public static String getPCGenProperty(String prop) + public static synchronized String getPCGenProperty(String prop) { return getInstance().getProperty(prop); } - public static void setPCGenProperty(String prop, String value) + public static synchronized void setPCGenProperty(String prop, String value) { getInstance().setProperty(prop, value); } - public static File getFile(String prop) + public static synchronized File getFile(String prop) { return new File(getPCGenProperty(prop)); } - public static boolean loadFilePathProperties() + public static synchronized boolean loadFilePathProperties() { File file; String filePath; @@ -98,36 +98,7 @@ loaded = true; String fType = instance.getProperty(FILE_PATH); - if ((fType == null) || (fType.length() < 1)) - { - // make sure we have a default - if (SystemUtils.IS_OS_MAC_OSX) - { - fType = "mac_user"; //$NON-NLS-1$ - } - else - { - fType = "user"; //$NON-NLS-1$ - } - } - - if (fType.equals("pcgen")) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_DIR; - } - else if (fType.equals("user")) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_HOME + File.separator + ".pcgen"; //$NON-NLS-1$ - } - else if (fType.equals("mac_user")) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_HOME + "/Library/Preferences/pcgen"; - } - else - { - filePath = fType; - } - setPCGenProperty(PCGEN_FILES_DIR, filePath); + setPCGenProperty(PCGEN_FILES_DIR, SystemUtilities.getOptionsDirectoryFromFilePath(fType)); } catch (IOException e) { @@ -164,7 +135,7 @@ return path; } - public static void loadPCGenProperties() + public static synchronized void loadPCGenProperties() { } Added: sandbox/cdomui/code/src/java/pcgen/system/SystemUtilities.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/SystemUtilities.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/SystemUtilities.java 2009-09-05 01:23:46 UTC (rev 10402) @@ -0,0 +1,68 @@ +/* + * SystemUtilities.java + * Copyright 2009 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Sep 2, 2009, 11:27:19 PM + */ +package pcgen.system; + +import java.io.File; +import org.apache.commons.lang.SystemUtils; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class SystemUtilities +{ + + public static String getOptionsDirectoryFromFilePath(String fType) + { + String filePath; + if ((fType == null) || (fType.length() < 1)) + { + // make sure we have a default + if (SystemUtils.IS_OS_MAC_OSX) + { + fType = "mac_user"; //$NON-NLS-1$ + } + else + { + fType = "user"; //$NON-NLS-1$ + } + } + + if (fType.equals("pcgen")) //$NON-NLS-1$ + { + filePath = SystemUtils.USER_DIR; + } + else if (fType.equals("user")) //$NON-NLS-1$ + { + filePath = SystemUtils.USER_HOME + File.separator + ".pcgen"; //$NON-NLS-1$ + } + else if (fType.equals("mac_user")) //$NON-NLS-1$ + { + filePath = SystemUtils.USER_HOME + "/Library/Preferences/pcgen"; + } + else + { + filePath = fType; + } + return filePath; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2009-09-05 03:04:11
|
Revision: 10403 http://pcgen.svn.sourceforge.net/pcgen/?rev=10403&view=rev Author: cpmeister Date: 2009-09-05 03:04:04 +0000 (Sat, 05 Sep 2009) Log Message: ----------- Startup system update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2009-09-05 01:23:46 UTC (rev 10402) +++ sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2009-09-05 03:04:04 UTC (rev 10403) @@ -63,7 +63,7 @@ setTitle("Directory for options.ini location"); setModal(true); setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); - + getContentPane().setLayout(new java.awt.GridBagLayout()); GridBagConstraints gridBagConstraints = new GridBagConstraints(); @@ -108,9 +108,10 @@ getContentPane().add(dirField, gridBagConstraints); - dirButton.setIcon(new SimpleTextIcon(dirButton, "...")); + dirButton.setText("..."); dirButton.addActionListener(handler); dirButton.setActionCommand("custom"); + dirButton.setMargin(new Insets(2, 2, 2, 2)); gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2009-09-05 01:23:46 UTC (rev 10402) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2009-09-05 03:04:04 UTC (rev 10403) @@ -22,12 +22,17 @@ import java.util.logging.Level; import java.util.logging.Logger; +import pcgen.cdom.base.Constants; +import pcgen.core.Globals; import pcgen.core.SettingsHandler; import pcgen.core.bonus.Bonus; import pcgen.core.prereq.PrerequisiteTestFactory; +import pcgen.core.utils.MessageType; +import pcgen.core.utils.ShowMessageDelegate; import pcgen.gui2.SplashScreen; import pcgen.gui2.dialog.OptionsPathDialog; import pcgen.persistence.PersistenceLayerException; +import pcgen.persistence.PersistenceManager; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterFactory; import pcgen.persistence.lst.prereq.PreParserFactory; import pcgen.rules.persistence.TokenLibrary; @@ -49,11 +54,9 @@ String outFileName = System.getProperty("pcgen.outputfile"); //TODO: Do some console handling - loadProperties(); - - - //loadPlugins(); + loadPlugins(); + initGameModes(); } private static void loadProperties() @@ -69,10 +72,22 @@ { OptionsPathDialog dialog = new OptionsPathDialog(); dialog.setVisible(true); + filePaths = dialog.getSelectedDirectory(); PCGenProperties.setPCGenProperty(PCGenProperties.FILE_PATH, filePaths); + + String dir = SystemUtilities.getOptionsDirectoryFromFilePath(filePaths); + PCGenProperties.setPCGenProperty(PCGenProperties.PCGEN_FILES_DIR, dir); } - + + //If the optionsPath was specified in the command line, make sure it is loaded + //before the rest of the properties are loaded + String optionsLocation = System.getProperty(PCGenProperties.OPTIONS_PATH); + if (optionsLocation != null) + { + PCGenProperties.setPCGenProperty(PCGenProperties.OPTIONS_PATH, optionsLocation); + } + PCGenProperties.loadPCGenProperties(); } private static void loadPlugins() @@ -94,4 +109,21 @@ loader.loadPlugins(); } + private static void initGameModes() + { + try + { + PersistenceManager.getInstance().initialize(); + } + catch (PersistenceLayerException e) + { + ShowMessageDelegate.showMessageDialog(e.getMessage(), Constants.s_APPNAME, + MessageType.INFORMATION); + } + String game = PCGenProperties.getPCGenProperty(PCGenProperties.GAME, Constants.e35_MODE); + SettingsHandler.setGame(game); + SettingsHandler.getGame().clearLoadContext(); + Globals.createEmptyRace(); + } + } Modified: sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java 2009-09-05 01:23:46 UTC (rev 10402) +++ sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java 2009-09-05 03:04:04 UTC (rev 10403) @@ -37,6 +37,8 @@ public static final String PCGEN_FILES_DIR = "PCGenFilesDir"; public static final String FILE_PATH = "pcgen.filepaths"; + public static final String OPTIONS_PATH = "pcgen.options"; + public static final String GAME = "game"; private static PCGenProperties instance; private PCGenProperties() @@ -52,16 +54,21 @@ return instance; } - public static synchronized String getPCGenProperty(String prop) + public static synchronized String getPCGenProperty(String key) { - return getInstance().getProperty(prop); + return getInstance().getProperty(key); } - public static synchronized void setPCGenProperty(String prop, String value) + public static synchronized String getPCGenProperty(String key, String defaultValue) { - getInstance().setProperty(prop, value); + return getInstance().getProperty(key, defaultValue); } + public static synchronized void setPCGenProperty(String key, String value) + { + getInstance().setProperty(key, value); + } + public static synchronized File getFile(String prop) { return new File(getPCGenProperty(prop)); @@ -125,6 +132,46 @@ return loaded; } + public static synchronized void loadPCGenProperties() + { + // first see if it was specified on the command line + String optionsLocation = getPCGenProperty(OPTIONS_PATH); + + if (optionsLocation == null) + { + optionsLocation = getPCGenProperty(PCGEN_FILES_DIR) + File.separator + "options.ini"; + } + + FileInputStream in = null; + + try + { + in = new FileInputStream(optionsLocation); + instance.load(in); + } + catch (IOException e) + { + // Not an error, this file may not exist yet + Logging.debugPrint(PropertyFactory.getString("SettingsHandler.no.options.file")); //$NON-NLS-1$ + } + finally + { + try + { + if (in != null) + { + in.close(); + } + } + catch (IOException ex) + { + //Not much to do about it... + Logging.errorPrint(PropertyFactory.getString( + "SettingsHandler.can.not.close.options.file"), ex); //$NON-NLS-1$ + } + } + } + private static String expandRelativePath(String path) { if (path.startsWith("@")) @@ -135,8 +182,4 @@ return path; } - public static synchronized void loadPCGenProperties() - { - } - } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2009-09-06 08:23:40
|
Revision: 10420 http://pcgen.svn.sourceforge.net/pcgen/?rev=10420&view=rev Author: cpmeister Date: 2009-09-06 08:23:29 +0000 (Sun, 06 Sep 2009) Log Message: ----------- Startup system update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContextManager.java Removed Paths: ------------- sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java sandbox/cdomui/code/src/java/pcgen/system/SystemUtilities.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2009-09-06 03:17:46 UTC (rev 10419) +++ sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2009-09-06 08:23:29 UTC (rev 10420) @@ -36,7 +36,7 @@ import javax.swing.JTextField; import org.apache.commons.lang.SystemUtils; import pcgen.gui2.util.SimpleTextIcon; -import pcgen.system.SystemUtilities; +import pcgen.system.SystemPropertyContextManager; /** * @@ -99,7 +99,7 @@ "select", group, handler, gridBagConstraints); - dirField.setText(SystemUtilities.getOptionsDirectoryFromFilePath(selectedDir)); + dirField.setText(SystemPropertyContextManager.getSettingsDirectoryFromFilePath(selectedDir)); dirField.setEditable(false); gridBagConstraints.gridwidth = GridBagConstraints.RELATIVE; @@ -178,7 +178,7 @@ { dirButton.setEnabled(false); selectedDir = command; - dirField.setText(SystemUtilities.getOptionsDirectoryFromFilePath(selectedDir)); + dirField.setText(SystemPropertyContextManager.getSettingsDirectoryFromFilePath(selectedDir)); } } Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2009-09-06 03:17:46 UTC (rev 10419) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2009-09-06 08:23:29 UTC (rev 10420) @@ -61,33 +61,22 @@ private static void loadProperties() { - //If the filePath was specified in the command line, make sure it is loaded - //into PCGenProperties before anything else is loaded. - String filePaths = System.getProperty(PCGenProperties.FILE_PATH); - if (filePaths != null) + //If the filePath was specified in the command line, set it so the + //SystemPropertyContextManager doesn't have to load it + String filePath = System.getProperty(SystemPropertyContextManager.FILE_PATH); + if (filePath != null) { - PCGenProperties.setPCGenProperty(PCGenProperties.FILE_PATH, filePaths); + SystemPropertyContextManager.setFilePath(filePath); } - if (!PCGenProperties.loadFilePathProperties()) + else if (!SystemPropertyContextManager.loadFilePath()) { OptionsPathDialog dialog = new OptionsPathDialog(); dialog.setVisible(true); - - filePaths = dialog.getSelectedDirectory(); - PCGenProperties.setPCGenProperty(PCGenProperties.FILE_PATH, filePaths); - - String dir = SystemUtilities.getOptionsDirectoryFromFilePath(filePaths); - PCGenProperties.setPCGenProperty(PCGenProperties.PCGEN_FILES_DIR, dir); + filePath = dialog.getSelectedDirectory(); + SystemPropertyContextManager.setFilePath(filePath); } - - //If the optionsPath was specified in the command line, make sure it is loaded - //before the rest of the properties are loaded - String optionsLocation = System.getProperty(PCGenProperties.OPTIONS_PATH); - if (optionsLocation != null) - { - PCGenProperties.setPCGenProperty(PCGenProperties.OPTIONS_PATH, optionsLocation); - } - PCGenProperties.loadPCGenProperties(); + //TODO: register existing SystemPropertyContexts + SystemPropertyContextManager.loadAllSystemPropertyContexts(); } private static void loadPlugins() @@ -120,7 +109,9 @@ ShowMessageDelegate.showMessageDialog(e.getMessage(), Constants.s_APPNAME, MessageType.INFORMATION); } - String game = PCGenProperties.getPCGenProperty(PCGenProperties.GAME, Constants.e35_MODE); + SystemPropertyContext properties = + SystemPropertyContextManager.getSystemPropertyContext("options.ini"); + String game = properties.getProperty("game", Constants.e35_MODE); SettingsHandler.setGame(game); SettingsHandler.getGame().clearLoadContext(); Globals.createEmptyRace(); Deleted: sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java 2009-09-06 03:17:46 UTC (rev 10419) +++ sandbox/cdomui/code/src/java/pcgen/system/PCGenProperties.java 2009-09-06 08:23:29 UTC (rev 10420) @@ -1,197 +0,0 @@ -/* - * PCGenProperties.java - * Copyright 2009 Connor Petty <cpm...@us...> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Created on Sep 2, 2009, 10:35:31 PM - */ -package pcgen.system; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.Properties; -import org.apache.commons.lang.SystemUtils; -import pcgen.util.Logging; -import pcgen.util.PropertyFactory; - -/** - * - * @author Connor Petty <cpm...@us...> - */ -public final class PCGenProperties extends Properties -{ - - public static final String PCGEN_FILES_DIR = "PCGenFilesDir"; - public static final String FILE_PATH = "pcgen.filepaths"; - public static final String OPTIONS_PATH = "pcgen.options"; - public static final String GAME = "game"; - private static PCGenProperties instance; - - private PCGenProperties() - { - } - - private static PCGenProperties getInstance() - { - if (instance == null) - { - instance = new PCGenProperties(); - } - return instance; - } - - public static synchronized String getPCGenProperty(String key) - { - return getInstance().getProperty(key); - } - - public static synchronized String getPCGenProperty(String key, String defaultValue) - { - return getInstance().getProperty(key, defaultValue); - } - - public static synchronized void setPCGenProperty(String key, String value) - { - getInstance().setProperty(key, value); - } - - public static synchronized File getFile(String prop) - { - return new File(getPCGenProperty(prop)); - } - - public static synchronized boolean loadFilePathProperties() - { - File file; - String filePath; - // first see if it was specified on the command line - filePath = getInstance().getProperty(FILE_PATH, SystemUtils.USER_DIR); //$NON-NLS-1$ - - file = new File(expandRelativePath(filePath)); - - if (file.exists()) - { - if (file.isDirectory()) - { - file = new File(file, "filepaths.ini"); - } - if (!file.canWrite()) - { - Logging.errorPrint("WARNING: The filepaths file you specified is not updatable. " + - "Filepath changes will not be saved. File is " + file.getAbsolutePath()); - } - } - - FileInputStream in = null; - boolean loaded = false; - try - { - in = new FileInputStream(file); - instance.load(in); - loaded = true; - - String fType = instance.getProperty(FILE_PATH); - setPCGenProperty(PCGEN_FILES_DIR, SystemUtilities.getOptionsDirectoryFromFilePath(fType)); - } - catch (IOException e) - { - // Not an error, this file may not exist yet - Logging.debugPrint( - PropertyFactory.getString("SettingsHandler.will.create.filepaths.ini")); //$NON-NLS-1$ - } - finally - { - try - { - if (in != null) - { - in.close(); - } - } - catch (IOException ex) - { - //Not much to do about it... - Logging.errorPrint(PropertyFactory.getString( - "SettingsHandler.can.not.close.filepaths.ini"), ex); //$NON-NLS-1$ - } - } - return loaded; - } - - public static synchronized void loadPCGenProperties() - { - // first see if it was specified on the command line - String optionsLocation = getPCGenProperty(OPTIONS_PATH); - - if (optionsLocation == null) - { - optionsLocation = getPCGenProperty(PCGEN_FILES_DIR); - } - File file = new File(expandRelativePath(optionsLocation)); - if (file.exists()) - { - if (file.isDirectory()) - { - file = new File(file, "filepaths.ini"); - } - if (!file.canWrite()) - { - Logging.errorPrint("WARNING: The options file you specified is not updatable. " + - "Settings changes will not be saved. File is " + file.getAbsolutePath()); - } - } - - FileInputStream in = null; - try - { - in = new FileInputStream(file); - instance.load(in); - } - catch (IOException e) - { - // Not an error, this file may not exist yet - Logging.debugPrint(PropertyFactory.getString("SettingsHandler.no.options.file")); //$NON-NLS-1$ - } - finally - { - try - { - if (in != null) - { - in.close(); - } - } - catch (IOException ex) - { - //Not much to do about it... - Logging.errorPrint(PropertyFactory.getString( - "SettingsHandler.can.not.close.options.file"), ex); //$NON-NLS-1$ - } - } - } - - private static String expandRelativePath(String path) - { - if (path.startsWith("@")) - { - path = System.getProperty("user.dir") + File.separator + path.substring(1); - } - - return path; - } - -} Modified: sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContextManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContextManager.java 2009-09-06 03:17:46 UTC (rev 10419) +++ sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContextManager.java 2009-09-06 08:23:29 UTC (rev 10420) @@ -40,7 +40,7 @@ public static final String USER_FILEPATH = "user"; public static final String PCGEN_FILEPATH = "pcgen"; public static final String MAC_USER_FILEPATH = "mac_user"; - private static final String FILE_PATH = "pcgen.filepaths"; + public static final String FILE_PATH = "pcgen.filepaths"; private static final Map<String, SystemPropertyContext> contextMap = new HashMap<String, SystemPropertyContext>(); private static String pathType = null; Deleted: sandbox/cdomui/code/src/java/pcgen/system/SystemUtilities.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/SystemUtilities.java 2009-09-06 03:17:46 UTC (rev 10419) +++ sandbox/cdomui/code/src/java/pcgen/system/SystemUtilities.java 2009-09-06 08:23:29 UTC (rev 10420) @@ -1,68 +0,0 @@ -/* - * SystemUtilities.java - * Copyright 2009 Connor Petty <cpm...@us...> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Created on Sep 2, 2009, 11:27:19 PM - */ -package pcgen.system; - -import java.io.File; -import org.apache.commons.lang.SystemUtils; - -/** - * - * @author Connor Petty <cpm...@us...> - */ -public class SystemUtilities -{ - - public static String getOptionsDirectoryFromFilePath(String fType) - { - String filePath; - if ((fType == null) || (fType.length() < 1)) - { - // make sure we have a default - if (SystemUtils.IS_OS_MAC_OSX) - { - fType = "mac_user"; //$NON-NLS-1$ - } - else - { - fType = "user"; //$NON-NLS-1$ - } - } - - if (fType.equals("pcgen")) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_DIR; - } - else if (fType.equals("user")) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_HOME + File.separator + ".pcgen"; //$NON-NLS-1$ - } - else if (fType.equals("mac_user")) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_HOME + "/Library/Preferences/pcgen"; - } - else - { - filePath = fType; - } - return filePath; - } - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-14 06:57:51
|
Revision: 11516 http://pcgen.svn.sourceforge.net/pcgen/?rev=11516&view=rev Author: cpmeister Date: 2010-03-14 06:57:44 +0000 (Sun, 14 Mar 2010) Log Message: ----------- PropertyContext update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java sandbox/cdomui/code/src/java/pcgen/system/PropertyContext.java sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContext.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java 2010-03-13 05:01:57 UTC (rev 11515) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java 2010-03-14 06:57:44 UTC (rev 11516) @@ -22,6 +22,9 @@ import java.awt.BorderLayout; import java.awt.GraphicsConfiguration; +import java.awt.Rectangle; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; import java.io.File; import java.util.ArrayList; import java.util.List; @@ -31,6 +34,7 @@ import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.KeyStroke; +import org.apache.commons.lang.math.NumberUtils; import pcgen.core.facade.CharacterFacade; import pcgen.core.facade.SourceFacade; import pcgen.gui2.tools.CharacterSelectionListener; @@ -39,6 +43,7 @@ import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.GenericComboBoxModel; import pcgen.gui2.util.GenericListModel; +import pcgen.system.PropertyContext; /** * @@ -58,6 +63,8 @@ this.actionMap = new PCGenActionMap(this); this.characterTabs = new CharacterTabs(this); initComponents(); + pack(); + //initSettings(); } private void initComponents() @@ -67,12 +74,63 @@ JComponent root = getRootPane(); root.setActionMap(actionMap); root.setInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, - createInputMap(actionMap)); + createInputMap(actionMap)); setJMenuBar(new PCGenMenuBar(this)); add(new PCGenToolBar(this), BorderLayout.PAGE_START); add(characterTabs, BorderLayout.CENTER); } + private void initSettings() + { + final PropertyContext frameContext = + PCGenUIManager.getUIPropertyContext().createSubContext("PCGenFrame"); + Rectangle screenBounds = getGraphicsConfiguration().getBounds(); + int extendedState = NORMAL; + int x = screenBounds.x; + int y = screenBounds.y; + int width = screenBounds.width; + int height = screenBounds.height; + + extendedState = NumberUtils.toInt(frameContext.getProperty("extendedState"), extendedState); + if (extendedState == ICONIFIED) + { + extendedState = NORMAL; + } + x = NumberUtils.toInt(frameContext.getProperty("bounds.x"), x); + y = NumberUtils.toInt(frameContext.getProperty("bounds.y"), y); + width = NumberUtils.toInt(frameContext.getProperty("bounds.width"), width); + height = NumberUtils.toInt(frameContext.getProperty("bounds.height"), height); + + setExtendedState(extendedState); + setBounds(x, y, width, height); + + addPropertyChangeListener("extendedState", frameContext); + addComponentListener(new ComponentAdapter() + { + + @Override + public void componentResized(ComponentEvent e) + { + updateBounds(); + } + + @Override + public void componentMoved(ComponentEvent e) + { + updateBounds(); + } + + private void updateBounds() + { + Rectangle bounds = getBounds(); + frameContext.setProperty("bounds.x", Integer.toString(bounds.x)); + frameContext.setProperty("bounds.y", Integer.toString(bounds.y)); + frameContext.setProperty("bounds.width", Integer.toString(bounds.width)); + frameContext.setProperty("bounds.height", Integer.toString(bounds.height)); + } + }); + } + private static InputMap createInputMap(ActionMap actionMap) { InputMap inputMap = new InputMap(); @@ -134,5 +192,4 @@ { return new DefaultGenericComboBoxModel<File>(); } - } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-13 05:01:57 UTC (rev 11515) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-14 06:57:44 UTC (rev 11516) @@ -37,7 +37,7 @@ import pcgen.gui2.mock.CharacterMock; import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.GenericListModel; -import pcgen.system.SystemPropertyContext; +import pcgen.system.PropertyContext; import pcgen.system.SystemPropertyContextManager; import pcgen.util.Logging; @@ -56,11 +56,15 @@ { } + public static PropertyContext getUIPropertyContext() + { + return SystemPropertyContextManager.getSystemPropertyContext("UIConfig.ini"); + } + public static PCGenFrame createPCGenFrame() { - SystemPropertyContext uiconfig = - SystemPropertyContextManager.getSystemPropertyContext("UIConfig.ini"); - if (uiconfig == null) + PropertyContext uiconfig = getUIPropertyContext(); + if (uiconfig == null) { Logging.errorPrint("Could not find UIConfig.ini to load properties."); } @@ -83,9 +87,8 @@ { device = environment.getDefaultScreenDevice(); } - PCGenFrame frame = new PCGenFrame(device.getDefaultConfiguration()); + PCGenFrame frame = new PCGenFrame(device.getDefaultConfiguration()); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - frame.pack(); return frame; } Modified: sandbox/cdomui/code/src/java/pcgen/system/PropertyContext.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PropertyContext.java 2010-03-13 05:01:57 UTC (rev 11515) +++ sandbox/cdomui/code/src/java/pcgen/system/PropertyContext.java 2010-03-14 06:57:44 UTC (rev 11516) @@ -23,11 +23,18 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; -import java.io.File; import java.util.Properties; /** - * + * This class acts similarly to the Properties class but behaves defferntly + * in that SubContexts can be created. These SubContexts share the properties + * of its parent but they use a different namespace than the parent when + * a property is set. The root parent contains all the properties of its + * children and likewise, all of the properties of the children can be edited + * from the root parent. In child contexts, the properties of all other children + * that share its ancestors are visible but only that child's namespace is editable. + * It is considered bad practice to look at the other siblings properties from within + * a child. * @author Connor Petty <cpm...@us...> */ public class PropertyContext implements PropertyChangeListener @@ -36,14 +43,16 @@ protected final Properties properties; protected final PropertyContext parent; protected final PropertyChangeSupport support; + protected final String name; - public PropertyContext() + public PropertyContext(String name) { - this(null); + this(name, null); } - public PropertyContext(PropertyContext parent) + public PropertyContext(String name, PropertyContext parent) { + this.name = name; this.support = new PropertyChangeSupport(this); this.parent = parent; if (parent == null) @@ -52,11 +61,15 @@ } else { - this.properties = new Properties(parent.properties); - parent.addPropertyChangeListener(this); + this.properties = parent.properties; } } + public PropertyContext createSubContext(String name) + { + return new PropertyContext(name, this); + } + public void addPropertyChangeListener(PropertyChangeListener listener) { support.addPropertyChangeListener(listener); @@ -77,19 +90,55 @@ support.removePropertyChangeListener(property, listener); } + /** + * Searches for the property with the specified key in this property context. + * If the key is not found in this property context, the parent property context, + * and its properties, recursively, are then checked. The method returns + * <code>null</code> if the property is not found. + * + * @param key the property key. + * @return the value in this property context with the specified key value. + */ public String getProperty(String key) { + if (parent != null) + { + String prop = parent.getProperty(name + "." + key); + return prop != null ? prop : parent.getProperty(key); + } return properties.getProperty(key); } + /** + * Searches for the property with the specified key in this property context. + * If the key is not found in this property context, the parent property context, + * and its properties, recursively, are then checked. The method returns + * the default value argument if the property is not found. + * + * @param key the property key. + * @param defaultValue a default value. + * @return the value in this property context with the specified key value. + */ public String getProperty(String key, String defaultValue) { + if (parent != null) + { + return parent.getProperty(name + "." + key, defaultValue); + } return properties.getProperty(key, defaultValue); } public Object setProperty(String key, String value) { - Object oldValue = properties.setProperty(key, value); + Object oldValue; + if (parent != null) + { + oldValue = parent.setProperty(name + "." + key, value); + } + else + { + oldValue = properties.setProperty(key, value); + } support.firePropertyChange(key, oldValue, value); return oldValue; } @@ -98,5 +147,4 @@ { support.firePropertyChange(evt); } - } Modified: sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContext.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContext.java 2010-03-13 05:01:57 UTC (rev 11515) +++ sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContext.java 2010-03-14 06:57:44 UTC (rev 11516) @@ -31,11 +31,9 @@ public class SystemPropertyContext extends PropertyContext { - private String name; - public SystemPropertyContext(String name) { - this.name = name; + super(name); } public void loadProperties(InputStream inStream) throws IOException This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-15 00:33:18
|
Revision: 11519 http://pcgen.svn.sourceforge.net/pcgen/?rev=11519&view=rev Author: cpmeister Date: 2010-03-15 00:33:11 +0000 (Mon, 15 Mar 2010) Log Message: ----------- PropertyContext update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java sandbox/cdomui/code/src/java/pcgen/gui2/tools/ResourceManager.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/PropertyContext.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/system/PropertyContextManager.java sandbox/cdomui/code/src/java/pcgen/system/UIResourceContext.java Removed Paths: ------------- sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContext.java sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContextManager.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-14 11:58:48 UTC (rev 11518) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-15 00:33:11 UTC (rev 11519) @@ -38,7 +38,7 @@ import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.GenericListModel; import pcgen.system.PropertyContext; -import pcgen.system.SystemPropertyContextManager; +import pcgen.system.PropertyContextManager; import pcgen.util.Logging; /** @@ -58,7 +58,7 @@ public static PropertyContext getUIPropertyContext() { - return SystemPropertyContextManager.getSystemPropertyContext("UIConfig.ini"); + return PropertyContextManager.getPropertyContext("UIConfig.ini"); } public static PCGenFrame createPCGenFrame() Modified: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2010-03-14 11:58:48 UTC (rev 11518) +++ sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2010-03-15 00:33:11 UTC (rev 11519) @@ -36,7 +36,7 @@ import javax.swing.JTextField; import org.apache.commons.lang.SystemUtils; import pcgen.gui2.util.SimpleTextIcon; -import pcgen.system.SystemPropertyContextManager; +import pcgen.system.PropertyContextManager; /** * @@ -99,7 +99,7 @@ "select", group, handler, gridBagConstraints); - dirField.setText(SystemPropertyContextManager.getSettingsDirectoryFromFilePath(selectedDir)); + dirField.setText(PropertyContextManager.getSettingsDirectoryFromFilePath(selectedDir)); dirField.setEditable(false); gridBagConstraints.gridwidth = GridBagConstraints.RELATIVE; @@ -178,7 +178,7 @@ { dirButton.setEnabled(false); selectedDir = command; - dirField.setText(SystemPropertyContextManager.getSettingsDirectoryFromFilePath(selectedDir)); + dirField.setText(PropertyContextManager.getSettingsDirectoryFromFilePath(selectedDir)); } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tools/ResourceManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tools/ResourceManager.java 2010-03-14 11:58:48 UTC (rev 11518) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tools/ResourceManager.java 2010-03-15 00:33:11 UTC (rev 11519) @@ -99,7 +99,7 @@ * Fetch an <code>ImageIcon</code> relative to the calling * location. * - * @param location <code>String</code>, the path to the + * @param fileName <code>String</code>, the path to the * <code>IconImage> source * * @return <code>ImageIcon</code>, the icon or <code>null</code> Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-14 11:58:48 UTC (rev 11518) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-15 00:33:11 UTC (rev 11519) @@ -62,21 +62,21 @@ private static void loadProperties() { //If the filePath was specified in the command line, set it so the - //SystemPropertyContextManager doesn't have to load it - String filePath = System.getProperty(SystemPropertyContextManager.FILE_PATH); + //PropertyContextManager doesn't have to load it + String filePath = System.getProperty(PropertyContextManager.FILE_PATH); if (filePath != null) { - SystemPropertyContextManager.setFilePath(filePath); + PropertyContextManager.setFilePath(filePath); } - else if (!SystemPropertyContextManager.loadFilePath()) + else if (!PropertyContextManager.loadFilePath()) { OptionsPathDialog dialog = new OptionsPathDialog(); dialog.setVisible(true); filePath = dialog.getSelectedDirectory(); - SystemPropertyContextManager.setFilePath(filePath); + PropertyContextManager.setFilePath(filePath); } //TODO: register existing SystemPropertyContexts - SystemPropertyContextManager.loadAllSystemPropertyContexts(); + PropertyContextManager.loadAllSystemPropertyContexts(); } private static void loadPlugins() @@ -109,8 +109,7 @@ ShowMessageDelegate.showMessageDialog(e.getMessage(), Constants.s_APPNAME, MessageType.INFORMATION); } - SystemPropertyContext properties = - SystemPropertyContextManager.getSystemPropertyContext("options.ini"); + PropertyContext properties = PropertyContextManager.getPropertyContext("options.ini"); String game = properties.getProperty("game", Constants.e35_MODE); SettingsHandler.setGame(game); SettingsHandler.getGame().clearLoadContext(); Modified: sandbox/cdomui/code/src/java/pcgen/system/PropertyContext.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PropertyContext.java 2010-03-14 11:58:48 UTC (rev 11518) +++ sandbox/cdomui/code/src/java/pcgen/system/PropertyContext.java 2010-03-15 00:33:11 UTC (rev 11519) @@ -45,12 +45,12 @@ protected final PropertyChangeSupport support; protected final String name; - public PropertyContext(String name) + protected PropertyContext(String name) { this(name, null); } - public PropertyContext(String name, PropertyContext parent) + protected PropertyContext(String name, PropertyContext parent) { this.name = name; this.support = new PropertyChangeSupport(this); @@ -65,6 +65,11 @@ } } + public String getName() + { + return name; + } + public PropertyContext createSubContext(String name) { return new PropertyContext(name, this); Copied: sandbox/cdomui/code/src/java/pcgen/system/PropertyContextManager.java (from rev 11518, sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContextManager.java) =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PropertyContextManager.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/PropertyContextManager.java 2010-03-15 00:33:11 UTC (rev 11519) @@ -0,0 +1,206 @@ +/* + * PropertyContextManager.java + * Copyright 2009 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Sep 4, 2009, 8:22:09 PM + */ +package pcgen.system; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; +import org.apache.commons.lang.SystemUtils; +import pcgen.util.Logging; +import pcgen.util.PropertyFactory; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public final class PropertyContextManager +{ + + public static final String USER_FILEPATH = "user"; + public static final String PCGEN_FILEPATH = "pcgen"; + public static final String MAC_USER_FILEPATH = "mac_user"; + public static final String FILE_PATH = "pcgen.filepaths"; + private static final Map<String, PropertyContext> contextMap = new HashMap<String, PropertyContext>(); + private static String pathType = null; + + private PropertyContextManager() + { + } + + public static void loadAllSystemPropertyContexts() + { + File settingsDir = new File(getSettingsDirectoryFromFilePath(pathType)); + File[] files = settingsDir.listFiles(); + if (files == null) + { + return; + } + for (File file : files) + { + String name = file.getName(); + PropertyContext context = contextMap.get(name); + if (context == null) + { + context = new PropertyContext(name); + contextMap.put(name, context); + } + FileInputStream in = null; + try + { + in = new FileInputStream(file); + context.properties.load(in); + } + catch (IOException ex) + { + Logging.errorPrint("Error occured while reading properties", ex); + } + finally + { + try + { + if (in != null) + { + in.close(); + } + } + catch (IOException ex) + { + //Not much to do about it... + Logging.errorPrint("Failed to close input stream for file: " + + context.getName(), ex); //$NON-NLS-1$ + } + } + } + } + + public static void registerPropertyContext(PropertyContext context) + { + contextMap.put(context.getName(), context); + } + + public static PropertyContext getPropertyContext(String fileName) + { + PropertyContext context = contextMap.get(fileName); + if(context == null) + { + context = new PropertyContext(fileName); + contextMap.put(fileName, context); + } + return context; + } + + public static boolean loadFilePath() + { + File propsFile = new File(SystemUtils.USER_DIR, "filepaths.ini"); + if (!propsFile.exists()) + { + Logging.debugPrint( + PropertyFactory.getString("SettingsHandler.will.create.filepaths.ini")); + return false; + } + else if (!propsFile.canWrite()) + { + Logging.errorPrint("WARNING: The filepaths file you specified is not updatable. " + + "Filepath changes will not be saved. File is " + propsFile.getAbsolutePath()); + } + FileInputStream in = null; + boolean loaded = false; + try + { + in = new FileInputStream(propsFile); + Properties filePathProperties = new Properties(); + filePathProperties.load(in); + + pathType = filePathProperties.getProperty(FILE_PATH); + if (pathType != null) + { + loaded = true; + } + } + catch (IOException e) + { + Logging.errorPrint( + "Failed to load filepaths.ini, either the file is unreadable or it " + + "is corrupt. Possible solution is to delete the filepaths.ini file and restart PCGen"); //$NON-NLS-1$ + } + finally + { + try + { + if (in != null) + { + in.close(); + } + } + catch (IOException ex) + { + //Not much to do about it... + Logging.errorPrint(PropertyFactory.getString( + "SettingsHandler.can.not.close.filepaths.ini"), ex); //$NON-NLS-1$ + } + } + return loaded; + } + + public static void setFilePath(String path) + { + pathType = path; + } + + public static String getSettingsDirectoryFromFilePath(String fType) + { + String filePath; + if ((fType == null) || (fType.length() < 1)) + { + // make sure we have a default + if (SystemUtils.IS_OS_MAC_OSX) + { + fType = MAC_USER_FILEPATH; //$NON-NLS-1$ + } + else + { + fType = USER_FILEPATH; //$NON-NLS-1$ + } + } + + if (fType.equals(PCGEN_FILEPATH)) //$NON-NLS-1$ + { + filePath = SystemUtils.USER_DIR; + } + else if (fType.equals(USER_FILEPATH)) //$NON-NLS-1$ + { + filePath = SystemUtils.USER_HOME + File.separator + ".pcgen"; //$NON-NLS-1$ + } + else if (fType.equals(MAC_USER_FILEPATH)) //$NON-NLS-1$ + { + filePath = SystemUtils.USER_HOME + "/Library/Preferences/pcgen"; + } + else + { + filePath = fType; + } + return filePath; + } + +} Deleted: sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContext.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContext.java 2010-03-14 11:58:48 UTC (rev 11518) +++ sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContext.java 2010-03-15 00:33:11 UTC (rev 11519) @@ -1,54 +0,0 @@ -/* - * SystemPropertyContext.java - * Copyright 2009 Connor Petty <cpm...@us...> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Created on Sep 5, 2009, 7:30:42 PM - */ -package pcgen.system; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -/** - * - * @author Connor Petty <cpm...@us...> - */ -public class SystemPropertyContext extends PropertyContext -{ - - public SystemPropertyContext(String name) - { - super(name); - } - - public void loadProperties(InputStream inStream) throws IOException - { - properties.load(inStream); - } - - public void storePropterties(OutputStream outStream) throws IOException - { - properties.store(outStream, name); - } - - public String getFileName() - { - return name; - } - -} Deleted: sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContextManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContextManager.java 2010-03-14 11:58:48 UTC (rev 11518) +++ sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyContextManager.java 2010-03-15 00:33:11 UTC (rev 11519) @@ -1,200 +0,0 @@ -/* - * SystemPropertyContextManager.java - * Copyright 2009 Connor Petty <cpm...@us...> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Created on Sep 4, 2009, 8:22:09 PM - */ -package pcgen.system; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; -import org.apache.commons.lang.SystemUtils; -import pcgen.util.Logging; -import pcgen.util.PropertyFactory; - -/** - * - * @author Connor Petty <cpm...@us...> - */ -public final class SystemPropertyContextManager -{ - - public static final String USER_FILEPATH = "user"; - public static final String PCGEN_FILEPATH = "pcgen"; - public static final String MAC_USER_FILEPATH = "mac_user"; - public static final String FILE_PATH = "pcgen.filepaths"; - private static final Map<String, SystemPropertyContext> contextMap = new HashMap<String, SystemPropertyContext>(); - private static String pathType = null; - - private SystemPropertyContextManager() - { - } - - public static void loadAllSystemPropertyContexts() - { - File settingsDir = new File(getSettingsDirectoryFromFilePath(pathType)); - File[] files = settingsDir.listFiles(); - if (files == null) - { - return; - } - for (File file : files) - { - String name = file.getName(); - SystemPropertyContext context = contextMap.get(name); - if (context == null) - { - context = new SystemPropertyContext(name); - contextMap.put(name, context); - } - FileInputStream in = null; - try - { - in = new FileInputStream(file); - context.loadProperties(in); - } - catch (IOException ex) - { - Logging.errorPrint("Error occured while reading properties", ex); - } - finally - { - try - { - if (in != null) - { - in.close(); - } - } - catch (IOException ex) - { - //Not much to do about it... - Logging.errorPrint("Failed to close input stream for file: " + - context.getFileName(), ex); //$NON-NLS-1$ - } - } - } - } - - public static void registerSystemPropertyContext(SystemPropertyContext context) - { - contextMap.put(context.getFileName(), context); - } - - public static SystemPropertyContext getSystemPropertyContext(String fileName) - { - return contextMap.get(fileName); - } - - public static boolean loadFilePath() - { - File propsFile = new File(SystemUtils.USER_DIR, "filepaths.ini"); - if (!propsFile.exists()) - { - Logging.debugPrint( - PropertyFactory.getString("SettingsHandler.will.create.filepaths.ini")); - return false; - } - else if (!propsFile.canWrite()) - { - Logging.errorPrint("WARNING: The filepaths file you specified is not updatable. " + - "Filepath changes will not be saved. File is " + propsFile.getAbsolutePath()); - } - FileInputStream in = null; - boolean loaded = false; - try - { - in = new FileInputStream(propsFile); - Properties filePathProperties = new Properties(); - filePathProperties.load(in); - - pathType = filePathProperties.getProperty(FILE_PATH); - if (pathType != null) - { - loaded = true; - } - } - catch (IOException e) - { - Logging.errorPrint( - "Failed to load filepaths.ini, either the file is unreadable or it " + - "is corrupt. Possible solution is to delete the filepaths.ini file and restart PCGen"); //$NON-NLS-1$ - } - finally - { - try - { - if (in != null) - { - in.close(); - } - } - catch (IOException ex) - { - //Not much to do about it... - Logging.errorPrint(PropertyFactory.getString( - "SettingsHandler.can.not.close.filepaths.ini"), ex); //$NON-NLS-1$ - } - } - return loaded; - } - - public static void setFilePath(String path) - { - pathType = path; - } - - public static String getSettingsDirectoryFromFilePath(String fType) - { - String filePath; - if ((fType == null) || (fType.length() < 1)) - { - // make sure we have a default - if (SystemUtils.IS_OS_MAC_OSX) - { - fType = MAC_USER_FILEPATH; //$NON-NLS-1$ - } - else - { - fType = USER_FILEPATH; //$NON-NLS-1$ - } - } - - if (fType.equals(PCGEN_FILEPATH)) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_DIR; - } - else if (fType.equals(USER_FILEPATH)) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_HOME + File.separator + ".pcgen"; //$NON-NLS-1$ - } - else if (fType.equals(MAC_USER_FILEPATH)) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_HOME + "/Library/Preferences/pcgen"; - } - else - { - filePath = fType; - } - return filePath; - } - -} Added: sandbox/cdomui/code/src/java/pcgen/system/UIResourceContext.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/UIResourceContext.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/UIResourceContext.java 2010-03-15 00:33:11 UTC (rev 11519) @@ -0,0 +1,37 @@ +/* + * UIResourceContext.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Mar 14, 2010, 5:14:12 PM + */ + +package pcgen.system; + +import pcgen.util.Logging; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class UIResourceContext{ + + public Object setProperty(String key, String value) + { + Logging.errorPrint("Attempted to set a property of a LanguageBundleContext"); + return null; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-15 03:24:55
|
Revision: 11520 http://pcgen.svn.sourceforge.net/pcgen/?rev=11520&view=rev Author: cpmeister Date: 2010-03-15 03:24:48 +0000 (Mon, 15 Mar 2010) Log Message: ----------- Startup System update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java sandbox/cdomui/code/src/java/pcgen/system/Main.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java Removed Paths: ------------- sandbox/cdomui/code/src/java/pcgen/system/PropertyContextManager.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-15 00:33:11 UTC (rev 11519) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-15 03:24:48 UTC (rev 11520) @@ -38,7 +38,7 @@ import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.GenericListModel; import pcgen.system.PropertyContext; -import pcgen.system.PropertyContextManager; +import pcgen.system.SystemPropertyManager; import pcgen.util.Logging; /** @@ -58,7 +58,7 @@ public static PropertyContext getUIPropertyContext() { - return PropertyContextManager.getPropertyContext("UIConfig.ini"); + return SystemPropertyManager.getPropertyContext("UIConfig.ini"); } public static PCGenFrame createPCGenFrame() Modified: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2010-03-15 00:33:11 UTC (rev 11519) +++ sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2010-03-15 03:24:48 UTC (rev 11520) @@ -36,7 +36,7 @@ import javax.swing.JTextField; import org.apache.commons.lang.SystemUtils; import pcgen.gui2.util.SimpleTextIcon; -import pcgen.system.PropertyContextManager; +import pcgen.system.SystemPropertyManager; /** * @@ -99,7 +99,7 @@ "select", group, handler, gridBagConstraints); - dirField.setText(PropertyContextManager.getSettingsDirectoryFromFilePath(selectedDir)); + dirField.setText(SystemPropertyManager.getSettingsDirectoryFromFilePath(selectedDir)); dirField.setEditable(false); gridBagConstraints.gridwidth = GridBagConstraints.RELATIVE; @@ -178,7 +178,7 @@ { dirButton.setEnabled(false); selectedDir = command; - dirField.setText(PropertyContextManager.getSettingsDirectoryFromFilePath(selectedDir)); + dirField.setText(SystemPropertyManager.getSettingsDirectoryFromFilePath(selectedDir)); } } Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-15 00:33:11 UTC (rev 11519) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-15 03:24:48 UTC (rev 11520) @@ -20,6 +20,7 @@ */ package pcgen.system; +import java.util.Locale; import java.util.logging.Level; import java.util.logging.Logger; import pcgen.cdom.base.Constants; @@ -53,30 +54,67 @@ String inFileName = System.getProperty("pcgen.inputfile"); String outFileName = System.getProperty("pcgen.outputfile"); //TODO: Do some console handling - + loadConfig(); loadProperties(); loadPlugins(); initGameModes(); } - private static void loadProperties() + private static void loadConfig() { - //If the filePath was specified in the command line, set it so the - //PropertyContextManager doesn't have to load it - String filePath = System.getProperty(PropertyContextManager.FILE_PATH); + + SystemPropertyManager.loadConfig(); + setLocale(); + setFilePath(); + } + + private static void setLocale() + { + Locale locale = Locale.getDefault(); + String language = SystemPropertyManager.getSystemProperty("language"); + String country = SystemPropertyManager.getSystemProperty("country"); + if (language == null) + { + language = locale.getLanguage(); + SystemPropertyManager.setSystemProperty("language", language); + } + if (country == null) + { + country = locale.getCountry(); + SystemPropertyManager.setSystemProperty("country", country); + } + locale = new Locale(language, country); + // We reset the default so that + // a) The dialog buttons match the selected language. + // b) English (if selected) isn't overriden by the system default + Locale.setDefault(locale); + } + + private static void setFilePath() + { + //If the filePath was specified in the command line, set it to + //override the default in SystemPropertyManager + String filePath = System.getProperty(SystemPropertyManager.FILE_PATH_PROPERTY); if (filePath != null) { - PropertyContextManager.setFilePath(filePath); + SystemPropertyManager.setSystemProperty(SystemPropertyManager.FILE_PATH_PROPERTY, + filePath); } - else if (!PropertyContextManager.loadFilePath()) + if (SystemPropertyManager.getSystemProperty(SystemPropertyManager.FILE_PATH_PROPERTY) == null) { OptionsPathDialog dialog = new OptionsPathDialog(); dialog.setVisible(true); filePath = dialog.getSelectedDirectory(); - PropertyContextManager.setFilePath(filePath); + SystemPropertyManager.setSystemProperty(SystemPropertyManager.FILE_PATH_PROPERTY, + filePath); } + } + + private static void loadProperties() + { + //TODO: register existing SystemPropertyContexts - PropertyContextManager.loadAllSystemPropertyContexts(); + SystemPropertyManager.loadPropertyContexts(); } private static void loadPlugins() @@ -107,13 +145,12 @@ catch (PersistenceLayerException e) { ShowMessageDelegate.showMessageDialog(e.getMessage(), Constants.s_APPNAME, - MessageType.INFORMATION); + MessageType.INFORMATION); } - PropertyContext properties = PropertyContextManager.getPropertyContext("options.ini"); + PropertyContext properties = SystemPropertyManager.getPropertyContext("options.ini"); String game = properties.getProperty("game", Constants.e35_MODE); SettingsHandler.setGame(game); SettingsHandler.getGame().clearLoadContext(); Globals.createEmptyRace(); } - } Deleted: sandbox/cdomui/code/src/java/pcgen/system/PropertyContextManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PropertyContextManager.java 2010-03-15 00:33:11 UTC (rev 11519) +++ sandbox/cdomui/code/src/java/pcgen/system/PropertyContextManager.java 2010-03-15 03:24:48 UTC (rev 11520) @@ -1,206 +0,0 @@ -/* - * PropertyContextManager.java - * Copyright 2009 Connor Petty <cpm...@us...> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Created on Sep 4, 2009, 8:22:09 PM - */ -package pcgen.system; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; -import org.apache.commons.lang.SystemUtils; -import pcgen.util.Logging; -import pcgen.util.PropertyFactory; - -/** - * - * @author Connor Petty <cpm...@us...> - */ -public final class PropertyContextManager -{ - - public static final String USER_FILEPATH = "user"; - public static final String PCGEN_FILEPATH = "pcgen"; - public static final String MAC_USER_FILEPATH = "mac_user"; - public static final String FILE_PATH = "pcgen.filepaths"; - private static final Map<String, PropertyContext> contextMap = new HashMap<String, PropertyContext>(); - private static String pathType = null; - - private PropertyContextManager() - { - } - - public static void loadAllSystemPropertyContexts() - { - File settingsDir = new File(getSettingsDirectoryFromFilePath(pathType)); - File[] files = settingsDir.listFiles(); - if (files == null) - { - return; - } - for (File file : files) - { - String name = file.getName(); - PropertyContext context = contextMap.get(name); - if (context == null) - { - context = new PropertyContext(name); - contextMap.put(name, context); - } - FileInputStream in = null; - try - { - in = new FileInputStream(file); - context.properties.load(in); - } - catch (IOException ex) - { - Logging.errorPrint("Error occured while reading properties", ex); - } - finally - { - try - { - if (in != null) - { - in.close(); - } - } - catch (IOException ex) - { - //Not much to do about it... - Logging.errorPrint("Failed to close input stream for file: " + - context.getName(), ex); //$NON-NLS-1$ - } - } - } - } - - public static void registerPropertyContext(PropertyContext context) - { - contextMap.put(context.getName(), context); - } - - public static PropertyContext getPropertyContext(String fileName) - { - PropertyContext context = contextMap.get(fileName); - if(context == null) - { - context = new PropertyContext(fileName); - contextMap.put(fileName, context); - } - return context; - } - - public static boolean loadFilePath() - { - File propsFile = new File(SystemUtils.USER_DIR, "filepaths.ini"); - if (!propsFile.exists()) - { - Logging.debugPrint( - PropertyFactory.getString("SettingsHandler.will.create.filepaths.ini")); - return false; - } - else if (!propsFile.canWrite()) - { - Logging.errorPrint("WARNING: The filepaths file you specified is not updatable. " + - "Filepath changes will not be saved. File is " + propsFile.getAbsolutePath()); - } - FileInputStream in = null; - boolean loaded = false; - try - { - in = new FileInputStream(propsFile); - Properties filePathProperties = new Properties(); - filePathProperties.load(in); - - pathType = filePathProperties.getProperty(FILE_PATH); - if (pathType != null) - { - loaded = true; - } - } - catch (IOException e) - { - Logging.errorPrint( - "Failed to load filepaths.ini, either the file is unreadable or it " + - "is corrupt. Possible solution is to delete the filepaths.ini file and restart PCGen"); //$NON-NLS-1$ - } - finally - { - try - { - if (in != null) - { - in.close(); - } - } - catch (IOException ex) - { - //Not much to do about it... - Logging.errorPrint(PropertyFactory.getString( - "SettingsHandler.can.not.close.filepaths.ini"), ex); //$NON-NLS-1$ - } - } - return loaded; - } - - public static void setFilePath(String path) - { - pathType = path; - } - - public static String getSettingsDirectoryFromFilePath(String fType) - { - String filePath; - if ((fType == null) || (fType.length() < 1)) - { - // make sure we have a default - if (SystemUtils.IS_OS_MAC_OSX) - { - fType = MAC_USER_FILEPATH; //$NON-NLS-1$ - } - else - { - fType = USER_FILEPATH; //$NON-NLS-1$ - } - } - - if (fType.equals(PCGEN_FILEPATH)) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_DIR; - } - else if (fType.equals(USER_FILEPATH)) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_HOME + File.separator + ".pcgen"; //$NON-NLS-1$ - } - else if (fType.equals(MAC_USER_FILEPATH)) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_HOME + "/Library/Preferences/pcgen"; - } - else - { - filePath = fType; - } - return filePath; - } - -} Copied: sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java (from rev 11519, sandbox/cdomui/code/src/java/pcgen/system/PropertyContextManager.java) =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java 2010-03-15 03:24:48 UTC (rev 11520) @@ -0,0 +1,203 @@ +/* + * SystemPropertyManager.java + * Copyright 2009 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Sep 4, 2009, 8:22:09 PM + */ +package pcgen.system; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import org.apache.commons.lang.SystemUtils; +import pcgen.util.Logging; +import pcgen.util.PropertyFactory; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public final class SystemPropertyManager extends PropertyContext +{ + + public static final String USER_FILEPATH = "user"; + public static final String PCGEN_FILEPATH = "pcgen"; + public static final String MAC_USER_FILEPATH = "mac_user"; + public static final String FILE_PATH_PROPERTY = "pcgen.filepaths"; + private static final Map<String, PropertyContext> contextMap = new HashMap<String, PropertyContext>(); + private static SystemPropertyManager instance = null; + + private SystemPropertyManager() + { + super("config.ini"); + registerPropertyContext(this); + } + + public static SystemPropertyManager getSingleton() + { + if (instance == null) + { + instance = new SystemPropertyManager(); + } + return instance; + } + + public static String getSystemProperty(String key) + { + return getSingleton().getProperty(key); + } + + public static Object setSystemProperty(String key, String value) + { + return getSingleton().setProperty(key, value); + } + + public static boolean loadConfig() + { + File configFile = new File(SystemUtils.USER_DIR, "config.ini"); + if (!configFile.exists()) + { + Logging.debugPrint( + PropertyFactory.getString("SettingsHandler.will.create.filepaths.ini")); + return false; + } + else if (!configFile.canWrite()) + { + Logging.errorPrint("WARNING: The filepaths file you specified is not updatable. " + + "Filepath changes will not be saved. File is " + configFile.getAbsolutePath()); + } + if (loadPropertyContext(configFile)) + { + return true; + } + else + { + Logging.errorPrint( + "Failed to load config.ini, either the file is unreadable or it " + + "is corrupt. Possible solution is to delete the config.ini file and restart PCGen"); + return false; + } + } + + private static boolean loadPropertyContext(File file) + { + String name = file.getName(); + PropertyContext context = contextMap.get(name); + if (context == null) + { + context = new PropertyContext(name); + contextMap.put(name, context); + } + FileInputStream in = null; + boolean loaded = false; + try + { + in = new FileInputStream(file); + context.properties.load(in); + loaded = true; + } + catch (IOException ex) + { + Logging.errorPrint("Error occured while reading properties", ex); + } + finally + { + try + { + if (in != null) + { + in.close(); + } + } + catch (IOException ex) + { + //Not much to do about it... + Logging.errorPrint("Failed to close input stream for file: " + + context.getName(), ex); //$NON-NLS-1$ + } + } + return loaded; + } + + public static void loadPropertyContexts() + { + File settingsDir = new File(getSettingsDirectoryFromFilePath(getSystemProperty( + FILE_PATH_PROPERTY))); + File[] files = settingsDir.listFiles(); + if (files == null) + { + return; + } + for (File file : files) + { + loadPropertyContext(file); + } + } + + public static void registerPropertyContext(PropertyContext context) + { + contextMap.put(context.getName(), context); + } + + public static PropertyContext getPropertyContext(String fileName) + { + PropertyContext context = contextMap.get(fileName); + if (context == null) + { + context = new PropertyContext(fileName); + contextMap.put(fileName, context); + } + return context; + } + + public static String getSettingsDirectoryFromFilePath(String fType) + { + String filePath; + if ((fType == null) || (fType.length() < 1)) + { + // make sure we have a default + if (SystemUtils.IS_OS_MAC_OSX) + { + fType = MAC_USER_FILEPATH; //$NON-NLS-1$ + } + else + { + fType = USER_FILEPATH; //$NON-NLS-1$ + } + } + + if (fType.equals(PCGEN_FILEPATH)) //$NON-NLS-1$ + { + filePath = SystemUtils.USER_DIR; + } + else if (fType.equals(USER_FILEPATH)) //$NON-NLS-1$ + { + filePath = SystemUtils.USER_HOME + File.separator + ".pcgen"; //$NON-NLS-1$ + } + else if (fType.equals(MAC_USER_FILEPATH)) //$NON-NLS-1$ + { + filePath = SystemUtils.USER_HOME + "/Library/Preferences/pcgen"; + } + else + { + filePath = fType; + } + return filePath; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-18 19:58:02
|
Revision: 11525 http://pcgen.svn.sourceforge.net/pcgen/?rev=11525&view=rev Author: cpmeister Date: 2010-03-18 19:57:54 +0000 (Thu, 18 Mar 2010) Log Message: ----------- Startup System update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-15 20:24:29 UTC (rev 11524) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-18 19:57:54 UTC (rev 11525) @@ -29,10 +29,12 @@ import javax.swing.JFrame; +import javax.swing.UIManager; import pcgen.core.facade.CharacterFacade; import pcgen.core.facade.ClassFacade; import pcgen.core.facade.GameModeFacade; import pcgen.core.facade.SourceFacade; +import pcgen.gui.utils.SkinManager; import pcgen.gui2.filter.DisplayableFilter; import pcgen.gui2.mock.CharacterMock; import pcgen.gui2.util.DefaultGenericListModel; @@ -40,6 +42,7 @@ import pcgen.system.PropertyContext; import pcgen.system.SystemPropertyManager; import pcgen.util.Logging; +import pcgen.util.SkinLFResourceChecker; /** * @@ -61,6 +64,23 @@ return SystemPropertyManager.getPropertyContext("UIConfig.ini"); } + public static void installLookAndFeels() + { + // Add the Kunststoff L&F before asking the UIManager. + UIManager.installLookAndFeel("Kunststoff", "com.incors.plaf.kunststoff.KunststoffLookAndFeel"); + + try + { + if (SkinLFResourceChecker.getMissingResourceCount() == 0) + { + SkinManager.loadLinuxSkin(); + } + } + catch (Exception e) + { + //TODO: Really ignore? + } + } public static PCGenFrame createPCGenFrame() { PropertyContext uiconfig = getUIPropertyContext(); @@ -105,6 +125,7 @@ frame.setVisible(true); } + //public static void public static boolean isQualified(CharacterFacade character, ClassFacade c) { return false; Modified: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2010-03-15 20:24:29 UTC (rev 11524) +++ sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2010-03-18 19:57:54 UTC (rev 11525) @@ -31,12 +31,11 @@ import javax.swing.JFileChooser; import javax.swing.JLabel; import javax.swing.JRadioButton; -import javax.swing.JRootPane; import javax.swing.JSeparator; import javax.swing.JTextField; import org.apache.commons.lang.SystemUtils; -import pcgen.gui2.util.SimpleTextIcon; import pcgen.system.SystemPropertyManager; +import pcgen.system.SystemPropertyManager.SettingsFilesPath; /** * @@ -53,7 +52,7 @@ { this.dirField = new JTextField(); this.dirButton = new JButton(); - this.selectedDir = "pcgen"; + this.selectedDir = SettingsFilesPath.pcgen.name(); initComponents(); } @@ -87,19 +86,19 @@ gridBagConstraints.insets = new Insets(0, 4, 0, 4); addRadioButton( "<html><b>PCGen Dir</b>: This is the directory that PCGen is installed into (default)", - "pcgen", group, handler, gridBagConstraints); + SettingsFilesPath.pcgen.name(), group, handler, gridBagConstraints); if (SystemUtils.IS_OS_MAC_OSX) { addRadioButton("<html><b>Mac User Dir</b>", - "mac_user", group, handler, gridBagConstraints); + SettingsFilesPath.mac_user.name(), group, handler, gridBagConstraints); } addRadioButton("<html><b>Home Dir</b>: This is your home directory", - "user", group, handler, gridBagConstraints); + SettingsFilesPath.user.name(), group, handler, gridBagConstraints); addRadioButton("Select a directory to use", - "select", group, handler, gridBagConstraints); + "select", group, handler, gridBagConstraints); - dirField.setText(SystemPropertyManager.getSettingsDirectoryFromFilePath(selectedDir)); + dirField.setText(SystemPropertyManager.getSettingsDirFromFilePath(selectedDir)); dirField.setEditable(false); gridBagConstraints.gridwidth = GridBagConstraints.RELATIVE; @@ -136,7 +135,7 @@ } private void addRadioButton(String text, String command, ButtonGroup group, - ActionListener listener, GridBagConstraints gbc) + ActionListener listener, GridBagConstraints gbc) { JRadioButton rButton = new JRadioButton(text); rButton.setActionCommand(command); @@ -178,9 +177,8 @@ { dirButton.setEnabled(false); selectedDir = command; - dirField.setText(SystemPropertyManager.getSettingsDirectoryFromFilePath(selectedDir)); + dirField.setText(SystemPropertyManager.getSettingsDirFromFilePath(selectedDir)); } } - } } Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-15 20:24:29 UTC (rev 11524) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-18 19:57:54 UTC (rev 11525) @@ -30,6 +30,7 @@ import pcgen.core.prereq.PrerequisiteTestFactory; import pcgen.core.utils.MessageType; import pcgen.core.utils.ShowMessageDelegate; +import pcgen.gui2.PCGenUIManager; import pcgen.gui2.SplashScreen; import pcgen.gui2.dialog.OptionsPathDialog; import pcgen.persistence.PersistenceLayerException; @@ -54,17 +55,24 @@ String inFileName = System.getProperty("pcgen.inputfile"); String outFileName = System.getProperty("pcgen.outputfile"); //TODO: Do some console handling - loadProperties(); - loadPlugins(); - initGameModes(); + SystemPropertyManager.loadConfig(); + configureUI(); + //loadProperties(); + //loadPlugins(); + //initGameModes(); } - private static void loadProperties() + private static void configureUI() { - SystemPropertyManager.loadConfig(); setLocale(); UIResourceContext.loadResourceBundle(); + //makes the UIResourceContext available to outside classes SystemPropertyManager.registerPropertyContext(new UIResourceContext()); + PCGenUIManager.installLookAndFeels(); + } + + private static void loadProperties() + { setFilePath(); //TODO: register existing SystemPropertyContexts SystemPropertyManager.loadPropertyContexts(); @@ -96,18 +104,18 @@ { //If the filePath was specified in the command line, set it to //override the default in SystemPropertyManager - String filePath = System.getProperty(SystemPropertyManager.FILE_PATH_PROPERTY); + String filePath = System.getProperty(SystemPropertyManager.SETTINGS_FILES_PATH); if (filePath != null) { - SystemPropertyManager.setSystemProperty(SystemPropertyManager.FILE_PATH_PROPERTY, + SystemPropertyManager.setSystemProperty(SystemPropertyManager.SETTINGS_FILES_PATH, filePath); } - if (SystemPropertyManager.getSystemProperty(SystemPropertyManager.FILE_PATH_PROPERTY) == null) + if (SystemPropertyManager.getSystemProperty(SystemPropertyManager.SETTINGS_FILES_PATH) == null) { OptionsPathDialog dialog = new OptionsPathDialog(); dialog.setVisible(true); filePath = dialog.getSelectedDirectory(); - SystemPropertyManager.setSystemProperty(SystemPropertyManager.FILE_PATH_PROPERTY, + SystemPropertyManager.setSystemProperty(SystemPropertyManager.SETTINGS_FILES_PATH, filePath); } } Modified: sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java 2010-03-15 20:24:29 UTC (rev 11524) +++ sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java 2010-03-18 19:57:54 UTC (rev 11525) @@ -35,10 +35,7 @@ public final class SystemPropertyManager extends PropertyContext { - public static final String USER_FILEPATH = "user"; - public static final String PCGEN_FILEPATH = "pcgen"; - public static final String MAC_USER_FILEPATH = "mac_user"; - public static final String FILE_PATH_PROPERTY = "pcgen.filepaths"; + public static final String SETTINGS_FILES_PATH = "pcgen.filepaths"; private static final Map<String, PropertyContext> contextMap = new HashMap<String, PropertyContext>(); private static SystemPropertyManager instance = null; @@ -72,7 +69,7 @@ File configFile = new File(SystemUtils.USER_DIR, "config.ini"); if (!configFile.exists()) { - Logging.debugPrint("No filepaths.ini file found, will create one when exiting."); + Logging.debugPrint("No config.ini file found, will create one when exiting."); return false; } else if (!configFile.canWrite()) @@ -110,7 +107,7 @@ context.properties.load(in); loaded = true; } - catch (IOException ex) + catch (Exception ex) { Logging.errorPrint("Error occured while reading properties", ex); } @@ -135,8 +132,8 @@ public static void loadPropertyContexts() { - File settingsDir = new File(getSettingsDirectoryFromFilePath(getSystemProperty( - FILE_PATH_PROPERTY))); + File settingsDir = new File(getSettingsDirFromFilePath( + getSystemProperty(SETTINGS_FILES_PATH))); File[] files = settingsDir.listFiles(); if (files == null) { @@ -164,38 +161,54 @@ return context; } - public static String getSettingsDirectoryFromFilePath(String fType) + public static enum SettingsFilesPath { - String filePath; + + user, + pcgen, + mac_user; + + public String getSettingsDir() + { + switch (this) + { + case user: + return SystemUtils.USER_HOME + File.separator + ".pcgen"; + case pcgen: + return SystemUtils.USER_DIR; + case mac_user: + return SystemUtils.USER_HOME + "/Library/Preferences/pcgen"; + default: + throw new InternalError(); + } + } + } + + public static String getSettingsDirFromFilePath(String fType) + { if ((fType == null) || (fType.length() < 1)) { // make sure we have a default if (SystemUtils.IS_OS_MAC_OSX) { - fType = MAC_USER_FILEPATH; //$NON-NLS-1$ + fType = SettingsFilesPath.mac_user.name(); } else { - fType = USER_FILEPATH; //$NON-NLS-1$ + fType = SettingsFilesPath.user.name(); } } - - if (fType.equals(PCGEN_FILEPATH)) //$NON-NLS-1$ + String path; + try { - filePath = SystemUtils.USER_DIR; + //Check to see if this path is one of the standard path types + path = SettingsFilesPath.valueOf(fType).getSettingsDir(); } - else if (fType.equals(USER_FILEPATH)) //$NON-NLS-1$ + catch (IllegalArgumentException ex) { - filePath = SystemUtils.USER_HOME + File.separator + ".pcgen"; //$NON-NLS-1$ + //It must be a custom filepath + path = fType; } - else if (fType.equals(MAC_USER_FILEPATH)) //$NON-NLS-1$ - { - filePath = SystemUtils.USER_HOME + "/Library/Preferences/pcgen"; - } - else - { - filePath = fType; - } - return filePath; + return path; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-22 01:24:51
|
Revision: 11528 http://pcgen.svn.sourceforge.net/pcgen/?rev=11528&view=rev Author: cpmeister Date: 2010-03-22 01:24:43 +0000 (Mon, 22 Mar 2010) Log Message: ----------- error fixes and added LookAndFeelManager Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/SettingsHandler.java sandbox/cdomui/code/src/java/pcgen/gui/utils/SkinManager.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/ sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/FakeWindowsLookAndFeel.java sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/LookAndFeelManager.java sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/SkinManager.java Modified: sandbox/cdomui/code/src/java/pcgen/core/SettingsHandler.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/SettingsHandler.java 2010-03-21 21:41:23 UTC (rev 11527) +++ sandbox/cdomui/code/src/java/pcgen/core/SettingsHandler.java 2010-03-22 01:24:43 UTC (rev 11528) @@ -170,7 +170,7 @@ */ private static File pcgenSystemDir = new File(Globals.getDefaultPath() + File.separator + "system"); //$NON-NLS-1$ private static File pcgenThemePackDir = new File(Globals.getDefaultPath() + File.separator + "lib" + File.separator //$NON-NLS-1$ - + "themes"); //$NON-NLS-1$ + + "lnf" + File.separator + "themes"); //$NON-NLS-1$ private static File pcgenOutputSheetDir = new File(Globals.getDefaultPath() + File.separator + "outputsheets"); //$NON-NLS-1$ private static File gmgenPluginDir = new File(Globals.getDefaultPath() + File.separator + "plugins"); //$NON-NLS-1$ private static int prereqQualifyColor = 0x000000; // 0 = black, 0xFF0000 = red, 0xFFFFFF = white @@ -1257,7 +1257,7 @@ setPcgenSystemDir(new File(expandRelativePath(getOptions().getProperty("pcgen.files.pcgenSystemDir", //$NON-NLS-1$ System.getProperty("user.dir") + File.separator + "system")))); //$NON-NLS-1$ //$NON-NLS-2$ setPcgenThemePackDir(new File(expandRelativePath(getOptions().getProperty("pcgen.files.pcgenThemePackDir", //$NON-NLS-1$ - System.getProperty("user.dir") + File.separator + "lib" + File.separator + "themes")))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + System.getProperty("user.dir") + File.separator + "lib" + File.separator +"lnf"+File.separator+ "themes")))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ setPcgenOutputSheetDir(new File(expandRelativePath(getOptions().getProperty("pcgen.files.pcgenOutputSheetDir", //$NON-NLS-1$ System.getProperty("user.dir") + File.separator + "outputsheets")))); //$NON-NLS-1$ //$NON-NLS-2$ setPcgenPreviewDir(new File(expandRelativePath(getOptions().getProperty("pcgen.files.pcgenPreviewDir", //$NON-NLS-1$ Modified: sandbox/cdomui/code/src/java/pcgen/gui/utils/SkinManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui/utils/SkinManager.java 2010-03-21 21:41:23 UTC (rev 11527) +++ sandbox/cdomui/code/src/java/pcgen/gui/utils/SkinManager.java 2010-03-22 01:24:43 UTC (rev 11528) @@ -21,6 +21,7 @@ * Created on January 3, 2002 */ import com.l2fprod.gui.plaf.skin.SkinLookAndFeel; +import java.io.File; import pcgen.core.Globals; import pcgen.core.SettingsHandler; @@ -65,8 +66,8 @@ try { SkinLookAndFeel.loadThemePack(SettingsHandler - .getPcgenThemePackDir().getAbsolutePath() - + "themepack.zip"); + .getPcgenThemePackDir() + + File.separator+"themepack.zip"); UIManager.installLookAndFeel("Linux", "com.l2fprod.gui.plaf.skin.LinuxLookAndFeel"); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-21 21:41:23 UTC (rev 11527) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-22 01:24:43 UTC (rev 11528) @@ -64,22 +64,9 @@ return SystemPropertyManager.getPropertyContext("UIConfig.ini"); } - public static void installLookAndFeels() + public static void refreshUITree() { - // Add the Kunststoff L&F before asking the UIManager. - UIManager.installLookAndFeel("Kunststoff", "com.incors.plaf.kunststoff.KunststoffLookAndFeel"); - - try - { - if (SkinLFResourceChecker.getMissingResourceCount() == 0) - { - SkinManager.loadLinuxSkin(); - } - } - catch (Exception e) - { - //TODO: Really ignore? - } + //TODO } public static PCGenFrame createPCGenFrame() { Added: sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/FakeWindowsLookAndFeel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/FakeWindowsLookAndFeel.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/FakeWindowsLookAndFeel.java 2010-03-22 01:24:43 UTC (rev 11528) @@ -0,0 +1,121 @@ +/* + * FakeWindowsLookAndFeel.java + * Copyright 2002,2003 (C) B. K. Oxley (binkley) + * <bi...@al...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * Created on February 13th, 2002. + */ +package pcgen.gui2.lookandfeel; + +import com.sun.java.swing.plaf.windows.WindowsLookAndFeel; + +import javax.swing.LookAndFeel; +import javax.swing.UIDefaults; +import java.util.Enumeration; +import java.util.ResourceBundle; + +/** + * Support Windows95 L&F on non-Windows platforms. This is + * ridiculously simple. + * + * @author <a href="mailto:bi...@al...">B. K. Oxley (binkley)</a> + * @version $Revision: 1256 $ + */ +public class FakeWindowsLookAndFeel extends WindowsLookAndFeel +{ + /** + * Support Windows95 L&F on non-Windows platforms. Simple + * return <code>true</code>. + * + * @return boolean <code>true</code> always + */ + public boolean isSupportedLookAndFeel() + { + return true; + } + + public void initialize() + { + // This hack convinces JDK 1.4 to use the Win2K UI + // instead of the Win95 one. Should be configurable! + // XXX --bko + String osVersion = System.getProperty("os.version"); + System.setProperty("os.version", "5.0"); + super.initialize(); + System.setProperty("os.version", osVersion); + } + + protected void initComponentDefaults(UIDefaults table) + { + super.initComponentDefaults(table); + loadResourceBundle(table); + + Class<?> wlafClass = WindowsLookAndFeel.class; + Object[] defaults = + { + + // These are all the icons defined in the + // WindowsLookAndFeel. We redefine them here + // because of the way they are defined in that + // class: in terms of the return value of + // getClass(). I.e., getClass() just returns + // the handle to the invoking class, which now + // is FakeWindowsLookAndFeel. That means that + // the icons are searched for in the + // FakeWindows look and feel package, which is + // not where they really are. Since we've + // just called the superclass method, the + // icons have been installed incorrectly in + // the table. Reinstall them using the + // correct class. + "Tree.openIcon", makeIcon(wlafClass, "icons/TreeOpen.gif"), "Tree.closedIcon", + makeIcon(wlafClass, "icons/TreeClosed.gif"), "Tree.leafIcon", + LookAndFeel.makeIcon(wlafClass, "icons/TreeLeaf.gif"), + + "FileChooser.newFolderIcon", LookAndFeel.makeIcon(wlafClass, "icons/NewFolder.gif"), + "FileChooser.upFolderIcon", LookAndFeel.makeIcon(wlafClass, "icons/UpFolder.gif"), + "FileChooser.homeFolderIcon", LookAndFeel.makeIcon(wlafClass, "icons/HomeFolder.gif"), + "FileChooser.detailsViewIcon", LookAndFeel.makeIcon(wlafClass, "icons/DetailsView.gif"), + "FileChooser.listViewIcon", LookAndFeel.makeIcon(wlafClass, "icons/ListView.gif"), + + "FileView.directoryIcon", LookAndFeel.makeIcon(wlafClass, "icons/Directory.gif"), "FileView.fileIcon", + LookAndFeel.makeIcon(wlafClass, "icons/File.gif"), "FileView.computerIcon", + LookAndFeel.makeIcon(wlafClass, "icons/Computer.gif"), "FileView.hardDriveIcon", + LookAndFeel.makeIcon(wlafClass, "icons/HardDrive.gif"), "FileView.floppyDriveIcon", + LookAndFeel.makeIcon(wlafClass, "icons/FloppyDrive.gif"), + + "OptionPane.errorIcon", makeIcon(wlafClass, "icons/Error.gif"), "OptionPane.informationIcon", + makeIcon(wlafClass, "icons/Inform.gif"), "OptionPane.warningIcon", makeIcon(wlafClass, "icons/Warn.gif"), + "OptionPane.questionIcon", makeIcon(wlafClass, "icons/Question.gif"), + }; + + table.putDefaults(defaults); + } + + private void loadResourceBundle(UIDefaults table) + { + ResourceBundle bundle = ResourceBundle.getBundle("com.sun.java.swing.plaf.windows.resources.windows"); + Enumeration<String> e = bundle.getKeys(); + + while (e.hasMoreElements()) + { + String key = e.nextElement(); + table.put(key, bundle.getObject(key)); + } + } +} Added: sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/LookAndFeelManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/LookAndFeelManager.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/LookAndFeelManager.java 2010-03-22 01:24:43 UTC (rev 11528) @@ -0,0 +1,300 @@ +/* + * UIFactory.java + * Copyright 2001 (C) Bryan McRoberts <mer...@ya...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on xxxx xx, xxxx, xx:xx PM + */ +package pcgen.gui2.lookandfeel; + +import java.awt.event.ActionEvent; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.io.File; +import java.util.Arrays; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; +import javax.swing.AbstractAction; +import javax.swing.LookAndFeel; +import javax.swing.UIManager; +import javax.swing.UIManager.LookAndFeelInfo; +import javax.swing.plaf.metal.DefaultMetalTheme; +import javax.swing.plaf.metal.MetalLookAndFeel; +import org.apache.commons.lang.SystemUtils; +import pcgen.gui2.PCGenUIManager; +import pcgen.system.SystemPropertyManager; +import pcgen.util.Logging; +import pcgen.util.SkinLFResourceChecker; + +/** + * <code>UIFactory</code>. + * + * @author Thomas Behr + * @version $Revision: 6515 $ + */ +public final class LookAndFeelManager implements PropertyChangeListener +{ + + public static final boolean HAS_SKIN_LAF = SkinLFResourceChecker.getMissingResourceCount() == 0; + private static final String SYSTEM_LAF_CLASS = UIManager.getSystemLookAndFeelClassName(); + private static final String CROSS_LAF_CLASS = UIManager.getCrossPlatformLookAndFeelClassName(); + private static final LookAndFeelHandler[] lafHandlers; + private static final Map<String, LookAndFeelHandler> lafMap = new HashMap<String, LookAndFeelHandler>(); + private static final LookAndFeelManager instance = new LookAndFeelManager(); + + + static + { + try + { + // Add the Kunststoff L&F before asking the UIManager. + Class.forName("com.incors.plaf.kunststoff.KunststoffLookAndFeel"); + UIManager.installLookAndFeel("Kunststoff", "com.incors.plaf.kunststoff.KunststoffLookAndFeel"); + } + catch (ClassNotFoundException ex) + { + //not much we can do can do about this + } + Comparator<LookAndFeelInfo> lafcomp = new Comparator<LookAndFeelInfo>() + { + + public int compare(LookAndFeelInfo o1, LookAndFeelInfo o2) + { + //System laf goes first + if (o1.getClassName().equals(SYSTEM_LAF_CLASS)) + { + return -1; + } + if (o2.getClassName().equals(SYSTEM_LAF_CLASS)) + { + return 1; + } + //Cross Platfrom laf goes second + if (o1.getClassName().equals(CROSS_LAF_CLASS)) + { + return -1; + } + if (o2.getClassName().equals(CROSS_LAF_CLASS)) + { + return 1; + } + //the rest don't matter + return 0; + } + + }; + LookAndFeelInfo[] lafInfo = UIManager.getInstalledLookAndFeels(); + //Sort them so that they are in a UI friendly order + Arrays.sort(lafInfo, lafcomp); + if (!SystemUtils.IS_OS_WINDOWS) + { + // Replace the broken Windows L&F which will + // only run on M$ platforms with one that will + // run everywhere. No difference otherwise. + for (int i = 0; i < lafInfo.length; ++i) + { + if (lafInfo[i].getClassName().endsWith("WindowsLookAndFeel")) + { + lafInfo[i] = new UIManager.LookAndFeelInfo(lafInfo[i].getName(), FakeWindowsLookAndFeel.class.getName()); + break; + } + } + + } + int length = lafInfo.length; + if (HAS_SKIN_LAF) + { + length++; + } + lafHandlers = new LookAndFeelHandler[length]; + for (int i = 0; i < lafInfo.length; i++) + { + LookAndFeelInfo info = lafInfo[i]; + String name; + String tooltip; + if (info.getClassName().equals(SYSTEM_LAF_CLASS)) + { + name = "System";//TODO: internationalize this + tooltip = "Sets the look to that of the System you are using"; + } + else if (info.getClassName().equals(CROSS_LAF_CLASS)) + { + name = "Java";//TODO: internationalize this + tooltip = "Sets the look to that of Java's cross platform look"; + } + else + { + name = info.getName();//TODO: internationalize this + tooltip = "Sets the look to " + name + " look"; + } + LookAndFeelHandler handler = new LookAndFeelHandler(name, info.getClassName(), tooltip); + lafHandlers[i] = handler; + lafMap.put(name, handler); + } + if (HAS_SKIN_LAF) + { + String name = "Skinned"; + String tooltip = "Sets the look to skinned"; + LookAndFeelHandler skinhandler = new LookAndFeelHandler(name, null, tooltip); + //the Skin LAF always goes last + lafHandlers[lafInfo.length] = skinhandler; + lafMap.put(name, skinhandler); + } + UIManager.setInstalledLookAndFeels(lafInfo); + } + + private static String currentLAF = null; + private String oldThemePack = null; + + private LookAndFeelManager() + { + SystemPropertyManager.getSingleton().addPropertyChangeListener("selectedThemePack", this); + } + + public void propertyChange(PropertyChangeEvent evt) + { + //all we care about is the old value so we can fall back to it if needed + oldThemePack = (String) evt.getOldValue(); + } + +// +// public static LookAndFeelManager getSingleton() +// { +// if (instance == null) +// { +// instance = new LookAndFeelManager(); +// } +// return instance; +// } + public static void initLookAndFeel() + { + //set Java as the fallback look and feel + currentLAF = "Java"; + String laf = SystemPropertyManager.getSystemProperty("lookAndFeel"); + if (laf == null) + { + laf = currentLAF; + } + setLookAndFeel(laf); + } + + public static void setLookAndFeel(String name) + { + LookAndFeelHandler handler = lafMap.get(name); + if (handler == null) + { + Logging.errorPrint("Look and Feel " + name + " cannot be found"); + return; + } + String className = handler.getClassName(); + try + { + if (className != null) + { + UIManager.setLookAndFeel(className); + // Fix colors; themes which inherit from + // MetalTheme change the colors because it's a + // static member of MetalTheme (!), so when you + // change back & forth, colors get wonked. + final LookAndFeel laf = UIManager.getLookAndFeel(); + + if (laf instanceof MetalLookAndFeel) + { + MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme()); + } + } + else if (HAS_SKIN_LAF) + { + // this must be a skin LAF + String themePack = SystemPropertyManager.getSystemProperty("selectedThemePack"); + String path = SystemPropertyManager.getDirectory(SystemPropertyManager.THEME_PACK_DIR); + path += File.separator + themePack; + LookAndFeel laf = SkinManager.createSkinLAF(path); + UIManager.setLookAndFeel(laf); + } + else + { + Logging.errorPrint("Skin LAF library is missing! Setting to default LAF"); + + return; + } + currentLAF = name; + } + catch (Exception e) + { + //roll back any property changes that happened up to this point + String oldTheme = instance.oldThemePack; + if ("Skinned".equals(name)) + { + //make this the current theme + SystemPropertyManager.setSystemProperty("selectedThemePack", oldTheme); + } + //setting the look and feel failed so fall back to the old LAF + if ("Skinned".equals(currentLAF)) + { + try + { + + String path = SystemPropertyManager.getDirectory(SystemPropertyManager.THEME_PACK_DIR); + path += File.separator + oldTheme; + + LookAndFeel laf = SkinManager.createSkinLAF(path); + UIManager.setLookAndFeel(laf); + + } + catch (Exception ex) + { + // better reset to default then + setLookAndFeel("Java"); + return; + } + } + else + { + setLookAndFeel(currentLAF); + return; + } + } + PCGenUIManager.refreshUITree(); + } + + public static class LookAndFeelHandler extends AbstractAction + { + + private String className; + + public LookAndFeelHandler(String name, String className, String tooltip) + { + super(name); + this.className = className; + putValue(SHORT_DESCRIPTION, tooltip); + } + + public String getClassName() + { + return className; + } + + public void actionPerformed(ActionEvent e) + { + //This is the default operation + String name = (String) getValue(NAME); + setLookAndFeel(name); + } + + } +} Added: sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/SkinManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/SkinManager.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/SkinManager.java 2010-03-22 01:24:43 UTC (rev 11528) @@ -0,0 +1,47 @@ +package pcgen.gui2.lookandfeel; + +/* + * SkinManager.java + * Copyright 2001 (C) Jason Buchanan + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on January 3, 2002 + */ +import com.l2fprod.gui.plaf.skin.SkinLookAndFeel; +import javax.swing.LookAndFeel; + +/** + * <code>SkinManager</code> ??? + * + * @author Jason Buchanan + * @version $Revision: 1817 $ + */ +public final class SkinManager +{ + + /** + * Apply a skin to PCGen GUI + * + * @param themePath a string describing the path to a theme file + * @return a LookAndFeel instance + */ + public static LookAndFeel createSkinLAF(String themePath) throws Exception + { + SkinLookAndFeel.setSkin(SkinLookAndFeel.loadThemePack(themePath)); + return new SkinLookAndFeel(); + } + +} Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-21 21:41:23 UTC (rev 11527) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-22 01:24:43 UTC (rev 11528) @@ -23,6 +23,7 @@ import java.util.Locale; import java.util.logging.Level; import java.util.logging.Logger; +import org.apache.commons.lang.SystemUtils; import pcgen.cdom.base.Constants; import pcgen.core.Globals; import pcgen.core.SettingsHandler; @@ -30,9 +31,9 @@ import pcgen.core.prereq.PrerequisiteTestFactory; import pcgen.core.utils.MessageType; import pcgen.core.utils.ShowMessageDelegate; -import pcgen.gui2.PCGenUIManager; import pcgen.gui2.SplashScreen; import pcgen.gui2.dialog.OptionsPathDialog; +import pcgen.gui2.lookandfeel.LookAndFeelManager; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.PersistenceManager; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterFactory; @@ -55,11 +56,15 @@ String inFileName = System.getProperty("pcgen.inputfile"); String outFileName = System.getProperty("pcgen.outputfile"); //TODO: Do some console handling - SystemPropertyManager.loadConfig(); + if (!SystemPropertyManager.loadConfig()) + { + SystemPropertyManager.initDefaults(); + } + // configure the UI before any type of user prompting may takes place configureUI(); - //loadProperties(); - //loadPlugins(); - //initGameModes(); + //loadProperties(); + //loadPlugins(); + //initGameModes(); } private static void configureUI() @@ -68,39 +73,37 @@ UIResourceContext.loadResourceBundle(); //makes the UIResourceContext available to outside classes SystemPropertyManager.registerPropertyContext(new UIResourceContext()); - PCGenUIManager.installLookAndFeels(); + LookAndFeelManager.initLookAndFeel(); } private static void loadProperties() { - setFilePath(); + setSettingsPath(); //TODO: register existing SystemPropertyContexts SystemPropertyManager.loadPropertyContexts(); } private static void setLocale() { - Locale locale = Locale.getDefault(); String language = SystemPropertyManager.getSystemProperty("language"); String country = SystemPropertyManager.getSystemProperty("country"); if (language == null) { - language = locale.getLanguage(); + language = SystemUtils.USER_LANGUAGE; SystemPropertyManager.setSystemProperty("language", language); } if (country == null) { - country = locale.getCountry(); + country = SystemUtils.USER_COUNTRY; SystemPropertyManager.setSystemProperty("country", country); } - locale = new Locale(language, country); // We reset the default so that // a) The dialog buttons match the selected language. // b) English (if selected) isn't overriden by the system default - Locale.setDefault(locale); + Locale.setDefault(new Locale(language, country)); } - private static void setFilePath() + private static void setSettingsPath() { //If the filePath was specified in the command line, set it to //override the default in SystemPropertyManager @@ -108,7 +111,7 @@ if (filePath != null) { SystemPropertyManager.setSystemProperty(SystemPropertyManager.SETTINGS_FILES_PATH, - filePath); + filePath); } if (SystemPropertyManager.getSystemProperty(SystemPropertyManager.SETTINGS_FILES_PATH) == null) { @@ -116,7 +119,7 @@ dialog.setVisible(true); filePath = dialog.getSelectedDirectory(); SystemPropertyManager.setSystemProperty(SystemPropertyManager.SETTINGS_FILES_PATH, - filePath); + filePath); } } @@ -148,7 +151,7 @@ catch (PersistenceLayerException e) { ShowMessageDelegate.showMessageDialog(e.getMessage(), Constants.s_APPNAME, - MessageType.INFORMATION); + MessageType.INFORMATION); } PropertyContext properties = SystemPropertyManager.getPropertyContext("options.ini"); String game = properties.getProperty("game", Constants.e35_MODE); @@ -156,4 +159,5 @@ SettingsHandler.getGame().clearLoadContext(); Globals.createEmptyRace(); } + } Modified: sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java 2010-03-21 21:41:23 UTC (rev 11527) +++ sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java 2010-03-22 01:24:43 UTC (rev 11528) @@ -38,6 +38,12 @@ public static final String SETTINGS_FILES_PATH = "settingsPath"; public static final String SYSTEMS_DIR = "systemsPath"; public static final String THEME_PACK_DIR = "themesPath"; + public static final String OUTPUT_SHEETS_DIR = "osPath"; + public static final String PLUGINS_DIR = "pluginsPath"; + public static final String PREVIEW_DIR = "previewPath"; + public static final String VENDOR_DATA_DIR = "vendordataPath"; + public static final String DOCS_DIR = "docsPath"; + public static final String PCC_FILES_DIR = "pccFilesPath"; private static final Map<String, PropertyContext> contextMap = new HashMap<String, PropertyContext>(); private static SystemPropertyManager instance = null; @@ -66,7 +72,7 @@ return getSingleton().setProperty(key, value); } - public static boolean loadConfig() + static boolean loadConfig() { File configFile = new File(SystemUtils.USER_DIR, "config.ini"); if (!configFile.exists()) @@ -77,7 +83,7 @@ else if (!configFile.canWrite()) { Logging.errorPrint("WARNING: The filepaths file you specified is not updatable. " + - "Filepath changes will not be saved. File is " + configFile.getAbsolutePath()); + "Filepath changes will not be saved. File is " + configFile.getAbsolutePath()); } if (loadPropertyContext(configFile)) { @@ -86,22 +92,33 @@ else { Logging.errorPrint( - "Failed to load config.ini, either the file is unreadable or it " + - "is corrupt. Possible solution is to delete the config.ini file and restart PCGen"); + "Failed to load config.ini, either the file is unreadable or it " + + "is corrupt. Possible solution is to delete the config.ini file and restart PCGen"); return false; } } - public static void initDefaults() + static void initDefaults() { - setSystemProperty(THEME_PACK_DIR, "@" + File.separator + "lib" + File.separator + "themes"); + setSystemProperty(THEME_PACK_DIR, "@lib/lnf/themes".replace('/', File.separatorChar)); + setSystemProperty(SYSTEMS_DIR, "@system"); + setSystemProperty(OUTPUT_SHEETS_DIR, "@outputsheets"); + setSystemProperty(PLUGINS_DIR, "@plugins"); + setSystemProperty(PREVIEW_DIR, "@preview"); + setSystemProperty(VENDOR_DATA_DIR, "@vendordata"); + setSystemProperty(PCC_FILES_DIR, "@data"); } + public static String getDirectory(String key) + { + return expandRelativePath(getSystemProperty(key)); + } + private static String expandRelativePath(String path) { if (path.startsWith("@")) { - path = System.getProperty("user.dir") + File.separator + path.substring(1); + path = SystemUtils.USER_DIR + File.separator + path.substring(1); } return path; @@ -141,16 +158,16 @@ { //Not much to do about it... Logging.errorPrint("Failed to close input stream for file: " + - context.getName(), ex); //$NON-NLS-1$ + context.getName(), ex); //$NON-NLS-1$ } } return loaded; } - public static void loadPropertyContexts() + static void loadPropertyContexts() { File settingsDir = new File(getSettingsDirFromFilePath( - getSystemProperty(SETTINGS_FILES_PATH))); + getSystemProperty(SETTINGS_FILES_PATH))); File[] files = settingsDir.listFiles(); if (files == null) { @@ -162,7 +179,7 @@ } } - public static void registerPropertyContext(PropertyContext context) + static void registerPropertyContext(PropertyContext context) { contextMap.put(context.getName(), context); } @@ -199,6 +216,7 @@ throw new InternalError(); } } + } public static String getSettingsDirFromFilePath(String fType) @@ -228,4 +246,5 @@ } return path; } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-23 07:14:24
|
Revision: 11530 http://pcgen.svn.sourceforge.net/pcgen/?rev=11530&view=rev Author: cpmeister Date: 2010-03-23 07:14:17 +0000 (Tue, 23 Mar 2010) Log Message: ----------- UI Startup System update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java sandbox/cdomui/code/src/java/pcgen/gui2/plaf/FakeWindowsLookAndFeel.java sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java sandbox/cdomui/code/src/java/pcgen/gui2/plaf/SkinManager.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/PropertyContext.java sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/plaf/ sandbox/cdomui/code/src/java/pcgen/gui2/plaf/MacGUIHandler.java Removed Paths: ------------- sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/ Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-23 04:29:50 UTC (rev 11529) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-23 07:14:17 UTC (rev 11530) @@ -52,7 +52,7 @@ { private static final Map<HouseRule, Boolean> rulesMap = new EnumMap<HouseRule, Boolean>( - HouseRule.class); + HouseRule.class); private static File pcgenPreviewDir; private PCGenUIManager() @@ -68,6 +68,7 @@ { //TODO } + public static PCGenFrame createPCGenFrame() { PropertyContext uiconfig = getUIPropertyContext(); @@ -104,22 +105,38 @@ PCGenFrame frame = createPCGenFrame(); CharacterMock mock = new CharacterMock(); mock.addCharacterLevels(new ClassFacade[] - { - mock.getDataSet().getClass("Fighter") - }); + { + mock.getDataSet().getClass("Fighter") + }); mock.setTabName("Demo 1"); frame.addCharacter(mock); frame.setVisible(true); } + public static void startGUI2() + { + } + + public static void displayPreferencesDialog() + { + } + public static void displayAboutDialog() + { + + } + public static void closePCGen() + { + + } //public static void + public static boolean isQualified(CharacterFacade character, ClassFacade c) { return false; } public static <T> GenericListModel<DisplayableFilter<? super T>> getDisplayedFilters( - Class<T> c) + Class<T> c) { return new DefaultGenericListModel<DisplayableFilter<? super T>>(); } @@ -135,7 +152,7 @@ } public static GenericListModel<SourceFacade> getSources( - GameModeFacade gameMode) + GameModeFacade gameMode) { return null; } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/plaf/FakeWindowsLookAndFeel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/FakeWindowsLookAndFeel.java 2010-03-22 01:24:43 UTC (rev 11528) +++ sandbox/cdomui/code/src/java/pcgen/gui2/plaf/FakeWindowsLookAndFeel.java 2010-03-23 07:14:17 UTC (rev 11530) @@ -20,7 +20,7 @@ * * Created on February 13th, 2002. */ -package pcgen.gui2.lookandfeel; +package pcgen.gui2.plaf; import com.sun.java.swing.plaf.windows.WindowsLookAndFeel; Modified: sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/LookAndFeelManager.java 2010-03-22 01:24:43 UTC (rev 11528) +++ sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java 2010-03-23 07:14:17 UTC (rev 11530) @@ -18,7 +18,7 @@ * * Created on xxxx xx, xxxx, xx:xx PM */ -package pcgen.gui2.lookandfeel; +package pcgen.gui2.plaf; import java.awt.event.ActionEvent; import java.beans.PropertyChangeEvent; @@ -56,7 +56,6 @@ private static final Map<String, LookAndFeelHandler> lafMap = new HashMap<String, LookAndFeelHandler>(); private static final LookAndFeelManager instance = new LookAndFeelManager(); - static { try @@ -232,6 +231,7 @@ return; } + SystemPropertyManager.setSystemProperty("lookAndFeel", name); currentLAF = name; } catch (Exception e) Added: sandbox/cdomui/code/src/java/pcgen/gui2/plaf/MacGUIHandler.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/plaf/MacGUIHandler.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/plaf/MacGUIHandler.java 2010-03-23 07:14:17 UTC (rev 11530) @@ -0,0 +1,88 @@ +/* + * MacGUI.java + * Copyright 2006 (C) Tod Milam <tw...@ya...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on January 18, 2006 + */ +package pcgen.gui2.plaf; + +import com.apple.eawt.*; +import pcgen.gui2.PCGenUIManager; + +/** + * <code>MacGUI</code> initializes Mac-specific GUI elements. + * + * @author Tod Milam <tw...@ya...> + * @version $Revision: 1828 $ + */ +public class MacGUIHandler extends ApplicationAdapter +{ + + private static MacGUIHandler myObj = null; + private static com.apple.eawt.Application theApp = null; + + private MacGUIHandler() + { + } + + /** + * Initialize the Mac-specific properties. + * Create an ApplicationAdapter to listen for Help, Prefs, and Quit. + */ + public static void initialize() + { + if (myObj != null) + { + // we have already initialized. + return; + } + + // set up the Application menu + myObj = new MacGUIHandler(); + theApp = new com.apple.eawt.Application(); + theApp.addApplicationListener(myObj); + theApp.setEnabledPreferencesMenu(true); + } // end static initialize method + + /** + * Called when user select "About" from the application menu. + */ + public void handleAbout(ApplicationEvent ae) + { + PCGenUIManager.displayAboutDialog(); + ae.setHandled(true); + } // end handleAbout + + /** + * Called when user select "Preferences" from the application menu. + */ + public void handlePreferences(ApplicationEvent ae) + { + PCGenUIManager.displayPreferencesDialog(); + ae.setHandled(true); + } // end handlePreferences + + /** + * Called when user select "Quit" from the application menu. + */ + public void handleQuit(ApplicationEvent ae) + { + ae.setHandled(false); + PCGenUIManager.closePCGen(); + } // end handleQuit +} // end class MacGUI + Modified: sandbox/cdomui/code/src/java/pcgen/gui2/plaf/SkinManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/lookandfeel/SkinManager.java 2010-03-22 01:24:43 UTC (rev 11528) +++ sandbox/cdomui/code/src/java/pcgen/gui2/plaf/SkinManager.java 2010-03-23 07:14:17 UTC (rev 11530) @@ -1,4 +1,4 @@ -package pcgen.gui2.lookandfeel; +package pcgen.gui2.plaf; /* * SkinManager.java Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-23 04:29:50 UTC (rev 11529) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-23 07:14:17 UTC (rev 11530) @@ -20,6 +20,7 @@ */ package pcgen.system; +import java.io.File; import java.util.Locale; import java.util.logging.Level; import java.util.logging.Logger; @@ -31,9 +32,10 @@ import pcgen.core.prereq.PrerequisiteTestFactory; import pcgen.core.utils.MessageType; import pcgen.core.utils.ShowMessageDelegate; +import pcgen.gui2.PCGenUIManager; import pcgen.gui2.SplashScreen; import pcgen.gui2.dialog.OptionsPathDialog; -import pcgen.gui2.lookandfeel.LookAndFeelManager; +import pcgen.gui2.plaf.LookAndFeelManager; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.PersistenceManager; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterFactory; @@ -62,9 +64,10 @@ } // configure the UI before any type of user prompting may takes place configureUI(); - //loadProperties(); - //loadPlugins(); - //initGameModes(); + loadProperties(); + loadPlugins(); + initGameModes(); + PCGenUIManager.startGUI2(); } private static void configureUI() @@ -125,7 +128,8 @@ private static void loadPlugins() { - PluginClassLoader loader = new PluginClassLoader(SettingsHandler.getGmgenPluginDir()); + String pluginsDir = SystemPropertyManager.getDirectory(SystemPropertyManager.PLUGINS_DIR); + PluginClassLoader loader = new PluginClassLoader(new File(pluginsDir)); loader.addPluginLoader(TokenLibrary.getInstance()); loader.addPluginLoader(Bonus.getInstance()); try @@ -154,7 +158,7 @@ MessageType.INFORMATION); } PropertyContext properties = SystemPropertyManager.getPropertyContext("options.ini"); - String game = properties.getProperty("game", Constants.e35_MODE); + String game = properties.initProperty("game", Constants.e35_MODE); SettingsHandler.setGame(game); SettingsHandler.getGame().clearLoadContext(); Globals.createEmptyRace(); Modified: sandbox/cdomui/code/src/java/pcgen/system/PropertyContext.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PropertyContext.java 2010-03-23 04:29:50 UTC (rev 11529) +++ sandbox/cdomui/code/src/java/pcgen/system/PropertyContext.java 2010-03-23 07:14:17 UTC (rev 11530) @@ -114,6 +114,17 @@ return properties.getProperty(key); } + public String initProperty(String key, String defaultValue) + { + String value = getProperty(key); + if (value != null) + { + return value; + } + setProperty(key, defaultValue); + return defaultValue; + } + /** * Searches for the property with the specified key in this property context. * If the key is not found in this property context, the parent property context, @@ -152,4 +163,5 @@ { support.firePropertyChange(evt); } + } Modified: sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java 2010-03-23 04:29:50 UTC (rev 11529) +++ sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java 2010-03-23 07:14:17 UTC (rev 11530) @@ -62,6 +62,11 @@ return instance; } + public static String initSystemProperty(String key, String defaultValue) + { + return getSingleton().initProperty(key, defaultValue); + } + public static String getSystemProperty(String key) { return getSingleton().getProperty(key); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-23 23:51:19
|
Revision: 11531 http://pcgen.svn.sourceforge.net/pcgen/?rev=11531&view=rev Author: cpmeister Date: 2010-03-23 23:51:11 +0000 (Tue, 23 Mar 2010) Log Message: ----------- minor changes Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/UIResourceContext.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java Removed Paths: ------------- sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java 2010-03-23 07:14:17 UTC (rev 11530) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java 2010-03-23 23:51:11 UTC (rev 11531) @@ -41,808 +41,780 @@ public class PCGenActionMap extends ActionMap { - public static final String FILE_COMMAND = "file"; - public static final String NEW_COMMAND = FILE_COMMAND + ".new"; - public static final String OPEN_COMMAND = FILE_COMMAND + ".open"; - public static final String OPEN_RECENT_COMMAND = FILE_COMMAND + - ".openrecent"; - public static final String CLOSE_COMMAND = FILE_COMMAND + ".close"; - public static final String CLOSEALL_COMMAND = FILE_COMMAND + ".closeall"; - public static final String SAVE_COMMAND = FILE_COMMAND + ".save"; - public static final String SAVEAS_COMMAND = FILE_COMMAND + ".saveas"; - public static final String SAVEALL_COMMAND = FILE_COMMAND + ".saveall"; - public static final String REVERT_COMMAND = FILE_COMMAND + - ".reverttosaved"; - public static final String PARTY_COMMAND = FILE_COMMAND + ".party"; - public static final String OPEN_PARTY_COMMAND = PARTY_COMMAND + ".open"; - public static final String OPEN_RECENT_PARTY_COMMAND = PARTY_COMMAND + - ".openrecent"; - public static final String CLOSE_PARTY_COMMAND = PARTY_COMMAND + ".close"; - public static final String SAVE_PARTY_COMMAND = PARTY_COMMAND + ".save"; - public static final String SAVEAS_PARTY_COMMAND = - PARTY_COMMAND + ".saveas"; - public static final String PRINT_PREVIEW_COMMAND = FILE_COMMAND + - ".printpreview"; - public static final String PRINT_COMMAND = FILE_COMMAND + ".print"; - public static final String EXPORT_COMMAND = FILE_COMMAND + ".export"; - public static final String EXPORT_STANDARD_COMMAND = - EXPORT_COMMAND + ".standard"; - public static final String EXPORT_PDF_COMMAND = EXPORT_COMMAND + ".pdf"; - public static final String EXPORT_TEXT_COMMAND = EXPORT_COMMAND + ".text"; - public static final String EXIT_COMMAND = FILE_COMMAND + ".exit"; - public static final String VIEW_COMMAND = "view"; - public static final String FILTERS_COMMAND = VIEW_COMMAND + ".filters"; - public static final String KIT_FILTERS_COMMAND = FILTERS_COMMAND + - ".kit"; - public static final String RACE_FILTERS_COMMAND = FILTERS_COMMAND + - ".race"; - public static final String TEMPLATE_FILTERS_COMMAND = FILTERS_COMMAND + - ".template"; - public static final String CLASS_FILTERS_COMMAND = FILTERS_COMMAND + - ".class"; - public static final String ABILITY_FILTERS_COMMAND = FILTERS_COMMAND + - ".ability"; - public static final String SKILL_FILTERS_COMMAND = FILTERS_COMMAND + - ".skill"; - public static final String EQUIPMENT_FILTERS_COMMAND = FILTERS_COMMAND + - ".equipment"; - public static final String SPELL_FILTERS_COMMAND = FILTERS_COMMAND + - ".spell"; - public static final String CSHEET_COMMAND = VIEW_COMMAND + ".csheet"; - public static final String TOOLS_COMMAND = "tools"; - public static final String SOURCES_COMMAND = TOOLS_COMMAND + ".sources"; - public static final String SOURCES_ADVANCED_COMMAND = SOURCES_COMMAND + - ".advanced"; - public static final String GENERATORS_COMMAND = TOOLS_COMMAND + - ".generators"; - public static final String TREASURE_GENERATORS_COMMAND = GENERATORS_COMMAND + - ".treasure"; - public static final String RACE_GENERATORS_COMMAND = GENERATORS_COMMAND + - ".race"; - public static final String TEMPLATE_GENERATORS_COMMAND = GENERATORS_COMMAND + - ".template"; - public static final String CLASS_GENERATORS_COMMAND = GENERATORS_COMMAND + - ".class"; - public static final String STAT_GENERATORS_COMMAND = GENERATORS_COMMAND + - ".stat"; - public static final String ABILITY_GENERATORS_COMMAND = GENERATORS_COMMAND + - ".ability"; - public static final String SKILL_GENERATORS_COMMAND = GENERATORS_COMMAND + - ".skill"; - public static final String EQUIPMENT_GENERATORS_COMMAND = GENERATORS_COMMAND + - ".equipment"; - public static final String SPELL_GENERATORS_COMMAND = GENERATORS_COMMAND + - ".spell"; - public static final String OPTIONS_COMMAND = TOOLS_COMMAND + ".options"; - public static final String HELP_COMMAND = "help"; - public static final String HELP_CONTEXT_COMMAND = HELP_COMMAND + - ".context"; - public static final String HELP_DOCS_COMMAND = HELP_COMMAND + ".docs"; - public static final String HELP_OGL_COMMAND = HELP_COMMAND + ".ogl"; - public static final String HELP_SPONSORS_COMMAND = HELP_COMMAND + - ".sponsors"; - public static final String HELP_TIPOFTHEDAY_COMMAND = HELP_COMMAND + - ".tod"; - public static final String HELP_ABOUT_COMMAND = HELP_COMMAND + ".about"; - private PCGenFrame frame; + public static final String FILE_COMMAND = "file"; + public static final String NEW_COMMAND = FILE_COMMAND + ".new"; + public static final String OPEN_COMMAND = FILE_COMMAND + ".open"; + public static final String OPEN_RECENT_COMMAND = FILE_COMMAND + ".openrecent"; + public static final String CLOSE_COMMAND = FILE_COMMAND + ".close"; + public static final String CLOSEALL_COMMAND = FILE_COMMAND + ".closeall"; + public static final String SAVE_COMMAND = FILE_COMMAND + ".save"; + public static final String SAVEAS_COMMAND = FILE_COMMAND + ".saveas"; + public static final String SAVEALL_COMMAND = FILE_COMMAND + ".saveall"; + public static final String REVERT_COMMAND = FILE_COMMAND + ".reverttosaved"; + public static final String PARTY_COMMAND = FILE_COMMAND + ".party"; + public static final String OPEN_PARTY_COMMAND = PARTY_COMMAND + ".open"; + public static final String OPEN_RECENT_PARTY_COMMAND = PARTY_COMMAND + ".openrecent"; + public static final String CLOSE_PARTY_COMMAND = PARTY_COMMAND + ".close"; + public static final String SAVE_PARTY_COMMAND = PARTY_COMMAND + ".save"; + public static final String SAVEAS_PARTY_COMMAND = PARTY_COMMAND + ".saveas"; + public static final String PRINT_PREVIEW_COMMAND = FILE_COMMAND + ".printpreview"; + public static final String PRINT_COMMAND = FILE_COMMAND + ".print"; + public static final String EXPORT_COMMAND = FILE_COMMAND + ".export"; + public static final String EXPORT_STANDARD_COMMAND = EXPORT_COMMAND + ".standard"; + public static final String EXPORT_PDF_COMMAND = EXPORT_COMMAND + ".pdf"; + public static final String EXPORT_TEXT_COMMAND = EXPORT_COMMAND + ".text"; + public static final String EXIT_COMMAND = FILE_COMMAND + ".exit"; + public static final String VIEW_COMMAND = "view"; + public static final String FILTERS_COMMAND = VIEW_COMMAND + ".filters"; + public static final String KIT_FILTERS_COMMAND = FILTERS_COMMAND + ".kit"; + public static final String RACE_FILTERS_COMMAND = FILTERS_COMMAND + ".race"; + public static final String TEMPLATE_FILTERS_COMMAND = FILTERS_COMMAND + ".template"; + public static final String CLASS_FILTERS_COMMAND = FILTERS_COMMAND + ".class"; + public static final String ABILITY_FILTERS_COMMAND = FILTERS_COMMAND + ".ability"; + public static final String SKILL_FILTERS_COMMAND = FILTERS_COMMAND + ".skill"; + public static final String EQUIPMENT_FILTERS_COMMAND = FILTERS_COMMAND + ".equipment"; + public static final String SPELL_FILTERS_COMMAND = FILTERS_COMMAND + ".spell"; + public static final String CSHEET_COMMAND = VIEW_COMMAND + ".csheet"; + public static final String TOOLS_COMMAND = "tools"; + public static final String SOURCES_COMMAND = TOOLS_COMMAND + ".sources"; + public static final String SOURCES_ADVANCED_COMMAND = SOURCES_COMMAND + ".advanced"; + public static final String GENERATORS_COMMAND = TOOLS_COMMAND + ".generators"; + public static final String TREASURE_GENERATORS_COMMAND = GENERATORS_COMMAND + ".treasure"; + public static final String RACE_GENERATORS_COMMAND = GENERATORS_COMMAND + ".race"; + public static final String TEMPLATE_GENERATORS_COMMAND = GENERATORS_COMMAND + ".template"; + public static final String CLASS_GENERATORS_COMMAND = GENERATORS_COMMAND + ".class"; + public static final String STAT_GENERATORS_COMMAND = GENERATORS_COMMAND + ".stat"; + public static final String ABILITY_GENERATORS_COMMAND = GENERATORS_COMMAND + ".ability"; + public static final String SKILL_GENERATORS_COMMAND = GENERATORS_COMMAND + ".skill"; + public static final String EQUIPMENT_GENERATORS_COMMAND = GENERATORS_COMMAND + ".equipment"; + public static final String SPELL_GENERATORS_COMMAND = GENERATORS_COMMAND + ".spell"; + public static final String OPTIONS_COMMAND = TOOLS_COMMAND + ".options"; + public static final String HELP_COMMAND = "help"; + public static final String HELP_CONTEXT_COMMAND = HELP_COMMAND + ".context"; + public static final String HELP_DOCS_COMMAND = HELP_COMMAND + ".docs"; + public static final String HELP_OGL_COMMAND = HELP_COMMAND + ".ogl"; + public static final String HELP_SPONSORS_COMMAND = HELP_COMMAND + ".sponsors"; + public static final String HELP_TIPOFTHEDAY_COMMAND = HELP_COMMAND + ".tod"; + public static final String HELP_ABOUT_COMMAND = HELP_COMMAND + ".about"; + private PCGenFrame frame; - public PCGenActionMap(PCGenFrame frame) - { - this.frame = frame; - initActions(); - } + public PCGenActionMap(PCGenFrame frame) + { + this.frame = frame; + initActions(); + } - private void initActions() - { - put(FILE_COMMAND, new FileAction()); - put(NEW_COMMAND, new NewAction()); - put(OPEN_COMMAND, new OpenAction()); - put(OPEN_RECENT_COMMAND, new OpenRecentAction()); - put(CLOSE_COMMAND, new CloseAction()); - put(CLOSEALL_COMMAND, new CloseAllAction()); - put(SAVE_COMMAND, new SaveAction()); - put(SAVEAS_COMMAND, new SaveAsAction()); - put(SAVEALL_COMMAND, new SaveAllAction()); - put(REVERT_COMMAND, new RevertAction()); + private void initActions() + { + put(FILE_COMMAND, new FileAction()); + put(NEW_COMMAND, new NewAction()); + put(OPEN_COMMAND, new OpenAction()); + put(OPEN_RECENT_COMMAND, new OpenRecentAction()); + put(CLOSE_COMMAND, new CloseAction()); + put(CLOSEALL_COMMAND, new CloseAllAction()); + put(SAVE_COMMAND, new SaveAction()); + put(SAVEAS_COMMAND, new SaveAsAction()); + put(SAVEALL_COMMAND, new SaveAllAction()); + put(REVERT_COMMAND, new RevertAction()); - put(PARTY_COMMAND, new PartyAction()); - put(OPEN_PARTY_COMMAND, new OpenPartyAction()); - put(OPEN_RECENT_PARTY_COMMAND, new OpenRecentAction()); - put(CLOSE_PARTY_COMMAND, new ClosePartyAction()); - put(SAVE_PARTY_COMMAND, new SavePartyAction()); - put(SAVEAS_PARTY_COMMAND, new SaveAsPartyAction()); + put(PARTY_COMMAND, new PartyAction()); + put(OPEN_PARTY_COMMAND, new OpenPartyAction()); + put(OPEN_RECENT_PARTY_COMMAND, new OpenRecentAction()); + put(CLOSE_PARTY_COMMAND, new ClosePartyAction()); + put(SAVE_PARTY_COMMAND, new SavePartyAction()); + put(SAVEAS_PARTY_COMMAND, new SaveAsPartyAction()); - put(PRINT_PREVIEW_COMMAND, new PrintPreviewAction()); - put(PRINT_COMMAND, new PrintAction()); - put(EXPORT_COMMAND, new ExportAction()); - put(EXPORT_STANDARD_COMMAND, new ExportStandardAction()); - put(EXPORT_PDF_COMMAND, new ExportPDFAction()); - put(EXPORT_TEXT_COMMAND, new ExportTextAction()); - put(EXIT_COMMAND, new ExitAction()); + put(PRINT_PREVIEW_COMMAND, new PrintPreviewAction()); + put(PRINT_COMMAND, new PrintAction()); + put(EXPORT_COMMAND, new ExportAction()); + put(EXPORT_STANDARD_COMMAND, new ExportStandardAction()); + put(EXPORT_PDF_COMMAND, new ExportPDFAction()); + put(EXPORT_TEXT_COMMAND, new ExportTextAction()); + put(EXIT_COMMAND, new ExitAction()); - put(VIEW_COMMAND, new ViewAction()); - put(FILTERS_COMMAND, new FiltersAction()); - put(KIT_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersKit", KIT_FILTERS_COMMAND, - KitFacade.class)); - put(RACE_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersRace", RACE_FILTERS_COMMAND, - RaceFacade.class)); - put(TEMPLATE_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersTemplate", - TEMPLATE_FILTERS_COMMAND, - TemplateFacade.class)); - put(CLASS_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersClass", - CLASS_FILTERS_COMMAND, - ClassFacade.class)); - put(ABILITY_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersAbility", - ABILITY_FILTERS_COMMAND, - AbilityFacade.class)); - put(SKILL_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersSkill", - SKILL_FILTERS_COMMAND, - SkillFacade.class)); - put(EQUIPMENT_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersEquipment", - EQUIPMENT_FILTERS_COMMAND, - ItemFacade.class)); - put(SPELL_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersSpell", - SPELL_GENERATORS_COMMAND, - SpellFacade.class)); - put(CSHEET_COMMAND, new CharacterSheetAction()); + put(VIEW_COMMAND, new ViewAction()); + put(FILTERS_COMMAND, new FiltersAction()); + put(KIT_FILTERS_COMMAND, + new DefaultFiltersAction("mnuViewFiltersKit", KIT_FILTERS_COMMAND, + KitFacade.class)); + put(RACE_FILTERS_COMMAND, + new DefaultFiltersAction("mnuViewFiltersRace", RACE_FILTERS_COMMAND, + RaceFacade.class)); + put(TEMPLATE_FILTERS_COMMAND, + new DefaultFiltersAction("mnuViewFiltersTemplate", + TEMPLATE_FILTERS_COMMAND, + TemplateFacade.class)); + put(CLASS_FILTERS_COMMAND, + new DefaultFiltersAction("mnuViewFiltersClass", + CLASS_FILTERS_COMMAND, + ClassFacade.class)); + put(ABILITY_FILTERS_COMMAND, + new DefaultFiltersAction("mnuViewFiltersAbility", + ABILITY_FILTERS_COMMAND, + AbilityFacade.class)); + put(SKILL_FILTERS_COMMAND, + new DefaultFiltersAction("mnuViewFiltersSkill", + SKILL_FILTERS_COMMAND, + SkillFacade.class)); + put(EQUIPMENT_FILTERS_COMMAND, + new DefaultFiltersAction("mnuViewFiltersEquipment", + EQUIPMENT_FILTERS_COMMAND, + ItemFacade.class)); + put(SPELL_FILTERS_COMMAND, + new DefaultFiltersAction("mnuViewFiltersSpell", + SPELL_GENERATORS_COMMAND, + SpellFacade.class)); + put(CSHEET_COMMAND, new CharacterSheetAction()); - put(TOOLS_COMMAND, new ToolsAction()); - put(SOURCES_COMMAND, new SourcesAction()); - put(SOURCES_ADVANCED_COMMAND, new AdvancedSourcesAction()); - put(GENERATORS_COMMAND, new GeneratorsAction()); - put(TREASURE_GENERATORS_COMMAND, new TreasureGeneratorsAction()); - put(STAT_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorStat", - STAT_GENERATORS_COMMAND, - StatFacade.class)); - put(RACE_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorRace", - RACE_GENERATORS_COMMAND, - RaceFacade.class)); - put(TEMPLATE_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorTemplate", - TEMPLATE_GENERATORS_COMMAND, - TemplateFacade.class)); - put(CLASS_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorClass", - CLASS_GENERATORS_COMMAND, - ClassFacade.class)); - put(ABILITY_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorAbility", - ABILITY_GENERATORS_COMMAND, - AbilityFacade.class)); - put(SKILL_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorSkill", - SKILL_GENERATORS_COMMAND, - SkillFacade.class)); - put(EQUIPMENT_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorEquipment", - EQUIPMENT_GENERATORS_COMMAND, - ItemFacade.class)); - put(SPELL_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorSpell", - SPELL_GENERATORS_COMMAND, - SpellFacade.class)); - put(OPTIONS_COMMAND, new OptionsAction()); + put(TOOLS_COMMAND, new ToolsAction()); + put(SOURCES_COMMAND, new SourcesAction()); + put(SOURCES_ADVANCED_COMMAND, new AdvancedSourcesAction()); + put(GENERATORS_COMMAND, new GeneratorsAction()); + put(TREASURE_GENERATORS_COMMAND, new TreasureGeneratorsAction()); + put(STAT_GENERATORS_COMMAND, + new DefaultGeneratorsAction("mnuToolsGeneratorStat", + STAT_GENERATORS_COMMAND, + StatFacade.class)); + put(RACE_GENERATORS_COMMAND, + new DefaultGeneratorsAction("mnuToolsGeneratorRace", + RACE_GENERATORS_COMMAND, + RaceFacade.class)); + put(TEMPLATE_GENERATORS_COMMAND, + new DefaultGeneratorsAction("mnuToolsGeneratorTemplate", + TEMPLATE_GENERATORS_COMMAND, + TemplateFacade.class)); + put(CLASS_GENERATORS_COMMAND, + new DefaultGeneratorsAction("mnuToolsGeneratorClass", + CLASS_GENERATORS_COMMAND, + ClassFacade.class)); + put(ABILITY_GENERATORS_COMMAND, + new DefaultGeneratorsAction("mnuToolsGeneratorAbility", + ABILITY_GENERATORS_COMMAND, + AbilityFacade.class)); + put(SKILL_GENERATORS_COMMAND, + new DefaultGeneratorsAction("mnuToolsGeneratorSkill", + SKILL_GENERATORS_COMMAND, + SkillFacade.class)); + put(EQUIPMENT_GENERATORS_COMMAND, + new DefaultGeneratorsAction("mnuToolsGeneratorEquipment", + EQUIPMENT_GENERATORS_COMMAND, + ItemFacade.class)); + put(SPELL_GENERATORS_COMMAND, + new DefaultGeneratorsAction("mnuToolsGeneratorSpell", + SPELL_GENERATORS_COMMAND, + SpellFacade.class)); + put(OPTIONS_COMMAND, new OptionsAction()); - put(HELP_COMMAND, new HelpAction()); - put(HELP_CONTEXT_COMMAND, new ContextHelpAction()); - put(HELP_DOCS_COMMAND, new DocsHelpAction()); - put(HELP_OGL_COMMAND, new OGLHelpAction()); - put(HELP_SPONSORS_COMMAND, new SponsorsHelpAction()); - put(HELP_TIPOFTHEDAY_COMMAND, new TipOfTheDayHelpAction()); - put(HELP_ABOUT_COMMAND, new AboutHelpAction()); - } + put(HELP_COMMAND, new HelpAction()); + put(HELP_CONTEXT_COMMAND, new ContextHelpAction()); + put(HELP_DOCS_COMMAND, new DocsHelpAction()); + put(HELP_OGL_COMMAND, new OGLHelpAction()); + put(HELP_SPONSORS_COMMAND, new SponsorsHelpAction()); + put(HELP_TIPOFTHEDAY_COMMAND, new TipOfTheDayHelpAction()); + put(HELP_ABOUT_COMMAND, new AboutHelpAction()); + } - private class FileAction extends PCGenAction - { + private class FileAction extends PCGenAction + { - public FileAction() - { - super("mnuFile"); - } + public FileAction() + { + super("mnuFile"); + } - } + } - private class NewAction extends PCGenAction - { + private class NewAction extends PCGenAction + { - public NewAction() - { - super("mnuFileNew", NEW_COMMAND, "shortcut N", Icons.New16); - } + public NewAction() + { + super("mnuFileNew", NEW_COMMAND, "shortcut N", Icons.New16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class OpenAction extends PCGenAction - { + private class OpenAction extends PCGenAction + { - public OpenAction() - { - super("mnuFileOpen", OPEN_COMMAND, "shortcut O", Icons.Open16); - } + public OpenAction() + { + super("mnuFileOpen", OPEN_COMMAND, "shortcut O", Icons.Open16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class OpenRecentAction extends PCGenAction - { + private class OpenRecentAction extends PCGenAction + { - public OpenRecentAction() - { - super("mnuOpenRecent"); - } + public OpenRecentAction() + { + super("mnuOpenRecent"); + } - } + } - private class CloseAction extends PCGenAction - { + private class CloseAction extends PCGenAction + { - public CloseAction() - { - super("mnuFileClose", CLOSE_COMMAND, "shortcut W", Icons.Close16); - } + public CloseAction() + { + super("mnuFileClose", CLOSE_COMMAND, "shortcut W", Icons.Close16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class CloseAllAction extends PCGenAction - { + private class CloseAllAction extends PCGenAction + { - public CloseAllAction() - { - super("mnuFileCloseAll", CLOSEALL_COMMAND, Icons.CloseAll16); - } + public CloseAllAction() + { + super("mnuFileCloseAll", CLOSEALL_COMMAND, Icons.CloseAll16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class SaveAction extends PCGenAction - { + private class SaveAction extends PCGenAction + { - public SaveAction() - { - super("mnuFileSave", SAVE_COMMAND, "shortcut S", Icons.Save16); - } + public SaveAction() + { + super("mnuFileSave", SAVE_COMMAND, "shortcut S", Icons.Save16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class SaveAsAction extends PCGenAction - { + private class SaveAsAction extends PCGenAction + { - public SaveAsAction() - { - super("mnuFileSaveAs", SAVEAS_COMMAND, "shift-shortcut S", - Icons.SaveAs16); - } + public SaveAsAction() + { + super("mnuFileSaveAs", SAVEAS_COMMAND, "shift-shortcut S", + Icons.SaveAs16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class SaveAllAction extends PCGenAction - { + private class SaveAllAction extends PCGenAction + { - public SaveAllAction() - { - super("mnuFileSaveAll", SAVEALL_COMMAND, Icons.SaveAll16); - } + public SaveAllAction() + { + super("mnuFileSaveAll", SAVEALL_COMMAND, Icons.SaveAll16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class RevertAction extends PCGenAction - { + private class RevertAction extends PCGenAction + { - public RevertAction() - { - super("mnuFileRevertToSaved", REVERT_COMMAND, "shortcut R"); - } + public RevertAction() + { + super("mnuFileRevertToSaved", REVERT_COMMAND, "shortcut R"); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class PartyAction extends PCGenAction - { + private class PartyAction extends PCGenAction + { - public PartyAction() - { - super("mnuFileParty"); - } + public PartyAction() + { + super("mnuFileParty"); + } - } + } - private class OpenPartyAction extends PCGenAction - { + private class OpenPartyAction extends PCGenAction + { - public OpenPartyAction() - { - super("mnuFilePartyOpen", OPEN_PARTY_COMMAND, Icons.Open16); - } + public OpenPartyAction() + { + super("mnuFilePartyOpen", OPEN_PARTY_COMMAND, Icons.Open16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class ClosePartyAction extends PCGenAction - { + private class ClosePartyAction extends PCGenAction + { - public ClosePartyAction() - { - super("mnuFilePartyClose", CLOSE_PARTY_COMMAND, Icons.Close16); - } + public ClosePartyAction() + { + super("mnuFilePartyClose", CLOSE_PARTY_COMMAND, Icons.Close16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class SavePartyAction extends PCGenAction - { + private class SavePartyAction extends PCGenAction + { - public SavePartyAction() - { - super("mnuFilePartySave", SAVE_PARTY_COMMAND, Icons.Save16); - } + public SavePartyAction() + { + super("mnuFilePartySave", SAVE_PARTY_COMMAND, Icons.Save16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class SaveAsPartyAction extends PCGenAction - { + private class SaveAsPartyAction extends PCGenAction + { - public SaveAsPartyAction() - { - super("mnuFilePartySaveAs", SAVEAS_PARTY_COMMAND, Icons.SaveAs16); - } + public SaveAsPartyAction() + { + super("mnuFilePartySaveAs", SAVEAS_PARTY_COMMAND, Icons.SaveAs16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class PrintPreviewAction extends PCGenAction - { + private class PrintPreviewAction extends PCGenAction + { - public PrintPreviewAction() - { - super("mnuFilePrintPreview", PRINT_PREVIEW_COMMAND, - Icons.PrintPreview16); - } + public PrintPreviewAction() + { + super("mnuFilePrintPreview", PRINT_PREVIEW_COMMAND, + Icons.PrintPreview16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class PrintAction extends PCGenAction - { + private class PrintAction extends PCGenAction + { - public PrintAction() - { - super("mnuFilePrint", PRINT_COMMAND, "shortcut P", Icons.Print16); - } + public PrintAction() + { + super("mnuFilePrint", PRINT_COMMAND, "shortcut P", Icons.Print16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class ExportAction extends PCGenAction - { + private class ExportAction extends PCGenAction + { - public ExportAction() - { - super("mnuFileExport", Icons.Export16); - } + public ExportAction() + { + super("mnuFileExport", Icons.Export16); + } - } + } - private class ExportStandardAction extends PCGenAction - { + private class ExportStandardAction extends PCGenAction + { - public ExportStandardAction() - { - super("mnuFileExportStandard", EXPORT_STANDARD_COMMAND); - } + public ExportStandardAction() + { + super("mnuFileExportStandard", EXPORT_STANDARD_COMMAND); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class ExportPDFAction extends PCGenAction - { + private class ExportPDFAction extends PCGenAction + { - public ExportPDFAction() - { - super("mnuFileExportPDF", EXPORT_PDF_COMMAND); - } + public ExportPDFAction() + { + super("mnuFileExportPDF", EXPORT_PDF_COMMAND); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class ExportTextAction extends PCGenAction - { + private class ExportTextAction extends PCGenAction + { - public ExportTextAction() - { - super("mnuFileExportText", EXPORT_TEXT_COMMAND); - } + public ExportTextAction() + { + super("mnuFileExportText", EXPORT_TEXT_COMMAND); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class ExitAction extends PCGenAction - { + private class ExitAction extends PCGenAction + { - public ExitAction() - { - super("mnuFileExit", EXIT_COMMAND, "shortcut Q"); - } + public ExitAction() + { + super("mnuFileExit", EXIT_COMMAND, "shortcut Q"); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class ViewAction extends PCGenAction - { + private class ViewAction extends PCGenAction + { - public ViewAction() - { - super("mnuView", VIEW_COMMAND); - } + public ViewAction() + { + super("mnuView", VIEW_COMMAND); + } - } + } - private class CharacterSheetAction extends PCGenAction - { + private class CharacterSheetAction extends PCGenAction + { - public CharacterSheetAction() - { - super(null); - } + public CharacterSheetAction() + { + super(null); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class ToolsAction extends PCGenAction - { + private class ToolsAction extends PCGenAction + { - public ToolsAction() - { - super("mnuTools", TOOLS_COMMAND); - } + public ToolsAction() + { + super("mnuTools", TOOLS_COMMAND); + } - } + } - private class SourcesAction extends PCGenAction - { + private class SourcesAction extends PCGenAction + { - public SourcesAction() - { - super(null); - } + public SourcesAction() + { + super(null); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class AdvancedSourcesAction extends PCGenAction - { + private class AdvancedSourcesAction extends PCGenAction + { - public AdvancedSourcesAction() - { - super(null); - } + public AdvancedSourcesAction() + { + super(null); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class FiltersAction extends PCGenAction - { + private class FiltersAction extends PCGenAction + { - public FiltersAction() - { - super("mnuViewFilters"); - } + public FiltersAction() + { + super("mnuViewFilters"); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class GeneratorsAction extends PCGenAction - { + private class GeneratorsAction extends PCGenAction + { - public GeneratorsAction() - { - super(null); - } + public GeneratorsAction() + { + super(null); + } - } + } - private class TreasureGeneratorsAction extends PCGenAction - { + private class TreasureGeneratorsAction extends PCGenAction + { - public TreasureGeneratorsAction() - { - super("mnuToolsGeneratorTreasure", TREASURE_GENERATORS_COMMAND, - "shortcut T"); - } + public TreasureGeneratorsAction() + { + super("mnuToolsGeneratorTreasure", TREASURE_GENERATORS_COMMAND, + "shortcut T"); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class OptionsAction extends PCGenAction - { + private class OptionsAction extends PCGenAction + { - public OptionsAction() - { - super(null); - } + public OptionsAction() + { + super(null); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class HelpAction extends PCGenAction - { + private class HelpAction extends PCGenAction + { - public HelpAction() - { - super("mnuHelp", HELP_COMMAND); - } + public HelpAction() + { + super("mnuHelp", HELP_COMMAND); + } - } + } - private class ContextHelpAction extends PCGenAction - { + private class ContextHelpAction extends PCGenAction + { - public ContextHelpAction() - { - super("mnuHelpContext", HELP_CONTEXT_COMMAND, Icons.ContextualHelp16); - } + public ContextHelpAction() + { + super("mnuHelpContext", HELP_CONTEXT_COMMAND, Icons.ContextualHelp16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class DocsHelpAction extends PCGenAction - { + private class DocsHelpAction extends PCGenAction + { - public DocsHelpAction() - { - super("mnuHelpDocumentation", HELP_DOCS_COMMAND, Icons.Help16); - } + public DocsHelpAction() + { + super("mnuHelpDocumentation", HELP_DOCS_COMMAND, Icons.Help16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class OGLHelpAction extends PCGenAction - { + private class OGLHelpAction extends PCGenAction + { - public OGLHelpAction() - { - super("mnuHelpOGL", HELP_OGL_COMMAND); - } + public OGLHelpAction() + { + super("mnuHelpOGL", HELP_OGL_COMMAND); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class SponsorsHelpAction extends PCGenAction - { + private class SponsorsHelpAction extends PCGenAction + { - public SponsorsHelpAction() - { - super("mnuHelpSponsors", HELP_SPONSORS_COMMAND); - } + public SponsorsHelpAction() + { + super("mnuHelpSponsors", HELP_SPONSORS_COMMAND); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class TipOfTheDayHelpAction extends PCGenAction - { + private class TipOfTheDayHelpAction extends PCGenAction + { - public TipOfTheDayHelpAction() - { - super("mnuHelpTipOfTheDay", HELP_TIPOFTHEDAY_COMMAND, - Icons.TipOfTheDay16); - } + public TipOfTheDayHelpAction() + { + super("mnuHelpTipOfTheDay", HELP_TIPOFTHEDAY_COMMAND, + Icons.TipOfTheDay16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class AboutHelpAction extends PCGenAction - { + private class AboutHelpAction extends PCGenAction + { - public AboutHelpAction() - { - super("mnuHelpAbout", HELP_ABOUT_COMMAND, Icons.About16); - } + public AboutHelpAction() + { + super("mnuHelpAbout", HELP_ABOUT_COMMAND, Icons.About16); + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class DefaultGeneratorsAction extends PCGenAction - { + private class DefaultGeneratorsAction extends PCGenAction + { - private final Class<?> generatorClass; + private final Class<?> generatorClass; - public DefaultGeneratorsAction(String prop, String command, - Class<?> generatorClass) - { - super(prop, command); - this.generatorClass = generatorClass; - } + public DefaultGeneratorsAction(String prop, String command, + Class<?> generatorClass) + { + super(prop, command); + this.generatorClass = generatorClass; + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } - private class DefaultFiltersAction extends PCGenAction - { + private class DefaultFiltersAction extends PCGenAction + { - private final Class<?> filterClass; + private final Class<?> filterClass; - public DefaultFiltersAction(String prop, String command, - Class<?> filterClass) - { - super(prop, command); - this.filterClass = filterClass; - } + public DefaultFiltersAction(String prop, String command, + Class<?> filterClass) + { + super(prop, command); + this.filterClass = filterClass; + } - @Override - public void actionPerformed(ActionEvent e) - { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public void actionPerformed(ActionEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } - } + } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-23 07:14:17 UTC (rev 11530) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-03-23 23:51:11 UTC (rev 11531) @@ -40,7 +40,7 @@ import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.GenericListModel; import pcgen.system.PropertyContext; -import pcgen.system.SystemPropertyManager; +import pcgen.system.ConfigurationSettings; import pcgen.util.Logging; import pcgen.util.SkinLFResourceChecker; @@ -61,7 +61,7 @@ public static PropertyContext getUIPropertyContext() { - return SystemPropertyManager.getPropertyContext("UIConfig.ini"); + return ConfigurationSettings.getPropertyContext("UIConfig.ini"); } public static void refreshUITree() Modified: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2010-03-23 07:14:17 UTC (rev 11530) +++ sandbox/cdomui/code/src/java/pcgen/gui2/dialog/OptionsPathDialog.java 2010-03-23 23:51:11 UTC (rev 11531) @@ -34,8 +34,8 @@ import javax.swing.JSeparator; import javax.swing.JTextField; import org.apache.commons.lang.SystemUtils; -import pcgen.system.SystemPropertyManager; -import pcgen.system.SystemPropertyManager.SettingsFilesPath; +import pcgen.system.ConfigurationSettings; +import pcgen.system.ConfigurationSettings.SettingsFilesPath; /** * @@ -98,7 +98,7 @@ "select", group, handler, gridBagConstraints); - dirField.setText(SystemPropertyManager.getSettingsDirFromFilePath(selectedDir)); + dirField.setText(ConfigurationSettings.getSettingsDirFromFilePath(selectedDir)); dirField.setEditable(false); gridBagConstraints.gridwidth = GridBagConstraints.RELATIVE; @@ -177,7 +177,7 @@ { dirButton.setEnabled(false); selectedDir = command; - dirField.setText(SystemPropertyManager.getSettingsDirFromFilePath(selectedDir)); + dirField.setText(ConfigurationSettings.getSettingsDirFromFilePath(selectedDir)); } } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java 2010-03-23 07:14:17 UTC (rev 11530) +++ sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java 2010-03-23 23:51:11 UTC (rev 11531) @@ -36,7 +36,7 @@ import javax.swing.plaf.metal.MetalLookAndFeel; import org.apache.commons.lang.SystemUtils; import pcgen.gui2.PCGenUIManager; -import pcgen.system.SystemPropertyManager; +import pcgen.system.ConfigurationSettings; import pcgen.util.Logging; import pcgen.util.SkinLFResourceChecker; @@ -161,7 +161,7 @@ private LookAndFeelManager() { - SystemPropertyManager.getSingleton().addPropertyChangeListener("selectedThemePack", this); + ConfigurationSettings.getSingleton().addPropertyChangeListener("selectedThemePack", this); } public void propertyChange(PropertyChangeEvent evt) @@ -183,7 +183,7 @@ { //set Java as the fallback look and feel currentLAF = "Java"; - String laf = SystemPropertyManager.getSystemProperty("lookAndFeel"); + String laf = ConfigurationSettings.getSystemProperty("lookAndFeel"); if (laf == null) { laf = currentLAF; @@ -219,8 +219,8 @@ else if (HAS_SKIN_LAF) { // this must be a skin LAF - String themePack = SystemPropertyManager.getSystemProperty("selectedThemePack"); - String path = SystemPropertyManager.getDirectory(SystemPropertyManager.THEME_PACK_DIR); + String themePack = ConfigurationSettings.getSystemProperty("selectedThemePack"); + String path = ConfigurationSettings.getDirectory(ConfigurationSettings.THEME_PACK_DIR); path += File.separator + themePack; LookAndFeel laf = SkinManager.createSkinLAF(path); UIManager.setLookAndFeel(laf); @@ -231,7 +231,7 @@ return; } - SystemPropertyManager.setSystemProperty("lookAndFeel", name); + ConfigurationSettings.setSystemProperty("lookAndFeel", name); currentLAF = name; } catch (Exception e) @@ -241,7 +241,7 @@ if ("Skinned".equals(name)) { //make this the current theme - SystemPropertyManager.setSystemProperty("selectedThemePack", oldTheme); + ConfigurationSettings.setSystemProperty("selectedThemePack", oldTheme); } //setting the look and feel failed so fall back to the old LAF if ("Skinned".equals(currentLAF)) @@ -249,7 +249,7 @@ try { - String path = SystemPropertyManager.getDirectory(SystemPropertyManager.THEME_PACK_DIR); + String path = ConfigurationSettings.getDirectory(ConfigurationSettings.THEME_PACK_DIR); path += File.separator + oldTheme; LookAndFeel laf = SkinManager.createSkinLAF(path); Copied: sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java (from rev 11530, sandbox/cdomui/code/src/java/pcgen/system/SystemPropertyManager.java) =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java 2010-03-23 23:51:11 UTC (rev 11531) @@ -0,0 +1,255 @@ +/* + * SystemPropertyManager.java + * Copyright 2009 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Sep 4, 2009, 8:22:09 PM + */ +package pcgen.system; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import org.apache.commons.lang.SystemUtils; +import pcgen.util.Logging; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public final class ConfigurationSettings extends PropertyContext +{ + + public static final String SETTINGS_FILES_PATH = "settingsPath"; + public static final String SYSTEMS_DIR = "systemsPath"; + public static final String THEME_PACK_DIR = "themesPath"; + public static final String OUTPUT_SHEETS_DIR = "osPath"; + public static final String PLUGINS_DIR = "pluginsPath"; + public static final String PREVIEW_DIR = "previewPath"; + public static final String VENDOR_DATA_DIR = "vendordataPath"; + public static final String DOCS_DIR = "docsPath"; + public static final String PCC_FILES_DIR = "pccFilesPath"; + private static final Map<String, PropertyContext> contextMap = new HashMap<String, PropertyContext>(); + private static ConfigurationSettings instance = null; + + private ConfigurationSettings() + { + super("config.ini"); + registerPropertyContext(this); + } + + public static ConfigurationSettings getSingleton() + { + if (instance == null) + { + instance = new ConfigurationSettings(); + } + return instance; + } + + public static String initSystemProperty(String key, String defaultValue) + { + return getSingleton().initProperty(key, defaultValue); + } + + public static String getSystemProperty(String key) + { + return getSingleton().getProperty(key); + } + + public static Object setSystemProperty(String key, String value) + { + return getSingleton().setProperty(key, value); + } + + static boolean loadConfig() + { + File configFile = new File(SystemUtils.USER_DIR, "config.ini"); + if (!configFile.exists()) + { + Logging.debugPrint("No config.ini file found, will create one when exiting."); + return false; + } + else if (!configFile.canWrite()) + { + Logging.errorPrint("WARNING: The filepaths file you specified is not updatable. " + + "Filepath changes will not be saved. File is " + configFile.getAbsolutePath()); + } + if (loadPropertyContext(configFile)) + { + return true; + } + else + { + Logging.errorPrint( + "Failed to load config.ini, either the file is unreadable or it " + + "is corrupt. Possible solution is to delete the config.ini file and restart PCGen"); + return false; + } + } + + static void initDefaults() + { + setSystemProperty(THEME_PACK_DIR, "@lib/lnf/themes".replace('/', File.separatorChar)); + setSystemProperty(SYSTEMS_DIR, "@system"); + setSystemProperty(OUTPUT_SHEETS_DIR, "@outputsheets"); + setSystemProperty(PLUGINS_DIR, "@plugins"); + setSystemProperty(PREVIEW_DIR, "@preview"); + setSystemProperty(VENDOR_DATA_DIR, "@vendordata"); + setSystemProperty(PCC_FILES_DIR, "@data"); + } + + public static String getDirectory(String key) + { + return expandRelativePath(getSystemProperty(key)); + } + + private static String expandRelativePath(String path) + { + if (path.startsWith("@")) + { + path = SystemUtils.USER_DIR + File.separator + path.substring(1); + } + + return path; + } + + private static boolean loadPropertyContext(File file) + { + String name = file.getName(); + PropertyContext context = contextMap.get(name); + if (context == null) + { + context = new PropertyContext(name); + contextMap.put(name, context); + } + FileInputStream in = null; + boolean loaded = false; + try + { + in = new FileInputStream(file); + context.properties.load(in); + loaded = true; + } + catch (Exception ex) + { + Logging.errorPrint("Error occured while reading properties", ex); + } + finally + { + try + { + if (in != null) + { + in.close(); + } + } + catch (IOException ex) + { + //Not much to do about it... + Logging.errorPrint("Failed to close input stream for file: " + + context.getName(), ex); //$NON-NLS-1$ + } + } + return loaded; + } + + static void loadPropertyContexts() + { + File settingsDir = new File(getSettingsDirFromFilePath( + getSystemProperty(SETTINGS_FILES_PATH))); + File[] files = settingsDir.listFiles(); + if (files == null) + { + return; + } + for (File file : files) + { + loadPropertyContext(file); + } + } + + static void registerPropertyContext(PropertyContext context) + { + contextMap.put(context.getName(), context); + } + + public static PropertyContext getPropertyContext(String fileName) + { + PropertyContext context = contextMap.get(fileName); + if (context == null) + { + context = new PropertyContext(fileName); + contextMap.put(fileName, context); + } + return context; + } + + public static enum SettingsFilesPath + { + + user, + pcgen, + mac_user; + + public String getSettingsDir() + { + switch (this) + { + case user: + return SystemUtils.USER_HOME + File.separator + ".pcgen"; + case pcgen: + return SystemUtils.USER_DIR; + case mac_user: + return SystemUtils.USER_HOME + "/Library/Preferences/pcgen"; + default: + throw new InternalError(); + } + } + + } + + public static String getSettingsDirFromFilePath(String fType) + { + if ((fType == null) || (fType.length() < 1)) + { + // make sure we have a default + if (SystemUtils.IS_OS_MAC_OSX) + { + fType = SettingsFilesPath.mac_user.name(); + } + else + { + fType = SettingsFilesPath.user.name(); + } + } + String path; + try + { + //Check to see if this path is one of the standard path types + path = SettingsFilesPath.valueOf(fType).getSettingsDir(); + } + catch (IllegalArgumentException ex) + { + //It must be a custom filepath + path = fType; + } + return path; + } + +} Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-23 07:14:17 UTC (rev 11530) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-23 23:51:11 UTC (rev 11531) @@ -58,9 +58,9 @@ String inFileName = System.getProperty("pcgen.inputfile"); String outFileName = System.getProperty("pcgen.outputfile"); //TODO: Do some console handling - if (!SystemPropertyManager.loadConfig()) + if (!ConfigurationSettings.loadConfig()) { - SystemPropertyManager.initDefaults(); + ConfigurationSettings.initDefaults(); } // configure the UI before any type of user prompting may takes place configureUI(); @@ -75,7 +75,7 @@ setLocale(); UIResourceContext.loadResourceBundle(); //makes the UIResourceContext available to outside classes - SystemPropertyManager.registerPropertyContext(new UIResourceContext()); + ConfigurationSettings.registerPropertyContext(new UIResourceContext()); LookAndFeelManager.initLookAndFeel(); } @@ -83,22 +83,22 @@ { setSettingsPath(); //TODO: register existing SystemPropertyContexts - SystemPropertyManager.loadPropertyContexts(); + ConfigurationSettings.loadPropertyContexts(); } private static void setLocale() { - String language = SystemPropertyManager.getSystemProperty("language"); - String country = SystemPropertyManager.getSystemProperty("country"); + String language = ConfigurationSettings.getSystemProperty("language"); + String country = ConfigurationSettings.getSystemProperty("country"); if (language == null) { language = SystemUtils.USER_LANGUAGE; - SystemPropertyManager.setSystemProperty("language", language); + ConfigurationSettings.setSystemProperty("language", language); } if (country == null) { country = SystemUtils.USER_COUNTRY; - SystemPropertyManager.setSystemProperty("country", country); + ConfigurationSettings.setSystemProperty("country", country); } // We reset the default so that // a) The dialog buttons match the selected language. @@ -110,25 +110,25 @@ { //If the filePath was specified in the command line, set it to //override the default in SystemPropertyManager - String filePath = System.getProperty(SystemPropertyManager.SETTINGS_FILES_PATH); + String filePath = System.getProperty(ConfigurationSettings.SETTINGS_FILES_PATH); if (filePath != null) { - SystemPropertyManager.setSystemProperty(SystemPropertyManager.SETTINGS_FILES_PATH, + ConfigurationSettings.setSystemProperty(ConfigurationSettings.SETTINGS_FILES_PATH, filePath); } - if (SystemPropertyManager.getSystemProperty(SystemPropertyManager.SETTINGS_FILES_PATH) == null) + if (ConfigurationSettings.getSystemProperty(ConfigurationSettings.SETTINGS_FILES_PATH) == null) { OptionsPathDialog dialog = new OptionsPathDialog(); dialog.setVisible(true); filePath = dialog.getSelectedDirectory(); - SystemPropertyManager.setSystemProperty(SystemPropertyManager.SETTINGS_FILES_PATH, + ConfigurationSettings.setSystemProperty(ConfigurationSettings.SETTINGS_FILES_PATH, filePath); } } private static void loadPlugins() { - String pluginsDir = SystemPropertyManager.getDirectory(SystemPropertyManager.PLUGINS_DIR); + String pluginsDir = ConfigurationSettings.getDirectory(ConfigurationSettings.PLUGINS_DIR); PluginClassLoader loader = new PluginClassLoader(new File(pluginsDir)); loader.addPluginLoader(TokenLibrary.getInstance()); loader.addPluginLoader(Bonus.getInstance()); @@ -157,7 +157,7 @@ ShowMessageDelegate.showMessageDialog(e.... [truncated message content] |
From: <cpm...@us...> - 2010-03-24 00:31:07
|
Revision: 11532 http://pcgen.svn.sourceforge.net/pcgen/?rev=11532&view=rev Author: cpmeister Date: 2010-03-24 00:30:59 +0000 (Wed, 24 Mar 2010) Log Message: ----------- UI Facade update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/RaceFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/RaceMock.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/core/facade/SimpleFacade.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-03-23 23:51:11 UTC (rev 11531) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-03-24 00:30:59 UTC (rev 11532) @@ -20,6 +20,7 @@ */ package pcgen.core.facade; +import javax.swing.event.ChangeListener; import javax.swing.undo.UndoManager; import pcgen.cdom.enumeration.Gender; @@ -42,14 +43,26 @@ public AlignmentFacade getAlignment(); + public void addAlignmentChangeListener(ChangeListener listener); + + public void removeAlignmentChangeListener(ChangeListener listener); + public void setGender(Gender gender); + public void addGenderChangeListener(ChangeListener listener); + + public void removeGenderChangeListener(ChangeListener listener); + public int getScore(StatFacade stat); public int getMod(StatFacade stat); public void setScore(StatFacade stat, int score); + public void addScoreChangeListener(StatFacade stat, ChangeListener listener); + + public void removeScoreChangeListener(StatFacade stat, ChangeListener listener); + public void addAbility(AbilityCategoryFacade category, AbilityFacade ability); @@ -67,7 +80,7 @@ * @return a List of Abilities the character posseses in the specified category */ public GenericListModel<AbilityFacade> getAbilities( - AbilityCategoryFacade category); + AbilityCategoryFacade category); public GenericListModel<CharacterLevelFacade> getLevels(); @@ -99,14 +112,27 @@ public boolean isTempBonusApplied(TempBonusFacade bonus); public DataSetFacade getDataSet(); - + public RaceFacade getRace(); - + + public void addRaceChangeListener(ChangeListener listener); + + public void removeRaceChangeListener(ChangeListener listener); + public void setRace(RaceFacade race); public String getTabName(); + public void addTabNameChangeListener(ChangeListener listener); + + public void removeTabNameChangeListener(ChangeListener listener); + + public void setTabName(String name); + public String getName(); - + public void addNameChangeListener(ChangeListener listener); + + public void removeNameChangeListener(ChangeListener listener); + } Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/RaceFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/RaceFacade.java 2010-03-23 23:51:11 UTC (rev 11531) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/RaceFacade.java 2010-03-24 00:30:59 UTC (rev 11532) @@ -20,6 +20,8 @@ */ package pcgen.core.facade; +import pcgen.gui2.util.GenericListModel; + /** * * @author Connor Petty <cpm...@us...> @@ -27,8 +29,12 @@ public interface RaceFacade extends InfoFacade { - public boolean isAcceptableAlignment(AlignmentFacade alignment); + public boolean isAcceptableAlignment(AlignmentFacade alignment); - public int getRacialAdj(StatFacade stat); + public int getRacialAdj(StatFacade stat); + public GenericListModel<SimpleFacade> getGenders(); + + public GenericListModel<SimpleFacade> getHands(); + } Added: sandbox/cdomui/code/src/java/pcgen/core/facade/SimpleFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/SimpleFacade.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/SimpleFacade.java 2010-03-24 00:30:59 UTC (rev 11532) @@ -0,0 +1,30 @@ +/* + * SimpleFacade.java + * Copyright 2010 (C) Connor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Mar 23, 2010, 4:30:35 PM + */ + +package pcgen.core.facade; + +/** + * + * @author Connor + */ +public interface SimpleFacade { + +} Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2010-03-23 23:51:11 UTC (rev 11531) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2010-03-24 00:30:59 UTC (rev 11532) @@ -20,14 +20,16 @@ * * $Id$ */ - package pcgen.gui2.mock; import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedList; import java.util.List; import java.util.Map; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; import javax.swing.undo.UndoManager; import pcgen.cdom.enumeration.Gender; @@ -72,6 +74,7 @@ */ public class CharacterMock implements CharacterFacade { + private Map<AbilityCategoryFacade, DefaultGenericListModel<AbilityFacade>> abilityListMap; private DefaultGenericListModel<ClassFacade> pcClasses; private DefaultGenericListModel<TempBonusFacade> appliedTempBonuses; @@ -85,6 +88,11 @@ private DataSetFacade dataSet; private RaceFacade race; private PlayerCharacter theCharacter; + private List<ChangeListener> alignmentListeners = new LinkedList<ChangeListener>(); + private List<ChangeListener> genderListeners = new LinkedList<ChangeListener>(); + private List<ChangeListener> nameListeners = new LinkedList<ChangeListener>(); + private List<ChangeListener> raceListeners = new LinkedList<ChangeListener>(); + private List<ChangeListener> tabnameListeners = new LinkedList<ChangeListener>(); /** * Create a new mock character. The character will be blank with no race, @@ -102,17 +110,18 @@ remainingAbilitySelections = new HashMap<AbilityCategoryFacade, Integer>(); //new DefaultGenericComboBoxModel<EquipmentSetFacade> undoManager = new UndoManager(); - + dataSet = new DataSetMock(SettingsHandler.getGame()); } - + /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#addAbility(pcgen.core.facade.AbilityCategoryFacade, pcgen.core.facade.AbilityFacade) */ public void addAbility(AbilityCategoryFacade category, AbilityFacade ability) { DefaultGenericListModel<AbilityFacade> abList = abilityListMap.get(category); - if (abList == null) { + if (abList == null) + { abList = new DefaultGenericListModel<AbilityFacade>(); abilityListMap.put(category, abList); } @@ -123,10 +132,11 @@ * @see pcgen.core.facade.CharacterFacade#removeAbility(pcgen.core.facade.AbilityCategoryFacade, pcgen.core.facade.AbilityFacade) */ public void removeAbility(AbilityCategoryFacade category, - AbilityFacade ability) + AbilityFacade ability) { List<AbilityFacade> abList = abilityListMap.get(category); - if (abList != null) { + if (abList != null) + { abList.remove(ability); } } @@ -138,7 +148,8 @@ AbilityCategoryFacade category) { DefaultGenericListModel<AbilityFacade> abList = abilityListMap.get(category); - if (abList == null) { + if (abList == null) + { abList = new DefaultGenericListModel<AbilityFacade>(); } return abList; @@ -157,7 +168,7 @@ * @see pcgen.core.facade.CharacterFacade#setRemainingSelection(pcgen.core.facade.AbilityCategoryFacade, int) */ public void setRemainingSelection(AbilityCategoryFacade category, - int remaining) + int remaining) { remainingAbilitySelections.put(category, remaining); } @@ -166,14 +177,15 @@ * @see pcgen.core.facade.CharacterFacade#hasAbility(pcgen.core.facade.AbilityCategoryFacade, pcgen.core.facade.AbilityFacade) */ public boolean hasAbility(AbilityCategoryFacade category, - AbilityFacade ability) + AbilityFacade ability) { List<AbilityFacade> abList = abilityListMap.get(category); - if (abList == null) { + if (abList == null) + { return false; } return abList.contains(ability); - + } /* (non-Javadoc) @@ -197,11 +209,11 @@ */ public void removeCharacterLevels(int levels) { - for (int i=levels;i>0&&!pcClassLevels.isEmpty();i--) + for (int i = levels; i > 0 && !pcClassLevels.isEmpty(); i--) { - pcClassLevels.remove(pcClassLevels.size()-1); + pcClassLevels.remove(pcClassLevels.size() - 1); } - + // Clean up the class list for (Iterator<ClassFacade> iterator = pcClasses.iterator(); iterator.hasNext();) { @@ -215,7 +227,7 @@ break; } } - + if (!stillPresent) { iterator.remove(); @@ -292,6 +304,7 @@ public void setAlignment(AlignmentFacade alignment) { this.alignment = alignment; + fireChangeEvent(alignmentListeners); } /* (non-Javadoc) @@ -324,6 +337,7 @@ public void setGender(Gender gender) { this.gender = gender; + fireChangeEvent(genderListeners); } /* (non-Javadoc) @@ -334,7 +348,7 @@ Integer score = statScoreMap.get(stat); if (score != null) { - return (int) (Math.floor(score/2)-5); + return (int) (Math.floor(score / 2) - 5); } return 0; } @@ -369,7 +383,7 @@ { return 0; } - + for (StatFacade stat : statScoreMap.keySet()) { if (skill.getKeyStat().equals(stat.getAbbreviation())) @@ -390,7 +404,7 @@ for (CharacterLevelFacade level : pcClassLevels) { numRanks += ((CharacterLevelMock) level).getSkillRanks(skill); - if(level == finallevel) + if (level == finallevel) { break; } @@ -409,18 +423,18 @@ /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#getMaxRanks(pcgen.cdom.enumeration.SkillCost, pcgen.core.facade.CharacterLevelFacade) */ - public float getMaxRanks(SkillCost cost, CharacterLevelFacade level) - { - if (cost == null || level == null || !pcClassLevels.contains(level)) - { - return 0.0f; - } - if(cost.getCost() == 0) + public float getMaxRanks(SkillCost cost, CharacterLevelFacade level) + { + if (cost == null || level == null || !pcClassLevels.contains(level)) { + return 0.0f; + } + if (cost.getCost() == 0) + { return Float.NaN; } - return ((float)pcClassLevels.indexOf(level)+4)/cost.getCost(); - } + return ((float) pcClassLevels.indexOf(level) + 4) / cost.getCost(); + } /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#getUndoManager() @@ -444,6 +458,7 @@ public void setRace(RaceFacade race) { this.race = race; + fireChangeEvent(raceListeners); } /* (non-Javadoc) @@ -457,8 +472,9 @@ public void setTabName(String name) { theCharacter.setTabName(name); + fireChangeEvent(tabnameListeners); } - + /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#getName() */ @@ -466,4 +482,78 @@ { return theCharacter.getName(); } + + private void fireChangeEvent(List<ChangeListener> listeners) + { + ChangeEvent event = null; + for (ChangeListener changeListener : listeners) + { + if (event == null) + { + event = new ChangeEvent(this); + } + changeListener.stateChanged(event); + } + } + + public void addAlignmentChangeListener(ChangeListener listener) + { + alignmentListeners.add(listener); + } + + public void removeAlignmentChangeListener(ChangeListener listener) + { + alignmentListeners.remove(listener); + } + + public void addGenderChangeListener(ChangeListener listener) + { + genderListeners.add(listener); + } + + public void removeGenderChangeListener(ChangeListener listener) + { + genderListeners.remove(listener); + } + + public void addScoreChangeListener(StatFacade stat, ChangeListener listener) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void removeScoreChangeListener(StatFacade stat, ChangeListener listener) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void addRaceChangeListener(ChangeListener listener) + { + raceListeners.add(listener); + } + + public void removeRaceChangeListener(ChangeListener listener) + { + raceListeners.remove(listener); + } + + public void addTabNameChangeListener(ChangeListener listener) + { + tabnameListeners.add(listener); + } + + public void removeTabNameChangeListener(ChangeListener listener) + { + tabnameListeners.remove(listener); + } + + public void addNameChangeListener(ChangeListener listener) + { + nameListeners.add(listener); + } + + public void removeNameChangeListener(ChangeListener listener) + { + nameListeners.remove(listener); + } + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/RaceMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/RaceMock.java 2010-03-23 23:51:11 UTC (rev 11531) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/RaceMock.java 2010-03-24 00:30:59 UTC (rev 11532) @@ -20,13 +20,17 @@ * * $Id$ */ - package pcgen.gui2.mock; +import pcgen.cdom.enumeration.Gender; import pcgen.core.Race; import pcgen.core.facade.AlignmentFacade; import pcgen.core.facade.RaceFacade; +import pcgen.core.facade.SimpleFacade; import pcgen.core.facade.StatFacade; +import pcgen.gui2.util.DefaultGenericListModel; +import pcgen.gui2.util.GenericListModel; +import pcgen.util.PropertyFactory; /** * The Class <code>RaceMock</code> is a mock implementation of the @@ -49,13 +53,53 @@ public class RaceMock implements RaceFacade { + private static final DefaultGenericListModel<SimpleFacade> genderList = + new DefaultGenericListModel<SimpleFacade>(); + private static final DefaultGenericListModel<SimpleFacade> handList = + new DefaultGenericListModel<SimpleFacade>(); + private static class SimpleFacadeImpl implements + SimpleFacade{ + private String name; + public SimpleFacadeImpl(String name) + { + this.name = name; + } + @Override + public String toString() + { + return name; + } + } + static + { + Gender[] genders = Gender.values(); + for (final Gender gender : genders) + { + genderList.add(new SimpleFacade() + { + + @Override + public String toString() + { + return gender.toString(); + } + + }); + } + handList.add(new SimpleFacadeImpl(PropertyFactory.getString("in_handRight"))); + handList.add(new SimpleFacadeImpl(PropertyFactory.getString("in_handLeft"))); + handList.add(new SimpleFacadeImpl(PropertyFactory.getString("in_handBoth"))); + handList.add(new SimpleFacadeImpl(PropertyFactory.getString("in_comboNone"))); + handList.add(new SimpleFacadeImpl(PropertyFactory.getString("in_comboOther"))); + } + private Race theRace; - + public RaceMock(Race race) { theRace = race; } - + /* (non-Javadoc) * @see pcgen.core.facade.RaceFacade#getRacialAdj(pcgen.core.facade.StatFacade) */ @@ -100,4 +144,14 @@ return theRace.getDisplayName(); } + public GenericListModel<SimpleFacade> getGenders() + { + return genderList; + } + + public GenericListModel<SimpleFacade> getHands() + { + return handList; + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-24 06:49:18
|
Revision: 11533 http://pcgen.svn.sourceforge.net/pcgen/?rev=11533&view=rev Author: cpmeister Date: 2010-03-24 06:49:11 +0000 (Wed, 24 Mar 2010) Log Message: ----------- SummaryInfoTab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/DataSetMock.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/core/facade/DeityFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/util/AbstractGenericListModel.java sandbox/cdomui/code/src/java/pcgen/gui2/util/DelegatingGenericComboBoxModel.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-03-24 00:30:59 UTC (rev 11532) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-03-24 06:49:11 UTC (rev 11533) @@ -79,8 +79,7 @@ * @param category * @return a List of Abilities the character posseses in the specified category */ - public GenericListModel<AbilityFacade> getAbilities( - AbilityCategoryFacade category); + public GenericListModel<AbilityFacade> getAbilities(AbilityCategoryFacade category); public GenericListModel<CharacterLevelFacade> getLevels(); @@ -135,4 +134,12 @@ public void removeNameChangeListener(ChangeListener listener); + public DeityFacade getDeity(); + + public void setDeity(DeityFacade deity); + + public void addDeityChangeListener(ChangeListener listener); + + public void removeDeityChangeListener(ChangeListener listener); + } Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java 2010-03-24 00:30:59 UTC (rev 11532) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java 2010-03-24 06:49:11 UTC (rev 11533) @@ -52,6 +52,8 @@ public ClassFacade getClass(String className); + public GenericListModel<DeityFacade> getDeitys(); + public GenericListModel<TempBonusFacade> getTempBonuses(); public GenericListModel<TemplateFacade> getTemplates(); Added: sandbox/cdomui/code/src/java/pcgen/core/facade/DeityFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/DeityFacade.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/DeityFacade.java 2010-03-24 06:49:11 UTC (rev 11533) @@ -0,0 +1,30 @@ +/* + * DeityFacade.java + * Copyright 2010 (C) Connor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Mar 23, 2010, 11:20:18 PM + */ + +package pcgen.core.facade; + +/** + * + * @author Connor + */ +public interface DeityFacade { + +} Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2010-03-24 00:30:59 UTC (rev 11532) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2010-03-24 06:49:11 UTC (rev 11533) @@ -43,6 +43,7 @@ import pcgen.core.facade.CharacterLevelFacade; import pcgen.core.facade.ClassFacade; import pcgen.core.facade.DataSetFacade; +import pcgen.core.facade.DeityFacade; import pcgen.core.facade.EquipmentSetFacade; import pcgen.core.facade.RaceFacade; import pcgen.core.facade.SkillFacade; @@ -556,4 +557,24 @@ nameListeners.remove(listener); } + public DeityFacade getDeity() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void setDeity(DeityFacade deity) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void addDeityChangeListener(ChangeListener listener) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void removeDeityChangeListener(ChangeListener listener) + { + throw new UnsupportedOperationException("Not supported yet."); + } + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/DataSetMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/DataSetMock.java 2010-03-24 00:30:59 UTC (rev 11532) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/DataSetMock.java 2010-03-24 06:49:11 UTC (rev 11533) @@ -46,6 +46,7 @@ import pcgen.core.facade.AbilityFacade; import pcgen.core.facade.ClassFacade; import pcgen.core.facade.DataSetFacade; +import pcgen.core.facade.DeityFacade; import pcgen.core.facade.GameModeFacade; import pcgen.core.facade.RaceFacade; import pcgen.core.facade.SkillFacade; @@ -425,4 +426,9 @@ return templates; } + public GenericListModel<DeityFacade> getDeitys() + { + throw new UnsupportedOperationException("Not supported yet."); + } + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-24 00:30:59 UTC (rev 11532) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-24 06:49:11 UTC (rev 11533) @@ -24,17 +24,22 @@ import java.awt.GridBagConstraints; import java.awt.Insets; import java.util.Hashtable; -import javax.swing.ComboBoxModel; -import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; -import pcgen.cdom.enumeration.Gender; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import pcgen.core.facade.AlignmentFacade; import pcgen.core.facade.CharacterFacade; +import pcgen.core.facade.DeityFacade; +import pcgen.core.facade.RaceFacade; +import pcgen.core.facade.SimpleFacade; import pcgen.gui2.tools.CharacterStateEditable; +import pcgen.gui2.util.DelegatingGenericComboBoxModel; +import pcgen.gui2.util.GenericComboBoxModel; /** * @@ -142,13 +147,104 @@ public static class BasicsSelectionModel { - private ComboBoxModel genderModel; - private ComboBoxModel handsModel; + + private DelegatingGenericComboBoxModel<SimpleFacade> genderModel; + private DelegatingGenericComboBoxModel<SimpleFacade> handsModel; + private DelegatingGenericComboBoxModel<AlignmentFacade> alignmentModel; + private DelegatingGenericComboBoxModel<DeityFacade> deityModel; + private CharacterFacade character; + public BasicsSelectionModel(CharacterFacade character) { - this.genderModel = new DefaultComboBoxModel(Gender.values()); - //character.getDataSet(). + this.character = character; + this.genderModel = new DelegatingGenericComboBoxModel<SimpleFacade>(); + this.handsModel = new DelegatingGenericComboBoxModel<SimpleFacade>(); + raceChanged();//this intializes the gender and hands models + character.addRaceChangeListener(new ChangeListener() + { + + public void stateChanged(ChangeEvent e) + { + raceChanged(); + } + + }); + character.addGenderChangeListener(new ChangeListener() + { + + public void stateChanged(ChangeEvent e) + { + genderChanged(); + } + + }); + this.alignmentModel = new DelegatingGenericComboBoxModel<AlignmentFacade>(); + alignmentModel.setDelegateModel(character.getDataSet().getGameMode().getAlignments()); + alignmentChanged(); + character.addAlignmentChangeListener(new ChangeListener() + { + + public void stateChanged(ChangeEvent e) + { + alignmentChanged(); + } + + }); + this.deityModel = new DelegatingGenericComboBoxModel<DeityFacade>(); + deityModel.setDelegateModel(character.getDataSet().getDeitys()); + deityChanged(); + character.addDeityChangeListener(new ChangeListener() + { + + public void stateChanged(ChangeEvent e) + { + deityChanged(); + } + + }); } + private void genderChanged() + { + genderModel.setSelectedItem(character.getGender()); + } + + private void alignmentChanged() + { + alignmentModel.setSelectedItem(character.getAlignment()); + } + + private void deityChanged() + { + deityModel.setSelectedItem(character.getDeity()); + } + + private void raceChanged() + { + RaceFacade race = character.getRace(); + genderModel.setDelegateModel(race.getGenders()); + handsModel.setDelegateModel(race.getHands()); + } + + public GenericComboBoxModel<SimpleFacade> getGenderModel() + { + return genderModel; + } + + public GenericComboBoxModel<SimpleFacade> getHandsModel() + { + return handsModel; + } + + public GenericComboBoxModel<AlignmentFacade> getAlignmentModel() + { + return alignmentModel; + } + + public GenericComboBoxModel<DeityFacade> getDeityModel() + { + return deityModel; + } + } } Added: sandbox/cdomui/code/src/java/pcgen/gui2/util/AbstractGenericListModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/AbstractGenericListModel.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/AbstractGenericListModel.java 2010-03-24 06:49:11 UTC (rev 11533) @@ -0,0 +1,215 @@ +/* + * AbstractGenericListModel.java + * Copyright 2010 (C) Connor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Mar 23, 2010, 10:30:50 PM + */ +package pcgen.gui2.util; + +import java.util.Collection; +import javax.swing.event.EventListenerList; +import javax.swing.event.ListDataEvent; +import javax.swing.event.ListDataListener; +import pcgen.gui2.util.event.GenericListDataEvent; +import pcgen.gui2.util.event.GenericListDataListener; + +/** + * + * @author Connor + */ +public abstract class AbstractGenericListModel<E> implements GenericListModel<E> +{ + + protected EventListenerList listenerList = new EventListenerList(); + + /** + * Adds a listener to the list that's notified each time a change + * to the data model occurs. + * + * @param l the <code>ListDataListener</code> to be added + */ + public void addListDataListener(ListDataListener l) + { + listenerList.add(ListDataListener.class, l); + } + + /** + * Adds a listener to the list that's notified each time a change + * to the data model occurs. + * + * @param l the <code>GenericListDataListener</code> to be added + */ + public void addGenericListDataListener(GenericListDataListener<? super E> l) + { + listenerList.add(GenericListDataListener.class, l); + } + + /** + * Removes a listener from the list that's notified each time a + * change to the data model occurs. + * + * @param l the <code>ListDataListener</code> to be removed + */ + public void removeListDataListener(ListDataListener l) + { + listenerList.remove(ListDataListener.class, l); + } + + /** + * Removes a listener from the list that's notified each time a + * change to the data model occurs. + * + * @param l the <code>GenericListDataListener</code> to be removed + */ + public void removeGenericListDataListener(GenericListDataListener<?> l) + { + listenerList.remove(GenericListDataListener.class, l); + } + + /** + * <code>AbstractListModel</code> subclasses must call this method + * <b>after</b> + * one or more elements of the list change. The changed elements + * are specified by the closed interval index0, index1 -- the endpoints + * are included. Note that + * index0 need not be less than or equal to index1. + * + * @param source the <code>ListModel</code> that changed, typically "this" + * @param index0 one end of the new interval + * @param index1 the other end of the new interval + * @see EventListenerList + * @see DefaultListModel + */ + @SuppressWarnings("unchecked") + protected void fireContentsChanged(Object source, + Collection<? extends E> data, + boolean adjusting, int index0, + int index1) + { + Object[] listeners = listenerList.getListenerList(); + GenericListDataEvent<E> e = null; + + for (int i = listeners.length - 2; i >= 0; i -= 2) + { + Object listener = listeners[i]; + if (e == null && (listener == ListDataListener.class || + listener == GenericListDataListener.class)) + { + e = new GenericListDataEvent<E>(source, data, adjusting, + ListDataEvent.CONTENTS_CHANGED, + index0, index1); + } + if (listener == ListDataListener.class) + { + ((ListDataListener) listeners[i + 1]).contentsChanged(e); + } + else if (listener == GenericListDataListener.class) + { + ((GenericListDataListener) listeners[i + 1]).contentsChanged(e); + } + } + } + + /** + * <code>AbstractListModel</code> subclasses must call this method + * <b>after</b> + * one or more elements are added to the model. The new elements + * are specified by a closed interval index0, index1 -- the enpoints + * are included. Note that + * index0 need not be less than or equal to index1. + * + * @param source the <code>ListModel</code> that changed, typically "this" + * @param index0 one end of the new interval + * @param index1 the other end of the new interval + * @see EventListenerList + * @see DefaultListModel + */ + @SuppressWarnings("unchecked") + protected void fireIntervalAdded(Object source, + Collection<? extends E> data, + boolean adjusting, int index0, int index1) + { + Object[] listeners = listenerList.getListenerList(); + GenericListDataEvent<E> e = null; + + for (int i = listeners.length - 2; i >= 0; i -= 2) + { + Object listener = listeners[i]; + if (e == null && (listener == ListDataListener.class || + listener == GenericListDataListener.class)) + { + e = new GenericListDataEvent<E>(source, data, adjusting, + ListDataEvent.INTERVAL_ADDED, + index0, index1); + } + if (listener == ListDataListener.class) + { + ((ListDataListener) listeners[i + 1]).intervalAdded(e); + } + else if (listener == GenericListDataListener.class) + { + ((GenericListDataListener) listeners[i + 1]).intervalAdded(e); + } + } + } + + /** + * <code>AbstractListModel</code> subclasses must call this method + * <b>after</b> one or more elements are removed from the model. + * <code>index0</code> and <code>index1</code> are the end points + * of the interval that's been removed. Note that <code>index0</code> + * need not be less than or equal to <code>index1</code>. + * + * @param source the <code>ListModel</code> that changed, typically "this" + * @param index0 one end of the removed interval, + * including <code>index0</code> + * @param index1 the other end of the removed interval, + * including <code>index1</code> + * @see EventListenerList + * @see DefaultListModel + */ + @SuppressWarnings("unchecked") + protected void fireIntervalRemoved(Object source, + Collection<? extends E> data, + boolean adjusting, int index0, + int index1) + { + Object[] listeners = listenerList.getListenerList(); + GenericListDataEvent<E> e = null; + + for (int i = listeners.length - 2; i >= 0; i -= 2) + { + Object listener = listeners[i]; + if (e == null && (listener == ListDataListener.class || + listener == GenericListDataListener.class)) + { + e = new GenericListDataEvent<E>(source, data, adjusting, + ListDataEvent.INTERVAL_REMOVED, + index0, index1); + } + if (listener == ListDataListener.class) + { + ((ListDataListener) listeners[i + 1]).intervalRemoved(e); + } + else if (listener == GenericListDataListener.class) + { + ((GenericListDataListener) listeners[i + 1]).intervalRemoved(e); + } + } + } + +} Added: sandbox/cdomui/code/src/java/pcgen/gui2/util/DelegatingGenericComboBoxModel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/DelegatingGenericComboBoxModel.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/DelegatingGenericComboBoxModel.java 2010-03-24 06:49:11 UTC (rev 11533) @@ -0,0 +1,132 @@ +/* + * DelegatingGenericComboBoxModel.java + * Copyright 2010 (C) Connor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Mar 23, 2010, 6:29:27 PM + */ +package pcgen.gui2.util; + +import java.util.Collection; +import javax.swing.event.ListDataListener; +import pcgen.gui2.util.event.GenericListDataListener; + +/** + * + * @author Connor + */ +public class DelegatingGenericComboBoxModel<E> extends AbstractGenericListModel<E> implements GenericComboBoxModel<E> +{ + + private GenericListModel<E> delegate = null; + private Object selectedObject = null; + + public DelegatingGenericComboBoxModel() + { + } + + public DelegatingGenericComboBoxModel(GenericListModel<E> model) + { + this.delegate = model; + } + + public E getElementAt(int index) + { + return delegate.getElementAt(index); + } + + @SuppressWarnings("unchecked") + public void setDelegateModel(GenericListModel<E> model) + { + for (GenericListDataListener<E> genericListDataListener : listenerList.getListeners(GenericListDataListener.class)) + { + if (delegate != null) + { + delegate.removeGenericListDataListener(genericListDataListener); + } + model.addGenericListDataListener(genericListDataListener); + } + for (ListDataListener listDataListener : listenerList.getListeners(ListDataListener.class)) + { + if (delegate != null) + { + delegate.removeListDataListener(listDataListener); + } + model.addListDataListener(listDataListener); + } + GenericListModel<E> oldDelegate = delegate; + this.delegate = model; + if (oldDelegate != null) + { + fireIntervalRemoved(this, new GenericListModelWrapper<E>(oldDelegate), false, 0, oldDelegate.getSize() - 1); + } + Collection<E> newList = new GenericListModelWrapper<E>(model); + fireIntervalAdded(this, newList, false, 0, model.getSize() - 1); + if(!newList.contains(selectedObject)) + { + setSelectedItem(null); + } + } + + @Override + public void addGenericListDataListener(GenericListDataListener<? super E> l) + { + delegate.addGenericListDataListener(l); + listenerList.add(GenericListDataListener.class, l); + } + + @Override + public void removeGenericListDataListener(GenericListDataListener<?> l) + { + delegate.removeGenericListDataListener(l); + listenerList.remove(GenericListDataListener.class, l); + } + + public int getSize() + { + return delegate.getSize(); + } + + @Override + public void addListDataListener(ListDataListener l) + { + delegate.addListDataListener(l); + listenerList.add(ListDataListener.class, l); + } + + @Override + public void removeListDataListener(ListDataListener l) + { + delegate.removeListDataListener(l); + listenerList.remove(ListDataListener.class, l); + } + + public void setSelectedItem(Object anObject) + { + if ((selectedObject != null && !selectedObject.equals(anObject)) || + selectedObject == null && anObject != null) + { + selectedObject = anObject; + fireContentsChanged(this, null, false, -1, -1); + } + } + + public Object getSelectedItem() + { + return selectedObject; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-24 21:41:05
|
Revision: 11534 http://pcgen.svn.sourceforge.net/pcgen/?rev=11534&view=rev Author: cpmeister Date: 2010-03-24 21:40:59 +0000 (Wed, 24 Mar 2010) Log Message: ----------- SummaryInfoTab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-03-24 06:49:11 UTC (rev 11533) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-03-24 21:40:59 UTC (rev 11534) @@ -134,6 +134,8 @@ public void removeNameChangeListener(ChangeListener listener); + public void setName(String name); + public DeityFacade getDeity(); public void setDeity(DeityFacade deity); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2010-03-24 06:49:11 UTC (rev 11533) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2010-03-24 21:40:59 UTC (rev 11534) @@ -484,6 +484,11 @@ return theCharacter.getName(); } + public void setName(String name) + { + theCharacter.setName(name); + } + private void fireChangeEvent(List<ChangeListener> listeners) { ChangeEvent event = null; Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-24 06:49:11 UTC (rev 11533) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-24 21:40:59 UTC (rev 11534) @@ -23,7 +23,10 @@ import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.util.Hashtable; +import javax.swing.ComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; @@ -39,7 +42,6 @@ import pcgen.core.facade.SimpleFacade; import pcgen.gui2.tools.CharacterStateEditable; import pcgen.gui2.util.DelegatingGenericComboBoxModel; -import pcgen.gui2.util.GenericComboBoxModel; /** * @@ -56,7 +58,6 @@ private final JComboBox alignmentBox; private final JComboBox deityBox; private final JTextField tabLabelField; - //private final JPanel basicsPanel; public SummaryInfoTab() { @@ -130,121 +131,206 @@ panel.add(comp, gbc); } - public Hashtable<Object, Object> createState(CharacterFacade character) + public Hashtable<Object, Object> createState(final CharacterFacade character) { - throw new UnsupportedOperationException("Not supported yet."); + final DelegatingGenericComboBoxModel<SimpleFacade> genderModel; + final DelegatingGenericComboBoxModel<SimpleFacade> handsModel; + final DelegatingGenericComboBoxModel<AlignmentFacade> alignmentModel; + final DelegatingGenericComboBoxModel<DeityFacade> deityModel; + + genderModel = new DelegatingGenericComboBoxModel<SimpleFacade>(); + handsModel = new DelegatingGenericComboBoxModel<SimpleFacade>(); + alignmentModel = new DelegatingGenericComboBoxModel<AlignmentFacade>(); + deityModel = new DelegatingGenericComboBoxModel<DeityFacade>(); + + //initialize alignment model + alignmentModel.setDelegateModel(character.getDataSet().getGameMode().getAlignments()); + //initialize deity model + deityModel.setDelegateModel(character.getDataSet().getDeitys()); + //initialize gender and hands models + ChangeListener listener = new ChangeListener() + { + + public void stateChanged(ChangeEvent e) + { + RaceFacade race = character.getRace(); + genderModel.setDelegateModel(race.getGenders()); + handsModel.setDelegateModel(race.getHands()); + } + + }; + listener.stateChanged(null); + character.addRaceChangeListener(listener); + //initialize gender selection + listener = new ChangeListener() + { + + public void stateChanged(ChangeEvent e) + { + genderModel.setSelectedItem(character.getGender()); + } + + }; + listener.stateChanged(null); + character.addGenderChangeListener(listener); + //initialize alignment selection + listener = new ChangeListener() + { + + public void stateChanged(ChangeEvent e) + { + alignmentModel.setSelectedItem(character.getAlignment()); + } + + }; + listener.stateChanged(null); + character.addAlignmentChangeListener(listener); + //initialize deity selection + listener = new ChangeListener() + { + + public void stateChanged(ChangeEvent e) + { + deityModel.setSelectedItem(character.getDeity()); + } + + }; + listener.stateChanged(null); + character.addDeityChangeListener(listener); + + Hashtable<Object, Object> stateTable = new Hashtable<Object, Object>(); + stateTable.put(Models.CharacterNameHandler, new CharacterNameHandler(character)); + stateTable.put(Models.PlayerNameHandler, new PlayerNameHandler(character)); + stateTable.put(Models.TabNameHandler, new TabNameHandler(character)); + stateTable.put(Models.GenderComboBoxModel, genderModel); + stateTable.put(Models.HandsComboBoxModel, handsModel); + stateTable.put(Models.AlignmentComboBoxModel, alignmentModel); + stateTable.put(Models.DeityComboBoxModel, deityModel); + return stateTable; } + private enum Models + { + + CharacterNameHandler, + PlayerNameHandler, + TabNameHandler, + GenderComboBoxModel, + HandsComboBoxModel, + AlignmentComboBoxModel, + DeityComboBoxModel + } + public void storeState(Hashtable<Object, Object> state) { - throw new UnsupportedOperationException("Not supported yet."); + ((CharacterNameHandler) state.get(Models.CharacterNameHandler)).uninstall(); + ((PlayerNameHandler) state.get(Models.PlayerNameHandler)).uninstall(); + ((TabNameHandler) state.get(Models.TabNameHandler)).uninstall(); } public void restoreState(Hashtable<?, ?> state) { - throw new UnsupportedOperationException("Not supported yet."); + ((CharacterNameHandler) state.get(Models.CharacterNameHandler)).install(); + ((PlayerNameHandler) state.get(Models.PlayerNameHandler)).install(); + ((TabNameHandler) state.get(Models.TabNameHandler)).install(); + genderBox.setModel((ComboBoxModel) state.get(Models.GenderComboBoxModel)); + handsBox.setModel((ComboBoxModel) state.get(Models.HandsComboBoxModel)); + alignmentBox.setModel((ComboBoxModel) state.get(Models.AlignmentComboBoxModel)); + deityBox.setModel((ComboBoxModel) state.get(Models.DeityComboBoxModel)); } - public static class BasicsSelectionModel + private class CharacterNameHandler implements ActionListener, ChangeListener { - private DelegatingGenericComboBoxModel<SimpleFacade> genderModel; - private DelegatingGenericComboBoxModel<SimpleFacade> handsModel; - private DelegatingGenericComboBoxModel<AlignmentFacade> alignmentModel; - private DelegatingGenericComboBoxModel<DeityFacade> deityModel; private CharacterFacade character; - public BasicsSelectionModel(CharacterFacade character) + public CharacterNameHandler(CharacterFacade character) { this.character = character; - this.genderModel = new DelegatingGenericComboBoxModel<SimpleFacade>(); - this.handsModel = new DelegatingGenericComboBoxModel<SimpleFacade>(); - raceChanged();//this intializes the gender and hands models - character.addRaceChangeListener(new ChangeListener() - { + } - public void stateChanged(ChangeEvent e) - { - raceChanged(); - } + public void install() + { + characterNameField.setText(character.getName()); + characterNameField.addActionListener(this); + character.addNameChangeListener(this); + } - }); - character.addGenderChangeListener(new ChangeListener() - { + public void uninstall() + { + characterNameField.removeActionListener(this); + character.removeNameChangeListener(this); + } - public void stateChanged(ChangeEvent e) - { - genderChanged(); - } + public void actionPerformed(ActionEvent e) + { + character.setName(characterNameField.getText()); + } - }); - this.alignmentModel = new DelegatingGenericComboBoxModel<AlignmentFacade>(); - alignmentModel.setDelegateModel(character.getDataSet().getGameMode().getAlignments()); - alignmentChanged(); - character.addAlignmentChangeListener(new ChangeListener() - { + public void stateChanged(ChangeEvent e) + { + characterNameField.setText(character.getName()); + } - public void stateChanged(ChangeEvent e) - { - alignmentChanged(); - } + } - }); - this.deityModel = new DelegatingGenericComboBoxModel<DeityFacade>(); - deityModel.setDelegateModel(character.getDataSet().getDeitys()); - deityChanged(); - character.addDeityChangeListener(new ChangeListener() - { + private class PlayerNameHandler implements ActionListener, ChangeListener + { - public void stateChanged(ChangeEvent e) - { - deityChanged(); - } + private CharacterFacade character; - }); + public PlayerNameHandler(CharacterFacade character) + { + this.character = character; } - private void genderChanged() + public void install() { - genderModel.setSelectedItem(character.getGender()); } - private void alignmentChanged() + public void uninstall() { - alignmentModel.setSelectedItem(character.getAlignment()); } - private void deityChanged() + public void actionPerformed(ActionEvent e) { - deityModel.setSelectedItem(character.getDeity()); + throw new UnsupportedOperationException("Not supported yet."); } - private void raceChanged() + public void stateChanged(ChangeEvent e) { - RaceFacade race = character.getRace(); - genderModel.setDelegateModel(race.getGenders()); - handsModel.setDelegateModel(race.getHands()); + throw new UnsupportedOperationException("Not supported yet."); } - public GenericComboBoxModel<SimpleFacade> getGenderModel() + } + + private class TabNameHandler implements ActionListener, ChangeListener + { + + private CharacterFacade character; + + public TabNameHandler(CharacterFacade character) { - return genderModel; + this.character = character; } - public GenericComboBoxModel<SimpleFacade> getHandsModel() + public void install() { - return handsModel; } - public GenericComboBoxModel<AlignmentFacade> getAlignmentModel() + public void uninstall() { - return alignmentModel; } - public GenericComboBoxModel<DeityFacade> getDeityModel() + public void actionPerformed(ActionEvent e) { - return deityModel; + throw new UnsupportedOperationException("Not supported yet."); } + public void stateChanged(ChangeEvent e) + { + throw new UnsupportedOperationException("Not supported yet."); + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jde...@us...> - 2010-03-25 12:21:06
|
Revision: 11537 http://pcgen.svn.sourceforge.net/pcgen/?rev=11537&view=rev Author: jdempsey Date: 2010-03-25 12:20:58 +0000 (Thu, 25 Mar 2010) Log Message: ----------- Implement DeityMock and associated methods Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/DeityFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/DataSetMock.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/mock/DeityMock.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java 2010-03-25 09:18:37 UTC (rev 11536) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/DataSetFacade.java 2010-03-25 12:20:58 UTC (rev 11537) @@ -52,7 +52,7 @@ public ClassFacade getClass(String className); - public GenericListModel<DeityFacade> getDeitys(); + public GenericListModel<DeityFacade> getDeities(); public GenericListModel<TempBonusFacade> getTempBonuses(); Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/DeityFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/DeityFacade.java 2010-03-25 09:18:37 UTC (rev 11536) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/DeityFacade.java 2010-03-25 12:20:58 UTC (rev 11537) @@ -25,6 +25,6 @@ * * @author Connor */ -public interface DeityFacade { +public interface DeityFacade extends InfoFacade { } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2010-03-25 09:18:37 UTC (rev 11536) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2010-03-25 12:20:58 UTC (rev 11537) @@ -88,11 +88,13 @@ private UndoManager undoManager; private DataSetFacade dataSet; private RaceFacade race; + private DeityFacade deity; private PlayerCharacter theCharacter; private List<ChangeListener> alignmentListeners = new LinkedList<ChangeListener>(); private List<ChangeListener> genderListeners = new LinkedList<ChangeListener>(); private List<ChangeListener> nameListeners = new LinkedList<ChangeListener>(); private List<ChangeListener> raceListeners = new LinkedList<ChangeListener>(); + private List<ChangeListener> deityListeners = new LinkedList<ChangeListener>(); private List<ChangeListener> tabnameListeners = new LinkedList<ChangeListener>(); /** @@ -564,22 +566,23 @@ public DeityFacade getDeity() { - throw new UnsupportedOperationException("Not supported yet."); + return deity; } public void setDeity(DeityFacade deity) { - throw new UnsupportedOperationException("Not supported yet."); + this.deity = deity; + fireChangeEvent(deityListeners); } public void addDeityChangeListener(ChangeListener listener) { - throw new UnsupportedOperationException("Not supported yet."); + deityListeners.add(listener); } public void removeDeityChangeListener(ChangeListener listener) { - throw new UnsupportedOperationException("Not supported yet."); + deityListeners.remove(listener); } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/DataSetMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/DataSetMock.java 2010-03-25 09:18:37 UTC (rev 11536) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/DataSetMock.java 2010-03-25 12:20:58 UTC (rev 11537) @@ -34,11 +34,11 @@ import pcgen.core.AbilityCategory; import pcgen.core.Campaign; import pcgen.core.Categorisable; +import pcgen.core.Deity; import pcgen.core.GameMode; import pcgen.core.Globals; import pcgen.core.PCClass; import pcgen.core.PCTemplate; -import pcgen.core.PObject; import pcgen.core.Race; import pcgen.core.Skill; import pcgen.core.bonus.BonusObj; @@ -83,6 +83,7 @@ private DefaultGenericListModel<ClassFacade> classes; private DefaultGenericListModel<TempBonusFacade> tempBonuses; private DefaultGenericListModel<TemplateFacade> templates; + private DefaultGenericListModel<DeityFacade> deities; private GameModeMock gameMode; public DataSetMock(GameMode gameMode) @@ -426,9 +427,21 @@ return templates; } - public GenericListModel<DeityFacade> getDeitys() + /* (non-Javadoc) + * @see pcgen.core.facade.DataSetFacade#getDeities() + */ + public GenericListModel<DeityFacade> getDeities() { - throw new UnsupportedOperationException("Not supported yet."); + if (deities == null) + { + deities = new DefaultGenericListModel<DeityFacade>(); + for (Deity deity : Globals.getContext().ref.getConstructedCDOMObjects(Deity.class)) + { + DeityFacade facade = new DeityMock(deity); + deities.add(facade); + } + } + return deities; } } Added: sandbox/cdomui/code/src/java/pcgen/gui2/mock/DeityMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/DeityMock.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/DeityMock.java 2010-03-25 12:20:58 UTC (rev 11537) @@ -0,0 +1,170 @@ +/** + * DeityMock.java + * Copyright 2009 (C) James Dempsey + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on 25/03/2010 7:26:59 PM + * + * $Id$ + */ +package pcgen.gui2.mock; + +import static pcgen.gui.HTMLUtils.BOLD; +import static pcgen.gui.HTMLUtils.BR; +import static pcgen.gui.HTMLUtils.END_BOLD; +import static pcgen.gui.HTMLUtils.END_FONT; +import static pcgen.gui.HTMLUtils.END_HTML; +import static pcgen.gui.HTMLUtils.FONT_PLUS_1; +import static pcgen.gui.HTMLUtils.HTML; +import static pcgen.gui.HTMLUtils.THREE_SPACES; + +import java.util.List; + +import pcgen.cdom.base.CDOMReference; +import pcgen.cdom.enumeration.ListKey; +import pcgen.cdom.enumeration.SourceFormat; +import pcgen.cdom.enumeration.StringKey; +import pcgen.cdom.reference.ReferenceUtilities; +import pcgen.core.Deity; +import pcgen.core.Globals; +import pcgen.core.WeaponProf; +import pcgen.core.analysis.DescriptionFormatting; +import pcgen.core.analysis.OutputNameFormatting; +import pcgen.core.facade.DeityFacade; +import pcgen.core.prereq.PrerequisiteUtilities; +import pcgen.util.PropertyFactory; + +/** + * The Class <code>RaceMock</code> is a mock implementation of the + * DeityFacade interface. It is intended to support demonstration of + * the new user interface without going to the effort of a full + * implementation of the new ui/core interaction layer. It is also a + * starting point for a future implementation of that layer. + * <p> + * <b>Issues needing resolution:</b> + * <ul> + * <li>None.</li> + * </ul> + * <br/> + * Last Editor: $Author$ + * Last Edited: $Date$ + * + * @author James Dempsey <jde...@us...> + * @version $Revision$ + */ +public class DeityMock implements DeityFacade +{ + Deity theDeity; + + /** + * Create a new Deity backing object based on a deity. + * @param deity The deity to be held + */ + public DeityMock(Deity deity) + { + theDeity = deity; + } + + public String getInfo() + { + if (theDeity != null) + { + StringBuffer infoText = + new StringBuffer().append(HTML).append(FONT_PLUS_1).append(BOLD).append( + OutputNameFormatting.piString(theDeity, false)).append(END_BOLD).append(END_FONT); + + String aString = theDeity.get(StringKey.TITLE); + + if (aString != null) + { + infoText.append(THREE_SPACES).append("(").append(aString).append(")"); + } + + infoText.append(BR); + infoText.append(PropertyFactory.getFormattedString( + "in_InfoDescription", //$NON-NLS-1$ + DescriptionFormatting.piDescString(null, theDeity))); + + List<CDOMReference<WeaponProf>> dwp = theDeity.getListFor( + ListKey.DEITYWEAPON); + if (dwp != null) + { + infoText.append(THREE_SPACES); + infoText.append(PropertyFactory.getFormattedString( + "in_deityFavWeap", //$NON-NLS-1$ + ReferenceUtilities.joinLstFormat(dwp, "|"))); + } + + aString = theDeity.get(StringKey.HOLY_ITEM); + if (aString != null) + { + infoText.append(THREE_SPACES); + infoText.append(PropertyFactory.getFormattedString( + "in_deityHolyIt", //$NON-NLS-1$ + aString)); + } + + aString = theDeity.get(StringKey.WORSHIPPERS); + if (aString != null) + { + infoText.append(THREE_SPACES); + infoText.append(PropertyFactory.getFormattedString( + "in_deityWorshippers", //$NON-NLS-1$ + aString)); + } + + aString = PrerequisiteUtilities.preReqHTMLStringsForList(null, theDeity, + theDeity.getPrerequisiteList(), false); + if (aString.length() != 0) + { + infoText.append(PropertyFactory.getFormattedString( + "in_InfoRequirements", //$NON-NLS-1$ + aString)); + } + + aString = SourceFormat.getFormattedString(theDeity, + Globals.getSourceDisplay(), true); + if (aString.length() > 0) + { + infoText.append(PropertyFactory.getFormattedString( + "in_InfoSource", //$NON-NLS-1$ + aString)); + } + + infoText.append(END_HTML); + return infoText.toString(); + } + else + { + return HTML + END_HTML; + } + } + + public String getSource() + { + return theDeity.getDefaultSourceString(); + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() + { + return theDeity.getDisplayName(); + } + +} Property changes on: sandbox/cdomui/code/src/java/pcgen/gui2/mock/DeityMock.java ___________________________________________________________________ Added: svn:keywords + Date Author Revision Id Added: svn:eol-style + native Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-25 09:18:37 UTC (rev 11536) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-25 12:20:58 UTC (rev 11537) @@ -44,6 +44,7 @@ import pcgen.core.facade.RaceFacade; import pcgen.core.facade.SimpleFacade; import pcgen.gui2.tools.CharacterStateEditable; +import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.DelegatingGenericComboBoxModel; /** @@ -225,7 +226,7 @@ //initialize alignment model alignmentModel.setDelegateModel(character.getDataSet().getGameMode().getAlignments()); //initialize deity model - deityModel.setDelegateModel(character.getDataSet().getDeitys()); + deityModel.setDelegateModel(character.getDataSet().getDeities()); //initialize gender and hands models ChangeListener listener = new ChangeListener() { @@ -233,8 +234,17 @@ public void stateChanged(ChangeEvent e) { RaceFacade race = character.getRace(); - genderModel.setDelegateModel(race.getGenders()); - handsModel.setDelegateModel(race.getHands()); + if (race != null) + { + genderModel.setDelegateModel(race.getGenders()); + handsModel.setDelegateModel(race.getHands()); + } + else + { + genderModel.setDelegateModel(new DefaultGenericListModel<SimpleFacade>()); + handsModel.setDelegateModel(new DefaultGenericListModel<SimpleFacade>()); + + } } }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-27 04:22:18
|
Revision: 11542 http://pcgen.svn.sourceforge.net/pcgen/?rev=11542&view=rev Author: cpmeister Date: 2010-03-27 04:22:10 +0000 (Sat, 27 Mar 2010) Log Message: ----------- SummaryInfoTab update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.form sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/util/SignIcon.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelFacade.java 2010-03-26 21:48:42 UTC (rev 11541) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterLevelFacade.java 2010-03-27 04:22:10 UTC (rev 11542) @@ -29,28 +29,34 @@ public interface CharacterLevelFacade { - /** - * - * This method handles adding and removing skill points to the character's - * skills. This methods takes into acount the skill cost and spendable skill - * points and will call appropriate message dialogs when an inappropriate - * action is called. - * @param skill the skill to invest points in - * @param points the amount of points to invest - * @return true if the points were successfuly invested - */ - public boolean investSkillPoints(SkillFacade skill, int points); + /** + * + * This method handles adding and removing skill points to the character's + * skills. This methods takes into acount the skill cost and spendable skill + * points and will call appropriate message dialogs when an inappropriate + * action is called. + * @param skill the skill to invest points in + * @param points the amount of points to invest + * @return true if the points were successfuly invested + */ + public boolean investSkillPoints(SkillFacade skill, int points); - public ClassFacade getSelectedClass(); + public ClassFacade getSelectedClass(); - public SkillCost getSkillCost(SkillFacade skill); + public SkillCost getSkillCost(SkillFacade skill); - public int getRankCost(SkillCost cost); + public int getRankCost(SkillCost cost); - public int getGainedSkillPoints(); + public int getGainedSkillPoints(); - public void setGainedSkillPoints(int points); + public void setGainedSkillPoints(int points); - public int getSpentSkillPoints(); + public int getSpentSkillPoints(); + public int getHPGained(); + + public int getHPRolled(); + + public void setHPRolled(int hp); + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java 2010-03-26 21:48:42 UTC (rev 11541) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterLevelMock.java 2010-03-27 04:22:10 UTC (rev 11542) @@ -20,7 +20,6 @@ * * $Id$ */ - package pcgen.gui2.mock; import java.util.HashMap; @@ -53,6 +52,7 @@ */ public class CharacterLevelMock implements CharacterLevelFacade { + private ClassMock selectedClass; private int gainedSkillPoints; private int spentSkillPoints; @@ -67,8 +67,7 @@ spentSkillPoints = 0; skillRanks = new HashMap<SkillFacade, Double>(); } - - + /* (non-Javadoc) * @see pcgen.core.facade.CharacterLevelFacade#getGainedSkillPoints() */ @@ -124,7 +123,7 @@ */ public boolean investSkillPoints(SkillFacade skill, int points) { - if (points+spentSkillPoints > gainedSkillPoints) + if (points + spentSkillPoints > gainedSkillPoints) { return false; } @@ -143,12 +142,14 @@ numRanks = 0.0d; } int spent = spentSkillPoints + points; - if(spent < 0) + if (spent < 0) + { return false; + } // Can't check max ranks here as we need to know the previous levels and the ranks they have too spentSkillPoints = spent; - numRanks += ((double)points) / cost; + numRanks += ((double) points) / cost; skillRanks.put(skill, numRanks); return true; } @@ -163,4 +164,20 @@ Double numRanks = skillRanks.get(skill); return numRanks == null ? 0.0d : numRanks; } + + public int getHPGained() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public int getHPRolled() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void setHPRolled(int hp) + { + throw new UnsupportedOperationException("Not supported yet."); + } + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.form =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.form 2010-03-26 21:48:42 UTC (rev 11541) +++ sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.form 2010-03-27 04:22:10 UTC (rev 11542) @@ -11,8 +11,104 @@ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> - <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-106,0,0,2,28"/> + <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-106,0,0,1,-25"/> </AuxValues> - <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> + <SubComponents> + <Component class="javax.swing.JLabel" name="jLabel1"> + <Properties> + <Property name="text" type="java.lang.String" value="Add Levels:"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.5" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JLabel" name="jLabel2"> + <Properties> + <Property name="text" type="java.lang.String" value="Remove Levels:"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.5" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JTextField" name="jTextField1"> + <Properties> + <Property name="columns" type="int" value="3"/> + <Property name="text" type="java.lang.String" value="jTextField1"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JTextField" name="jTextField2"> + <Properties> + <Property name="columns" type="int" value="3"/> + <Property name="text" type="java.lang.String" value="jTextField2"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JButton" name="jButton1"> + <Properties> + <Property name="text" type="java.lang.String" value="jButton1"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JButton" name="jButton2"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Lucida Console" size="18" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="-"/> + <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor"> + <Insets value="[0, 0, 0, 0]"/> + </Property> + <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[15, 14]"/> + </Property> + <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> + <Dimension value="[40, 14]"/> + </Property> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JLabel" name="jLabel3"> + <Properties> + <Property name="text" type="java.lang.String" value="jLabel3"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JLabel" name="jLabel4"> + <Properties> + <Property name="text" type="java.lang.String" value="jLabel4"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + </SubComponents> </Form> Modified: sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.java 2010-03-26 21:48:42 UTC (rev 11541) +++ sandbox/cdomui/code/src/java/pcgen/gui2/proto/SummaryPanel.java 2010-03-27 04:22:10 UTC (rev 11542) @@ -24,12 +24,71 @@ */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { + java.awt.GridBagConstraints gridBagConstraints; - setLayout(new java.awt.BorderLayout()); + jLabel1 = new javax.swing.JLabel(); + jLabel2 = new javax.swing.JLabel(); + jTextField1 = new javax.swing.JTextField(); + jTextField2 = new javax.swing.JTextField(); + jButton1 = new javax.swing.JButton(); + jButton2 = new javax.swing.JButton(); + jLabel3 = new javax.swing.JLabel(); + jLabel4 = new javax.swing.JLabel(); + + setLayout(new java.awt.GridBagLayout()); + + jLabel1.setText("Add Levels:"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.weightx = 0.5; + add(jLabel1, gridBagConstraints); + + jLabel2.setText("Remove Levels:"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.weightx = 0.5; + add(jLabel2, gridBagConstraints); + + jTextField1.setColumns(3); + jTextField1.setText("jTextField1"); + add(jTextField1, new java.awt.GridBagConstraints()); + + jTextField2.setColumns(3); + jTextField2.setText("jTextField2"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + add(jTextField2, gridBagConstraints); + + jButton1.setText("jButton1"); + add(jButton1, new java.awt.GridBagConstraints()); + + jButton2.setFont(new java.awt.Font("Lucida Console", 1, 18)); // NOI18N + jButton2.setText("-"); + jButton2.setMargin(new java.awt.Insets(0, 0, 0, 0)); + jButton2.setMinimumSize(new java.awt.Dimension(15, 14)); + jButton2.setPreferredSize(new java.awt.Dimension(40, 14)); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + add(jButton2, gridBagConstraints); + + jLabel3.setText("jLabel3"); + add(jLabel3, new java.awt.GridBagConstraints()); + + jLabel4.setText("jLabel4"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + add(jLabel4, gridBagConstraints); }// </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton jButton1; + private javax.swing.JButton jButton2; + private javax.swing.JLabel jLabel1; + private javax.swing.JLabel jLabel2; + private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; + private javax.swing.JTextField jTextField1; + private javax.swing.JTextField jTextField2; // End of variables declaration//GEN-END:variables } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-26 21:48:42 UTC (rev 11541) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-27 04:22:10 UTC (rev 11542) @@ -26,29 +26,42 @@ import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.text.NumberFormat; +import java.util.HashMap; import java.util.Hashtable; +import java.util.Map; import javax.swing.BorderFactory; import javax.swing.ComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; +import javax.swing.JFormattedTextField; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.Spring; import javax.swing.SpringLayout; import javax.swing.border.TitledBorder; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import javax.swing.event.ListDataEvent; +import javax.swing.event.ListDataListener; +import javax.swing.table.AbstractTableModel; import org.apache.commons.lang.ArrayUtils; import pcgen.core.facade.AlignmentFacade; import pcgen.core.facade.CharacterFacade; +import pcgen.core.facade.CharacterLevelFacade; +import pcgen.core.facade.ClassFacade; import pcgen.core.facade.DeityFacade; import pcgen.core.facade.RaceFacade; import pcgen.core.facade.SimpleFacade; import pcgen.gui2.tools.CharacterStateEditable; import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.DelegatingGenericComboBoxModel; +import pcgen.gui2.util.GenericListModel; +import pcgen.gui2.util.SignIcon; +import pcgen.gui2.util.SignIcon.Sign; /** * @@ -71,6 +84,7 @@ private final JTextField expField; private final JTextField nextlevelField; private final JTextField expmodField; + private final JTable classLevelTable; private final JComboBox genderComboBox; private final JComboBox handsComboBox; private final JComboBox alignmentComboBox; @@ -99,6 +113,7 @@ this.expField = new JTextField(); this.nextlevelField = new JTextField(); this.expmodField = new JTextField(); + this.classLevelTable = new JTable(); this.genderComboBox = new JComboBox(); this.handsComboBox = new JComboBox(); this.alignmentComboBox = new JComboBox(); @@ -114,8 +129,8 @@ this.descTabButton = new JButton(); this.sheetTabButton = new JButton(); this.createMonsterButton = new JButton(); - this.expaddButton = new JButton(); - this.expsubtractButton = new JButton(); + this.expaddButton = createSignButton(Sign.Plus); + this.expsubtractButton = createSignButton(Sign.Minus); initComponents(); } @@ -127,8 +142,8 @@ descTabButton.setText("Open Description Tab"); sheetTabButton.setText("Open Character Sheet Tab"); createMonsterButton.setText("Create Monster Character"); - expaddButton.setText("+"); - expsubtractButton.setText("-"); + //expaddButton.setText("+"); + //expsubtractButton.setText("-"); setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); @@ -174,6 +189,7 @@ */ racePanel.setOpaque(false); classPanel.setOpaque(false); + JPanel expmodPanel = new JPanel(new GridBagLayout()); JPanel levelPanel = new JPanel(); JLabel raceLabel = createLabel("Race:"); JLabel ageLabel = createLabel("Age:"); @@ -196,7 +212,8 @@ Spring.width(ageField))); Spring expSpring = Spring.sum(insetSpring, Spring.width(expLabel)); Spring levelSpring = Spring.sum(insetSpring, Spring.width(nextlevelLabel)); - comboBoxSpring = maxSpring(raceSpring, ageSpring, expSpring, levelSpring); + Spring expmodSpring = Spring.sum(insetSpring, Spring.width(expmodPanel)); + comboBoxSpring = maxSpring(raceSpring, ageSpring, expSpring, levelSpring, expmodSpring); } /* * racePanel @@ -275,26 +292,22 @@ setSpringLayerConstraints(layout, classPanel, classPanelInsets, expmodLabel, nextlevelField, 10); - - - - JPanel panel = new JPanel(new GridBagLayout()); { GridBagConstraints gbc = new GridBagConstraints(); gbc.fill = GridBagConstraints.HORIZONTAL; gbc.weightx = 1.0; - panel.add(expaddButton, gbc); - panel.add(expsubtractButton, gbc); + expmodPanel.add(expaddButton, gbc); + expmodPanel.add(expsubtractButton, gbc); } setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, - panel, expmodField, expmodLabel); - layout.putConstraint(SpringLayout.EAST, panel, + expmodPanel, expmodField, expmodLabel); + layout.putConstraint(SpringLayout.EAST, expmodPanel, 0, SpringLayout.WEST, expmodField); layout.putConstraint(SpringLayout.SOUTH, expmodField, -classPanelInsets.bottom, SpringLayout.SOUTH, classPanel); - springPanel.add(panel); + springPanel.add(expmodPanel); springPanel.add(racePanel); springPanel.add(raceLabel); springPanel.add(raceComboBox); @@ -373,8 +386,50 @@ private void initLevelPanel(JPanel panel) { + panel.setLayout(new GridBagLayout()); + JLabel addLabel = createLabel("Add Levels:"); + JLabel removeLabel = createLabel("Remove Levels:"); + JFormattedTextField addField = new JFormattedTextField(NumberFormat.getIntegerInstance()); + JFormattedTextField removeField = new JFormattedTextField(NumberFormat.getIntegerInstance()); + JButton addLevelButton = createSignButton(Sign.Plus); + JButton removeLevelButton = createSignButton(Sign.Minus); + JLabel darrowLabel = new JLabel(); + JLabel uarrowLabel = new JLabel(); + + addField.setColumns(5); + removeField.setColumns(5); + + GridBagConstraints gbc1 = new GridBagConstraints(); + GridBagConstraints gbc2 = new GridBagConstraints(); + gbc1.weightx = gbc2.weightx = 0.5; + gbc2.gridwidth = GridBagConstraints.REMAINDER; + panel.add(addLabel, gbc1); + panel.add(removeLabel, gbc2); + panel.add(addField, gbc1); + panel.add(removeField, gbc2); + panel.add(addLevelButton, gbc1); + panel.add(removeLevelButton, gbc2); + panel.add(darrowLabel, gbc1); + panel.add(uarrowLabel, gbc2); + + gbc2.weightx = 0; + gbc2.fill = GridBagConstraints.BOTH; + } + private void initLevelTablePanel(JPanel panel) + { + //panel.set + } + + private static JButton createSignButton(Sign sign) + { + JButton button = new JButton(); + button.setMargin(new Insets(0, 0, 0, 0)); + button.setIcon(new SignIcon(sign)); + return button; + } + private static JLabel createLabel(String text) { JLabel label = new JLabel(text); @@ -678,4 +733,94 @@ } } + + private class ClassLevelTableModel extends AbstractTableModel implements ListDataListener + { + + private GenericListModel<CharacterLevelFacade> levels; + private Map<ClassFacade, Integer> finalLevelMap; + private CharacterFacade character; + + public ClassLevelTableModel(CharacterFacade character) + { + this.character = character; + this.levels = character.getLevels(); + resetLevelMap(); + } + + private void resetLevelMap() + { + finalLevelMap.clear(); + for (int i = levels.getSize() - 1; i >= 0; i--) + { + ClassFacade c = levels.getElementAt(i).getSelectedClass(); + if (!finalLevelMap.containsKey(c)) + { + finalLevelMap.put(c, i); + } + } + } + + public int getRowCount() + { + return levels.getSize() + 1; + } + + public int getColumnCount() + { + return 3; + } + + public Object getValueAt(int rowIndex, int columnIndex) + { + if (rowIndex == levels.getSize()) + { + return null; + } + switch (columnIndex) + { + case 0: + return rowIndex + 1; + case 1: + return levels.getElementAt(rowIndex).getHPGained(); + case 2: + ClassFacade c = levels.getElementAt(rowIndex).getSelectedClass(); + if (finalLevelMap.get(c) == rowIndex) + { + return c.toString() + " (" + character.getClassLevel(c) + ")"; + } + return c.toString(); + default: + return null; + } + } + + public void intervalAdded(ListDataEvent e) + { + Map<ClassFacade, Integer> finalMap = new HashMap<ClassFacade, Integer>(); + for (int i = e.getIndex1(); i >= e.getIndex0(); i--) + { + ClassFacade c = levels.getElementAt(i).getSelectedClass(); + if (!finalMap.containsKey(c)) + { + finalMap.put(c, i); + } + } + finalLevelMap.putAll(finalMap); + fireTableRowsInserted(e.getIndex0(), e.getIndex1()); + } + + public void intervalRemoved(ListDataEvent e) + { + resetLevelMap(); + fireTableRowsDeleted(e.getIndex0(), e.getIndex1()); + } + + public void contentsChanged(ListDataEvent e) + { + resetLevelMap(); + fireTableDataChanged(); + } + + } } Added: sandbox/cdomui/code/src/java/pcgen/gui2/util/SignIcon.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/SignIcon.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/SignIcon.java 2010-03-27 04:22:10 UTC (rev 11542) @@ -0,0 +1,67 @@ +/* + * SignIcon.java + * Copyright 2010 (C) Connor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Mar 26, 2010, 5:54:11 PM + */ +package pcgen.gui2.util; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Graphics; +import javax.swing.Icon; + +/** + * + * @author Connor + */ +public class SignIcon implements Icon +{ + + public enum Sign + { + + Plus, Minus; + } + private Sign sign; + + public SignIcon(Sign sign) + { + this.sign = sign; + } + + public void paintIcon(Component c, Graphics g, int x, int y) + { + g.setColor(Color.BLACK); + g.fillRect(x, y + 3, 9, 3); + if (sign == Sign.Plus) + { + g.fillRect(x + 3, y, 3, 9); + } + } + + public int getIconWidth() + { + return 9; + } + + public int getIconHeight() + { + return 9; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-29 21:31:37
|
Revision: 11563 http://pcgen.svn.sourceforge.net/pcgen/?rev=11563&view=rev Author: cpmeister Date: 2010-03-29 21:31:30 +0000 (Mon, 29 Mar 2010) Log Message: ----------- SummaryInfoTab update: added GenderFacade Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/RaceFacade.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java sandbox/cdomui/code/src/java/pcgen/gui2/mock/RaceMock.java sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/core/facade/GenderFacade.java Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-03-29 21:08:20 UTC (rev 11562) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CharacterFacade.java 2010-03-29 21:31:30 UTC (rev 11563) @@ -23,7 +23,6 @@ import javax.swing.event.ChangeListener; import javax.swing.undo.UndoManager; -import pcgen.cdom.enumeration.Gender; import pcgen.cdom.enumeration.SkillCost; import pcgen.gui2.util.GenericComboBoxModel; import pcgen.gui2.util.GenericListModel; @@ -37,7 +36,7 @@ public UndoManager getUndoManager(); - public Gender getGender(); + public GenderFacade getGender(); public void setAlignment(AlignmentFacade alignment); @@ -47,7 +46,7 @@ public void removeAlignmentChangeListener(ChangeListener listener); - public void setGender(Gender gender); + public void setGender(GenderFacade gender); public void addGenderChangeListener(ChangeListener listener); Added: sandbox/cdomui/code/src/java/pcgen/core/facade/GenderFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/GenderFacade.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/GenderFacade.java 2010-03-29 21:31:30 UTC (rev 11563) @@ -0,0 +1,30 @@ +/* + * GenderFacade.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Mar 29, 2010, 11:35:09 AM + */ + +package pcgen.core.facade; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public interface GenderFacade { + +} Modified: sandbox/cdomui/code/src/java/pcgen/core/facade/RaceFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/RaceFacade.java 2010-03-29 21:08:20 UTC (rev 11562) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/RaceFacade.java 2010-03-29 21:31:30 UTC (rev 11563) @@ -33,7 +33,7 @@ public int getRacialAdj(StatFacade stat); - public GenericListModel<SimpleFacade> getGenders(); + public GenericListModel<GenderFacade> getGenders(); public GenericListModel<SimpleFacade> getHands(); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2010-03-29 21:08:20 UTC (rev 11562) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CharacterMock.java 2010-03-29 21:31:30 UTC (rev 11563) @@ -32,7 +32,6 @@ import javax.swing.event.ChangeListener; import javax.swing.undo.UndoManager; -import pcgen.cdom.enumeration.Gender; import pcgen.cdom.enumeration.SkillCost; import pcgen.core.PlayerCharacter; import pcgen.core.SettingsHandler; @@ -45,6 +44,7 @@ import pcgen.core.facade.DataSetFacade; import pcgen.core.facade.DeityFacade; import pcgen.core.facade.EquipmentSetFacade; +import pcgen.core.facade.GenderFacade; import pcgen.core.facade.RaceFacade; import pcgen.core.facade.SkillFacade; import pcgen.core.facade.StatFacade; @@ -81,7 +81,7 @@ private DefaultGenericListModel<TempBonusFacade> appliedTempBonuses; private AlignmentFacade alignment; private DefaultGenericComboBoxModel<EquipmentSetFacade> equipmentSets; - private Gender gender; + private GenderFacade gender; private DefaultGenericListModel<CharacterLevelFacade> pcClassLevels; private Map<StatFacade, Integer> statScoreMap; private Map<AbilityCategoryFacade, Integer> remainingAbilitySelections; @@ -135,7 +135,7 @@ * @see pcgen.core.facade.CharacterFacade#removeAbility(pcgen.core.facade.AbilityCategoryFacade, pcgen.core.facade.AbilityFacade) */ public void removeAbility(AbilityCategoryFacade category, - AbilityFacade ability) + AbilityFacade ability) { List<AbilityFacade> abList = abilityListMap.get(category); if (abList != null) @@ -148,7 +148,7 @@ * @see pcgen.core.facade.CharacterFacade#getAbilities(pcgen.core.facade.AbilityCategoryFacade) */ public GenericListModel<AbilityFacade> getAbilities( - AbilityCategoryFacade category) + AbilityCategoryFacade category) { DefaultGenericListModel<AbilityFacade> abList = abilityListMap.get(category); if (abList == null) @@ -171,7 +171,7 @@ * @see pcgen.core.facade.CharacterFacade#setRemainingSelection(pcgen.core.facade.AbilityCategoryFacade, int) */ public void setRemainingSelection(AbilityCategoryFacade category, - int remaining) + int remaining) { remainingAbilitySelections.put(category, remaining); } @@ -179,8 +179,7 @@ /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#hasAbility(pcgen.core.facade.AbilityCategoryFacade, pcgen.core.facade.AbilityFacade) */ - public boolean hasAbility(AbilityCategoryFacade category, - AbilityFacade ability) + public boolean hasAbility(AbilityCategoryFacade category, AbilityFacade ability) { List<AbilityFacade> abList = abilityListMap.get(category); if (abList == null) @@ -329,7 +328,7 @@ /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#getGender() */ - public Gender getGender() + public GenderFacade getGender() { return gender; } @@ -337,7 +336,7 @@ /* (non-Javadoc) * @see pcgen.core.facade.CharacterFacade#setGender(pcgen.cdom.enumeration.Gender) */ - public void setGender(Gender gender) + public void setGender(GenderFacade gender) { this.gender = gender; fireChangeEvent(genderListeners); @@ -584,5 +583,4 @@ { deityListeners.remove(listener); } - } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/mock/RaceMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/RaceMock.java 2010-03-29 21:08:20 UTC (rev 11562) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/RaceMock.java 2010-03-29 21:31:30 UTC (rev 11563) @@ -25,6 +25,7 @@ import pcgen.cdom.enumeration.Gender; import pcgen.core.Race; import pcgen.core.facade.AlignmentFacade; +import pcgen.core.facade.GenderFacade; import pcgen.core.facade.RaceFacade; import pcgen.core.facade.SimpleFacade; import pcgen.core.facade.StatFacade; @@ -53,35 +54,41 @@ public class RaceMock implements RaceFacade { - private static final DefaultGenericListModel<SimpleFacade> genderList = - new DefaultGenericListModel<SimpleFacade>(); + private static final DefaultGenericListModel<GenderFacade> genderList = + new DefaultGenericListModel<GenderFacade>(); private static final DefaultGenericListModel<SimpleFacade> handList = - new DefaultGenericListModel<SimpleFacade>(); - private static class SimpleFacadeImpl implements - SimpleFacade{ + new DefaultGenericListModel<SimpleFacade>(); + + private static class SimpleFacadeImpl implements SimpleFacade + { + private String name; + public SimpleFacadeImpl(String name) { this.name = name; } + @Override public String toString() { return name; } + } + static { Gender[] genders = Gender.values(); for (final Gender gender : genders) { - genderList.add(new SimpleFacade() + genderList.add(new GenderFacade() { @Override public String toString() { - return gender.toString(); + return gender.name(); } }); @@ -144,7 +151,7 @@ return theRace.getDisplayName(); } - public GenericListModel<SimpleFacade> getGenders() + public GenericListModel<GenderFacade> getGenders() { return genderList; } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-29 21:08:20 UTC (rev 11562) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tabs/SummaryInfoTab.java 2010-03-29 21:31:30 UTC (rev 11563) @@ -62,13 +62,13 @@ import javax.swing.table.TableModel; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.math.NumberUtils; -import pcgen.cdom.enumeration.Gender; import pcgen.core.facade.AlignmentFacade; import pcgen.core.facade.CharacterFacade; import pcgen.core.facade.CharacterLevelFacade; import pcgen.core.facade.ClassFacade; import pcgen.core.facade.DataSetFacade; import pcgen.core.facade.DeityFacade; +import pcgen.core.facade.GenderFacade; import pcgen.core.facade.RaceFacade; import pcgen.core.facade.SimpleFacade; import pcgen.gui2.tools.CharacterStateEditable; @@ -203,10 +203,10 @@ private void setPanelTitle(JPanel panel, String title) { panel.setBorder(BorderFactory.createTitledBorder(null, - title, - TitledBorder.CENTER, - TitledBorder.DEFAULT_POSITION, - titleFont)); + title, + TitledBorder.CENTER, + TitledBorder.DEFAULT_POSITION, + titleFont)); } private void initRightPanel(JPanel springPanel) @@ -246,79 +246,79 @@ * racePanel */ layout.putConstraint(SpringLayout.WEST, racePanel, - 0, - SpringLayout.WEST, springPanel); + 0, + SpringLayout.WEST, springPanel); layout.putConstraint(SpringLayout.NORTH, racePanel, - 0, - SpringLayout.NORTH, springPanel); + 0, + SpringLayout.NORTH, springPanel); layout.putConstraint(SpringLayout.EAST, racePanel, - 0, - SpringLayout.EAST, springPanel); + 0, + SpringLayout.EAST, springPanel); layout.putConstraint(SpringLayout.SOUTH, racePanel, - racePanelInsets.bottom, - SpringLayout.SOUTH, createMonsterButton); + racePanelInsets.bottom, + SpringLayout.SOUTH, createMonsterButton); setSpringLayerConstraints(layout, racePanel, racePanelInsets, comboBoxSpring, - raceLabel, raceComboBox, null); + raceLabel, raceComboBox, null); layout.putConstraint(SpringLayout.NORTH, raceComboBox, - racePanelInsets.top, - SpringLayout.NORTH, racePanel); + racePanelInsets.top, + SpringLayout.NORTH, racePanel); setSpringLayerConstraints(layout, racePanel, racePanelInsets, comboBoxSpring, - ageLabel, ageComboBox, raceComboBox); + ageLabel, ageComboBox, raceComboBox); /* * ageField constraints */ layout.putConstraint(SpringLayout.WEST, ageField, - 0, - SpringLayout.EAST, ageLabel); + 0, + SpringLayout.EAST, ageLabel); layout.putConstraint(SpringLayout.EAST, ageField, - 0, - SpringLayout.WEST, ageComboBox); + 0, + SpringLayout.WEST, ageComboBox); layout.putConstraint(SpringLayout.NORTH, ageField, - 0, - SpringLayout.NORTH, ageComboBox); + 0, + SpringLayout.NORTH, ageComboBox); layout.putConstraint(SpringLayout.SOUTH, ageField, - 0, - SpringLayout.SOUTH, ageComboBox); + 0, + SpringLayout.SOUTH, ageComboBox); setSpringLayerConstraints(layout, racePanel, racePanelInsets, - createMonsterButton, ageComboBox, 0); + createMonsterButton, ageComboBox, 0); /* * classPanel */ layout.putConstraint(SpringLayout.WEST, classPanel, - 0, - SpringLayout.WEST, springPanel); + 0, + SpringLayout.WEST, springPanel); layout.putConstraint(SpringLayout.EAST, classPanel, - 0, - SpringLayout.EAST, springPanel); + 0, + SpringLayout.EAST, springPanel); layout.putConstraint(SpringLayout.NORTH, classPanel, - 0, - SpringLayout.SOUTH, racePanel); + 0, + SpringLayout.SOUTH, racePanel); layout.putConstraint(SpringLayout.SOUTH, springPanel, - 0, - SpringLayout.SOUTH, classPanel); + 0, + SpringLayout.SOUTH, classPanel); setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, - classLabel, classComboBox, null); + classLabel, classComboBox, null); layout.putConstraint(SpringLayout.NORTH, classComboBox, - classPanelInsets.top, - SpringLayout.NORTH, classPanel); + classPanelInsets.top, + SpringLayout.NORTH, classPanel); setSpringLayerConstraints(layout, classPanel, classPanelInsets, - levelPanel, classComboBox, 10); + levelPanel, classComboBox, 10); setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, - expLabel, expField, levelPanel); + expLabel, expField, levelPanel); setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, - nextlevelLabel, nextlevelField, expField); + nextlevelLabel, nextlevelField, expField); setSpringLayerConstraints(layout, classPanel, classPanelInsets, - expmodLabel, nextlevelField, 10); + expmodLabel, nextlevelField, 10); { GridBagConstraints gbc = new GridBagConstraints(); gbc.fill = GridBagConstraints.HORIZONTAL; @@ -327,13 +327,13 @@ expmodPanel.add(expsubtractButton, gbc); } setSpringLayerConstraints(layout, classPanel, classPanelInsets, comboBoxSpring, - expmodPanel, expmodField, expmodLabel); + expmodPanel, expmodField, expmodLabel); layout.putConstraint(SpringLayout.EAST, expmodPanel, - 0, - SpringLayout.WEST, expmodField); + 0, + SpringLayout.WEST, expmodField); layout.putConstraint(SpringLayout.SOUTH, classPanel, - classPanelInsets.bottom, - SpringLayout.SOUTH, expmodField); + classPanelInsets.bottom, + SpringLayout.SOUTH, expmodField); springPanel.add(expmodPanel); springPanel.add(racePanel); springPanel.add(raceLabel); @@ -356,47 +356,47 @@ } private static void setSpringLayerConstraints(SpringLayout layout, JPanel panel, Insets insets, - JComponent comp, JComponent above, int pad) + JComponent comp, JComponent above, int pad) { layout.putConstraint(SpringLayout.NORTH, comp, - pad, - SpringLayout.SOUTH, above); + pad, + SpringLayout.SOUTH, above); layout.putConstraint(SpringLayout.WEST, comp, - insets.left, - SpringLayout.WEST, panel); + insets.left, + SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.EAST, comp, - -insets.right, - SpringLayout.EAST, panel); + -insets.right, + SpringLayout.EAST, panel); } private static void setSpringLayerConstraints(SpringLayout layout, JPanel panel, Insets insets, Spring compSpring, - JComponent label, JComponent comp, JComponent above) + JComponent label, JComponent comp, JComponent above) { layout.putConstraint(SpringLayout.WEST, label, - insets.left, - SpringLayout.WEST, panel); + insets.left, + SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.NORTH, label, - 0, - SpringLayout.NORTH, comp); + 0, + SpringLayout.NORTH, comp); layout.putConstraint(SpringLayout.SOUTH, label, - 0, - SpringLayout.SOUTH, comp); + 0, + SpringLayout.SOUTH, comp); layout.putConstraint(SpringLayout.WEST, comp, - compSpring, - SpringLayout.WEST, panel); + compSpring, + SpringLayout.WEST, panel); layout.putConstraint(SpringLayout.EAST, comp, - -insets.right, - SpringLayout.EAST, panel); + -insets.right, + SpringLayout.EAST, panel); if (above != null) { layout.putConstraint(SpringLayout.NORTH, comp, - 0, - SpringLayout.SOUTH, above); + 0, + SpringLayout.SOUTH, above); } layout.putConstraint(SpringLayout.SOUTH, comp, - new PreferredHeightSpring(comp), - SpringLayout.NORTH, comp); + new PreferredHeightSpring(comp), + SpringLayout.NORTH, comp); } private static class PreferredHeightSpring extends Spring @@ -544,7 +544,7 @@ columnModel.addColumn(createTableColumn(0, "Level", headerRenderer, false)); columnModel.addColumn(createTableColumn(1, "HP", headerRenderer, false)); columnModel.addColumn(createTableColumn(2, "Class (All Levels In Class)", - headerRenderer, true)); + headerRenderer, true)); classLevelTable.setColumnModel(columnModel); classLevelTable.setAutoCreateColumnsFromModel(false); classLevelTable.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN); @@ -554,55 +554,55 @@ } layout.putConstraint(SpringLayout.NORTH, layeredPane, - 0, - SpringLayout.NORTH, classLevelTable); + 0, + SpringLayout.NORTH, classLevelTable); layout.putConstraint(SpringLayout.WEST, layeredPane, - 0, - SpringLayout.WEST, classLevelTable); + 0, + SpringLayout.WEST, classLevelTable); layout.putConstraint(SpringLayout.EAST, layeredPane, - 0, - SpringLayout.EAST, classLevelTable); + 0, + SpringLayout.EAST, classLevelTable); layout.putConstraint(SpringLayout.SOUTH, layeredPane, - 0, - SpringLayout.SOUTH, classLevelTable); + 0, + SpringLayout.SOUTH, classLevelTable); int rowheight = classLevelTable.getRowHeight(); layout.putConstraint(SpringLayout.NORTH, addLevelButton, - -rowheight, - SpringLayout.SOUTH, classLevelTable); + -rowheight, + SpringLayout.SOUTH, classLevelTable); layout.putConstraint(SpringLayout.SOUTH, addLevelButton, - 0, - SpringLayout.SOUTH, classLevelTable); + 0, + SpringLayout.SOUTH, classLevelTable); layout.putConstraint(SpringLayout.EAST, addLevelButton, - 0, - SpringLayout.EAST, classLevelTable); + 0, + SpringLayout.EAST, classLevelTable); layout.putConstraint(SpringLayout.EAST, removeLevelButton, - 0, - SpringLayout.EAST, classLevelTable); + 0, + SpringLayout.EAST, classLevelTable); layout.putConstraint(SpringLayout.NORTH, removeLevelButton, - -rowheight, - SpringLayout.NORTH, addLevelButton); + -rowheight, + SpringLayout.NORTH, addLevelButton); layout.putConstraint(SpringLayout.SOUTH, removeLevelButton, - 0, - SpringLayout.NORTH, addLevelButton); + 0, + SpringLayout.NORTH, addLevelButton); layout.putConstraint(SpringLayout.NORTH, addLevelLabel, - -rowheight, - SpringLayout.SOUTH, classLevelTable); + -rowheight, + SpringLayout.SOUTH, classLevelTable); layout.putConstraint(SpringLayout.SOUTH, addLevelLabel, - 0, - SpringLayout.SOUTH, classLevelTable); + 0, + SpringLayout.SOUTH, classLevelTable); layout.putConstraint(SpringLayout.EAST, addLevelLabel, - 0, - SpringLayout.WEST, addLevelButton); + 0, + SpringLayout.WEST, addLevelButton); pane.setColumnHeaderView(tableHeader); pane.setViewportView(layeredPane); } private static TableColumn createTableColumn(int index, String headerValue, - TableCellRenderer headerRenderer, boolean resizable) + TableCellRenderer headerRenderer, boolean resizable) { TableColumn column = new TableColumn(index); column.setHeaderValue(headerValue); @@ -711,14 +711,14 @@ public Hashtable<Object, Object> createState(final CharacterFacade character) { - final DelegatingGenericComboBoxModel<SimpleFacade> genderModel; + final DelegatingGenericComboBoxModel<GenderFacade> genderModel; final DelegatingGenericComboBoxModel<SimpleFacade> handsModel; final DelegatingGenericComboBoxModel<AlignmentFacade> alignmentModel; final DelegatingGenericComboBoxModel<DeityFacade> deityModel; final DelegatingGenericComboBoxModel<RaceFacade> raceModel; final DelegatingGenericComboBoxModel<ClassFacade> classModel; - genderModel = new DelegatingGenericComboBoxModel<SimpleFacade>(); + genderModel = new DelegatingGenericComboBoxModel<GenderFacade>(); handsModel = new DelegatingGenericComboBoxModel<SimpleFacade>(); alignmentModel = new DelegatingGenericComboBoxModel<AlignmentFacade>(); deityModel = new DelegatingGenericComboBoxModel<DeityFacade>(); @@ -747,7 +747,7 @@ } else { - genderModel.setDelegateModel(new DefaultGenericListModel<SimpleFacade>()); + genderModel.setDelegateModel(new DefaultGenericListModel<GenderFacade>()); handsModel.setDelegateModel(new DefaultGenericListModel<SimpleFacade>()); } } @@ -789,15 +789,7 @@ { if (e.getType() == ListDataEvent.CONTENTS_CHANGED && e.getIndex0() == -1 && e.getIndex1() == -1) { - SimpleFacade gender = (SimpleFacade) genderModel.getSelectedItem(); - if (gender != null) - { - character.setGender(Gender.valueOf(gender.toString())); - } - else - { - character.setGender(null); - } + character.setGender((GenderFacade) genderModel.getSelectedItem()); } } @@ -814,6 +806,19 @@ }; listener.stateChanged(null); character.addAlignmentChangeListener(listener); + alignmentModel.addListDataListener(new ListDataAdapter() + { + + @Override + public void listDataChanged(ListDataEvent e) + { + if (e.getType() == ListDataEvent.CONTENTS_CHANGED && e.getIndex0() == -1 && e.getIndex1() == -1) + { + character.setAlignment((AlignmentFacade) alignmentModel.getSelectedItem()); + } + } + + }); //initialize deity selection listener = new ChangeListener() { @@ -826,7 +831,19 @@ }; listener.stateChanged(null); character.addDeityChangeListener(listener); + deityModel.addListDataListener(new ListDataAdapter() + { + @Override + public void listDataChanged(ListDataEvent e) + { + if (e.getType() == ListDataEvent.CONTENTS_CHANGED && e.getIndex0() == -1 && e.getIndex1() == -1) + { + character.setDeity((DeityFacade) deityModel.getSelectedItem()); + } + } + + }); Hashtable<Object, Object> stateTable = new Hashtable<Object, Object>(); stateTable.put(Models.CharacterNameHandler, new CharacterNameHandler(character)); stateTable.put(Models.PlayerNameHandler, new PlayerNameHandler(character)); @@ -907,9 +924,9 @@ if (c != null) { character.addCharacterLevels(new ClassFacade[] - { - c - }); + { + c + }); } } @@ -1179,4 +1196,5 @@ } } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-30 19:00:22
|
Revision: 11574 http://pcgen.svn.sourceforge.net/pcgen/?rev=11574&view=rev Author: cpmeister Date: 2010-03-30 19:00:16 +0000 (Tue, 30 Mar 2010) Log Message: ----------- Startup system update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2010-03-30 18:59:19 UTC (rev 11573) +++ sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2010-03-30 19:00:16 UTC (rev 11574) @@ -30,6 +30,7 @@ import javax.swing.JLabel; import javax.swing.JProgressBar; import javax.swing.JWindow; +import javax.swing.SwingUtilities; import pcgen.core.SettingsHandler; import pcgen.gui2.tools.ResourceManager; @@ -66,8 +67,13 @@ pack(); } - public void update(Observable o, Object arg) + public void setMessage(String text) { + loadingLabel.setText(text); + } + + public void update(Observable o, final Object arg) + { if (arg instanceof Integer) { loadProgress.setMinimum(0); @@ -76,11 +82,19 @@ } else if (arg instanceof URL) { - URL url = (URL) arg; - File file = new File(url.getFile()); - URI uri = SettingsHandler.getGmgenPluginDir().toURI().relativize(file.toURI()); - loadingLabel.setText(uri.toString()); - loadProgress.setValue(loadProgress.getValue() + 1); + SwingUtilities.invokeLater(new Runnable() + { + + public void run() + { + URL url = (URL) arg; + File file = new File(url.getFile()); + URI uri = SettingsHandler.getGmgenPluginDir().toURI().relativize(file.toURI()); + loadingLabel.setText(uri.toString()); + loadProgress.setValue(loadProgress.getValue() + 1); + } + + }); } else if (arg instanceof String) { Modified: sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java 2010-03-30 18:59:19 UTC (rev 11573) +++ sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java 2010-03-30 19:00:16 UTC (rev 11574) @@ -88,7 +88,7 @@ else if (!configFile.canWrite()) { Logging.errorPrint("WARNING: The filepaths file you specified is not updatable. " + - "Filepath changes will not be saved. File is " + configFile.getAbsolutePath()); + "Filepath changes will not be saved. File is " + configFile.getAbsolutePath()); } if (loadPropertyContext(configFile)) { @@ -97,8 +97,8 @@ else { Logging.errorPrint( - "Failed to load config.ini, either the file is unreadable or it " + - "is corrupt. Possible solution is to delete the config.ini file and restart PCGen"); + "Failed to load config.ini, either the file is unreadable or it " + + "is corrupt. Possible solution is to delete the config.ini file and restart PCGen"); return false; } } @@ -110,6 +110,7 @@ setSystemProperty(OUTPUT_SHEETS_DIR, "@outputsheets"); setSystemProperty(PLUGINS_DIR, "@plugins"); setSystemProperty(PREVIEW_DIR, "@preview"); + setSystemProperty(DOCS_DIR, "@docs"); setSystemProperty(VENDOR_DATA_DIR, "@vendordata"); setSystemProperty(PCC_FILES_DIR, "@data"); } @@ -125,7 +126,6 @@ { path = SystemUtils.USER_DIR + File.separator + path.substring(1); } - return path; } @@ -163,7 +163,7 @@ { //Not much to do about it... Logging.errorPrint("Failed to close input stream for file: " + - context.getName(), ex); //$NON-NLS-1$ + context.getName(), ex); //$NON-NLS-1$ } } return loaded; @@ -172,7 +172,7 @@ static void loadPropertyContexts() { File settingsDir = new File(getSettingsDirFromFilePath( - getSystemProperty(SETTINGS_FILES_PATH))); + getSystemProperty(SETTINGS_FILES_PATH))); File[] files = settingsDir.listFiles(); if (files == null) { @@ -214,7 +214,7 @@ case user: return SystemUtils.USER_HOME + File.separator + ".pcgen"; case pcgen: - return SystemUtils.USER_DIR; + return SystemUtils.USER_DIR + File.separator + "settings"; case mac_user: return SystemUtils.USER_HOME + "/Library/Preferences/pcgen"; default: Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-30 18:59:19 UTC (rev 11573) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-30 19:00:16 UTC (rev 11574) @@ -32,7 +32,6 @@ import pcgen.core.prereq.PrerequisiteTestFactory; import pcgen.core.utils.MessageType; import pcgen.core.utils.ShowMessageDelegate; -import pcgen.gui2.PCGenUIManager; import pcgen.gui2.SplashScreen; import pcgen.gui2.dialog.OptionsPathDialog; import pcgen.gui2.plaf.LookAndFeelManager; @@ -49,6 +48,8 @@ public class Main { + private static SplashScreen splash = null; + /** * @param args the command line arguments */ @@ -62,12 +63,31 @@ { ConfigurationSettings.initDefaults(); } + // copy over a couple properties to the SettingsHandler + copyConfig(); + // configure the UI before any type of user prompting may takes place configureUI(); loadProperties(); + + boolean showSplash = Boolean.parseBoolean(ConfigurationSettings.initSystemProperty("showSplash", "true")); + //TODO: allow commandline override of spash property + if (showSplash) + { + splash = new SplashScreen(); + splash.setVisible(true); + } + if (splash != null) + { + splash.setMessage("Loading Plugins"); + } loadPlugins(); initGameModes(); - PCGenUIManager.startGUI2(); + //PCGenUIManager.startGUI2(); + if (splash != null) + { + splash.dispose(); + } } private static void configureUI() @@ -114,7 +134,7 @@ if (filePath != null) { ConfigurationSettings.setSystemProperty(ConfigurationSettings.SETTINGS_FILES_PATH, - filePath); + filePath); } if (ConfigurationSettings.getSystemProperty(ConfigurationSettings.SETTINGS_FILES_PATH) == null) { @@ -122,7 +142,7 @@ dialog.setVisible(true); filePath = dialog.getSelectedDirectory(); ConfigurationSettings.setSystemProperty(ConfigurationSettings.SETTINGS_FILES_PATH, - filePath); + filePath); } } @@ -142,7 +162,6 @@ } loader.addPluginLoader(PrerequisiteTestFactory.getInstance()); loader.addPluginLoader(PrerequisiteWriterFactory.getInstance()); - loader.addObserver(new SplashScreen()); loader.loadPlugins(); } @@ -155,7 +174,7 @@ catch (PersistenceLayerException e) { ShowMessageDelegate.showMessageDialog(e.getMessage(), Constants.s_APPNAME, - MessageType.INFORMATION); + MessageType.INFORMATION); } PropertyContext properties = ConfigurationSettings.getPropertyContext("options.ini"); String game = properties.initProperty("game", Constants.e35_MODE); @@ -164,4 +183,15 @@ Globals.createEmptyRace(); } + private static void copyConfig() + { + SettingsHandler.setPccFilesLocation(new File(ConfigurationSettings.getDirectory(ConfigurationSettings.PCC_FILES_DIR))); + SettingsHandler.setPcgenDocsDir(new File(ConfigurationSettings.getDirectory(ConfigurationSettings.DOCS_DIR))); + SettingsHandler.setPcgenPreviewDir(new File(ConfigurationSettings.getDirectory(ConfigurationSettings.PREVIEW_DIR))); + SettingsHandler.setPcgenOutputSheetDir(new File(ConfigurationSettings.getDirectory(ConfigurationSettings.OUTPUT_SHEETS_DIR))); + //SettingsHandler.setPcgenSponsorDir(new File(ConfigurationSettings.getDirectory(ConfigurationSettings.))); + SettingsHandler.setPcgenSystemDir(new File(ConfigurationSettings.getDirectory(ConfigurationSettings.SYSTEMS_DIR))); + SettingsHandler.setPcgenVendorDataDir(new File(ConfigurationSettings.getDirectory(ConfigurationSettings.VENDOR_DATA_DIR))); + } + } Modified: sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java 2010-03-30 18:59:19 UTC (rev 11573) +++ sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java 2010-03-30 19:00:16 UTC (rev 11574) @@ -30,7 +30,6 @@ import java.util.Enumeration; import java.util.LinkedList; import java.util.List; -import java.util.Observable; import java.util.logging.Level; import java.util.logging.Logger; import java.util.zip.ZipEntry; @@ -44,7 +43,7 @@ * * @author Connor Petty <cpm...@us...> */ -public class PluginClassLoader extends Observable +public class PluginClassLoader { private final MapToList<Class<?>, PluginLoader> loaderMap; @@ -67,15 +66,11 @@ public void loadPlugins() { - setChanged(); - notifyObservers(jarURLs.size()); while (!jarURLs.isEmpty()) { URL url = jarURLs.poll(); try { - setChanged(); - notifyObservers(url); processURL(url); } catch (IOException ex) @@ -83,8 +78,6 @@ Logging.log(Level.SEVERE, null, ex); } } - setChanged(); - notifyObservers("DONE"); } private void processURL(URL url) throws IOException @@ -108,7 +101,7 @@ } catch (Exception ex) { - Logger.getLogger(PluginClassLoader.class.getName()).log(Level.SEVERE, null, ex); + Logging.errorPrint("Error occured while loading plugin: " + url.toString(), ex); } } } @@ -141,7 +134,7 @@ catch (Exception ex) { Logger.getLogger(PluginClassLoader.class.getName()).log(Level.SEVERE, null, - ex); + ex); } finally { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-31 00:30:26
|
Revision: 11576 http://pcgen.svn.sourceforge.net/pcgen/?rev=11576&view=rev Author: cpmeister Date: 2010-03-31 00:29:55 +0000 (Wed, 31 Mar 2010) Log Message: ----------- Startup system update: plugin loading now works Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/io/ExportHandler.java sandbox/cdomui/code/src/java/pcgen/util/PJEP.java Modified: sandbox/cdomui/code/src/java/pcgen/io/ExportHandler.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/io/ExportHandler.java 2010-03-30 19:39:05 UTC (rev 11575) +++ sandbox/cdomui/code/src/java/pcgen/io/ExportHandler.java 2010-03-31 00:29:55 UTC (rev 11576) @@ -85,6 +85,7 @@ import pcgen.io.exporttoken.WeaponToken; import pcgen.io.exporttoken.WeaponhToken; import pcgen.io.exporttoken.WeightToken; +import pcgen.system.PluginLoader; import pcgen.util.Delta; import pcgen.util.Logging; import pcgen.util.enumeration.Visibility; @@ -514,6 +515,23 @@ } } + public static PluginLoader getPluginLoader() + { + return new PluginLoader(){ + + public void loadPlugin(Class<?> clazz) throws Exception + { + Token pl = (Token) clazz.newInstance(); + addToTokenMap(pl); + } + + public Class[] getPluginClasses() + { + return new Class[]{Token.class}; + } + + }; + } /** * Helper method to evaluate an expression, used by OIF and IIF tokens * Modified: sandbox/cdomui/code/src/java/pcgen/util/PJEP.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/util/PJEP.java 2010-03-30 19:39:05 UTC (rev 11575) +++ sandbox/cdomui/code/src/java/pcgen/util/PJEP.java 2010-03-31 00:29:55 UTC (rev 11576) @@ -35,6 +35,7 @@ import pcgen.core.PlayerCharacter; import pcgen.core.VariableProcessor; import pcgen.persistence.lst.LstUtils; +import pcgen.system.PluginLoader; /** * <code>PJEP</code> @@ -63,7 +64,26 @@ { commandList.add(clazz); } + public static PluginLoader getJepPluginLoader() + { + return new PluginLoader() + { + public void loadPlugin(Class clazz) throws Exception + { + addCommand(clazz); + } + + public Class[] getPluginClasses() + { + return new Class[] + { + PCGenCommand.class + }; + } + + }; + } public PJEP() { setAllowUndeclared(true); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-03-31 06:59:38
|
Revision: 11577 http://pcgen.svn.sourceforge.net/pcgen/?rev=11577&view=rev Author: cpmeister Date: 2010-03-31 06:59:31 +0000 (Wed, 31 Mar 2010) Log Message: ----------- Startup system update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui/converter/TokenConverter.java sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java sandbox/cdomui/code/src/java/pcgen/system/Main.java Modified: sandbox/cdomui/code/src/java/pcgen/gui/converter/TokenConverter.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui/converter/TokenConverter.java 2010-03-31 00:29:55 UTC (rev 11576) +++ sandbox/cdomui/code/src/java/pcgen/gui/converter/TokenConverter.java 2010-03-31 06:59:31 UTC (rev 11577) @@ -25,6 +25,7 @@ import pcgen.base.util.DoubleKeyMapToList; import pcgen.gui.converter.event.TokenProcessEvent; import pcgen.gui.converter.event.TokenProcessorPlugin; +import pcgen.system.PluginLoader; import pcgen.util.Logging; public class TokenConverter @@ -50,6 +51,27 @@ } } + public static PluginLoader getPluginLoader() + { + return new PluginLoader() + { + + public void loadPlugin(Class<?> clazz) throws Exception + { + addToTokenMap((TokenProcessorPlugin) clazz.newInstance()); + } + + public Class[] getPluginClasses() + { + return new Class[] + { + TokenProcessorPlugin.class + }; + } + + }; + } + public static String process(TokenProcessEvent tpe) { Class<?> cl = tpe.getPrimary().getClass(); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2010-03-31 00:29:55 UTC (rev 11576) +++ sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2010-03-31 06:59:31 UTC (rev 11577) @@ -65,6 +65,7 @@ pane.add(loadProgress, BorderLayout.SOUTH); pack(); + this.setLocationRelativeTo(null); } public void setMessage(String text) Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-31 00:29:55 UTC (rev 11576) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-03-31 06:59:31 UTC (rev 11577) @@ -30,6 +30,9 @@ import pcgen.core.prereq.PrerequisiteTestFactory; import pcgen.core.utils.MessageType; import pcgen.core.utils.ShowMessageDelegate; +import pcgen.gui.converter.TokenConverter; +import pcgen.gui2.PCGenFrame; +import pcgen.gui2.PCGenUIManager; import pcgen.gui2.SplashScreen; import pcgen.gui2.dialog.OptionsPathDialog; import pcgen.gui2.plaf.LookAndFeelManager; @@ -89,11 +92,16 @@ splash.setMessage("Initializing GameModes"); } initGameModes(); - //PCGenUIManager.startGUI2(); if (splash != null) { + splash.setMessage("Creating PCGenFrame"); + } + PCGenFrame frame = PCGenUIManager.createPCGenFrame(); + if (splash != null) + { splash.dispose(); } + frame.setVisible(true); } private static void configureUI() @@ -171,6 +179,7 @@ loader.addPluginLoader(PrerequisiteWriterFactory.getInstance()); loader.addPluginLoader(PJEP.getJepPluginLoader()); loader.addPluginLoader(ExportHandler.getPluginLoader()); + loader.addPluginLoader(TokenConverter.getPluginLoader()); loader.loadPlugins(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-04-02 01:00:25
|
Revision: 11583 http://pcgen.svn.sourceforge.net/pcgen/?rev=11583&view=rev Author: cpmeister Date: 2010-04-02 01:00:19 +0000 (Fri, 02 Apr 2010) Log Message: ----------- Entry point changed along with UI update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/core/Main.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java sandbox/cdomui/code/src/java/pcgen/system/Main.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/UIConfigContext.java Modified: sandbox/cdomui/code/src/java/pcgen/core/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/Main.java 2010-04-02 00:03:38 UTC (rev 11582) +++ sandbox/cdomui/code/src/java/pcgen/core/Main.java 2010-04-02 01:00:19 UTC (rev 11583) @@ -23,7 +23,6 @@ */ package pcgen.core; -import pcgen.gui.pcGenGUI; import pcgen.util.Logging; import java.lang.reflect.InvocationTargetException; @@ -31,7 +30,7 @@ /** * <code>Main</code> wraps the real entry point for PCGen. It checks the * command line for an alternative main entry point, defaulting to - * <code>pcGenGUI</code>. This makes it easy to run command line test cases by + * <code>pcgen.system.Main</code>. This makes it easy to run command line test cases by * including a main entry point in a class, and then giving * the full name of the class on the command line like this:<pre> * $ ./pcgen.sh pcgen.util.DiceExpression '1+d4' @@ -50,7 +49,7 @@ */ public static void main(String[] args) { - String mainName = pcGenGUI.class.getName(); + String mainName = pcgen.system.Main.class.getName(); // If arg[0] doesn't start with "pcgen." it's unlikely to be a class we // can instantiate and run. Ignore it in that case. Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java 2010-04-02 00:03:38 UTC (rev 11582) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java 2010-04-02 01:00:19 UTC (rev 11583) @@ -539,7 +539,7 @@ @Override public void actionPerformed(ActionEvent e) { - throw new UnsupportedOperationException("Not supported yet."); + PCGenUIManager.closePCGen(); } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java 2010-04-02 00:03:38 UTC (rev 11582) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java 2010-04-02 01:00:19 UTC (rev 11583) @@ -25,6 +25,8 @@ import java.awt.Rectangle; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import java.io.File; import java.util.ArrayList; import java.util.List; @@ -34,7 +36,6 @@ import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.KeyStroke; -import org.apache.commons.lang.math.NumberUtils; import pcgen.core.facade.CharacterFacade; import pcgen.core.facade.SourceFacade; import pcgen.gui2.tools.CharacterSelectionListener; @@ -43,7 +44,6 @@ import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.GenericComboBoxModel; import pcgen.gui2.util.GenericListModel; -import pcgen.system.PropertyContext; /** * @@ -64,7 +64,7 @@ this.characterTabs = new CharacterTabs(this); initComponents(); pack(); - //initSettings(); + initSettings(); } private void initComponents() @@ -82,27 +82,26 @@ private void initSettings() { - final PropertyContext frameContext = - PCGenUIManager.getUIPropertyContext().createSubContext("PCGenFrame"); + final UIConfigContext frameContext = UIConfigContext.createContext("PCGenFrame"); + Rectangle screenBounds = getGraphicsConfiguration().getBounds(); - int extendedState = NORMAL; - int x = screenBounds.x; - int y = screenBounds.y; - int width = screenBounds.width; - int height = screenBounds.height; + //by default take up 3/4 of the screen's vertical and horizontal space + setSize((3 * screenBounds.width) / 4, (3 * screenBounds.height) / 4); + setLocationRelativeTo(null);//center the frame + Rectangle frameBounds = getBounds(); + frameBounds.x = frameContext.initInt("bounds.x", frameBounds.x); + frameBounds.y = frameContext.initInt("bounds.y", frameBounds.x); + frameBounds.width = frameContext.initInt("bounds.width", frameBounds.width); + frameBounds.height = frameContext.initInt("bounds.height", frameBounds.height); - extendedState = NumberUtils.toInt(frameContext.getProperty("extendedState"), extendedState); + int extendedState = frameContext.initInt("extendedState", NORMAL); if (extendedState == ICONIFIED) { extendedState = NORMAL; + frameContext.setInt("extendedState", NORMAL); } - x = NumberUtils.toInt(frameContext.getProperty("bounds.x"), x); - y = NumberUtils.toInt(frameContext.getProperty("bounds.y"), y); - width = NumberUtils.toInt(frameContext.getProperty("bounds.width"), width); - height = NumberUtils.toInt(frameContext.getProperty("bounds.height"), height); - setExtendedState(extendedState); - setBounds(x, y, width, height); + setBounds(frameBounds); addPropertyChangeListener("extendedState", frameContext); addComponentListener(new ComponentAdapter() @@ -123,12 +122,23 @@ private void updateBounds() { Rectangle bounds = getBounds(); - frameContext.setProperty("bounds.x", Integer.toString(bounds.x)); - frameContext.setProperty("bounds.y", Integer.toString(bounds.y)); - frameContext.setProperty("bounds.width", Integer.toString(bounds.width)); - frameContext.setProperty("bounds.height", Integer.toString(bounds.height)); + frameContext.setInt("bounds.x", bounds.x); + frameContext.setInt("bounds.y", bounds.y); + frameContext.setInt("bounds.width", bounds.width); + frameContext.setInt("bounds.height", bounds.height); } + }); + addWindowListener(new WindowAdapter() + { + + @Override + public void windowClosing(WindowEvent e) + { + PCGenUIManager.closePCGen(); + } + + }); } private static InputMap createInputMap(ActionMap actionMap) @@ -192,4 +202,5 @@ { return new DefaultGenericComboBoxModel<File>(); } + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-04-02 00:03:38 UTC (rev 11582) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-04-02 01:00:19 UTC (rev 11583) @@ -26,23 +26,15 @@ import java.util.Collection; import java.util.EnumMap; import java.util.Map; - -import javax.swing.JFrame; - -import javax.swing.UIManager; import pcgen.core.facade.CharacterFacade; import pcgen.core.facade.ClassFacade; import pcgen.core.facade.GameModeFacade; import pcgen.core.facade.SourceFacade; -import pcgen.gui.utils.SkinManager; import pcgen.gui2.filter.DisplayableFilter; -import pcgen.gui2.mock.CharacterMock; import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.GenericListModel; import pcgen.system.PropertyContext; import pcgen.system.ConfigurationSettings; -import pcgen.util.Logging; -import pcgen.util.SkinLFResourceChecker; /** * @@ -52,8 +44,9 @@ { private static final Map<HouseRule, Boolean> rulesMap = new EnumMap<HouseRule, Boolean>( - HouseRule.class); + HouseRule.class); private static File pcgenPreviewDir; + private static PCGenFrame pcgenFrame = null; private PCGenUIManager() { @@ -69,18 +62,12 @@ //TODO } - public static PCGenFrame createPCGenFrame() + private static PCGenFrame createPCGenFrame() { - PropertyContext uiconfig = getUIPropertyContext(); - if (uiconfig == null) - { - Logging.errorPrint("Could not find UIConfig.ini to load properties."); - } - GraphicsEnvironment environment = GraphicsEnvironment.getLocalGraphicsEnvironment(); - String deviceID = uiconfig == null ? null : uiconfig.getProperty("deviceID"); - GraphicsDevice device = null; - if (deviceID != null) + GraphicsDevice device = environment.getDefaultScreenDevice(); + String deviceID = getUIPropertyContext().initProperty("deviceID", device.getIDstring()); + if (!device.getIDstring().equals(deviceID)) { for (GraphicsDevice gd : environment.getScreenDevices()) { @@ -91,42 +78,41 @@ } } } - if (device == null) - { - device = environment.getDefaultScreenDevice(); - } - PCGenFrame frame = new PCGenFrame(device.getDefaultConfiguration()); - frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - return frame; + return new PCGenFrame(device.getDefaultConfiguration()); } - public static void startGUI() + public static void initializeGUI() { - PCGenFrame frame = createPCGenFrame(); - CharacterMock mock = new CharacterMock(); - mock.addCharacterLevels(new ClassFacade[] - { - mock.getDataSet().getClass("Fighter") - }); - mock.setTabName("Demo 1"); - frame.addCharacter(mock); - frame.setVisible(true); + pcgenFrame = createPCGenFrame(); } - public static void startGUI2() + public static void startGUI() { + pcgenFrame.setVisible(true); } +// public static void startGUI() +// { +// CharacterMock mock = new CharacterMock(); +// mock.addCharacterLevels(new ClassFacade[] +// { +// mock.getDataSet().getClass("Fighter") +// }); +// mock.setTabName("Demo 1"); +// frame.addCharacter(mock); +// frame.setVisible(true); +// } public static void displayPreferencesDialog() { } + public static void displayAboutDialog() { - } + public static void closePCGen() { - + pcgenFrame.dispose(); } //public static void @@ -136,7 +122,7 @@ } public static <T> GenericListModel<DisplayableFilter<? super T>> getDisplayedFilters( - Class<T> c) + Class<T> c) { return new DefaultGenericListModel<DisplayableFilter<? super T>>(); } @@ -152,7 +138,7 @@ } public static GenericListModel<SourceFacade> getSources( - GameModeFacade gameMode) + GameModeFacade gameMode) { return null; } @@ -201,4 +187,5 @@ SYS_LDPACSK, // Apply Load Penalty to AC and Skills SYS_WTPSK; // Apply Weight Penalty to Skills } + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2010-04-02 00:03:38 UTC (rev 11582) +++ sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2010-04-02 01:00:19 UTC (rev 11583) @@ -65,7 +65,7 @@ pane.add(loadProgress, BorderLayout.SOUTH); pack(); - this.setLocationRelativeTo(null); + setLocationRelativeTo(null); } public void setMessage(String text) Added: sandbox/cdomui/code/src/java/pcgen/gui2/UIConfigContext.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/UIConfigContext.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/UIConfigContext.java 2010-04-02 01:00:19 UTC (rev 11583) @@ -0,0 +1,111 @@ +/* + * UIConfigContext.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 1, 2010, 4:26:54 PM + */ +package pcgen.gui2; + +import java.awt.Color; +import org.apache.commons.lang.math.NumberUtils; +import pcgen.system.PropertyContext; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class UIConfigContext extends PropertyContext +{ + + private static UIConfigContext instance = null; + + private UIConfigContext() + { + super("UIConfig.ini"); + } + + private UIConfigContext(String name, UIConfigContext parent) + { + super(name, parent); + } + + @Override + public UIConfigContext createSubContext(String name) + { + return new UIConfigContext(name, this); + } + + public static UIConfigContext createContext(String name) + { + return getSingleton().createSubContext(name); + } + + public static UIConfigContext getSingleton() + { + if (instance == null) + { + instance = new UIConfigContext(); + } + return instance; + } + + public int getInt(String key) + { + return NumberUtils.toInt(getProperty(key)); + } + + public void setInt(String key, int integer) + { + setProperty(key, Integer.toString(integer)); + } + + public int initInt(String key, int defaultValue) + { + return NumberUtils.toInt(initProperty(key, Integer.toString(defaultValue))); + } + + public Color getColor(String key) + { + return Color.decode(getProperty(key)); + } + + public void setColor(String key, Color color) + { + setProperty(key, Integer.toHexString(color.getRGB())); + } + + public Color initColor(String key, Color defaultValue) + { + return Color.decode(initProperty(key, Integer.toHexString(defaultValue.getRGB()))); + } + + public boolean getBoolean(String key) + { + return Boolean.valueOf(getProperty(key)); + } + + public void setBoolean(String key, boolean bool) + { + setProperty(key, Boolean.toString(bool)); + } + + public boolean initBoolean(String key, boolean defaultValue) + { + return Boolean.valueOf(initProperty(key, Boolean.toString(defaultValue))); + } + +} Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-04-02 00:03:38 UTC (rev 11582) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-04-02 01:00:19 UTC (rev 11583) @@ -31,9 +31,9 @@ import pcgen.core.utils.MessageType; import pcgen.core.utils.ShowMessageDelegate; import pcgen.gui.converter.TokenConverter; -import pcgen.gui2.PCGenFrame; import pcgen.gui2.PCGenUIManager; import pcgen.gui2.SplashScreen; +import pcgen.gui2.UIConfigContext; import pcgen.gui2.dialog.OptionsPathDialog; import pcgen.gui2.plaf.LookAndFeelManager; import pcgen.io.ExportHandler; @@ -87,17 +87,17 @@ loadPlugins(); splash.setMessage("Initializing GameModes"); initGameModes(); - splash.setMessage("Creating PCGenFrame"); - PCGenFrame frame = PCGenUIManager.createPCGenFrame(); + splash.setMessage("Initializing User Interface"); + PCGenUIManager.initializeGUI(); splash.dispose(); - frame.setVisible(true); + PCGenUIManager.startGUI(); } else { loadPlugins(); initGameModes(); - PCGenFrame frame = PCGenUIManager.createPCGenFrame(); - frame.setVisible(true); + PCGenUIManager.initializeGUI(); + PCGenUIManager.startGUI(); } } @@ -113,7 +113,8 @@ private static void loadProperties() { setSettingsPath(); - //TODO: register existing SystemPropertyContexts + //TODO: register existing PropertyContexts + ConfigurationSettings.registerPropertyContext(UIConfigContext.getSingleton()); ConfigurationSettings.loadPropertyContexts(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-04-02 04:09:39
|
Revision: 11584 http://pcgen.svn.sourceforge.net/pcgen/?rev=11584&view=rev Author: cpmeister Date: 2010-04-02 04:09:32 +0000 (Fri, 02 Apr 2010) Log Message: ----------- UI Update: added TipOfTheDay Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java sandbox/cdomui/code/src/java/pcgen/gui2/tools/PCGenAction.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/UIResourceContext.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/UIPropertyContext.java sandbox/cdomui/code/src/java/pcgen/gui2/dialog/TipOfTheDay.java sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/TipsOfTheDay.form sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/TipsOfTheDay.java sandbox/cdomui/code/src/java/pcgen/gui2/util/JLabelPane.java sandbox/cdomui/code/src/java/pcgen/system/PCGenSettings.java Removed Paths: ------------- sandbox/cdomui/code/src/java/pcgen/gui2/UIConfigContext.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java 2010-04-02 01:00:19 UTC (rev 11583) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java 2010-04-02 04:09:32 UTC (rev 11584) @@ -31,8 +31,9 @@ import pcgen.core.facade.SpellFacade; import pcgen.core.facade.StatFacade; import pcgen.core.facade.TemplateFacade; +import pcgen.gui2.dialog.TipOfTheDay; import pcgen.gui2.tools.PCGenAction; -import pcgen.gui2.tools.ResourceManager.Icons; +import pcgen.system.UIResourceContext.Icons; /** * @@ -135,35 +136,35 @@ put(VIEW_COMMAND, new ViewAction()); put(FILTERS_COMMAND, new FiltersAction()); put(KIT_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersKit", KIT_FILTERS_COMMAND, - KitFacade.class)); + new DefaultFiltersAction("mnuViewFiltersKit", KIT_FILTERS_COMMAND, + KitFacade.class)); put(RACE_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersRace", RACE_FILTERS_COMMAND, - RaceFacade.class)); + new DefaultFiltersAction("mnuViewFiltersRace", RACE_FILTERS_COMMAND, + RaceFacade.class)); put(TEMPLATE_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersTemplate", - TEMPLATE_FILTERS_COMMAND, - TemplateFacade.class)); + new DefaultFiltersAction("mnuViewFiltersTemplate", + TEMPLATE_FILTERS_COMMAND, + TemplateFacade.class)); put(CLASS_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersClass", - CLASS_FILTERS_COMMAND, - ClassFacade.class)); + new DefaultFiltersAction("mnuViewFiltersClass", + CLASS_FILTERS_COMMAND, + ClassFacade.class)); put(ABILITY_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersAbility", - ABILITY_FILTERS_COMMAND, - AbilityFacade.class)); + new DefaultFiltersAction("mnuViewFiltersAbility", + ABILITY_FILTERS_COMMAND, + AbilityFacade.class)); put(SKILL_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersSkill", - SKILL_FILTERS_COMMAND, - SkillFacade.class)); + new DefaultFiltersAction("mnuViewFiltersSkill", + SKILL_FILTERS_COMMAND, + SkillFacade.class)); put(EQUIPMENT_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersEquipment", - EQUIPMENT_FILTERS_COMMAND, - ItemFacade.class)); + new DefaultFiltersAction("mnuViewFiltersEquipment", + EQUIPMENT_FILTERS_COMMAND, + ItemFacade.class)); put(SPELL_FILTERS_COMMAND, - new DefaultFiltersAction("mnuViewFiltersSpell", - SPELL_GENERATORS_COMMAND, - SpellFacade.class)); + new DefaultFiltersAction("mnuViewFiltersSpell", + SPELL_GENERATORS_COMMAND, + SpellFacade.class)); put(CSHEET_COMMAND, new CharacterSheetAction()); put(TOOLS_COMMAND, new ToolsAction()); @@ -172,37 +173,37 @@ put(GENERATORS_COMMAND, new GeneratorsAction()); put(TREASURE_GENERATORS_COMMAND, new TreasureGeneratorsAction()); put(STAT_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorStat", - STAT_GENERATORS_COMMAND, - StatFacade.class)); + new DefaultGeneratorsAction("mnuToolsGeneratorStat", + STAT_GENERATORS_COMMAND, + StatFacade.class)); put(RACE_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorRace", - RACE_GENERATORS_COMMAND, - RaceFacade.class)); + new DefaultGeneratorsAction("mnuToolsGeneratorRace", + RACE_GENERATORS_COMMAND, + RaceFacade.class)); put(TEMPLATE_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorTemplate", - TEMPLATE_GENERATORS_COMMAND, - TemplateFacade.class)); + new DefaultGeneratorsAction("mnuToolsGeneratorTemplate", + TEMPLATE_GENERATORS_COMMAND, + TemplateFacade.class)); put(CLASS_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorClass", - CLASS_GENERATORS_COMMAND, - ClassFacade.class)); + new DefaultGeneratorsAction("mnuToolsGeneratorClass", + CLASS_GENERATORS_COMMAND, + ClassFacade.class)); put(ABILITY_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorAbility", - ABILITY_GENERATORS_COMMAND, - AbilityFacade.class)); + new DefaultGeneratorsAction("mnuToolsGeneratorAbility", + ABILITY_GENERATORS_COMMAND, + AbilityFacade.class)); put(SKILL_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorSkill", - SKILL_GENERATORS_COMMAND, - SkillFacade.class)); + new DefaultGeneratorsAction("mnuToolsGeneratorSkill", + SKILL_GENERATORS_COMMAND, + SkillFacade.class)); put(EQUIPMENT_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorEquipment", - EQUIPMENT_GENERATORS_COMMAND, - ItemFacade.class)); + new DefaultGeneratorsAction("mnuToolsGeneratorEquipment", + EQUIPMENT_GENERATORS_COMMAND, + ItemFacade.class)); put(SPELL_GENERATORS_COMMAND, - new DefaultGeneratorsAction("mnuToolsGeneratorSpell", - SPELL_GENERATORS_COMMAND, - SpellFacade.class)); + new DefaultGeneratorsAction("mnuToolsGeneratorSpell", + SPELL_GENERATORS_COMMAND, + SpellFacade.class)); put(OPTIONS_COMMAND, new OptionsAction()); put(HELP_COMMAND, new HelpAction()); @@ -320,7 +321,7 @@ public SaveAsAction() { super("mnuFileSaveAs", SAVEAS_COMMAND, "shift-shortcut S", - Icons.SaveAs16); + Icons.SaveAs16); } @Override @@ -443,7 +444,7 @@ public PrintPreviewAction() { super("mnuFilePrintPreview", PRINT_PREVIEW_COMMAND, - Icons.PrintPreview16); + Icons.PrintPreview16); } @Override @@ -644,7 +645,7 @@ public TreasureGeneratorsAction() { super("mnuToolsGeneratorTreasure", TREASURE_GENERATORS_COMMAND, - "shortcut T"); + "shortcut T"); } @Override @@ -751,13 +752,15 @@ public TipOfTheDayHelpAction() { super("mnuHelpTipOfTheDay", HELP_TIPOFTHEDAY_COMMAND, - Icons.TipOfTheDay16); + Icons.TipOfTheDay16); } @Override public void actionPerformed(ActionEvent e) { - throw new UnsupportedOperationException("Not supported yet."); + TipOfTheDay tips = new TipOfTheDay(); + tips.setLocationRelativeTo(frame); + tips.setVisible(true); } } @@ -784,7 +787,7 @@ private final Class<?> generatorClass; public DefaultGeneratorsAction(String prop, String command, - Class<?> generatorClass) + Class<?> generatorClass) { super(prop, command); this.generatorClass = generatorClass; @@ -804,7 +807,7 @@ private final Class<?> filterClass; public DefaultFiltersAction(String prop, String command, - Class<?> filterClass) + Class<?> filterClass) { super(prop, command); this.filterClass = filterClass; @@ -817,4 +820,5 @@ } } + } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java 2010-04-02 01:00:19 UTC (rev 11583) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenFrame.java 2010-04-02 04:09:32 UTC (rev 11584) @@ -82,7 +82,7 @@ private void initSettings() { - final UIConfigContext frameContext = UIConfigContext.createContext("PCGenFrame"); + final UIPropertyContext frameContext = UIPropertyContext.createContext("PCGenFrame"); Rectangle screenBounds = getGraphicsConfiguration().getBounds(); //by default take up 3/4 of the screen's vertical and horizontal space Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-04-02 01:00:19 UTC (rev 11583) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-04-02 04:09:32 UTC (rev 11584) @@ -26,11 +26,14 @@ import java.util.Collection; import java.util.EnumMap; import java.util.Map; +import org.apache.commons.lang.SystemUtils; import pcgen.core.facade.CharacterFacade; import pcgen.core.facade.ClassFacade; import pcgen.core.facade.GameModeFacade; import pcgen.core.facade.SourceFacade; +import pcgen.gui2.dialog.TipOfTheDay; import pcgen.gui2.filter.DisplayableFilter; +import pcgen.gui2.plaf.MacGUIHandler; import pcgen.gui2.util.DefaultGenericListModel; import pcgen.gui2.util.GenericListModel; import pcgen.system.PropertyContext; @@ -83,12 +86,19 @@ public static void initializeGUI() { + if(SystemUtils.IS_OS_MAC_OSX) + { + MacGUIHandler.initialize(); + } pcgenFrame = createPCGenFrame(); } public static void startGUI() { pcgenFrame.setVisible(true); + TipOfTheDay tips = new TipOfTheDay(); + tips.setLocationRelativeTo(pcgenFrame); + tips.setVisible(true); } // public static void startGUI() // { Deleted: sandbox/cdomui/code/src/java/pcgen/gui2/UIConfigContext.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/UIConfigContext.java 2010-04-02 01:00:19 UTC (rev 11583) +++ sandbox/cdomui/code/src/java/pcgen/gui2/UIConfigContext.java 2010-04-02 04:09:32 UTC (rev 11584) @@ -1,111 +0,0 @@ -/* - * UIConfigContext.java - * Copyright 2010 Connor Petty <cpm...@us...> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Created on Apr 1, 2010, 4:26:54 PM - */ -package pcgen.gui2; - -import java.awt.Color; -import org.apache.commons.lang.math.NumberUtils; -import pcgen.system.PropertyContext; - -/** - * - * @author Connor Petty <cpm...@us...> - */ -public class UIConfigContext extends PropertyContext -{ - - private static UIConfigContext instance = null; - - private UIConfigContext() - { - super("UIConfig.ini"); - } - - private UIConfigContext(String name, UIConfigContext parent) - { - super(name, parent); - } - - @Override - public UIConfigContext createSubContext(String name) - { - return new UIConfigContext(name, this); - } - - public static UIConfigContext createContext(String name) - { - return getSingleton().createSubContext(name); - } - - public static UIConfigContext getSingleton() - { - if (instance == null) - { - instance = new UIConfigContext(); - } - return instance; - } - - public int getInt(String key) - { - return NumberUtils.toInt(getProperty(key)); - } - - public void setInt(String key, int integer) - { - setProperty(key, Integer.toString(integer)); - } - - public int initInt(String key, int defaultValue) - { - return NumberUtils.toInt(initProperty(key, Integer.toString(defaultValue))); - } - - public Color getColor(String key) - { - return Color.decode(getProperty(key)); - } - - public void setColor(String key, Color color) - { - setProperty(key, Integer.toHexString(color.getRGB())); - } - - public Color initColor(String key, Color defaultValue) - { - return Color.decode(initProperty(key, Integer.toHexString(defaultValue.getRGB()))); - } - - public boolean getBoolean(String key) - { - return Boolean.valueOf(getProperty(key)); - } - - public void setBoolean(String key, boolean bool) - { - setProperty(key, Boolean.toString(bool)); - } - - public boolean initBoolean(String key, boolean defaultValue) - { - return Boolean.valueOf(initProperty(key, Boolean.toString(defaultValue))); - } - -} Copied: sandbox/cdomui/code/src/java/pcgen/gui2/UIPropertyContext.java (from rev 11583, sandbox/cdomui/code/src/java/pcgen/gui2/UIConfigContext.java) =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/UIPropertyContext.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/UIPropertyContext.java 2010-04-02 04:09:32 UTC (rev 11584) @@ -0,0 +1,111 @@ +/* + * UIPropertyContext.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 1, 2010, 4:26:54 PM + */ +package pcgen.gui2; + +import java.awt.Color; +import org.apache.commons.lang.math.NumberUtils; +import pcgen.system.PropertyContext; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class UIPropertyContext extends PropertyContext +{ + + private static UIPropertyContext instance = null; + + private UIPropertyContext() + { + super("UIConfig.ini"); + } + + private UIPropertyContext(String name, UIPropertyContext parent) + { + super(name, parent); + } + + @Override + public UIPropertyContext createSubContext(String name) + { + return new UIPropertyContext(name, this); + } + + public static UIPropertyContext createContext(String name) + { + return getSingleton().createSubContext(name); + } + + public static UIPropertyContext getSingleton() + { + if (instance == null) + { + instance = new UIPropertyContext(); + } + return instance; + } + + public int getInt(String key) + { + return NumberUtils.toInt(getProperty(key)); + } + + public void setInt(String key, int integer) + { + setProperty(key, Integer.toString(integer)); + } + + public int initInt(String key, int defaultValue) + { + return NumberUtils.toInt(initProperty(key, Integer.toString(defaultValue))); + } + + public Color getColor(String key) + { + return Color.decode(getProperty(key)); + } + + public void setColor(String key, Color color) + { + setProperty(key, Integer.toHexString(color.getRGB())); + } + + public Color initColor(String key, Color defaultValue) + { + return Color.decode(initProperty(key, Integer.toHexString(defaultValue.getRGB()))); + } + + public boolean getBoolean(String key) + { + return Boolean.valueOf(getProperty(key)); + } + + public void setBoolean(String key, boolean bool) + { + setProperty(key, Boolean.toString(bool)); + } + + public boolean initBoolean(String key, boolean defaultValue) + { + return Boolean.valueOf(initProperty(key, Boolean.toString(defaultValue))); + } + +} Added: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/TipOfTheDay.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/TipOfTheDay.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/dialog/TipOfTheDay.java 2010-04-02 04:09:32 UTC (rev 11584) @@ -0,0 +1,308 @@ +/* + * TipOfTheDay.java + * Copyright 2001 (C) Greg Bingleman <by...@ho...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on December 17, 2001, 12:43 PM + * + * $Id: TipOfTheDay.java 1256 2006-08-05 14:08:16Z karianna $ + */ +package pcgen.gui2.dialog; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; +import java.util.StringTokenizer; +import javax.swing.BorderFactory; +import javax.swing.Icon; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JDialog; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import pcgen.core.SettingsHandler; +import pcgen.gui.utils.Hyperactive; +import pcgen.gui2.UIPropertyContext; +import pcgen.gui2.util.JLabelPane; +import pcgen.system.ConfigurationSettings; +import pcgen.system.UIResourceContext; +import pcgen.system.UIResourceContext.Icons; +import pcgen.util.Logging; + +/** + * + * + * @author Greg Bingleman <by...@ho...> + * @version $Revision: 1256 $ + */ +public final class TipOfTheDay extends JDialog implements ActionListener +{ + + static final long serialVersionUID = 6109389084434712217L; + private static final UIPropertyContext propertyContext = UIPropertyContext.createContext("TipOfTheDay"); + private static final String NEXT = "next"; + private static final String HTML_START = "<html><body style=\"margin-left: 5px;margin-right: 5px;margin-top: 5px\">"; + private static final String HTML_END = "</body></html>"; + private JCheckBox chkShowTips; + // the pane to display the text + private JLabelPane tipText; + private List<String> tipList = null; + private int lastNumber = -1; + + /** Creates new TipOfTheDay */ + public TipOfTheDay() + { + super(); + //IconUtilitities.maybeSetIcon(this, "TipOfTheDay16.gif"); + + setTitle(UIResourceContext.getInstance().getProperty("in_tod_title")); + + // initialize the interface + initUI(); + + // load tips + loadTips(); + + pack(); + + lastNumber = propertyContext.initInt("lastTip", -1); + showNextTip(); + } + + public void actionPerformed(ActionEvent e) + { + if (NEXT.equals(e.getActionCommand())) + { + showNextTip(); + + return; + } + + quit(); + } + + private boolean hasTips() + { + return (tipList != null) && (tipList.size() > 0); + } + + // + // initialize the dialog + // + private void initUI() + { + final JPanel panel = new JPanel(new BorderLayout(2, 2)); + panel.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3)); + + JLabel iconLabel; + final Icon icon = UIResourceContext.getImageIcon(Icons.TipOfTheDay24); + + if (icon != null) + { + iconLabel = new JLabel(icon); + } + else + { + iconLabel = new JLabel("TipOfTheDay24.gif"); + } + + iconLabel.setOpaque(true); + panel.add(iconLabel, BorderLayout.WEST); + UIResourceContext context = UIResourceContext.getInstance(); + final JLabel lblDidYouKnow = new JLabel(" " + context.getProperty("in_tod_didyouknow")); + final Font old = lblDidYouKnow.getFont(); + lblDidYouKnow.setFont(old.deriveFont(old.getStyle() | Font.ITALIC, 18f)); + lblDidYouKnow.setOpaque(true); + + tipText = new JLabelPane(); + tipText.setBorder(null); + tipText.addHyperlinkListener(new Hyperactive()); + + final JScrollPane pane = new JScrollPane(tipText); + pane.setBorder(null); + + final JPanel content = new JPanel(new BorderLayout(0, 2)); + content.add(lblDidYouKnow, BorderLayout.NORTH); + content.add(pane, BorderLayout.CENTER); + content.setPreferredSize(new Dimension(585, 230)); + + panel.add(content, BorderLayout.CENTER); + + chkShowTips = new JCheckBox(context.getProperty("in_tod_showTips"), propertyContext.initBoolean("showTipOfTheDay", true)); + + final JButton btnClose = new JButton(context.getProperty("in_close")); + btnClose.setMnemonic(context.getMnemonic("in_mn_close")); + btnClose.addActionListener(this); + + final JButton btnNextTip = new JButton(context.getProperty("in_tod_nextTip")); + btnNextTip.setMnemonic(context.getMnemonic("in_mn_tod_nextTip")); + btnNextTip.addActionListener(this); + btnNextTip.setActionCommand(NEXT); + + final JPanel actions = new JPanel(new GridBagLayout()); + final GridBagConstraints c = new GridBagConstraints(0, 0, 1, 1, 1, 1, GridBagConstraints.WEST, + GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 0, 0); + actions.add(chkShowTips, c); + + final JPanel buttons = new JPanel(new FlowLayout(FlowLayout.RIGHT)); + buttons.add(btnNextTip); + buttons.add(btnClose); + c.gridx = 1; + c.anchor = GridBagConstraints.EAST; + actions.add(buttons, c); + + panel.add(actions, BorderLayout.SOUTH); + setContentPane(panel); + + addWindowListener(new WindowAdapter() + { + + public void windowClosing(WindowEvent e) + { + quit(); + } + + }); + addKeyListener(new KeyAdapter() + { + + public void keyPressed(KeyEvent e) + { + if (e.getKeyCode() == KeyEvent.VK_ESCAPE) + { + quit(); + } + } + + }); + } + + private void loadTipFile(String tipsFilePath) throws FileNotFoundException, IOException + { + final File tipsFile = new File(tipsFilePath); + + //final BufferedReader tipsReader = new BufferedReader(new FileReader(tipsFile)); + final BufferedReader tipsReader = new BufferedReader(new InputStreamReader(new FileInputStream(tipsFile), + "UTF-8")); + final int length = (int) tipsFile.length(); + final char[] inputLine = new char[length]; + tipsReader.read(inputLine, 0, length); + tipsReader.close(); + + final StringTokenizer aTok = new StringTokenizer(new String(inputLine), "\r\n", false); + + while (aTok.hasMoreTokens()) + { + tipList.add(aTok.nextToken()); + } + } + + private void loadTips() + { + tipList = new ArrayList<String>(20); + String systemDir = ConfigurationSettings.getDirectory(ConfigurationSettings.SYSTEMS_DIR); + final String tipsFilePath = systemDir + File.separator + "gameModes" + + File.separator + SettingsHandler.getGame().getName() + File.separator + "tips.lst"; + final String tipsDefaultPath = systemDir + File.separator + "gameModes" + + File.separator + "default" + File.separator + "tips.lst"; + + boolean tryDefault = false; + + try + { + loadTipFile(tipsFilePath); + } + catch (FileNotFoundException e) + { + tryDefault = true; + } + catch (IOException e) + { + tryDefault = true; + } + if (tryDefault) + { + try + { + loadTipFile(tipsDefaultPath); + } + catch (FileNotFoundException e1) + { + Logging.errorPrint("Warning: game mode " + SettingsHandler.getGame().getName() + " is missing file tips.lst"); + } + catch (IOException e1) + { + Logging.errorPrint("Warning: game mode " + SettingsHandler.getGame().getName() + " is missing file tips.lst"); + } + } + } + + /** + * close the dialog and save the settings. + */ + private void quit() + { + setVisible(false); + + propertyContext.setInt("lastTip", lastNumber); + propertyContext.setBoolean("showTipOfTheDay", chkShowTips.isSelected()); + + dispose(); + } + + private void showNextTip() + { + if (hasTips()) + { + if (++lastNumber >= tipList.size()) + { + lastNumber = 0; + } + + final String tip = tipList.get(lastNumber); + + try + { + tipText.setText(HTML_START + "<b>Tip#" + Integer.toString(lastNumber + 1) + "</b><br>" + tip + HTML_END); + repaint(); + } + catch (Exception exc) + { + exc.printStackTrace(System.err); + } + } + } + +} Added: sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/TipsOfTheDay.form =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/TipsOfTheDay.form (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/TipsOfTheDay.form 2010-04-02 04:09:32 UTC (rev 11584) @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo"> + <AuxValues> + <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> + <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/> + <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/> + <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> + <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> + </AuxValues> + + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/> + <SubComponents> + <Component class="javax.swing.JLabel" name="jLabel1"> + <Properties> + <Property name="text" type="java.lang.String" value="jLabel1"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Container class="javax.swing.JScrollPane" name="jScrollPane1"> + <AuxValues> + <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/> + </AuxValues> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="0" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="1.0"/> + </Constraint> + </Constraints> + + <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/> + <SubComponents> + <Component class="javax.swing.JEditorPane" name="jEditorPane1"> + </Component> + </SubComponents> + </Container> + <Component class="javax.swing.JCheckBox" name="jCheckBox1"> + <Properties> + <Property name="text" type="java.lang.String" value="jCheckBox1"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="1.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JButton" name="jButton1"> + <Properties> + <Property name="text" type="java.lang.String" value="jButton1"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JButton" name="jButton2"> + <Properties> + <Property name="text" type="java.lang.String" value="jButton2"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription"> + <GridBagConstraints gridX="-1" gridY="-1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="5" insetsBottom="5" insetsRight="5" anchor="10" weightX="0.0" weightY="0.0"/> + </Constraint> + </Constraints> + </Component> + </SubComponents> +</Form> Added: sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/TipsOfTheDay.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/TipsOfTheDay.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/proto/dialog/TipsOfTheDay.java 2010-04-02 04:09:32 UTC (rev 11584) @@ -0,0 +1,100 @@ +/* + * TipsOfTheDay.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 1, 2010, 7:43:21 PM + */ + +/* + * TipsOfTheDay.java + * + * Created on Apr 1, 2010, 7:43:21 PM + */ + +package pcgen.gui2.proto.dialog; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class TipsOfTheDay extends javax.swing.JPanel { + + /** Creates new form TipsOfTheDay */ + public TipsOfTheDay() { + initComponents(); + } + + /** This method is called from within the constructor to + * initialize the form. + * WARNING: Do NOT modify this code. The content of this method is + * always regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents + private void initComponents() { + java.awt.GridBagConstraints gridBagConstraints; + + jLabel1 = new javax.swing.JLabel(); + jScrollPane1 = new javax.swing.JScrollPane(); + jEditorPane1 = new javax.swing.JEditorPane(); + jCheckBox1 = new javax.swing.JCheckBox(); + jButton1 = new javax.swing.JButton(); + jButton2 = new javax.swing.JButton(); + + setLayout(new java.awt.GridBagLayout()); + + jLabel1.setText("jLabel1"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + add(jLabel1, gridBagConstraints); + + jScrollPane1.setViewportView(jEditorPane1); + + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.weighty = 1.0; + add(jScrollPane1, gridBagConstraints); + + jCheckBox1.setText("jCheckBox1"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.weightx = 1.0; + add(jCheckBox1, gridBagConstraints); + + jButton1.setText("jButton1"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); + add(jButton1, gridBagConstraints); + + jButton2.setText("jButton2"); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5); + add(jButton2, gridBagConstraints); + }// </editor-fold>//GEN-END:initComponents + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton jButton1; + private javax.swing.JButton jButton2; + private javax.swing.JCheckBox jCheckBox1; + private javax.swing.JEditorPane jEditorPane1; + private javax.swing.JLabel jLabel1; + private javax.swing.JScrollPane jScrollPane1; + // End of variables declaration//GEN-END:variables + +} Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tools/PCGenAction.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tools/PCGenAction.java 2010-04-02 01:00:19 UTC (rev 11583) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tools/PCGenAction.java 2010-04-02 04:09:32 UTC (rev 11584) @@ -26,7 +26,8 @@ import java.util.StringTokenizer; import javax.swing.AbstractAction; import javax.swing.KeyStroke; -import pcgen.gui2.tools.ResourceManager.Icons; +import pcgen.system.UIResourceContext; +import pcgen.system.UIResourceContext.Icons; public class PCGenAction extends AbstractAction { @@ -59,9 +60,10 @@ public PCGenAction(String prop, String command, String accelerator, Icons icon) { - putValue(NAME, ResourceManager.getText(prop)); - putValue(MNEMONIC_KEY, ResourceManager.getMnemonic(prop)); - putValue(SHORT_DESCRIPTION, ResourceManager.getToolTip(prop)); + UIResourceContext context = UIResourceContext.getInstance(); + putValue(NAME, context.getText(prop)); + putValue(MNEMONIC_KEY, context.getMnemonic(prop)); + putValue(SHORT_DESCRIPTION, context.getToolTip(prop)); if (command != null) { @@ -118,7 +120,7 @@ } if (icon != null) { - putValue(SMALL_ICON, ResourceManager.getImageIcon(icon)); + putValue(SMALL_ICON, UIResourceContext.getImageIcon(icon)); } } Added: sandbox/cdomui/code/src/java/pcgen/gui2/util/JLabelPane.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/JLabelPane.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/JLabelPane.java 2010-04-02 04:09:32 UTC (rev 11584) @@ -0,0 +1,82 @@ +/* + * JLabelPane.java + * Copyright 2001 (C) Jonas Karlsson <juj...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * Created on June 4, 2002 + */ +package pcgen.gui2.util; + +import pcgen.cdom.base.Constants; + +import javax.swing.JEditorPane; + +/** + * <code>JLabelPane</code> extends <code>JEditorPane</code> for PCGen + * Label panes + * + * @author <a href="mailto:juj...@us...">Jonas Karlsson</a> + * @version $Revision: 6206 $ + */ +public final class JLabelPane extends JEditorPane +{ + /** + * Create default HTML "label", an HTML <code>JEditorPane</code> + */ + public JLabelPane() + { + super("text/html", "<html></html>"); + setText(); + } + + /** + * Update the text in a non-editable HTML "label" to the default + * for non-selected labels + */ + public void setText() + { + /* + * this fixes a bug which causes NPEs to be thrown + * on updateUI() with no HTML tags present + * + * author: Thomas Behr 13-03-03 + */ + setText(Constants.html_NONESELECTED); + } + + /** + * Update the text in a non-editable HTML "label". If the label + * is <code>null</code>, use a default, blank HTML string + * + * @param newContents String new contents of pane or <code>null</code> + */ + @Override + public void setText(String newContents) + { + String labelText = newContents; + + if ((newContents == null) || (newContents.length() == 0)) + { + labelText = Constants.html_NONESELECTED; + } + + setEditable(true); + super.setText(labelText); + setCaretPosition(0); + setEditable(false); + } +} Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-04-02 01:00:19 UTC (rev 11583) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-04-02 04:09:32 UTC (rev 11584) @@ -33,7 +33,7 @@ import pcgen.gui.converter.TokenConverter; import pcgen.gui2.PCGenUIManager; import pcgen.gui2.SplashScreen; -import pcgen.gui2.UIConfigContext; +import pcgen.gui2.UIPropertyContext; import pcgen.gui2.dialog.OptionsPathDialog; import pcgen.gui2.plaf.LookAndFeelManager; import pcgen.io.ExportHandler; @@ -105,8 +105,6 @@ { setLocale(); UIResourceContext.loadResourceBundle(); - //makes the UIResourceContext available to outside classes - ConfigurationSettings.registerPropertyContext(new UIResourceContext()); LookAndFeelManager.initLookAndFeel(); } @@ -114,7 +112,8 @@ { setSettingsPath(); //TODO: register existing PropertyContexts - ConfigurationSettings.registerPropertyContext(UIConfigContext.getSingleton()); + ConfigurationSettings.registerPropertyContext(PCGenSettings.getSingleton()); + ConfigurationSettings.registerPropertyContext(UIPropertyContext.getSingleton()); ConfigurationSettings.loadPropertyContexts(); } Added: sandbox/cdomui/code/src/java/pcgen/system/PCGenSettings.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PCGenSettings.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/PCGenSettings.java 2010-04-02 04:09:32 UTC (rev 11584) @@ -0,0 +1,46 @@ +/* + * PCGenSettings.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 1, 2010, 8:19:31 PM + */ +package pcgen.system; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class PCGenSettings extends PropertyContext +{ + + private static PCGenSettings instance = null; + + private PCGenSettings() + { + super("options.ini"); + } + + public static PCGenSettings getSingleton() + { + if (instance == null) + { + instance = new PCGenSettings(); + } + return instance; + } + +} Modified: sandbox/cdomui/code/src/java/pcgen/system/UIResourceContext.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/UIResourceContext.java 2010-04-02 01:00:19 UTC (rev 11583) +++ sandbox/cdomui/code/src/java/pcgen/system/UIResourceContext.java 2010-04-02 04:09:32 UTC (rev 11584) @@ -45,6 +45,7 @@ /** The URL to the resource folder of pcgen */ public static final String RESOURCE_URL = "/pcgen/gui/resource/"; private static final Map<Icons, ImageIcon> iconMap = new HashMap<Icons, ImageIcon>(); + private static UIResourceContext instance = null; private static ResourceBundle bundle = null; UIResourceContext() @@ -82,15 +83,18 @@ { return Collections.enumeration(Collections.EMPTY_SET); } + }; } } public static UIResourceContext getInstance() { - //Ask the SystemPropertyManager for the singleton instance - //since it isn't actually stored here... - return (UIResourceContext) ConfigurationSettings.getPropertyContext(LANGUAGE_BUNDLE); + if (instance == null) + { + instance = new UIResourceContext(); + } + return instance; } @Override @@ -288,4 +292,5 @@ ZoomIn16, ZoomOut16; } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-04-05 07:08:28
|
Revision: 11597 http://pcgen.svn.sourceforge.net/pcgen/?rev=11597&view=rev Author: cpmeister Date: 2010-04-05 07:08:03 +0000 (Mon, 05 Apr 2010) Log Message: ----------- UI update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui/utils/Utility.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java sandbox/cdomui/code/src/java/pcgen/gui2/dialog/TipOfTheDay.java sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java sandbox/cdomui/code/src/java/pcgen/gui2/tools/PCGenAction.java sandbox/cdomui/code/src/java/pcgen/gui2/util/JTableSortingHeader.java sandbox/cdomui/code/src/java/pcgen/system/ConfigurationSettings.java sandbox/cdomui/code/src/java/pcgen/system/LanguageBundle.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/tools/Icons.java sandbox/cdomui/code/src/java/pcgen/resources/images/ sandbox/cdomui/code/src/java/pcgen/resources/images/About16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Add16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/AlignBottom16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/AlignCenter16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/AlignJustifyHorizontal16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/AlignJustifyVertical16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/AlignLeft16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/AlignRight16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/AlignTop16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/BBack16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/BBack24.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Back16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Bookmarks16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Checklist16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Close16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/CloseAll16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/ComposeMail16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/ContextualHelp16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Copy16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/CustomZoom16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Cut16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/D20_logo_RGB.jpg sandbox/cdomui/code/src/java/pcgen/resources/images/DDown16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/DDown24.gif sandbox/cdomui/code/src/java/pcgen/resources/images/DefaultPortrait.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Delete16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Down16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Edit16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/EditZoom16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Export16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/FForward16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/FForward24.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Find16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/FindAgain16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Forward16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Help16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/History16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Import16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Information16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/MediaStop16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/New16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/NewEnvelope.gif sandbox/cdomui/code/src/java/pcgen/resources/images/NewNPC16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Open16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/PCGenApp.png sandbox/cdomui/code/src/java/pcgen/resources/images/PageSetup16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Paste16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/PcgenIcon.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Preferences16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/PreferencesHighlightBlue16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Print16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/PrintPreview16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Properties16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Redo16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Refresh16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Remove16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/RemovePreferences16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/RemoveZoom16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Replace16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Save16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/SaveAll16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/SaveAs16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Search16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/SendMail16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen.gif sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_510.png sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_5101.png sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_512.png sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_514.png sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_516.png sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_Alpha.png sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_Beta.png sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_Ennie.png sandbox/cdomui/code/src/java/pcgen/resources/images/SplashScreen.png sandbox/cdomui/code/src/java/pcgen/resources/images/Stop16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/TipOfTheDay16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/TipOfTheDay24.gif sandbox/cdomui/code/src/java/pcgen/resources/images/UUp16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/UUp24.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Undo16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Up16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/Zoom16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/ZoomHighlightBlue16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/ZoomIn16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/ZoomOut16.gif sandbox/cdomui/code/src/java/pcgen/resources/images/bronze100x100-2003.gif sandbox/cdomui/code/src/java/pcgen/resources/images/bronze200x200-2003.gif sandbox/cdomui/code/src/java/pcgen/resources/images/bronze300x300-2003.gif sandbox/cdomui/code/src/java/pcgen/resources/images/gmgen_icon.png sandbox/cdomui/code/src/java/pcgen/resources/images/gnome-application-msword.png sandbox/cdomui/code/src/java/pcgen/resources/images/gnome-application-pdf.png sandbox/cdomui/code/src/java/pcgen/resources/images/gnome-application-rtf.png sandbox/cdomui/code/src/java/pcgen/resources/images/gnome-application-vnd.ms-excel.png sandbox/cdomui/code/src/java/pcgen/resources/images/gnome-application-vnd.ms-powerpoint.png sandbox/cdomui/code/src/java/pcgen/resources/images/gnome-application-x-staroffice-words.png sandbox/cdomui/code/src/java/pcgen/resources/images/gnome-generic.png sandbox/cdomui/code/src/java/pcgen/resources/images/gnome-image-generic.png sandbox/cdomui/code/src/java/pcgen/resources/images/gnome-text-html.png sandbox/cdomui/code/src/java/pcgen/resources/images/gnome-text-plain.png sandbox/cdomui/code/src/java/pcgen/resources/images/gold100x100-2005.gif sandbox/cdomui/code/src/java/pcgen/resources/images/gold200x200-2005.gif sandbox/cdomui/code/src/java/pcgen/resources/images/gold300x300-2005.gif sandbox/cdomui/code/src/java/pcgen/resources/images/menu-mode-RGB-alt.png sandbox/cdomui/code/src/java/pcgen/resources/images/paper_background_repeat.gif sandbox/cdomui/code/src/java/pcgen/resources/images/stock-tool-button-by-color-select.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_broken_image-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_color-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_copy-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_cut-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_export-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_insert_graphic-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_insert_table-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_list_bulet-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_list_enum-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_new-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_paste-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_print-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_revert-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_save-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_spellcheck-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_text_align_center-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_text_align_left-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_text_align_right-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_text_bold-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_text_italic-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/stock_text_underline-16.png sandbox/cdomui/code/src/java/pcgen/resources/images/win-acrobat.png sandbox/cdomui/code/src/java/pcgen/resources/images/win-cc2.png sandbox/cdomui/code/src/java/pcgen/resources/images/win-excel.png sandbox/cdomui/code/src/java/pcgen/resources/images/win-word.png sandbox/cdomui/code/src/java/pcgen/resources/images/win-zip.png sandbox/cdomui/code/src/java/pcgen/resources/images/wrench.gif sandbox/cdomui/code/src/java/pcgen/resources/lang/ sandbox/cdomui/code/src/java/pcgen/resources/lang/ErrorsBundle.properties sandbox/cdomui/code/src/java/pcgen/resources/lang/LanguageBundle.properties sandbox/cdomui/code/src/java/pcgen/resources/lang/LanguageBundle_de.properties sandbox/cdomui/code/src/java/pcgen/resources/lang/LanguageBundle_es.properties sandbox/cdomui/code/src/java/pcgen/resources/lang/LanguageBundle_fr.properties sandbox/cdomui/code/src/java/pcgen/resources/lang/LanguageBundle_it.properties sandbox/cdomui/code/src/java/pcgen/resources/lang/LanguageBundle_pt.properties sandbox/cdomui/code/src/java/pcgen/system/PropertyContextFactory.java Removed Paths: ------------- sandbox/cdomui/code/src/java/pcgen/resources/ErrorsBundle.properties sandbox/cdomui/code/src/java/pcgen/system/UIResourceContext.java Modified: sandbox/cdomui/code/src/java/pcgen/gui/utils/Utility.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui/utils/Utility.java 2010-04-05 00:08:01 UTC (rev 11596) +++ sandbox/cdomui/code/src/java/pcgen/gui/utils/Utility.java 2010-04-05 07:08:03 UTC (rev 11597) @@ -456,7 +456,7 @@ boolean enable) { final String label = LanguageBundle.getString("in_" + prop); - final char mnemonic = LanguageBundle.getMnemonic("in_mn_" + prop); + final char mnemonic = (char)LanguageBundle.getMnemonic("in_mn_" + prop); final String description = LanguageBundle.getString("in_" + prop + "Tip"); @@ -514,7 +514,7 @@ final String accelerator, final String iconName, final boolean enable) { String label = LanguageBundle.getString("in_" + prop); - char mnemonic = LanguageBundle.getMnemonic("in_mn_" + prop); + char mnemonic = (char)LanguageBundle.getMnemonic("in_mn_" + prop); String description = LanguageBundle.getString("in_" + prop + "Tip"); return createMenuItem(label, listener, command, mnemonic, accelerator, Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java 2010-04-05 00:08:01 UTC (rev 11596) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java 2010-04-05 07:08:03 UTC (rev 11597) @@ -33,7 +33,7 @@ import pcgen.core.facade.TemplateFacade; import pcgen.gui2.dialog.TipOfTheDay; import pcgen.gui2.tools.PCGenAction; -import pcgen.system.UIResourceContext.Icons; +import pcgen.gui2.tools.Icons; /** * Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-04-05 00:08:01 UTC (rev 11596) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-04-05 07:08:03 UTC (rev 11597) @@ -40,6 +40,7 @@ import pcgen.gui2.util.GenericListModel; import pcgen.system.PropertyContext; import pcgen.system.ConfigurationSettings; +import pcgen.system.PropertyContextFactory; /** * @@ -59,7 +60,7 @@ public static PropertyContext getUIPropertyContext() { - return ConfigurationSettings.getPropertyContext("UIConfig.ini"); + return PropertyContextFactory.DEFAULT_FACTORY.getPropertyContext("UIConfig.ini"); } static void loadSources(final List<Campaign> selectedCampaigns) Modified: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/TipOfTheDay.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/TipOfTheDay.java 2010-04-05 00:08:01 UTC (rev 11596) +++ sandbox/cdomui/code/src/java/pcgen/gui2/dialog/TipOfTheDay.java 2010-04-05 07:08:03 UTC (rev 11597) @@ -55,10 +55,10 @@ import pcgen.core.SettingsHandler; import pcgen.gui.utils.Hyperactive; import pcgen.gui2.UIPropertyContext; +import pcgen.gui2.tools.Icons; import pcgen.gui2.util.JLabelPane; import pcgen.system.ConfigurationSettings; -import pcgen.system.UIResourceContext; -import pcgen.system.UIResourceContext.Icons; +import pcgen.system.LanguageBundle; import pcgen.util.Logging; /** @@ -87,7 +87,7 @@ super(); //IconUtilitities.maybeSetIcon(this, "TipOfTheDay16.gif"); - setTitle(UIResourceContext.getInstance().getProperty("in_tod_title")); + setTitle(LanguageBundle.getString("in_tod_title")); // initialize the interface initUI(); @@ -127,7 +127,7 @@ panel.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3)); JLabel iconLabel; - final Icon icon = UIResourceContext.getImageIcon(Icons.TipOfTheDay24); + final Icon icon = Icons.TipOfTheDay24.getImageIcon(); if (icon != null) { @@ -140,8 +140,7 @@ iconLabel.setOpaque(true); panel.add(iconLabel, BorderLayout.WEST); - UIResourceContext context = UIResourceContext.getInstance(); - final JLabel lblDidYouKnow = new JLabel(" " + context.getProperty("in_tod_didyouknow")); + final JLabel lblDidYouKnow = new JLabel(" " + LanguageBundle.getString("in_tod_didyouknow")); final Font old = lblDidYouKnow.getFont(); lblDidYouKnow.setFont(old.deriveFont(old.getStyle() | Font.ITALIC, 18f)); lblDidYouKnow.setOpaque(true); @@ -160,14 +159,14 @@ panel.add(content, BorderLayout.CENTER); - chkShowTips = new JCheckBox(context.getProperty("in_tod_showTips"), propertyContext.initBoolean("showTipOfTheDay", true)); + chkShowTips = new JCheckBox(LanguageBundle.getString("in_tod_showTips"), propertyContext.initBoolean("showTipOfTheDay", true)); - final JButton btnClose = new JButton(context.getProperty("in_close")); - btnClose.setMnemonic(context.getMnemonic("in_mn_close")); + final JButton btnClose = new JButton(LanguageBundle.getString("in_close")); + btnClose.setMnemonic(LanguageBundle.getMnemonic("in_mn_close")); btnClose.addActionListener(this); - final JButton btnNextTip = new JButton(context.getProperty("in_tod_nextTip")); - btnNextTip.setMnemonic(context.getMnemonic("in_mn_tod_nextTip")); + final JButton btnNextTip = new JButton(LanguageBundle.getString("in_tod_nextTip")); + btnNextTip.setMnemonic(LanguageBundle.getMnemonic("in_mn_tod_nextTip")); btnNextTip.addActionListener(this); btnNextTip.setActionCommand(NEXT); @@ -232,7 +231,7 @@ private void loadTips() { tipList = new ArrayList<String>(20); - String systemDir = ConfigurationSettings.getDirectory(ConfigurationSettings.SYSTEMS_DIR); + String systemDir = ConfigurationSettings.getSystemsDir(); final String tipsFilePath = systemDir + File.separator + "gameModes" + File.separator + SettingsHandler.getGame().getName() + File.separator + "tips.lst"; final String tipsDefaultPath = systemDir + File.separator + "gameModes" + Modified: sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java 2010-04-05 00:08:01 UTC (rev 11596) +++ sandbox/cdomui/code/src/java/pcgen/gui2/plaf/LookAndFeelManager.java 2010-04-05 07:08:03 UTC (rev 11597) @@ -161,7 +161,7 @@ private LookAndFeelManager() { - ConfigurationSettings.getSingleton().addPropertyChangeListener("selectedThemePack", this); + ConfigurationSettings.getInstance().addPropertyChangeListener("selectedThemePack", this); } public void propertyChange(PropertyChangeEvent evt) @@ -171,7 +171,7 @@ } // -// public static LookAndFeelManager getSingleton() +// public static LookAndFeelManager getInstance() // { // if (instance == null) // { @@ -220,7 +220,7 @@ { // this must be a skin LAF String themePack = ConfigurationSettings.getSystemProperty("selectedThemePack"); - String path = ConfigurationSettings.getDirectory(ConfigurationSettings.THEME_PACK_DIR); + String path = ConfigurationSettings.getThemePackDir(); path += File.separator + themePack; LookAndFeel laf = SkinManager.createSkinLAF(path); UIManager.setLookAndFeel(laf); @@ -249,7 +249,7 @@ try { - String path = ConfigurationSettings.getDirectory(ConfigurationSettings.THEME_PACK_DIR); + String path = ConfigurationSettings.getThemePackDir(); path += File.separator + oldTheme; LookAndFeel laf = SkinManager.createSkinLAF(path); Added: sandbox/cdomui/code/src/java/pcgen/gui2/tools/Icons.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tools/Icons.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tools/Icons.java 2010-04-05 07:08:03 UTC (rev 11597) @@ -0,0 +1,143 @@ +/* + * Icons.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 4, 2010, 5:24:43 PM + */ +package pcgen.gui2.tools; + +import java.net.URL; +import java.util.EnumMap; +import java.util.Map; +import javax.swing.ImageIcon; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public enum Icons +{ + + About16, + Add16, + AlignBottom16, + AlignCenter16, + AlignJustifyHorizontal16, + AlignJustifyVertical16, + AlignLeft16, + AlignRight16, + AlignTop16, + BBack16, + BBack24, + Back16, + Bookmarks16, + Checklist16, + Close16, + CloseAll16, + ComposeMail16, + ContextualHelp16, + Copy16, + CustomZoom16, + Cut16, + DDown16, + DDown24, + DefaultPortrait, + Delete16, + Down16, + Edit16, + EditZoom16, + Export16, + FForward16, + FForward24, + Find16, + FindAgain16, + Forward16, + Help16, + History16, + Import16, + Information16, + MediaStop16, + New16, + NewEnvelope, + NewNPC16, + Open16, + PageSetup16, + Paste16, + PcgenIcon, + Preferences16, + PreferencesHighlightBlue16, + Print16, + PrintPreview16, + Properties16, + Redo16, + Refresh16, + Remove16, + RemovePreferences16, + RemoveZoom16, + Replace16, + Save16, + SaveAll16, + SaveAs16, + Search16, + SendMail16, + SplashPcgen, + Stop16, + TipOfTheDay16, + TipOfTheDay24, + UUp16, + UUp24, + Undo16, + Up16, + Zoom16, + ZoomHighlightBlue16, + ZoomIn16, + ZoomOut16; + private static final String RESOURCE_URL = "/pcgen/resources/images/"; + private static final Map<Icons, ImageIcon> iconMap = new EnumMap<Icons, ImageIcon>(Icons.class); + /** + * Fetch an <code>ImageIcon</code> relative to the calling + * location. + * + * @param fileName <code>String</code>, the path to the + * <code>IconImage> source + * + * @return <code>ImageIcon</code>, the icon or <code>null</code> + * on failure + */ + public static ImageIcon createImageIcon(String fileName) + { + fileName = RESOURCE_URL + fileName; + final URL iconURL = Icons.class.getResource(fileName); + if (iconURL == null) + { + return null; + } + return new ImageIcon(iconURL); + } + + public ImageIcon getImageIcon() + { + ImageIcon image = iconMap.get(this); + if (image == null) + { + image = createImageIcon(toString() + ".gif"); + iconMap.put(this, image); + } + return image; + } + +} Modified: sandbox/cdomui/code/src/java/pcgen/gui2/tools/PCGenAction.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/tools/PCGenAction.java 2010-04-05 00:08:01 UTC (rev 11596) +++ sandbox/cdomui/code/src/java/pcgen/gui2/tools/PCGenAction.java 2010-04-05 07:08:03 UTC (rev 11597) @@ -26,8 +26,7 @@ import java.util.StringTokenizer; import javax.swing.AbstractAction; import javax.swing.KeyStroke; -import pcgen.system.UIResourceContext; -import pcgen.system.UIResourceContext.Icons; +import pcgen.system.LanguageBundle; public class PCGenAction extends AbstractAction { @@ -60,10 +59,9 @@ public PCGenAction(String prop, String command, String accelerator, Icons icon) { - UIResourceContext context = UIResourceContext.getInstance(); - putValue(NAME, context.getText(prop)); - putValue(MNEMONIC_KEY, context.getMnemonic(prop)); - putValue(SHORT_DESCRIPTION, context.getToolTip(prop)); + putValue(NAME, LanguageBundle.getString("in_"+prop)); + putValue(MNEMONIC_KEY, LanguageBundle.getMnemonic("in_mn_"+prop)); + putValue(SHORT_DESCRIPTION, LanguageBundle.getString("in_"+prop+"Tip")); if (command != null) { @@ -120,7 +118,7 @@ } if (icon != null) { - putValue(SMALL_ICON, UIResourceContext.getImageIcon(icon)); + putValue(SMALL_ICON, icon.getImageIcon()); } } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/util/JTableSortingHeader.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/util/JTableSortingHeader.java 2010-04-05 00:08:01 UTC (rev 11596) +++ sandbox/cdomui/code/src/java/pcgen/gui2/util/JTableSortingHeader.java 2010-04-05 07:08:03 UTC (rev 11597) @@ -20,7 +20,6 @@ */ package pcgen.gui2.util; -import pcgen.gui2.tools.ResourceManager; import java.awt.Component; import java.awt.Cursor; import java.awt.Insets; @@ -38,6 +37,7 @@ import javax.swing.table.JTableHeader; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumnModel; +import pcgen.gui2.tools.Icons; /** * @@ -47,8 +47,8 @@ { private static final long serialVersionUID = -2459707147524421794L; - private static final Icon ASCENDING_ICON = ResourceManager.getImageIcon(ResourceManager.Icons.Down16); - private static final Icon DESCENDING_ICON = ResourceManager.getImageIcon(ResourceManager.Icons.Up16); + private static final Icon ASCENDING_ICON = Icons.Down16.getImageIcon(); + private static final Icon DESCENDING_ICON = Icons.Up16.getImageIcon(); private static final ButtonModel defaultModel = new DefaultButtonModel(); private final ButtonModel usedModel = new DefaultButtonModel(); Deleted: sandbox/cdomui/code/src/java/pcgen/resources/ErrorsBundle.properties =================================================================== --- sandbox/cdomui/code/src/java/pcgen/resources/ErrorsBundle.properties 2010-04-05 00:08:01 UTC (rev 11596) +++ sandbox/cdomui/code/src/java/pcgen/resources/ErrorsBundle.properties 2010-04-05 07:08:03 UTC (rev 11597) @@ -1,20 +0,0 @@ -# ErrorsBundle.properties -# Copyright 2010 Connor Petty <cpm...@us...> -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# Created on Apr 2, 2010, 1:55:54 PM - -pcgen.system.PropertyManager.in_createFileError=Failed to create file: {0} \ No newline at end of file Added: sandbox/cdomui/code/src/java/pcgen/resources/images/About16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/About16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Add16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Add16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignBottom16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignBottom16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignCenter16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignCenter16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignJustifyHorizontal16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignJustifyHorizontal16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignJustifyVertical16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignJustifyVertical16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignLeft16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignLeft16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignRight16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignRight16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignTop16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/AlignTop16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/BBack16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/BBack16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/BBack24.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/BBack24.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Back16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Back16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Bookmarks16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Bookmarks16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Checklist16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Checklist16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Close16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Close16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/CloseAll16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/CloseAll16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/ComposeMail16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/ComposeMail16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/ContextualHelp16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/ContextualHelp16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Copy16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Copy16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/CustomZoom16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/CustomZoom16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Cut16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Cut16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/D20_logo_RGB.jpg =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/D20_logo_RGB.jpg ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/DDown16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/DDown16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/DDown24.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/DDown24.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/DefaultPortrait.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/DefaultPortrait.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Delete16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Delete16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Down16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Down16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Edit16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Edit16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/EditZoom16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/EditZoom16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Export16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Export16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/FForward16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/FForward16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/FForward24.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/FForward24.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Find16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Find16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/FindAgain16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/FindAgain16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Forward16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Forward16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Help16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Help16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/History16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/History16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Import16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Import16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Information16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Information16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/MediaStop16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/MediaStop16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/New16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/New16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/NewEnvelope.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/NewEnvelope.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/NewNPC16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/NewNPC16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Open16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Open16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/PCGenApp.png =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/PCGenApp.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/PageSetup16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/PageSetup16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Paste16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Paste16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/PcgenIcon.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/PcgenIcon.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Preferences16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Preferences16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/PreferencesHighlightBlue16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/PreferencesHighlightBlue16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Print16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Print16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/PrintPreview16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/PrintPreview16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Properties16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Properties16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Redo16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Redo16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Refresh16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Refresh16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Remove16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Remove16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/RemovePreferences16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/RemovePreferences16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/RemoveZoom16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/RemoveZoom16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Replace16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Replace16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Save16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Save16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SaveAll16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SaveAll16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SaveAs16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SaveAs16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Search16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Search16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SendMail16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SendMail16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_510.png =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_510.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_5101.png =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_5101.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_512.png =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_512.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_514.png =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_514.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_516.png =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_516.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_Alpha.png =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_Alpha.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_Beta.png =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_Beta.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_Ennie.png =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashPcgen_Ennie.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashScreen.png =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/SplashScreen.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Stop16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Stop16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/TipOfTheDay16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/TipOfTheDay16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/TipOfTheDay24.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/TipOfTheDay24.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/UUp16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/UUp16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/UUp24.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/UUp24.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Undo16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Undo16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Up16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Up16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/Zoom16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/Zoom16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/ZoomHighlightBlue16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/ZoomHighlightBlue16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/ZoomIn16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/ZoomIn16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/ZoomOut16.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/ZoomOut16.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/bronze100x100-2003.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/bronze100x100-2003.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/bronze200x200-2003.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/bronze200x200-2003.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/bronze300x300-2003.gif =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/bronze300x300-2003.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/gmgen_icon.png =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/gmgen_icon.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbox/cdomui/code/src/java/pcgen/resources/images/gnome-application-msword.png =================================================================== (Binary files differ) Property changes on: sandbox/cdomui/code/src/java/pcgen/resources/images/gnome-application-msword.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: sandbo... [truncated message content] |
From: <cpm...@us...> - 2010-04-07 22:43:00
|
Revision: 11599 http://pcgen.svn.sourceforge.net/pcgen/?rev=11599&view=rev Author: cpmeister Date: 2010-04-07 22:42:53 +0000 (Wed, 07 Apr 2010) Log Message: ----------- Minor UI Update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java sandbox/cdomui/code/src/java/pcgen/gui2/UIPropertyContext.java sandbox/cdomui/code/src/java/pcgen/gui2/dialog/TipOfTheDay.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/core/facade/CampaignFacade.java sandbox/cdomui/code/src/java/pcgen/core/facade/QuickSourceFacade.java sandbox/cdomui/code/src/java/pcgen/system/FacadeFactory.java Added: sandbox/cdomui/code/src/java/pcgen/core/facade/CampaignFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/CampaignFacade.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/CampaignFacade.java 2010-04-07 22:42:53 UTC (rev 11599) @@ -0,0 +1,30 @@ +/* + * CampaignFacade.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 7, 2010, 2:38:05 PM + */ + +package pcgen.core.facade; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public interface CampaignFacade { + public boolean showInMenu(); +} Added: sandbox/cdomui/code/src/java/pcgen/core/facade/QuickSourceFacade.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/core/facade/QuickSourceFacade.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/core/facade/QuickSourceFacade.java 2010-04-07 22:42:53 UTC (rev 11599) @@ -0,0 +1,34 @@ +/* + * QuickSourceFacade.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 7, 2010, 3:13:55 PM + */ +package pcgen.core.facade; + +import pcgen.gui2.util.GenericListModel; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public interface QuickSourceFacade +{ + + public GenericListModel<CampaignFacade> getCampaigns(); + +} Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java 2010-04-06 19:38:26 UTC (rev 11598) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenActionMap.java 2010-04-07 22:42:53 UTC (rev 11599) @@ -840,7 +840,7 @@ @Override public void actionPerformed(ActionEvent e) { - TipOfTheDay tips = new TipOfTheDay(); + TipOfTheDay tips = new TipOfTheDay(frame); tips.setLocationRelativeTo(frame); tips.setVisible(true); } Modified: sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-04-06 19:38:26 UTC (rev 11598) +++ sandbox/cdomui/code/src/java/pcgen/gui2/PCGenUIManager.java 2010-04-07 22:42:53 UTC (rev 11599) @@ -102,9 +102,12 @@ public static void startGUI() { pcgenFrame.setVisible(true); - TipOfTheDay tips = new TipOfTheDay(); - tips.setLocationRelativeTo(pcgenFrame); - tips.setVisible(true); + if (TipOfTheDay.showTipOfTheDay()) + { + TipOfTheDay tips = new TipOfTheDay(pcgenFrame); + tips.setLocationRelativeTo(pcgenFrame); + tips.setVisible(true); + } } // public static void startGUI() // { Modified: sandbox/cdomui/code/src/java/pcgen/gui2/UIPropertyContext.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/UIPropertyContext.java 2010-04-06 19:38:26 UTC (rev 11598) +++ sandbox/cdomui/code/src/java/pcgen/gui2/UIPropertyContext.java 2010-04-07 22:42:53 UTC (rev 11599) @@ -68,6 +68,11 @@ return NumberUtils.toInt(getProperty(key)); } + public int getInt(String key, int defaultValue) + { + return NumberUtils.toInt(getProperty(key, Integer.toString(defaultValue))); + } + public void setInt(String key, int integer) { setProperty(key, Integer.toString(integer)); @@ -83,6 +88,11 @@ return Color.decode(getProperty(key)); } + public Color getColor(String key, Color defaultValue) + { + return Color.decode(getProperty(key, Integer.toHexString(defaultValue.getRGB()))); + } + public void setColor(String key, Color color) { setProperty(key, Integer.toHexString(color.getRGB())); @@ -98,6 +108,11 @@ return Boolean.valueOf(getProperty(key)); } + public boolean getBoolean(String key, boolean defaultValue) + { + return Boolean.valueOf(getProperty(key, Boolean.toString(defaultValue))); + } + public void setBoolean(String key, boolean bool) { setProperty(key, Boolean.toString(bool)); Modified: sandbox/cdomui/code/src/java/pcgen/gui2/dialog/TipOfTheDay.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/dialog/TipOfTheDay.java 2010-04-06 19:38:26 UTC (rev 11598) +++ sandbox/cdomui/code/src/java/pcgen/gui2/dialog/TipOfTheDay.java 2010-04-07 22:42:53 UTC (rev 11599) @@ -54,6 +54,7 @@ import javax.swing.JScrollPane; import pcgen.core.SettingsHandler; import pcgen.gui.utils.Hyperactive; +import pcgen.gui2.PCGenFrame; import pcgen.gui2.UIPropertyContext; import pcgen.gui2.tools.Icons; import pcgen.gui2.util.JLabelPane; @@ -82,9 +83,9 @@ private int lastNumber = -1; /** Creates new TipOfTheDay */ - public TipOfTheDay() + public TipOfTheDay(PCGenFrame frame) { - super(); + super(frame); //IconUtilitities.maybeSetIcon(this, "TipOfTheDay16.gif"); setTitle(LanguageBundle.getString("in_tod_title")); @@ -101,6 +102,11 @@ showNextTip(); } + public static boolean showTipOfTheDay() + { + return propertyContext.getBoolean("showTipOfTheDay", true); + } + public void actionPerformed(ActionEvent e) { if (NEXT.equals(e.getActionCommand())) Added: sandbox/cdomui/code/src/java/pcgen/system/FacadeFactory.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/FacadeFactory.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/FacadeFactory.java 2010-04-07 22:42:53 UTC (rev 11599) @@ -0,0 +1,52 @@ +/* + * FacadeFactory.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 7, 2010, 2:35:48 PM + */ +package pcgen.system; + +import pcgen.core.facade.CampaignFacade; +import pcgen.core.facade.GameModeFacade; +import pcgen.core.facade.QuickSourceFacade; +import pcgen.gui2.util.GenericListModel; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class FacadeFactory +{ + private static GenericListModel<QuickSourceFacade> quickSources = null; + private static GenericListModel<CampaignFacade> campaigns = null; + private static GenericListModel<GameModeFacade> gamemodes = null; + public static GenericListModel<QuickSourceFacade> getQuickSources() + { + return quickSources; + } + + public static GenericListModel<CampaignFacade> getCampaigns() + { + return campaigns; + } + + public static GenericListModel<GameModeFacade> getGameModes() + { + return gamemodes; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-04-08 19:42:50
|
Revision: 11613 http://pcgen.svn.sourceforge.net/pcgen/?rev=11613&view=rev Author: cpmeister Date: 2010-04-08 19:42:43 +0000 (Thu, 08 Apr 2010) Log Message: ----------- Minor UI Update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/persistence/lst/LstSystemLoader.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/PCGenSettings.java Modified: sandbox/cdomui/code/src/java/pcgen/persistence/lst/LstSystemLoader.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/persistence/lst/LstSystemLoader.java 2010-04-08 18:07:21 UTC (rev 11612) +++ sandbox/cdomui/code/src/java/pcgen/persistence/lst/LstSystemLoader.java 2010-04-08 19:42:43 UTC (rev 11613) @@ -82,8 +82,10 @@ import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.SystemLoader; import pcgen.rules.context.LoadContext; -import pcgen.util.Logging; +import pcgen.system.ConfigurationSettings; import pcgen.system.LanguageBundle; +import pcgen.system.PCGenSettings; +import pcgen.util.Logging; /** * ??? @@ -324,7 +326,7 @@ } files.clear(); files.addAll(l); - SettingsHandler.getOptions().setProperty( + PCGenSettings.getInstance().setProperty( "pcgen.files.chosenCampaignSourcefiles." + game.getName(), StringUtil.join(files, ", ")); // CoreUtility.join(chosenCampaignSourcefiles, ',')); @@ -389,10 +391,8 @@ loadSponsorsLstFile(); // Load the initial campaigns - loadPCCFilesInDirectory(SettingsHandler.getPccFilesLocation() - .getAbsolutePath()); - loadPCCFilesInDirectory(SettingsHandler.getPcgenVendorDataDir() - .getAbsolutePath()); + loadPCCFilesInDirectory(ConfigurationSettings.getPccFilesDir()); + loadPCCFilesInDirectory(ConfigurationSettings.getVendorDataDir()); // Now that those are loaded, make sure to initialize the recursive campaigns initRecursivePccFiles(); @@ -407,7 +407,7 @@ */ private void loadSponsorsLstFile() { - File sponsorDir = new File(SettingsHandler.getPcgenSystemDir(), "sponsors"); + File sponsorDir = new File(ConfigurationSettings.getSystemsDir(), "sponsors"); File sponsorFile = new File(sponsorDir, "sponsors.lst"); try @@ -494,7 +494,7 @@ // is no current gameMode, so just return return; } - File gameModeDir = new File(SettingsHandler.getPcgenSystemDir(), "gameModes"); + File gameModeDir = new File(ConfigurationSettings.getSystemsDir(), "gameModes"); File specificGameModeDir = new File(gameModeDir, gamemode.getFolderName()); // Sort the campaigns @@ -689,10 +689,8 @@ public void refreshCampaigns() { Globals.clearCampaignsForRefresh(); - loadPCCFilesInDirectory(SettingsHandler.getPccFilesLocation() - .getAbsolutePath()); - loadPCCFilesInDirectory(SettingsHandler.getPcgenVendorDataDir() - .getAbsolutePath()); + loadPCCFilesInDirectory(ConfigurationSettings.getPccFilesDir()); + loadPCCFilesInDirectory(ConfigurationSettings.getVendorDataDir()); // Now that those are loaded, make sure to initialize the recursive campaigns try @@ -719,7 +717,7 @@ for (String key : keys) { String value = aCamp.get(MapKey.PROPERTY, key); - SettingsHandler.setPCGenOption(key, value); + PCGenSettings.OPTIONS.setProperty(key, value); } } } @@ -732,7 +730,7 @@ private static String[] getGameFilesList() { final String aDirectory = - SettingsHandler.getPcgenSystemDir() + File.separator + ConfigurationSettings.getSystemsDir() + File.separator + "gameModes" + File.separator; return new File(aDirectory).list(gameModeFileFilter); @@ -1123,7 +1121,7 @@ private boolean loadGameModeLstFile(LoadContext context, LstLineFileLoader lstFileLoader, String gameModeName, String gameModeFolderName, String lstFileName, final boolean showMissing) { - File gameModeDir = new File(SettingsHandler.getPcgenSystemDir(), "gameModes"); + File gameModeDir = new File(ConfigurationSettings.getSystemsDir(), "gameModes"); try { @@ -1172,7 +1170,7 @@ SystemCollections.clearGameModeList(); - File gameModeDir = new File(SettingsHandler.getPcgenSystemDir(), "gameModes"); + File gameModeDir = new File(ConfigurationSettings.getSystemsDir(), "gameModes"); for (String gameFile : gameFiles) { @@ -1300,7 +1298,7 @@ if (!files.contains(sourceFile)) { files.add(sourceFile); - SettingsHandler.getOptions().setProperty( + PCGenSettings.getInstance().setProperty( "pcgen.files.chosenCampaignSourcefiles." + game.getName(), StringUtil.join(files, ", ")); // CoreUtility.join(chosenCampaignSourcefiles, ',')); Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-04-08 18:07:21 UTC (rev 11612) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-04-08 19:42:43 UTC (rev 11613) @@ -113,7 +113,7 @@ setSettingsPath(); //Existing PropertyContexts are registered here PropertyContextFactory defaultFactory = PropertyContextFactory.DEFAULT_FACTORY; - defaultFactory.registerPropertyContext(PCGenSettings.getSingleton()); + defaultFactory.registerPropertyContext(PCGenSettings.getInstance()); defaultFactory.registerPropertyContext(UIPropertyContext.getSingleton()); defaultFactory.loadPropertyContexts(); } @@ -171,8 +171,7 @@ ShowMessageDelegate.showMessageDialog(e.getMessage(), Constants.s_APPNAME, MessageType.INFORMATION); } - PropertyContext properties = PropertyContextFactory.DEFAULT_FACTORY.getPropertyContext("options.ini"); - String game = properties.initProperty("game", Constants.e35_MODE); + String game = PCGenSettings.getInstance().initProperty("game", Constants.e35_MODE); SettingsHandler.setGame(game); SettingsHandler.getGame().clearLoadContext(); Globals.createEmptyRace(); Modified: sandbox/cdomui/code/src/java/pcgen/system/PCGenSettings.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PCGenSettings.java 2010-04-08 18:07:21 UTC (rev 11612) +++ sandbox/cdomui/code/src/java/pcgen/system/PCGenSettings.java 2010-04-08 19:42:43 UTC (rev 11613) @@ -27,19 +27,16 @@ public class PCGenSettings extends PropertyContext { - private static PCGenSettings instance = null; + private static PCGenSettings instance = new PCGenSettings(); + public static PropertyContext OPTIONS = instance.createSubContext("pcgen.options"); private PCGenSettings() { super("options.ini"); } - public static PCGenSettings getSingleton() + public static PCGenSettings getInstance() { - if (instance == null) - { - instance = new PCGenSettings(); - } return instance; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cpm...@us...> - 2010-04-11 02:50:06
|
Revision: 11617 http://pcgen.svn.sourceforge.net/pcgen/?rev=11617&view=rev Author: cpmeister Date: 2010-04-11 02:49:59 +0000 (Sun, 11 Apr 2010) Log Message: ----------- UI Update Modified Paths: -------------- sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java sandbox/cdomui/code/src/java/pcgen/system/FacadeFactory.java sandbox/cdomui/code/src/java/pcgen/system/Main.java sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java Added Paths: ----------- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CampaignMock.java sandbox/cdomui/code/src/java/pcgen/persistence/GameModeFileLoader.java sandbox/cdomui/code/src/java/pcgen/system/PCGenTask.java sandbox/cdomui/code/src/java/pcgen/system/PCGenTaskEvent.java sandbox/cdomui/code/src/java/pcgen/system/PCGenTaskExecutor.java sandbox/cdomui/code/src/java/pcgen/system/PCGenTaskListener.java Modified: sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2010-04-10 10:16:14 UTC (rev 11616) +++ sandbox/cdomui/code/src/java/pcgen/gui2/SplashScreen.java 2010-04-11 02:49:59 UTC (rev 11617) @@ -27,18 +27,23 @@ import java.net.URL; import java.util.Observable; import java.util.Observer; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.swing.JLabel; import javax.swing.JProgressBar; import javax.swing.JWindow; import javax.swing.SwingUtilities; import pcgen.core.SettingsHandler; -import pcgen.gui2.tools.ResourceManager; +import pcgen.gui2.tools.Icons; +import pcgen.system.PCGenTask; +import pcgen.system.PCGenTaskEvent; +import pcgen.system.PCGenTaskListener; /** * * @author Connor Petty <cpm...@us...> */ -public class SplashScreen extends JWindow implements Observer +public class SplashScreen extends JWindow implements PCGenTaskListener { private final JProgressBar loadProgress; @@ -55,13 +60,14 @@ { Container pane = getContentPane(); pane.setLayout(new BorderLayout()); - - JLabel splashLabel = new JLabel(ResourceManager.getImageIcon("SplashPcgen_Alpha.png")); + JLabel splashLabel = new JLabel(Icons.createImageIcon("SplashPcgen_Alpha.png")); pane.add(splashLabel, BorderLayout.NORTH); loadingLabel.setText(" "); pane.add(loadingLabel, BorderLayout.CENTER); loadProgress.setStringPainted(false); + loadProgress.setMinimum(0); + loadProgress.setMaximum(0); pane.add(loadProgress, BorderLayout.SOUTH); pack(); @@ -107,4 +113,27 @@ } } + private boolean dirty = false; + + public void progressChanged(final PCGenTaskEvent event) + { + if (!dirty) + { + dirty = true; + SwingUtilities.invokeLater(new Runnable() + { + + public void run() + { + PCGenTask task = event.getSource(); + loadProgress.getModel().setRangeProperties(task.getProgress(), 1, 0, task.getMaximum(), true); + loadingLabel.setText(task.getMessage()); + dirty = false; + } + + }); + } + + } + } Added: sandbox/cdomui/code/src/java/pcgen/gui2/mock/CampaignMock.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/gui2/mock/CampaignMock.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/gui2/mock/CampaignMock.java 2010-04-11 02:49:59 UTC (rev 11617) @@ -0,0 +1,52 @@ +/* + * CampaignMock.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 10, 2010, 2:16:34 PM + */ +package pcgen.gui2.mock; + +import pcgen.cdom.enumeration.ObjectKey; +import pcgen.core.Campaign; +import pcgen.core.facade.CampaignFacade; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class CampaignMock implements CampaignFacade +{ + + private Campaign campaign; + + public CampaignMock(Campaign campaign) + { + this.campaign = campaign; + } + + public boolean showInMenu() + { + return campaign.getSafe(ObjectKey.SHOW_IN_MENU); + } + + @Override + public String toString() + { + return campaign.getDisplayName(); + } + +} Added: sandbox/cdomui/code/src/java/pcgen/persistence/GameModeFileLoader.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/persistence/GameModeFileLoader.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/persistence/GameModeFileLoader.java 2010-04-11 02:49:59 UTC (rev 11617) @@ -0,0 +1,38 @@ +/* + * GameModeFileLoader.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 10, 2010, 2:57:00 PM + */ + +package pcgen.persistence; + +import pcgen.system.PCGenTask; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class GameModeFileLoader extends PCGenTask{ + + @Override + public void execute() + { + throw new UnsupportedOperationException("Not supported yet."); + } + +} Modified: sandbox/cdomui/code/src/java/pcgen/system/FacadeFactory.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/FacadeFactory.java 2010-04-10 10:16:14 UTC (rev 11616) +++ sandbox/cdomui/code/src/java/pcgen/system/FacadeFactory.java 2010-04-11 02:49:59 UTC (rev 11617) @@ -31,9 +31,11 @@ */ public class FacadeFactory { + private static GenericListModel<QuickSourceFacade> quickSources = null; private static GenericListModel<CampaignFacade> campaigns = null; private static GenericListModel<GameModeFacade> gamemodes = null; + public static GenericListModel<QuickSourceFacade> getQuickSources() { return quickSources; Modified: sandbox/cdomui/code/src/java/pcgen/system/Main.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-04-10 10:16:14 UTC (rev 11616) +++ sandbox/cdomui/code/src/java/pcgen/system/Main.java 2010-04-11 02:49:59 UTC (rev 11617) @@ -81,18 +81,48 @@ { SplashScreen splash = new SplashScreen(); splash.setVisible(true); - splash.setMessage("Loading Plugins"); - loadPlugins(); - splash.setMessage("Initializing GameModes"); - initGameModes(); - splash.setMessage("Initializing User Interface"); - PCGenUIManager.initializeGUI(); + PCGenTaskExecutor executor = new PCGenTaskExecutor(); + executor.addPCGenTask(createLoadPluginTask()); + executor.addPCGenTask(new PCGenTask() + { + + @Override + public String getMessage() + { + return "Initializing GameModes"; + } + + @Override + public void execute() + { + initGameModes(); + } + + }); + executor.addPCGenTask(new PCGenTask() + { + + @Override + public String getMessage() + { + return "Initializing User Interface"; + } + + @Override + public void execute() + { + PCGenUIManager.initializeGUI(); + } + + }); + executor.addPCGenTaskListener(splash); + executor.execute(); splash.dispose(); PCGenUIManager.startGUI(); } else { - loadPlugins(); + createLoadPluginTask().execute(); initGameModes(); PCGenUIManager.initializeGUI(); PCGenUIManager.startGUI(); @@ -137,7 +167,7 @@ } } - private static void loadPlugins() + private static PCGenTask createLoadPluginTask() { String pluginsDir = ConfigurationSettings.getPluginsDir(); PluginClassLoader loader = new PluginClassLoader(new File(pluginsDir)); @@ -157,7 +187,7 @@ loader.addPluginLoader(PJEP.getJepPluginLoader()); loader.addPluginLoader(ExportHandler.getPluginLoader()); loader.addPluginLoader(TokenConverter.getPluginLoader()); - loader.loadPlugins(); + return loader; } private static void initGameModes() Added: sandbox/cdomui/code/src/java/pcgen/system/PCGenTask.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PCGenTask.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/PCGenTask.java 2010-04-11 02:49:59 UTC (rev 11617) @@ -0,0 +1,119 @@ +/* + * PCGenTask.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 8, 2010, 1:00:40 PM + */ +package pcgen.system; + +import javax.swing.event.EventListenerList; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public abstract class PCGenTask +{ + + private EventListenerList listenerList = new EventListenerList(); + private int progress = 0; + private int maximum = 0; + private String message; + + public void addPCGenTaskListener(PCGenTaskListener listener) + { + listenerList.add(PCGenTaskListener.class, listener); + } + + public void removePCGenTaskListener(PCGenTaskListener listener) + { + listenerList.remove(PCGenTaskListener.class, listener); + } + + public abstract void execute(); + + public int getMaximum() + { + return maximum; + } + + public int getProgress() + { + return progress; + } + + public String getMessage() + { + return message; + } + + protected void setValues(int progress, int maximum) + { + this.progress = progress; + this.maximum = maximum; + fireProgressChangedEvent(); + } + + protected void setValues(String message, int progress, int maximum) + { + this.progress = progress; + this.maximum = maximum; + this.message = message; + fireProgressChangedEvent(); + } + + protected void setProgress(int progress) + { + this.progress = progress; + fireProgressChangedEvent(); + } + + protected void setProgress(String message, int progress) + { + this.message = message; + this.progress = progress; + fireProgressChangedEvent(); + } + + protected void setMaximum(int maximum) + { + this.maximum = maximum; + fireProgressChangedEvent(); + } + + protected void fireProgressChangedEvent() + { + PCGenTaskEvent taskEvent = null; + // Guaranteed to return a non-null array + Object[] listeners = listenerList.getListenerList(); + // Process the listeners last to first, notifying + // those that are interested in this event + for (int i = listeners.length - 2; i >= 0; i -= 2) + { + if (listeners[i] == PCGenTaskListener.class) + { + // Lazily create the event: + if (taskEvent == null) + { + taskEvent = new PCGenTaskEvent(this); + } + ((PCGenTaskListener) listeners[i + 1]).progressChanged(taskEvent); + } + } + } + +} Added: sandbox/cdomui/code/src/java/pcgen/system/PCGenTaskEvent.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PCGenTaskEvent.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/PCGenTaskEvent.java 2010-04-11 02:49:59 UTC (rev 11617) @@ -0,0 +1,43 @@ +/* + * PCGenTaskEvent.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 9, 2010, 5:16:46 PM + */ +package pcgen.system; + +import java.util.EventObject; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class PCGenTaskEvent extends EventObject +{ + + public PCGenTaskEvent(Object source) + { + super(source); + } + + @Override + public PCGenTask getSource() + { + return (PCGenTask) super.getSource(); + } + +} Added: sandbox/cdomui/code/src/java/pcgen/system/PCGenTaskExecutor.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PCGenTaskExecutor.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/PCGenTaskExecutor.java 2010-04-11 02:49:59 UTC (rev 11617) @@ -0,0 +1,69 @@ +/* + * PCGenTaskExecutor.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 10, 2010, 5:21:21 PM + */ +package pcgen.system; + +import java.util.LinkedList; +import org.apache.commons.lang.math.Fraction; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public class PCGenTaskExecutor extends PCGenTask implements PCGenTaskListener +{ + + private LinkedList<PCGenTask> tasks = new LinkedList<PCGenTask>(); + private PCGenTask currentTask = null; + private Fraction progressMultiplier = null; + private Fraction baseProgress = Fraction.ZERO; + + public void addPCGenTask(PCGenTask task) + { + tasks.add(task); + } + + public void execute() + { + progressMultiplier = Fraction.getFraction(1, tasks.size()); + while (!tasks.isEmpty()) + { + currentTask = tasks.poll(); + setValues(currentTask.getMessage(), baseProgress.getNumerator(), baseProgress.getDenominator()); + currentTask.addPCGenTaskListener(this); + currentTask.execute(); + currentTask.removePCGenTaskListener(this); + baseProgress = baseProgress.add(progressMultiplier); + } + } + + public void progressChanged(PCGenTaskEvent event) + { + if (currentTask.getMaximum() == 0) + { + return; + } + Fraction progress = Fraction.getFraction(currentTask.getProgress(), currentTask.getMaximum()); + progress = progress.multiplyBy(progressMultiplier); + progress = baseProgress.add(progress); + setValues(currentTask.getMessage(), progress.getNumerator(), progress.getDenominator()); + } + +} Added: sandbox/cdomui/code/src/java/pcgen/system/PCGenTaskListener.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PCGenTaskListener.java (rev 0) +++ sandbox/cdomui/code/src/java/pcgen/system/PCGenTaskListener.java 2010-04-11 02:49:59 UTC (rev 11617) @@ -0,0 +1,34 @@ +/* + * PCGenTaskListener.java + * Copyright 2010 Connor Petty <cpm...@us...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Created on Apr 8, 2010, 1:25:33 PM + */ +package pcgen.system; + +import java.util.EventListener; + +/** + * + * @author Connor Petty <cpm...@us...> + */ +public interface PCGenTaskListener extends EventListener +{ + + public void progressChanged(PCGenTaskEvent event); + +} Modified: sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java =================================================================== --- sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java 2010-04-10 10:16:14 UTC (rev 11616) +++ sandbox/cdomui/code/src/java/pcgen/system/PluginClassLoader.java 2010-04-11 02:49:59 UTC (rev 11617) @@ -47,7 +47,7 @@ * * @author Connor Petty <cpm...@us...> */ -public class PluginClassLoader +public class PluginClassLoader extends PCGenTask { private static FilenameFilter pluginFilter = new FilenameFilter() @@ -66,6 +66,8 @@ private final File pluginDir; private final MapToList<Class<?>, PluginLoader> loaderMap; private ExecutorService dispatcher = Executors.newSingleThreadExecutor(); + private int fileCount = 0; + private int progress = 0; public PluginClassLoader(File pluginDir) { @@ -73,6 +75,12 @@ this.pluginDir = pluginDir; } + @Override + public String getMessage() + { + return "Loading Plugins"; + } + public void addPluginLoader(PluginLoader loader) { for (Class<?> clazz : loader.getPluginClasses()) @@ -114,7 +122,8 @@ classList.add(name); } } - dispatcher.submit(new Runnable() + fileCount++; + dispatcher.execute(new Runnable() { public void run() @@ -135,6 +144,8 @@ { Logging.log(Logging.WARNING, "Plugin not found in " + pluginJar.getName()); } + progress++; + setProgress(progress); } }); @@ -173,9 +184,16 @@ return loaded; } + @Override + public void execute() + { + loadPlugins(); + } + public void loadPlugins() { loadPlugins(pluginDir); + setMaximum(fileCount); dispatcher.shutdown(); try { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |