Changeset 928 for trunk/autoquest-jfcmonitor/src/main/java/de/ugoe/cs/autoquest/jfcmonitor/JFCTitleChangeListener.java
- Timestamp:
- 10/17/12 10:50:44 (12 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/autoquest-jfcmonitor/src/main/java/de/ugoe/cs/autoquest/jfcmonitor/JFCTitleChangeListener.java
r927 r928 25 25 /** 26 26 * <p> 27 * Listener that listens on the name change of a component. 27 * Listener that listens on the name change of a component. 28 28 * </p> 29 * 29 30 * @author Fabian Glaser 30 31 * @version 1.0 31 32 */ 32 public class JFCNameChangeListener implements PropertyChangeListener { 33 /** 34 * <p> 35 * Writer for logging events. 36 * </p> 37 */ 38 final private JFCMonitorOutputWriter outputWriter; 39 40 /** 41 * <p> 42 * Constructor. Creates a new JFCNameChangeListener with a given 43 * {@link JFCMonitorOutputWriter}. 44 * </p> 45 * @param outputWriter 46 */ 47 public JFCNameChangeListener(JFCMonitorOutputWriter outputWriter){ 48 this.outputWriter = outputWriter; 49 } 50 33 public class JFCTitleChangeListener implements PropertyChangeListener { 34 /** 35 * <p> 36 * Writer for logging events. 37 * </p> 38 */ 39 final private JFCMonitorOutputWriter outputWriter; 40 41 final private boolean CHECK_HIERARCHY = true; 42 43 /** 44 * <p> 45 * Constructor. Creates a new JFCNameChangeListener with a given 46 * {@link JFCMonitorOutputWriter}. 47 * </p> 48 * 49 * @param outputWriter 50 */ 51 public JFCTitleChangeListener(JFCMonitorOutputWriter outputWriter) { 52 this.outputWriter = outputWriter; 53 } 54 51 55 @Override 52 public void propertyChange(PropertyChangeEvent evt) {56 public synchronized void propertyChange(PropertyChangeEvent evt) { 53 57 String propertyName = evt.getPropertyName(); 54 58 Component component = null; 55 56 if (propertyName.equals("AccessibleName")){ 59 int titleSource = JFCComponentTitleHierachy.SOURCE_NOT_KNOWN; 60 61 // Set source component and title source 62 if (propertyName.equals("AccessibleName")) { 57 63 AccessibleContext context = (AccessibleContext) evt.getSource(); 58 64 component = (Component) context.getAccessibleParent(); 65 titleSource = JFCComponentTitleHierachy.ACCESSIBLE_NAME; 59 66 } 60 61 if (propertyName.equals("name")) {67 68 if (propertyName.equals("name")) { 62 69 component = (Component) evt.getSource(); 70 titleSource = JFCComponentTitleHierachy.NAME; 63 71 } 64 65 if (propertyName.equals("")){ 66 72 73 if (propertyName.equals("icon")) { 74 component = (Component) evt.getSource(); 75 titleSource = JFCComponentTitleHierachy.ICON; 67 76 } 68 69 if (component != null){ 70 if (!JFCComponent.isKnown(component)){ 71 System.err.println("Referenced component is not known"); 77 78 if (propertyName.equals("x") || propertyName.equals("y")) { 79 component = (Component) evt.getSource(); 80 titleSource = JFCComponentTitleHierachy.POS; 81 } 82 83 if (component != null) { 84 JFCComponent jfcComponent = JFCComponent.find(component); 85 if (jfcComponent != null) { 86 int oldTitleSource = jfcComponent.getTitleSource(); 87 Object newTitle = evt.getNewValue(); 88 // We only print the name change message if the new title is as 89 // least as informative as the initial title 90 if ((!CHECK_HIERARCHY || oldTitleSource <= titleSource)) { 91 StringBuilder builder = new StringBuilder(); 92 builder.append("<componentNameChange hash=\""); 93 builder.append(Integer.toHexString(component.hashCode())); 94 builder.append("\" newName=\"" + newTitle); 95 builder.append("\" source=\"" + propertyName); 96 builder.append("\" />" + StringTools.ENDLINE); 97 outputWriter.write(builder.toString()); 98 } 99 } else { 72 100 throw new AssertionError("Referenced component is not known."); 73 101 } 74 StringBuilder builder = new StringBuilder();75 builder.append("<componentNameChange hash=\"");76 builder.append(Integer.toHexString(component.hashCode()));77 builder.append("\" newName=\"" + evt.getNewValue());78 builder.append("\" source=\"" + propertyName);79 builder.append("\" />" + StringTools.ENDLINE);80 outputWriter.write(builder.toString());81 102 } 82 103 } 83 104 84 105 }
Note: See TracChangeset
for help on using the changeset viewer.