Ignore:
Timestamp:
09/19/12 10:46:39 (12 years ago)
Author:
sherbold
Message:
  • converted JFCMonitor to Maven project
Location:
trunk/JFCMonitor
Files:
2 added
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/JFCMonitor

    • Property svn:ignore set to
      .settings
  • trunk/JFCMonitor/src/main/java/de/ugoe/cs/eventbench/jfcmonitor/JFCListener.java

    r421 r822  
     1 
    12package de.ugoe.cs.eventbench.jfcmonitor; 
    23 
     
    1415/** 
    1516 * <p> 
    16  * This class implements monitoring of AWT and Swing mouse and keyboard events. 
    17  * Each of the events is 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. 
    1819 * </p> 
    1920 *  
     
    2324public class JFCListener implements AWTEventListener { 
    2425 
    25         /** 
    26         * <p> 
    27         * Writer for logging events. 
    28         * </p> 
    29         */ 
    30         final private OutputStreamWriter outputWriter; 
     26    /** 
     27    * <p> 
     28    * Writer for logging events. 
     29    * </p> 
     30    */ 
     31    final private OutputStreamWriter outputWriter; 
    3132 
    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    } 
    5252 
    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(); 
    6463 
    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    } 
    117109 
    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    } 
    143134 
    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    } 
    159148 
    160149} 
Note: See TracChangeset for help on using the changeset viewer.