- Timestamp:
- 09/19/12 10:46:39 (12 years ago)
- Location:
- trunk/JFCMonitor
- Files:
-
- 2 added
- 2 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/JFCMonitor
-
Property
svn:ignore
set to
.settings
-
Property
svn:ignore
set to
-
trunk/JFCMonitor/src/main/java/de/ugoe/cs/eventbench/jfcmonitor/JFCListener.java
r421 r822 1 1 2 package de.ugoe.cs.eventbench.jfcmonitor; 2 3 … … 14 15 /** 15 16 * <p> 16 * This class implements monitoring of AWT and Swing mouse and keyboard events. 17 * Each of the eventsis written to an output stream.17 * This class implements monitoring of AWT and Swing mouse and keyboard events. Each of the events 18 * is written to an output stream. 18 19 * </p> 19 20 * … … 23 24 public class JFCListener implements AWTEventListener { 24 25 25 26 27 28 29 30 26 /** 27 * <p> 28 * Writer for logging events. 29 * </p> 30 */ 31 final private OutputStreamWriter outputWriter; 31 32 32 /** 33 * <p> 34 * Constructor. Creates a new JFCListener with a given 35 * {@link OutputStreamWriter}, where the monitored information is logged. 36 * </p> 37 * 38 * @param outputWriter 39 * writer for the logged information 40 */ 41 public JFCListener(OutputStreamWriter outputWriter) { 42 this.outputWriter = outputWriter; 43 try { 44 outputWriter.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" 45 + StringTools.ENDLINE); 46 outputWriter.write("<sessions>" + StringTools.ENDLINE); 47 } catch (IOException e) { 48 System.err.println("JFCMONITOR -- Failure writing to log: " 49 + e.getMessage()); 50 } 51 } 33 /** 34 * <p> 35 * Constructor. Creates a new JFCListener with a given {@link OutputStreamWriter}, where the 36 * monitored information is logged. 37 * </p> 38 * 39 * @param outputWriter 40 * writer for the logged information 41 */ 42 public JFCListener(OutputStreamWriter outputWriter) { 43 this.outputWriter = outputWriter; 44 try { 45 outputWriter.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + StringTools.ENDLINE); 46 outputWriter.write("<sessions>" + StringTools.ENDLINE); 47 } 48 catch (IOException e) { 49 System.err.println("JFCMONITOR -- Failure writing to log: " + e.getMessage()); 50 } 51 } 52 52 53 /** 54 * <p> 55 * Writes all received {@link MouseEvent}s and {@link KeyEvent}s to the 56 * {@link #outputWriter}. 57 * </p> 58 * 59 * @see java.awt.event.AWTEventListener#eventDispatched(java.awt.AWTEvent) 60 */ 61 @Override 62 public void eventDispatched(AWTEvent event) { 63 StringBuilder builder = new StringBuilder(); 53 /** 54 * <p> 55 * Writes all received {@link MouseEvent}s and {@link KeyEvent}s to the {@link #outputWriter}. 56 * </p> 57 * 58 * @see java.awt.event.AWTEventListener#eventDispatched(java.awt.AWTEvent) 59 */ 60 @Override 61 public void eventDispatched(AWTEvent event) { 62 StringBuilder builder = new StringBuilder(); 64 63 65 if (event instanceof MouseEvent) { 66 if (!isMouseMovement(event.getID())) { 67 MouseEvent mouseEvent = (MouseEvent) event; 68 builder.append("<event id=\"" + event.getID() + "\">" 69 + StringTools.ENDLINE); 70 builder.append(" <param name=\"X\" value=\"" 71 + mouseEvent.getX() + "\" />" + StringTools.ENDLINE); 72 builder.append(" <param name=\"Y\" value=\"" 73 + mouseEvent.getY() + "\" />" + StringTools.ENDLINE); 74 builder.append(" <param name=\"Button\" value=\"" 75 + mouseEvent.getButton() + "\" />" 76 + StringTools.ENDLINE); 77 builder.append(" <param name=\"Modifiers\" value=\"" 78 + mouseEvent.getModifiers() + "\" />" 79 + StringTools.ENDLINE); 80 addSourceInfo(builder, event); 81 builder.append("</event>" + StringTools.ENDLINE); 82 } 83 } 84 else if (event instanceof KeyEvent) { 85 if (event.getID() == KeyEvent.KEY_PRESSED 86 || event.getID() == KeyEvent.KEY_RELEASED) { 87 KeyEvent keyEvent = (KeyEvent) event; 88 builder.append("<event id=\"" + event.getID() + "\">" 89 + StringTools.ENDLINE); 90 builder.append(" <param name=\"KeyCode\" value=\"" 91 + keyEvent.getKeyCode() + "\" />" + StringTools.ENDLINE); 92 builder.append(" <param name=\"Modifiers\" value=\"" 93 + keyEvent.getModifiers() + "\" />" 94 + StringTools.ENDLINE); 95 addSourceInfo(builder, event); 96 builder.append("</event>" + StringTools.ENDLINE); 97 } 98 } 99 else if (event instanceof FocusEvent) { 100 if (event.getID() == FocusEvent.FOCUS_GAINED) { 101 builder.append("<event id=\"" + event.getID() + "\">" 102 + StringTools.ENDLINE); 103 addSourceInfo(builder, event); 104 builder.append("</event>" + StringTools.ENDLINE); 105 } 106 } 107 if (builder.length() > 0 && outputWriter != null) { 108 try { 109 outputWriter.write(builder.toString()); 110 outputWriter.flush(); 111 } catch (IOException e) { 112 System.err.println("JFCMONITOR -- Failure writing to log: " 113 + e.getMessage()); 114 } 115 } 116 } 64 if (event instanceof MouseEvent) { 65 if (!isMouseMovement(event.getID())) { 66 MouseEvent mouseEvent = (MouseEvent) event; 67 builder.append("<event id=\"" + event.getID() + "\">" + StringTools.ENDLINE); 68 builder.append(" <param name=\"X\" value=\"" + mouseEvent.getX() + "\" />" + 69 StringTools.ENDLINE); 70 builder.append(" <param name=\"Y\" value=\"" + mouseEvent.getY() + "\" />" + 71 StringTools.ENDLINE); 72 builder.append(" <param name=\"Button\" value=\"" + mouseEvent.getButton() + 73 "\" />" + StringTools.ENDLINE); 74 builder.append(" <param name=\"Modifiers\" value=\"" + mouseEvent.getModifiers() + 75 "\" />" + StringTools.ENDLINE); 76 addSourceInfo(builder, event); 77 builder.append("</event>" + StringTools.ENDLINE); 78 } 79 } 80 else if (event instanceof KeyEvent) { 81 if (event.getID() == KeyEvent.KEY_PRESSED || event.getID() == KeyEvent.KEY_RELEASED) { 82 KeyEvent keyEvent = (KeyEvent) event; 83 builder.append("<event id=\"" + event.getID() + "\">" + StringTools.ENDLINE); 84 builder.append(" <param name=\"KeyCode\" value=\"" + keyEvent.getKeyCode() + 85 "\" />" + StringTools.ENDLINE); 86 builder.append(" <param name=\"Modifiers\" value=\"" + keyEvent.getModifiers() + 87 "\" />" + StringTools.ENDLINE); 88 addSourceInfo(builder, event); 89 builder.append("</event>" + StringTools.ENDLINE); 90 } 91 } 92 else if (event instanceof FocusEvent) { 93 if (event.getID() == FocusEvent.FOCUS_GAINED) { 94 builder.append("<event id=\"" + event.getID() + "\">" + StringTools.ENDLINE); 95 addSourceInfo(builder, event); 96 builder.append("</event>" + StringTools.ENDLINE); 97 } 98 } 99 if (builder.length() > 0 && outputWriter != null) { 100 try { 101 outputWriter.write(builder.toString()); 102 outputWriter.flush(); 103 } 104 catch (IOException e) { 105 System.err.println("JFCMONITOR -- Failure writing to log: " + e.getMessage()); 106 } 107 } 108 } 117 109 118 /** 119 * <p> 120 * Appends information about the event to a {@link StringBuilder}. 121 * </p> 122 * 123 * @param builder 124 * {@link StringBuilder} where the information is appended 125 * @param event 126 * event whose information is appended 127 */ 128 private void addSourceInfo(StringBuilder builder, AWTEvent event) { 129 builder.append(" <source>" + StringTools.ENDLINE); 130 builder.append(" <param name=\"toString\" value=\"" 131 + StringTools 132 .xmlEntityReplacement(event.getSource().toString()) 133 + "\" />" + StringTools.ENDLINE); 134 if (event.getSource() instanceof Component) { 135 Component source = (Component) event.getSource(); 136 JFCComponent jfcComponent = JFCComponent.find(source); 137 if (jfcComponent != null) { 138 builder.append(jfcComponent.getXML()); 139 } 140 } 141 builder.append(" </source>" + StringTools.ENDLINE); 142 } 110 /** 111 * <p> 112 * Appends information about the event to a {@link StringBuilder}. 113 * </p> 114 * 115 * @param builder 116 * {@link StringBuilder} where the information is appended 117 * @param event 118 * event whose information is appended 119 */ 120 private void addSourceInfo(StringBuilder builder, AWTEvent event) { 121 builder.append(" <source>" + StringTools.ENDLINE); 122 builder.append(" <param name=\"toString\" value=\"" + 123 StringTools.xmlEntityReplacement(event.getSource().toString()) + "\" />" + 124 StringTools.ENDLINE); 125 if (event.getSource() instanceof Component) { 126 Component source = (Component) event.getSource(); 127 JFCComponent jfcComponent = JFCComponent.find(source); 128 if (jfcComponent != null) { 129 builder.append(jfcComponent.getXML()); 130 } 131 } 132 builder.append(" </source>" + StringTools.ENDLINE); 133 } 143 134 144 /** 145 * <p> 146 * Checks if the Id of an {@link AWTEvent} is a mouse movement Id. 147 * </p> 148 * 149 * @param eventId 150 * id of the {@link AWTEvent} 151 * @return true, if the event is a mouse movement event; false otherwise 152 */ 153 private boolean isMouseMovement(int eventId) { 154 return eventId == MouseEvent.MOUSE_MOVED 155 || eventId == MouseEvent.MOUSE_DRAGGED 156 || eventId == MouseEvent.MOUSE_ENTERED 157 || eventId == MouseEvent.MOUSE_EXITED; 158 } 135 /** 136 * <p> 137 * Checks if the Id of an {@link AWTEvent} is a mouse movement Id. 138 * </p> 139 * 140 * @param eventId 141 * id of the {@link AWTEvent} 142 * @return true, if the event is a mouse movement event; false otherwise 143 */ 144 private boolean isMouseMovement(int eventId) { 145 return eventId == MouseEvent.MOUSE_MOVED || eventId == MouseEvent.MOUSE_DRAGGED || 146 eventId == MouseEvent.MOUSE_ENTERED || eventId == MouseEvent.MOUSE_EXITED; 147 } 159 148 160 149 }
Note: See TracChangeset
for help on using the changeset viewer.