source: trunk/quest-jfcmonitor/src/main/java/de/ugoe/cs/quest/jfcmonitor/JFCNameChangeListener.java @ 851

Last change on this file since 851 was 851, checked in by fglaser, 12 years ago
  • JFCMonitor: Added new ContainerListener? that listens on component added and component removed events
  • small refactorings
  • Property svn:mime-type set to text/plain
File size: 1.3 KB
Line 
1/**
2 *
3 */
4package de.ugoe.cs.quest.jfcmonitor;
5
6import java.awt.Component;
7import java.beans.PropertyChangeEvent;
8import java.beans.PropertyChangeListener;
9
10import javax.accessibility.AccessibleContext;
11
12import de.ugoe.cs.util.StringTools;
13
14/**
15 * @author Fabian Glaser
16 *
17 */
18public class JFCNameChangeListener implements PropertyChangeListener {
19         /**
20     * <p>
21     * Writer for logging events.
22     * </p>
23     */
24    final private JFCMonitorOutputWriter outputWriter; 
25   
26    public JFCNameChangeListener(JFCMonitorOutputWriter outputWriter){
27        this.outputWriter = outputWriter;
28    }
29       
30        @Override
31        public void propertyChange(PropertyChangeEvent evt) {
32                if (evt.getPropertyName().equals("AccessibleName")){
33                        AccessibleContext context = (AccessibleContext) evt.getSource();
34                        Component component = (Component) context.getAccessibleParent();
35                        StringBuilder builder = new StringBuilder();
36                        builder.append("<componentNameChange hash=\"");
37                        if (!JFCComponent.isKnown(component)){
38                                        System.err.println("Referenced component is not known");
39                                        throw new AssertionError("Referenced component is not known.");
40                        }
41                        builder.append(Integer.toHexString(component.hashCode()));
42                        builder.append("\" newName=\"" + evt.getNewValue());
43                        builder.append("\"/>" + StringTools.ENDLINE);
44                        outputWriter.write(builder.toString());
45                }               
46        }
47       
48}
Note: See TracBrowser for help on using the repository browser.