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
1 package org.sophie2.main.layout.mydoggy.mdcustomization; 2 3 import java.beans.PropertyChangeEvent; 4 import java.beans.PropertyChangeListener; 5 6 import javax.swing.Action; 7 8 import org.noos.xing.mydoggy.plaf.ui.ToolWindowContainer; 9 import org.noos.xing.mydoggy.plaf.ui.ToolWindowDescriptor; 10 import org.noos.xing.mydoggy.plaf.ui.cmp.DefaultTitleBarButtons; 11 import 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 */ 18 public 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
1 1 package org.sophie2.main.layout.mydoggy.mdcustomization; 2 2 3 import java.beans.PropertyChangeEvent; 4 import java.beans.PropertyChangeListener; 5 6 import javax.swing.Action; 7 3 8 import org.noos.xing.mydoggy.plaf.ui.ToolWindowContainer; 4 9 import org.noos.xing.mydoggy.plaf.ui.ToolWindowDescriptor; 5 10 import org.noos.xing.mydoggy.plaf.ui.cmp.DefaultTitleBarButtons; … … 15 20 private static final long serialVersionUID = 1L; 16 21 17 22 /** 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 /** 18 33 * Default constructor. 19 34 * 20 35 * @param toolWindowDescriptor … … 34 49 setLayout(this.containerLayout); 35 50 setOpaque(false); 36 51 37 this.focusable = addTitleBarAction(new MaximizeAction());52 this.focusable = addTitleBarAction(new SophieMaximizeAction()); 38 53 } 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 } 39 92 } -
TabularUnified modules/org.sophie2.main.layout.mydoggy/src/main/java/org/sophie2/main/layout/mydoggy/MDMainWindow.java
15 15 import javax.swing.ScrollPaneConstants; 16 16 import javax.swing.SwingUtilities; 17 17 18 import org.noos.common.context.Context; 19 import org.noos.common.object.ObjectCreator; 18 20 import org.noos.xing.mydoggy.Content; 19 21 import org.noos.xing.mydoggy.ContentManager; 20 22 import org.noos.xing.mydoggy.DockedTypeDescriptor; … … 22 24 import org.noos.xing.mydoggy.ToolWindowAnchor; 23 25 import org.noos.xing.mydoggy.ToolWindowType; 24 26 import org.noos.xing.mydoggy.plaf.MyDoggyToolWindowManager; 27 import org.noos.xing.mydoggy.plaf.ui.TitleBarButtons; 28 import org.noos.xing.mydoggy.plaf.ui.ToolWindowContainer; 29 import org.noos.xing.mydoggy.plaf.ui.ToolWindowDescriptor; 30 import org.noos.xing.mydoggy.plaf.ui.look.MyDoggyResourceManager; 25 31 import org.sophie2.base.layout.impl.DefaultMainWindow; 26 32 import org.sophie2.base.layout.impl.DesktopPane; 27 33 import org.sophie2.base.layout.model.DocView; … … 50 56 import org.sophie2.core.prolib.list.TrackingProList; 51 57 import org.sophie2.core.prolib.util.ResourceListSync; 52 58 import org.sophie2.main.layout.mydoggy.constants.MDColorId; 59 import org.sophie2.main.layout.mydoggy.mdcustomization.SophieTabTitleBar; 53 60 import org.sophie2.main.layout.mydoggy.mdcustomization.SophieToolWindowManager; 54 61 55 62 /** … … 272 279 public Prop<MyDoggyToolWindowManager> toolWindowManager() { 273 280 class toolWindowManager extends ResourceProperty<MyDoggyToolWindowManager> { 274 281 282 @SuppressWarnings("unchecked") 275 283 @Override 276 284 protected MyDoggyToolWindowManager create() { 277 285 MyDoggyToolWindowManager toolWindowManager = new SophieToolWindowManager(); 278 286 toolWindowManager.setAutoscrolls(true); 279 287 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 }); 280 301 281 302 return toolWindowManager; 282 303 }