Ticket #2276: book-window-location-lost-on-save-as-2.patch

File book-window-location-lost-on-save-as-2.patch, 6.8 KB (added by deni, 15 years ago)
  • TabularUnified modules/org.sophie2.base.layout/src/main/java/org/sophie2/base/layout/testing/DummyDocumentView.java

    ### Eclipse Workspace Patch 1.0
    #P sophie
     
    33import javax.swing.JDesktopPane; 
    44 
    55import org.sophie2.base.commons.util.ImmImage; 
     6import org.sophie2.base.commons.util.position.ImmPoint; 
    67import org.sophie2.base.commons.util.position.ImmSize; 
    78import org.sophie2.base.layout.model.DocView; 
    89import org.sophie2.base.visual.BaseSwingVisualElement; 
     
    6566        public RwProp<ImmSize> preferredDimensions() { 
    6667                return getBean().makeValueProp("preferredDimensions", ImmSize.class); 
    6768        } 
     69         
     70        public RwProp<ImmPoint> preferredLocation() { 
     71                return getBean().makeValueProp("preferredLocation", ImmPoint.class, null); 
     72        } 
    6873} 
    
          
  • TabularUnified modules/org.sophie2.extra.func.scripting/src/main/java/org/sophie2/extra/func/scripting/view/ScriptDocView.java

     
    1212import org.sophie2.base.commons.structures.ImmTreeList; 
    1313import org.sophie2.base.commons.util.ImmImage; 
    1414import org.sophie2.base.commons.util.ImmList; 
     15import org.sophie2.base.commons.util.position.ImmPoint; 
    1516import org.sophie2.base.commons.util.position.ImmSize; 
    1617import org.sophie2.base.layout.LogicR3Button; 
    1718import org.sophie2.base.model.resources.r4.access.ResourceAccess; 
     
    288289        public RwProp<ImmSize> preferredDimensions() { 
    289290                return getBean().makeValueProp("preferredDimensions", ImmSize.class, ImmSize.ZERO); 
    290291        } 
     292         
     293        public RwProp<ImmPoint> preferredLocation() { 
     294                return getBean().makeValueProp("preferredLocation", ImmPoint.class, null); 
     295        } 
    291296} 
    
          
  • TabularUnified modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDDocumentWindow.java

     
    1616 
    1717import org.noos.xing.mydoggy.ToolWindowAnchor; 
    1818import org.sophie2.base.commons.util.ImmImage; 
     19import org.sophie2.base.commons.util.position.ImmPoint; 
    1920import org.sophie2.base.commons.util.position.ImmSize; 
    2021import org.sophie2.base.layout.impl.DefaultDocView; 
    2122import org.sophie2.base.layout.model.DocView; 
     
    108109                                        } 
    109110 
    110111                                        public void componentMoved(ComponentEvent e) { 
    111                                                 //nothing. 
     112                                                JInternalFrame internalFrame = (JInternalFrame) e.getComponent(); 
     113                                                ImmPoint location = new ImmPoint(internalFrame.getLocation()); 
     114                                                model().get().preferredLocation().set(location); 
    112115                                        } 
    113116 
    114117                                        public void componentHidden(ComponentEvent e) { 
     
    254257                                        res.pack(); 
    255258                                } 
    256259                        } 
     260                         
     261                        @SuppressWarnings("unused") 
     262                        @Setup 
     263                        protected void setLocation(JInternalFrame res) { 
     264                                 
     265                                if (model().get() != null &&  
     266                                                model().get().preferredLocation().get() != null) { 
     267                                         
     268                                        res.setLocation(model().get().preferredLocation().get().toPoint()); 
     269                                } 
     270                        } 
    257271 
    258272                        /** 
    259273                         * Defines whether the JInternalFrame representing the 
    
          
  • TabularUnified modules/org.sophie2.main.app.commons/src/main/java/org/sophie2/main/app/commons/book/BookDocView.java

     
    88import javax.swing.ScrollPaneConstants; 
    99 
    1010import org.sophie2.base.commons.util.ImmImage; 
     11import org.sophie2.base.commons.util.position.ImmPoint; 
    1112import org.sophie2.base.commons.util.position.ImmSize; 
    1213import org.sophie2.base.layout.impl.DefaultDocView; 
    1314import org.sophie2.base.layout.model.DocView; 
     
    189190                mainWindow.documents().add(newView); 
    190191                 
    191192                newView.preferredDimensions().set(preferredDimensions().get()); 
     193                newView.preferredLocation().set(preferredLocation().get()); 
    192194                 
    193195                DefaultDocView.setCurrent(newView); 
    194196        } 
     
    353355        public RwProp<ImmSize> preferredDimensions() { 
    354356                return getBean().makeValueProp("preferredDimensions", ImmSize.class, ImmSize.ZERO); 
    355357        } 
     358         
     359        public RwProp<ImmPoint> preferredLocation() { 
     360                return getBean().makeValueProp("preferredLocation", ImmPoint.class, null); 
     361        } 
    356362 
    357363        public boolean shouldWarnOnClose() { 
    358364                // When we develop sophie the confirmation dialog is slowing us. 
    
          
  • TabularUnified modules/org.sophie2.base.model.text/src/main/java/org/sophie2/base/model/text/mvc/TextFlowLogic.java

     
    200200                public boolean handle(EventR3 event) { 
    201201                        TextView source = event.getSource(TextView.class); 
    202202                        TextViewFlow flow = source.textFlow().get(); 
    203                         if (flow == null) { 
     203                        if (flow == null || !flow.isEditable()) { 
    204204                                //This TextView is no longer in the flow.  
    205205                                return true; 
    206206                        } 
    
          
  • TabularUnified modules/org.sophie2.base.layout/src/main/java/org/sophie2/base/layout/model/DocView.java

     
    33import javax.swing.JComponent; 
    44 
    55import org.sophie2.base.commons.util.ImmImage; 
     6import org.sophie2.base.commons.util.position.ImmPoint; 
    67import org.sophie2.base.commons.util.position.ImmSize; 
    78import org.sophie2.base.visual.SwingVisualElement; 
    89import org.sophie2.core.prolib.interfaces.Prop; 
     
    4950         */ 
    5051        RwProp<ImmSize> preferredDimensions(); 
    5152         
     53        /** 
     54         * When re-opening a window, its location should not change. This prop's purpose is to  
     55         * keep the last location set by the user, so that it can be transferred from window to window. 
     56         *  
     57         * @return 
     58         *                      The last location, defined by the user. 
     59         */ 
     60        RwProp<ImmPoint> preferredLocation(); 
     61         
    5262}