Ticket #2013: patch-2013.patch

File patch-2013.patch, 10.6 KB (added by dido, 15 years ago)
  • TabularUnified modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/mdcustomization/SophieTabTitleBar.java

    ### Eclipse Workspace Patch 1.0
    #P sophie
     
     1package org.sophie2.main.layout.mydoggy.mdcustomization; 
     2 
     3import java.beans.PropertyChangeEvent; 
     4import java.beans.PropertyChangeListener; 
     5 
     6import javax.swing.Action; 
     7 
     8import org.noos.xing.mydoggy.plaf.ui.ToolWindowContainer; 
     9import org.noos.xing.mydoggy.plaf.ui.ToolWindowDescriptor; 
     10import org.noos.xing.mydoggy.plaf.ui.cmp.DefaultTitleBarButtons; 
     11import org.noos.xing.mydoggy.plaf.ui.cmp.ExtendedTableLayout; 
     12 
     13/** 
     14 * @author dido 
     15 *              The title bar buttons container at the top of the tab. 
     16 * 
     17 */ 
     18public class SophieTabTitleBar extends DefaultTitleBarButtons { 
     19 
     20        /** 
     21         *  Default serial version ID. 
     22         */ 
     23        private static final long serialVersionUID = 1L; 
     24 
     25        /** 
     26         * The tool tip value for pin on action. 
     27         */ 
     28        public static final String TOOL_TIP_ON_PROP_ID = "Pin"; 
     29         
     30        /** 
     31         * The tool tip value for pin off action.. 
     32         */ 
     33        public static final String TOOL_TIP_OFF_PROP_ID = "UnPin"; 
     34         
     35        /** 
     36         * The tool tip value for maximize action. 
     37         */ 
     38        public static final String TOOL_TIP_MAXIMIZE_PROP_ID = "Maximize"; 
     39         
     40        /** 
     41         * The tool tip value for minimize action.. 
     42         */ 
     43        public static final String TOOL_TIP_MINIMIZE_PROP_ID = "Minimize"; 
     44         
     45        /** 
     46         * @param toolWindowDescriptor 
     47         * @param dockedContainer 
     48         */ 
     49        public SophieTabTitleBar(ToolWindowDescriptor toolWindowDescriptor, 
     50                        ToolWindowContainer dockedContainer) { 
     51                 
     52                super(toolWindowDescriptor, dockedContainer); 
     53        } 
     54         
     55        @Override 
     56        protected void initComponents() { 
     57 
     58                this.containerLayout =  
     59                        new ExtendedTableLayout(new double[][] {{ 0, 0 }, { 1, 14, 1 } }, false); 
     60                setLayout(this.containerLayout); 
     61                setOpaque(false); 
     62 
     63                this.focusable = addTitleBarAction(new SophiePinAction()); 
     64                this.focusable = addTitleBarAction(new SophieMaximizeAction()); 
     65                this.focusable = addTitleBarAction(new HideAction()); 
     66        } 
     67         
     68        /** 
     69         * @author dido 
     70         * 
     71         */ 
     72        protected class SophiePinAction extends PinAction { 
     73 
     74        /** 
     75                 *  Default serial version ID 
     76                 */ 
     77                private static final long serialVersionUID = 1L; 
     78 
     79                /** 
     80         * The constructor for this class. Adds property change listener that sets the correct values for tooltips that comes from Sophie 2 skins. 
     81         */ 
     82        @SuppressWarnings({ "synthetic-access", "unqualified-field-access" }) 
     83                public SophiePinAction() { 
     84                putValue(Action.SHORT_DESCRIPTION, TOOL_TIP_OFF_PROP_ID); 
     85            dockedContainer.addPropertyChangeListener("autoHide", new PropertyChangeListener() { 
     86                                public void propertyChange(PropertyChangeEvent evt) { 
     87                                         
     88                    boolean newValue = ((Boolean) evt.getNewValue()); 
     89                     
     90                    if (newValue) { 
     91                        putValue(Action.LONG_DESCRIPTION, TOOL_TIP_ON_PROP_ID); 
     92                        putValue(Action.SHORT_DESCRIPTION, TOOL_TIP_ON_PROP_ID); 
     93                    } else { 
     94                        putValue(Action.LONG_DESCRIPTION, TOOL_TIP_OFF_PROP_ID); 
     95                        putValue(Action.SHORT_DESCRIPTION, TOOL_TIP_OFF_PROP_ID); 
     96                    } 
     97                } 
     98            }); 
     99        } 
     100    } 
     101         
     102        /** 
     103         * @author dido 
     104         * 
     105         */ 
     106        protected class SophieMaximizeAction extends MaximizeAction { 
     107 
     108        /** 
     109                 *  Default serial version ID 
     110                 */ 
     111                private static final long serialVersionUID = 1L; 
     112 
     113                /** 
     114         * The constructor for this class. Adds property change listener that sets the correct values for tooltips that comes from Sophie 2 skins. 
     115         */ 
     116                @SuppressWarnings({ "unqualified-field-access", "synthetic-access" }) 
     117                public SophieMaximizeAction() { 
     118             
     119                        putValue(Action.SHORT_DESCRIPTION, TOOL_TIP_MAXIMIZE_PROP_ID); 
     120            dockedContainer.addPropertyChangeListener("maximized.before", new PropertyChangeListener() { 
     121                private boolean flag = false; 
     122 
     123                public void propertyChange(PropertyChangeEvent evt) { 
     124                    if (evt.getSource() != descriptor) 
     125                        return; 
     126 
     127                    if ((Boolean) evt.getNewValue()) { 
     128                        putValue(Action.LONG_DESCRIPTION, TOOL_TIP_MINIMIZE_PROP_ID); 
     129                        putValue(Action.SHORT_DESCRIPTION, TOOL_TIP_MINIMIZE_PROP_ID); 
     130                        flag = true; 
     131                    } else if (flag) { 
     132                        putValue(Action.LONG_DESCRIPTION, TOOL_TIP_MAXIMIZE_PROP_ID); 
     133                        putValue(Action.SHORT_DESCRIPTION, TOOL_TIP_MAXIMIZE_PROP_ID); 
     134                    } 
     135                } 
     136            }); 
     137        } 
     138        } 
     139} 
    
          
  • TabularUnified modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/mdcustomization/MaximizeTitleBarButton.java

     
    11package org.sophie2.main.layout.mydoggy.mdcustomization; 
    22 
     3import java.beans.PropertyChangeEvent; 
     4import java.beans.PropertyChangeListener; 
     5 
     6import javax.swing.Action; 
     7 
    38import org.noos.xing.mydoggy.plaf.ui.ToolWindowContainer; 
    49import org.noos.xing.mydoggy.plaf.ui.ToolWindowDescriptor; 
    510import org.noos.xing.mydoggy.plaf.ui.cmp.DefaultTitleBarButtons; 
     
    1520        private static final long serialVersionUID = 1L; 
    1621 
    1722        /** 
     23         * The tool tip value for maximize action. 
     24         */ 
     25        public static final String TOOL_TIP_MAXIMIZE_PROP_ID = "Maximize"; 
     26         
     27        /** 
     28         * The tool tip value for minimize action.. 
     29         */ 
     30        public static final String TOOL_TIP_MINIMIZE_PROP_ID = "Minimize"; 
     31         
     32        /** 
    1833         * Default constructor. 
    1934         *  
    2035         * @param toolWindowDescriptor  
     
    3449                setLayout(this.containerLayout); 
    3550                setOpaque(false); 
    3651 
    37                 this.focusable = addTitleBarAction(new MaximizeAction()); 
     52                this.focusable = addTitleBarAction(new SophieMaximizeAction()); 
    3853        } 
     54         
     55        /** 
     56         * @author dido 
     57         * 
     58         */ 
     59        protected class SophieMaximizeAction extends MaximizeAction { 
     60 
     61        /** 
     62                 *  Default serial version ID 
     63                 */ 
     64                private static final long serialVersionUID = 1L; 
     65 
     66                /** 
     67         * The constructor for this class. Adds property change listener that sets the correct values for tooltips that comes from Sophie 2 skins. 
     68         */ 
     69                @SuppressWarnings({ "unqualified-field-access", "synthetic-access" }) 
     70                public SophieMaximizeAction() { 
     71             
     72                        putValue(Action.SHORT_DESCRIPTION, TOOL_TIP_MAXIMIZE_PROP_ID); 
     73            dockedContainer.addPropertyChangeListener("maximized.before", new PropertyChangeListener() { 
     74                private boolean flag = false; 
     75 
     76                public void propertyChange(PropertyChangeEvent evt) { 
     77                    if (evt.getSource() != descriptor) 
     78                        return; 
     79 
     80                    if ((Boolean) evt.getNewValue()) { 
     81                        putValue(Action.LONG_DESCRIPTION, TOOL_TIP_MINIMIZE_PROP_ID); 
     82                        putValue(Action.SHORT_DESCRIPTION, TOOL_TIP_MINIMIZE_PROP_ID); 
     83                        flag = true; 
     84                    } else if (flag) { 
     85                        putValue(Action.LONG_DESCRIPTION, TOOL_TIP_MAXIMIZE_PROP_ID); 
     86                        putValue(Action.SHORT_DESCRIPTION, TOOL_TIP_MAXIMIZE_PROP_ID); 
     87                    } 
     88                } 
     89            }); 
     90        } 
     91        } 
    3992} 
    
          
  • TabularUnified modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDMainWindow.java

     
    1515import javax.swing.ScrollPaneConstants; 
    1616import javax.swing.SwingUtilities; 
    1717 
     18import org.noos.common.context.Context; 
     19import org.noos.common.object.ObjectCreator; 
    1820import org.noos.xing.mydoggy.Content; 
    1921import org.noos.xing.mydoggy.ContentManager; 
    2022import org.noos.xing.mydoggy.DockedTypeDescriptor; 
     
    2224import org.noos.xing.mydoggy.ToolWindowAnchor; 
    2325import org.noos.xing.mydoggy.ToolWindowType; 
    2426import org.noos.xing.mydoggy.plaf.MyDoggyToolWindowManager; 
     27import org.noos.xing.mydoggy.plaf.ui.TitleBarButtons; 
     28import org.noos.xing.mydoggy.plaf.ui.ToolWindowContainer; 
     29import org.noos.xing.mydoggy.plaf.ui.ToolWindowDescriptor; 
     30import org.noos.xing.mydoggy.plaf.ui.look.MyDoggyResourceManager; 
    2531import org.sophie2.base.layout.impl.DefaultMainWindow; 
    2632import org.sophie2.base.layout.impl.DesktopPane; 
    2733import org.sophie2.base.layout.model.DocView; 
     
    5056import org.sophie2.core.prolib.list.TrackingProList; 
    5157import org.sophie2.core.prolib.util.ResourceListSync; 
    5258import org.sophie2.main.layout.mydoggy.constants.MDColorId; 
     59import org.sophie2.main.layout.mydoggy.mdcustomization.SophieTabTitleBar; 
    5360import org.sophie2.main.layout.mydoggy.mdcustomization.SophieToolWindowManager; 
    5461 
    5562/** 
     
    272279        public Prop<MyDoggyToolWindowManager> toolWindowManager() { 
    273280                class toolWindowManager extends ResourceProperty<MyDoggyToolWindowManager> { 
    274281 
     282                        @SuppressWarnings("unchecked") 
    275283                        @Override 
    276284                        protected MyDoggyToolWindowManager create() { 
    277285                                MyDoggyToolWindowManager toolWindowManager = new SophieToolWindowManager(); 
    278286                                toolWindowManager.setAutoscrolls(true); 
    279287                                toolWindowManager.setName(SKIN_ELEMENT_ID + "/root-panel"); 
     288                                 
     289                                MyDoggyResourceManager myDoggyResourceManager =  
     290                                        (MyDoggyResourceManager) toolWindowManager.getResourceManager(); 
     291                                 
     292                                // Modifying the menu so that it will use custom title bar. 
     293                                myDoggyResourceManager.putInstanceCreator(TitleBarButtons.class, 
     294                                                new ObjectCreator() { 
     295                                        public Object create(Context context) { 
     296                                                return new SophieTabTitleBar( 
     297                                                                context.get(ToolWindowDescriptor.class), 
     298                                                                context.get(ToolWindowContainer.class)); 
     299                                        } 
     300                                }); 
    280301 
    281302                                return toolWindowManager; 
    282303                        }