This diff makes window size persistent. It may not be the most important 
persistent property,
but it sure is annoying to continually have to stretch the window to a size 
that allows the editor
gadgets to render themselves in a reasonable fashion!

--
Jack J. Woehr      # You measure democracy by the freedom it
Senior Consultant  # gives its dissidents, not the freedom
Purematrix, Inc.   # it gives its assimilated conformists.
www.purematrix.com #         - Abbie Hoffman


Index: org/apache/tools/ant/gui/Main.java
===================================================================
RCS file: 
/home/cvspublic/ant-antidote/src/java/org/apache/tools/ant/gui/Main.java,v
retrieving revision 1.9
diff -c -r1.9 Main.java
*** org/apache/tools/ant/gui/Main.java  28 Sep 2003 13:03:00 -0000      1.9
--- org/apache/tools/ant/gui/Main.java  2 Oct 2003 04:56:08 -0000
***************
*** 100,106 ****
              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();
--- 100,106 ----
              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,186 ****
--- 181,187 ----
              new AppStartupEvent(context));
              
              f.pack();
+             f.restorePersistentSize();
              f.setVisible(true);
              
              // Send notice we are shutting down
Index: org/apache/tools/ant/gui/MainFrame.java
===================================================================
RCS file: 
/home/cvspublic/ant-antidote/src/java/org/apache/tools/ant/gui/MainFrame.java,v
retrieving revision 1.4
diff -c -r1.4 MainFrame.java
*** org/apache/tools/ant/gui/MainFrame.java     28 Sep 2003 13:02:59 -0000      
1.4
--- org/apache/tools/ant/gui/MainFrame.java     2 Oct 2003 04:56:08 -0000
***************
*** 55,61 ****
  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.event.ProjectClosedEvent;
  import org.apache.tools.ant.gui.event.ProjectSelectedEvent;
--- 55,61 ----
  package org.apache.tools.ant.gui;
  
  import org.apache.tools.ant.gui.core.AppContext;
! 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,68 ****
--- 63,69 ----
  import org.apache.tools.ant.gui.acs.ACSProjectElement;
  
  import java.io.IOException;
+ import java.awt.Dimension;
  
  /**
   * The main frame for the application
***************
*** 136,144 ****
--- 137,182 ----
      }
  
      /**
+      * 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