Index: /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/TextInput.java
===================================================================
--- /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/TextInput.java	(revision 829)
+++ /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/TextInput.java	(revision 830)
@@ -2,4 +2,5 @@
 package de.ugoe.cs.quest.eventcore.gui;
 
+import java.util.Collections;
 import java.util.List;
 
@@ -138,5 +139,5 @@
     /**
      * <p>
-     * Returns the events of which this {@link TextInput} consists.
+     * Returns the events of which this {@link TextInput} consists. The returned list is immutable.
      * </p>
      * 
@@ -144,6 +145,5 @@
      */
     public List<Event> getTextInputEvents() {
-        // TODO should return an immutable view on the list
-        return textInputEvents;
+        return Collections.unmodifiableList(textInputEvents);
     }
 
Index: /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/TextInputDetector.java
===================================================================
--- /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/TextInputDetector.java	(revision 829)
+++ /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/TextInputDetector.java	(revision 830)
@@ -1,2 +1,3 @@
+
 package de.ugoe.cs.quest.eventcore.gui;
 
@@ -20,7 +21,7 @@
 /**
  * <p>
- * The text input detector iterates a list of events and searches for subsequent key events.
- * Those are replaced by a single text input event representing the text entered through the key
- * events. The replacement is only done, if the key events have a text field or text area as target
+ * The text input detector iterates a list of events and searches for subsequent key events. Those
+ * are replaced by a single text input event representing the text entered through the key events.
+ * The replacement is only done, if the key events have a text field or text area as target
  * </p>
  * 
@@ -29,23 +30,33 @@
  */
 public class TextInputDetector {
-    
-    /** the keyboard map to use for character recognition*/
+
+    /** the keyboard map to use for character recognition */
     private KeyboardMap keyboardMap = KeyboardMapFactory.createKeyboardMap(Locale.GERMAN);
-    
+
     /** the keys pressed in parallel */
     List<VirtualKey> pressedKeys = new ArrayList<VirtualKey>();
-    
+
     private final TextEquality textEqualityType;
-    
-    /**
-     * <p>
-     * TODO: comment
-     * </p>
-     *
+
+    /**
+     * <p>
+     * Constructor. Creates a new TextInputDectector that generates {@link TextInput} with
+     * {@link TextEquality#LEXICAL} equality.
+     * </p>
+     * 
      */
     public TextInputDetector() {
         this(TextEquality.LEXICAL);
     }
-    
+
+    /**
+     * <p>
+     * Constructor. Creates a new TextInputDectector that generates {@link TextInput} with a given
+     * {@link TextEquality} type.
+     * </p>
+     * 
+     * @param textEqualityType
+     *            equality type of the generated events
+     */
     public TextInputDetector(TextEquality textEqualityType) {
         this.textEqualityType = textEqualityType;
@@ -54,10 +65,11 @@
     /**
      * <p>
-     * in the provided list of events, this method detects any event sequences that consists of
-     * key interactions and replaces them with a single text input interaction. This contains
-     * the entered text as well as the replaced key interaction events
-     * </p>
-     * 
-     * @param sequence the event sequence to search for text input events
+     * in the provided list of events, this method detects any event sequences that consists of key
+     * interactions and replaces them with a single text input interaction. This contains the
+     * entered text as well as the replaced key interaction events
+     * </p>
+     * 
+     * @param sequence
+     *            the event sequence to search for text input events
      * 
      * @return the resulting sequence, in which key interactions on text fields and areas are
@@ -66,5 +78,5 @@
     public List<Event> detectTextInputs(List<Event> sequence) {
         List<Event> resultingSequence = new LinkedList<Event>();
-        
+
         int textEntryStartIndex = -1;
         IEventTarget lastEventTarget = null;
@@ -76,5 +88,5 @@
             currentEvent = sequence.get(index);
             textInputEvent = null;
-            
+
             if (isKeyInteraction(currentEvent) && isDataInputEventTarget(currentEvent.getTarget()))
             {
@@ -84,7 +96,8 @@
                 }
                 else if (!lastEventTarget.equals(currentEvent.getTarget())) {
-                    textInputEvent = handleTextEntrySequence
-                        (sequence, textEntryStartIndex, index - 1, lastEventTarget);
-                    
+                    textInputEvent =
+                        handleTextEntrySequence(sequence, textEntryStartIndex, index - 1,
+                                                lastEventTarget);
+
                     textEntryStartIndex = index;
                     lastEventTarget = currentEvent.getTarget();
@@ -94,11 +107,12 @@
             else {
                 if (textEntryStartIndex >= 0) {
-                    textInputEvent = handleTextEntrySequence
-                        (sequence, textEntryStartIndex, index - 1, lastEventTarget);
-                    
+                    textInputEvent =
+                        handleTextEntrySequence(sequence, textEntryStartIndex, index - 1,
+                                                lastEventTarget);
+
                     textEntryStartIndex = -1;
                     lastEventTarget = null;
                 }
-                
+
             }
 
@@ -106,16 +120,17 @@
                 resultingSequence.add(textInputEvent);
             }
-            
+
             if (currentEvent != null) {
                 resultingSequence.add(currentEvent);
             }
-            
+
             index++;
         }
 
         if (textEntryStartIndex >= 0) {
-            textInputEvent = handleTextEntrySequence
-                (sequence, textEntryStartIndex, sequence.size() - 1, lastEventTarget);
-            
+            textInputEvent =
+                handleTextEntrySequence(sequence, textEntryStartIndex, sequence.size() - 1,
+                                        lastEventTarget);
+
             if (textInputEvent != null) {
                 resultingSequence.add(textInputEvent);
@@ -131,5 +146,6 @@
      * </p>
      * 
-     * @param event the even to check
+     * @param event
+     *            the even to check
      * 
      * @return as described
@@ -142,7 +158,7 @@
      * <p>
      * creates a single text input event as replacement for key interactions being part of the
-     * subsequence of events denoted by the start and end index in the provide event sequence. If
-     * no text was entered, because the subsequence only contained key released events, then no
-     * text input event is generated (the method returns null).
+     * subsequence of events denoted by the start and end index in the provide event sequence. If no
+     * text was entered, because the subsequence only contained key released events, then no text
+     * input event is generated (the method returns null).
      * </p>
      * 
@@ -157,13 +173,13 @@
      *            the event target to be used for the new event
      * 
-     * @return a text input event representing the text input resulting from the events of
-     *         the provided subsequence
+     * @return a text input event representing the text input resulting from the events of the
+     *         provided subsequence
      * 
      * @throws IllegalArgumentException
      *             if the denoted subsequence contains other events than key interactions
      */
-    private Event handleTextEntrySequence(List<Event>  sequence,
-                                          int          startIndex,
-                                          int          endIndex,
+    private Event handleTextEntrySequence(List<Event> sequence,
+                                          int startIndex,
+                                          int endIndex,
                                           IEventTarget eventTarget)
     {
@@ -171,5 +187,5 @@
 
         String enteredText = determineEnteredText(sequence, startIndex, endIndex, textInputEvents);
-        
+
         if ((enteredText != null) && (!"".equals(enteredText))) {
             TextInput textInput = new TextInput(enteredText, textInputEvents, textEqualityType);
@@ -186,5 +202,6 @@
      * </p>
      * 
-     * @param eventTarget the event target to check
+     * @param eventTarget
+     *            the event target to check
      * 
      * @return true, if it is a text field or a text area ; false else
@@ -223,6 +240,6 @@
      */
     private String determineEnteredText(List<Event> sequence,
-                                        int         startIndex,
-                                        int         endIndex,
+                                        int startIndex,
+                                        int endIndex,
                                         List<Event> textInputEvents)
         throws IllegalArgumentException
@@ -230,8 +247,8 @@
         Event event;
         StringBuffer enteredText = new StringBuffer();
-        
+
         for (int i = startIndex; i <= endIndex; i++) {
             event = sequence.get(i);
-            
+
             if (event.getType() instanceof KeyPressed || event.getType() instanceof KeyTyped) {
                 VirtualKey key = ((KeyInteraction) event.getType()).getKey();
@@ -257,16 +274,17 @@
                 }
             }
-            else if (event.getType() instanceof KeyReleased || event.getType() instanceof KeyTyped) {
+            else if (event.getType() instanceof KeyReleased || event.getType() instanceof KeyTyped)
+            {
                 pressedKeys.remove(((KeyInteraction) event.getType()).getKey());
             }
             else {
-                throw new IllegalArgumentException
-                    ("the subsequence denoted by the indexes contains other interactions than " +
-                     "just key strokes");
-            }
-            
+                throw new IllegalArgumentException(
+                                                   "the subsequence denoted by the indexes contains other interactions than "
+                                                       + "just key strokes");
+            }
+
             textInputEvents.add(event);
         }
-        
+
         if (enteredText.length() > 0) {
             return enteredText.toString();
@@ -283,6 +301,8 @@
      * </p>
      * 
-     * @param key         the key for which the character shall be determined
-     * @param pressedKeys the list of other keys pressed in parallel
+     * @param key
+     *            the key for which the character shall be determined
+     * @param pressedKeys
+     *            the list of other keys pressed in parallel
      * 
      * @return the character resulting from the combination of pressed keys
Index: /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/TextSelection.java
===================================================================
--- /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/TextSelection.java	(revision 829)
+++ /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/TextSelection.java	(revision 830)
@@ -1,13 +1,20 @@
+
 package de.ugoe.cs.quest.eventcore.gui;
 
 /**
- * TODO comment
+ * <p>
+ * Event type for selecting text.
+ * </p>
  * 
- * @version $Revision: $ $Date: $
- * @author 2011, last modified by $Author: $
+ * @version 1.0
+ * @author Patrick Harms
  */
 public class TextSelection implements IInteraction {
 
-    /**  */
+    /**
+     * <p>
+     * Id for object serialization.
+     * </p>
+     */
     private static final long serialVersionUID = 1L;
 
@@ -48,5 +55,5 @@
         return false;
     }
-    
+
     /*
      * (non-Javadoc)
Index: /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/ValueSelection.java
===================================================================
--- /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/ValueSelection.java	(revision 829)
+++ /trunk/quest-core-events/src/main/java/de/ugoe/cs/quest/eventcore/gui/ValueSelection.java	(revision 830)
@@ -1,22 +1,36 @@
+
 package de.ugoe.cs.quest.eventcore.gui;
 
 /**
- * TODO comment
+ * <p>
+ * Event type for selecting a value.
+ * </p>
  * 
- * @version $Revision: $ $Date: $
- * @author 2011, last modified by $Author: $
+ * @version 1.0
+ * @author Patrick Harms
  */
 public class ValueSelection<T> implements IInteraction {
-    
-    /**  */
+
+    /**
+     * <p>
+     * Id for object serialization.
+     * </p>
+     */
     private static final long serialVersionUID = 1L;
 
-    /** */
+    /**
+     * <p>
+     * The selected value.
+     * </p>
+     */
     private T selectedValue;
 
     /**
-     * TODO: comment
+     * <p>
+     * Constructor. Creates a new ValueSelection.
+     * </p>
      * 
      * @param selectedValue
+     *            the selected value
      */
     public ValueSelection(T selectedValue) {
@@ -62,4 +76,8 @@
 
     /**
+     * <p>
+     * Returns the selected value associated with this event.
+     * </p>
+     * 
      * @return the selectedValue
      */
@@ -81,12 +99,11 @@
         ValueSelection<?> otherValueSelection = (ValueSelection<?>) obj;
 
-        return
-            ((otherValueSelection != null) &&
-             ((selectedValue == otherValueSelection.selectedValue) ||
-              ((selectedValue != null) &&
-               (selectedValue.equals(otherValueSelection.selectedValue)))));
+        return ((otherValueSelection != null) && ((selectedValue == otherValueSelection.selectedValue) || ((selectedValue != null) && (selectedValue
+            .equals(otherValueSelection.selectedValue)))));
     }
 
-    /* (non-Javadoc)
+    /*
+     * (non-Javadoc)
+     * 
      * @see java.lang.Object#hashCode()
      */
