You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by vh...@apache.org on 2001/05/10 00:44:02 UTC

cvs commit: xml-batik/sources/org/apache/batik/apps/svgbrowser PreferenceDialog.java XMLPreferenceManager.java

vhardy      01/05/09 15:44:02

  Modified:    sources/org/apache/batik/util/gui UserStyleDialog.java
               sources/org/apache/batik/apps/svgbrowser
                        PreferenceDialog.java XMLPreferenceManager.java
  Log:
  Now uses PreferenceManager to persist preferences.
  
  Revision  Changes    Path
  1.4       +28 -1     xml-batik/sources/org/apache/batik/util/gui/UserStyleDialog.java
  
  Index: UserStyleDialog.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/util/gui/UserStyleDialog.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- UserStyleDialog.java	2001/03/27 13:36:22	1.3
  +++ UserStyleDialog.java	2001/05/09 22:43:52	1.4
  @@ -48,7 +48,7 @@
    * This class represents a dialog to select the user style sheet.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: UserStyleDialog.java,v 1.3 2001/03/27 13:36:22 hillion Exp $
  + * @version $Id: UserStyleDialog.java,v 1.4 2001/05/09 22:43:52 vhardy Exp $
    */
   public class UserStyleDialog extends JDialog implements ActionMap {
   
  @@ -283,6 +283,33 @@
               fileLabel.setEnabled(false);
               fileTextField.setEnabled(false);
               browseButton.setEnabled(false);
  +        }
  +
  +        /**
  +         * Returns the chosen path or null.
  +         */
  +        public String getPath() {
  +            if(fileCheckBox.isSelected()){
  +                return fileTextField.getText();
  +            }
  +            else{
  +                return null;
  +            }
  +        }
  +        
  +        /**
  +         * Sets the current dialog path.
  +         */
  +        public void setPath(String s) {
  +            if(s == null){
  +                fileTextField.setEnabled(false);
  +                fileCheckBox.setSelected(false);
  +            }
  +            else{
  +                fileTextField.setEnabled(true);
  +                fileTextField.setText(s);
  +                fileCheckBox.setSelected(true);
  +            }
           }
   
           /**
  
  
  
  1.2       +198 -12   xml-batik/sources/org/apache/batik/apps/svgbrowser/PreferenceDialog.java
  
  Index: PreferenceDialog.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/apps/svgbrowser/PreferenceDialog.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PreferenceDialog.java	2001/05/04 00:55:15	1.1
  +++ PreferenceDialog.java	2001/05/09 22:43:56	1.2
  @@ -14,6 +14,12 @@
   import java.awt.FlowLayout;
   import java.awt.Frame;
   
  +import java.awt.event.ActionEvent;
  +import java.awt.event.ActionListener;
  +
  +import java.util.Map;
  +import java.util.Hashtable;
  +
   import javax.swing.BorderFactory;
   import javax.swing.JButton;
   import javax.swing.JCheckBox;
  @@ -39,11 +45,25 @@
    * Dialog that displays user preferences.
    *
    * @author <a href="mailto:vhardy@apache.org">Vincent Hardy</a>
  - * @version $Id: PreferenceDialog.java,v 1.1 2001/05/04 00:55:15 vhardy Exp $
  + * @version $Id: PreferenceDialog.java,v 1.2 2001/05/09 22:43:56 vhardy Exp $
    */
   public class PreferenceDialog extends JDialog 
       implements GridBagConstants {
   
  +    /**
  +     * The return value if 'OK' is chosen.
  +     */
  +    public final static int OK_OPTION = 0;
  +
  +    /**
  +     * The return value if 'Cancel' is chosen.
  +     */
  +    public final static int CANCEL_OPTION = 1;
  +
  +    //////////////////////////////////////////////////////////////
  +    // GUI Resources Keys
  +    //////////////////////////////////////////////////////////////
  +
       public static final String LABEL_USER_OPTIONS 
           = "PreferenceDialog.label.user.options";
   
  @@ -107,6 +127,35 @@
       public static final String CONFIG_CANCEL_MNEMONIC
           = "PreferenceDialog.config.cancel.mnemonic";
   
  +    //////////////////////////////////////////////////////////////
  +    // Following are the preference keys used in the
  +    // PreferenceManager model.
  +    //////////////////////////////////////////////////////////////
  +    
  +    public static final String PREFERENCE_KEY_LANGUAGES
  +        = "preference.key.languages";
  +
  +    public static final String PREFERENCE_KEY_USER_STYLESHEET
  +        = "preference.key.user.stylesheet";
  +
  +    public static final String PREFERENCE_KEY_SHOW_RENDERING
  +        = "preference.key.show.rendering";
  +
  +    public static final String PREFERENCE_KEY_AUTO_ADJUST_WINDOW
  +        = "preference.key.auto.adjust.window";
  +
  +    public static final String PREFERENCE_KEY_ENABLE_DOUBLE_BUFFERING
  +        = "preference.key.enable.double.buffering";
  +
  +    public static final String PREFERENCE_KEY_SHOW_DEBUG_TRACE
  +        = "preference.key.show.debug.trace";
  +
  +    public static final String PREFERENCE_KEY_PROXY_HOST
  +        = "preference.key.proxy.host";
  +
  +    public static final String PREFERENCE_KEY_PROXY_PORT
  +        = "preference.key.proxy.port";
  +
       /**
        * <tt>PreferenceManager</tt> used to store and retrieve
        * preferences
  @@ -119,16 +168,103 @@
       protected ConfigurationPanelSelector configPanelSelector;
   
       /**
  +     * Allows selection of the user languages
  +     */
  +    protected LanguageDialog.Panel languagePanel;
  +
  +    /**
  +     * Allows selection of a user stylesheet
  +     */
  +    protected UserStyleDialog.Panel userStylesheetPanel;
  +
  +    protected JCheckBox showRendering;
  +
  +    protected JCheckBox autoAdjustWindow;
  +
  +    protected JCheckBox showDebugTrace;
  +
  +    protected JCheckBox enableDoubleBuffering;
  +
  +    protected JTextField host, port;
  +
  +    /**
  +     * Code indicating whether the dialog was OKayed
  +     * or cancelled
  +     */
  +    protected int returnCode;
  +
  +    /**
        * Default constructor
        */
  -    public PreferenceDialog(){
  +    public PreferenceDialog(PreferenceManager model){
           super((Frame)null, true);
   
  +        if(model == null){
  +            throw new IllegalArgumentException();
  +        }
  +
  +        this.model = model;
           buildGUI();
  +        initializeGUI();
           pack();
       }
   
       /**
  +     * Initializes the GUI components with the values
  +     * from the model.
  +     */
  +    protected void initializeGUI(){
  +        //
  +        // Initialize language. The set of languages is
  +        // defined by a String.
  +        //
  +        String languages = model.getString(PREFERENCE_KEY_LANGUAGES);
  +        languagePanel.setLanguages(languages);
  +
  +        //
  +        // Initializes the User Stylesheet
  +        //
  +        String userStylesheetPath = model.getString(PREFERENCE_KEY_USER_STYLESHEET);
  +        userStylesheetPanel.setPath(userStylesheetPath);
  +
  +        //
  +        // Initializes the browser options
  +        //
  +        showRendering.setSelected(model.getBoolean(PREFERENCE_KEY_SHOW_RENDERING));
  +        autoAdjustWindow.setSelected(model.getBoolean(PREFERENCE_KEY_AUTO_ADJUST_WINDOW));
  +        enableDoubleBuffering.setSelected(model.getBoolean(PREFERENCE_KEY_ENABLE_DOUBLE_BUFFERING));
  +        showDebugTrace.setSelected(model.getBoolean(PREFERENCE_KEY_SHOW_DEBUG_TRACE));
  +
  +        //
  +        // Initialize the proxy options
  +        //
  +        host.setText(model.getString(PREFERENCE_KEY_PROXY_HOST));
  +        port.setText(model.getString(PREFERENCE_KEY_PROXY_PORT));
  +    }
  +
  +    /**
  +     * Stores current setting in PreferenceManager model
  +     */
  +    protected void savePreferences(){
  +        model.setString(PREFERENCE_KEY_LANGUAGES,
  +                        languagePanel.getLanguages());
  +        model.setString(PREFERENCE_KEY_USER_STYLESHEET,
  +                        userStylesheetPanel.getPath());
  +        model.setBoolean(PREFERENCE_KEY_SHOW_RENDERING,
  +                         showRendering.isSelected());
  +        model.setBoolean(PREFERENCE_KEY_AUTO_ADJUST_WINDOW,
  +                         autoAdjustWindow.isSelected());
  +        model.setBoolean(PREFERENCE_KEY_ENABLE_DOUBLE_BUFFERING,
  +                         enableDoubleBuffering.isSelected());
  +        model.setBoolean(PREFERENCE_KEY_SHOW_DEBUG_TRACE,
  +                         showDebugTrace.isSelected());
  +        model.setString(PREFERENCE_KEY_PROXY_HOST,
  +                        host.getText());
  +        model.setString(PREFERENCE_KEY_PROXY_PORT,
  +                        port.getText());
  +    }
  +
  +    /**
        * Builds the UI for this dialog
        */
       protected void buildGUI(){
  @@ -158,6 +294,23 @@
           p.add(okButton);
           p.add(cancelButton);
   
  +        okButton.addActionListener(new ActionListener(){
  +                public void actionPerformed(ActionEvent e){
  +                    setVisible(false);
  +                    returnCode = OK_OPTION;
  +                    savePreferences();
  +                    dispose();
  +                }
  +            });
  +
  +        cancelButton.addActionListener(new ActionListener(){
  +                public void actionPerformed(ActionEvent e){
  +                    setVisible(false);
  +                    returnCode = CANCEL_OPTION;
  +                    dispose();
  +                }
  +            });
  +
           return p;
       }
   
  @@ -219,11 +372,13 @@
       }
   
       protected Component buildUserLanguage(){
  -        return new LanguageDialog.Panel();
  +        languagePanel = new LanguageDialog.Panel();
  +        return languagePanel;
       }
   
       protected Component buildUserStyleSheet(){
  -        return new UserStyleDialog.Panel();
  +        userStylesheetPanel = new UserStyleDialog.Panel();
  +        return userStylesheetPanel;
       }
   
       protected Component buildUserFont(){
  @@ -232,13 +387,13 @@
   
       protected Component buildBehavior(){
           JGridBagPanel p = new JGridBagPanel();
  -        JCheckBox showRendering 
  +        showRendering 
               = new JCheckBox(Resources.getString(LABEL_SHOW_RENDERING));
  -        JCheckBox autoAdjustWindow
  +        autoAdjustWindow
               = new JCheckBox(Resources.getString(LABEL_AUTO_ADJUST_WINDOW));
  -        JCheckBox enableDoubleBuffering
  +        enableDoubleBuffering
               = new JCheckBox(Resources.getString(LABEL_ENABLE_DOUBLE_BUFFERING));
  -        JCheckBox showDebugTrace
  +        showDebugTrace
               = new JCheckBox(Resources.getString(LABEL_SHOW_DEBUG_TRACE));
   
           p.add(showRendering,    0, 0, 1, 1, WEST, HORIZONTAL, 1, 0);
  @@ -257,9 +412,9 @@
   
       protected Component buildNetwork(){
           JGridBagPanel p = new JGridBagPanel();
  -        JTextField host = new JTextField(Resources.getInteger(CONFIG_HOST_TEXT_FIELD_LENGTH));
  +        host = new JTextField(Resources.getInteger(CONFIG_HOST_TEXT_FIELD_LENGTH));
           JLabel hostLabel = new JLabel(Resources.getString(LABEL_HOST));
  -        JTextField port = new JTextField(Resources.getInteger(CONFIG_PORT_TEXT_FIELD_LENGTH));
  +        port = new JTextField(Resources.getInteger(CONFIG_PORT_TEXT_FIELD_LENGTH));
           JLabel portLabel = new JLabel(Resources.getString(LABEL_PORT));
           p.add(hostLabel, 0, 0, 1, 1, WEST, HORIZONTAL, 0, 0);
           p.add(host, 0, 1, 1, 1, CENTER, HORIZONTAL, 0, 0);
  @@ -280,9 +435,40 @@
           return new JButton("Applications");
       }
   
  +    /**
  +     * Shows the dialog
  +     * @return OK_OPTION or CANCEL_OPTION
  +     */
  +    public int showDialog(){
  +        pack();
  +        show();
  +        return returnCode;
  +    }
  +
       public static void main(String[] args){
  -        PreferenceDialog dlg = new PreferenceDialog();
  -        dlg.show();
  +        Map defaults = new Hashtable();
  +        defaults.put(PREFERENCE_KEY_LANGUAGES, "fr");
  +        defaults.put(PREFERENCE_KEY_SHOW_RENDERING, new Boolean(true));
  +        defaults.put(PREFERENCE_KEY_AUTO_ADJUST_WINDOW, new Boolean(true));
  +        defaults.put(PREFERENCE_KEY_ENABLE_DOUBLE_BUFFERING, new Boolean(true));
  +        defaults.put(PREFERENCE_KEY_SHOW_DEBUG_TRACE, new Boolean(true));
  +        defaults.put(PREFERENCE_KEY_PROXY_HOST, "webcache.eng.sun.com");
  +        defaults.put(PREFERENCE_KEY_PROXY_PORT, "8080");
  +
  +        XMLPreferenceManager manager 
  +            = new XMLPreferenceManager(args[0], defaults);
  +        PreferenceDialog dlg = new PreferenceDialog(manager);
  +        int c = dlg.showDialog();
  +        if(c == OK_OPTION){
  +            try{
  +                manager.save();
  +                System.out.println("Done Saving options");
  +                System.exit(0);
  +            }catch(Exception e){
  +                System.err.println("Could not save options");
  +                e.printStackTrace();
  +            }
  +        }
       }
   }
   
  
  
  
  1.2       +24 -1     xml-batik/sources/org/apache/batik/apps/svgbrowser/XMLPreferenceManager.java
  
  Index: XMLPreferenceManager.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/apps/svgbrowser/XMLPreferenceManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XMLPreferenceManager.java	2001/05/04 15:59:21	1.1
  +++ XMLPreferenceManager.java	2001/05/09 22:43:58	1.2
  @@ -31,12 +31,14 @@
   import org.w3c.dom.Element;
   import org.w3c.dom.Node;
   
  +import org.apache.batik.util.XMLResourceDescriptor;
  +
   /**
    * An extension of {@link PreferenceManager} which store the preference
    * in XML.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: XMLPreferenceManager.java,v 1.1 2001/05/04 15:59:21 hillion Exp $
  + * @version $Id: XMLPreferenceManager.java,v 1.2 2001/05/09 22:43:58 vhardy Exp $
    */
   public class XMLPreferenceManager extends PreferenceManager {
       
  @@ -44,6 +46,27 @@
        * The XML parser
        */
       protected String xmlParserClassName;
  +
  +    /**
  +     * Creates a preference manager.
  +     * @param prefFileName the name of the preference file.
  +     */
  +    public XMLPreferenceManager(String prefFileName){
  +        this(prefFileName, null, 
  +             XMLResourceDescriptor.getXMLParserClassName());
  +    }
  +
  +    /**
  +     * Creates a preference manager.
  +     * @param prefFileName the name of the preference file.
  +     * @param defaults where to get defaults value if the value is
  +     * not specified in the file.
  +     */
  +    public XMLPreferenceManager(String prefFileName,
  +                                Map defaults){
  +        this(prefFileName, defaults, 
  +             XMLResourceDescriptor.getXMLParserClassName());
  +    }
   
       /**
        * Creates a preference manager.
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-dev-help@xml.apache.org