chrisw      2003/10/01 22:30:57

  Modified:    src/java/org/apache/tools/ant/gui Main.java MainFrame.java
  Log:
  Make size of main window persistent!
  
  Obtained from: Jack Woehr
  Submitted by: Christoph Wilhelms
  Reviewed by:  Christoph Wilhelms
  
  Revision  Changes    Path
  1.10      +3 -2      ant-antidote/src/java/org/apache/tools/ant/gui/Main.java
  
  Index: Main.java
  ===================================================================
  RCS file: /home/cvs/ant-antidote/src/java/org/apache/tools/ant/gui/Main.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Main.java 28 Sep 2003 13:03:00 -0000      1.9
  +++ Main.java 2 Oct 2003 05:30:57 -0000       1.10
  @@ -100,7 +100,7 @@
               f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               AppContext context = new AppContext(f);
               f.setContext(context);
  -            
  +
               /* Doing this in a block to limit scope of temps */
               {
                   String propertiesFileName = settings.getPropertiesFile();
  @@ -181,6 +181,7 @@
               new AppStartupEvent(context));
               
               f.pack();
  +            f.restorePersistentSize();
               f.setVisible(true);
               
               // Send notice we are shutting down
  
  
  
  1.5       +40 -2     
ant-antidote/src/java/org/apache/tools/ant/gui/MainFrame.java
  
  Index: MainFrame.java
  ===================================================================
  RCS file: 
/home/cvs/ant-antidote/src/java/org/apache/tools/ant/gui/MainFrame.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MainFrame.java    28 Sep 2003 13:02:59 -0000      1.4
  +++ MainFrame.java    2 Oct 2003 05:30:57 -0000       1.5
  @@ -55,7 +55,7 @@
   package org.apache.tools.ant.gui;
   
   import org.apache.tools.ant.gui.core.AppContext;
  -//import org.apache.tools.ant.gui.core.ProjectManager;
  +import org.apache.tools.ant.gui.core.PropertiesManager;
   
   import org.apache.tools.ant.gui.event.ProjectClosedEvent;
   import org.apache.tools.ant.gui.event.ProjectSelectedEvent;
  @@ -63,6 +63,7 @@
   import org.apache.tools.ant.gui.acs.ACSProjectElement;
   
   import java.io.IOException;
  +import java.awt.Dimension;
   
   /**
    * The main frame for the application
  @@ -136,9 +137,46 @@
       }
   
       /**
  +     * Save the window size for the next session
  +     */
  +    protected void persistSize () {
  +        Dimension d = getSize();
  +        PropertiesManager pm = _context.getPropertiesManager();
  +        pm.setProperty("MainFrame.height", new Integer(new 
Double(d.getHeight()).intValue()).toString());
  +        pm.setProperty("MainFrame.width", new Integer(new 
Double(d.getWidth()).intValue()).toString());
  +        try {
  +        _context.saveProperties();
  +        }
  +        catch (java.io.FileNotFoundException e) {
  +            // log it?
  +        }
  +        catch (java.io.IOException e) {
  +            // log it?
  +        }
  +    }
  +    
  +     /**
  +     * Restore the window size from the previous session
  +     */
  +    protected void restorePersistentSize () {
  +      PropertiesManager pm = _context.getPropertiesManager();
  +      try {
  +      setSize(pm.get_int_property("MainFrame.width"), 
pm.get_int_property("MainFrame.height"));
  +      }
  +      catch (PropertiesManager.NoSuchPropertyException e) {
  +       // Just means that it's never been saved to persistent properties 
yet.   
  +      }
  +      
  +      catch (PropertiesManager.InvalidIntPropertyException e) {
  +       // Should never occur unless user edited file and messed it up.
  +      }
  +    }
  +    
  +    /**
        * Intercept the window close event
        */
       protected void processWindowEvent(java.awt.event.WindowEvent 
windowEvent) {
  +        persistSize(); // Save window size for next session
           if (windowEvent.getID() == 
java.awt.event.WindowEvent.WINDOW_CLOSING) {
               if (exitForm(windowEvent)) {
                   super.processWindowEvent(windowEvent);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to