Ignore:
Timestamp:
09/20/12 12:03:03 (12 years ago)
Author:
sherbold
Message:
  • code documentation and clean-up
Location:
trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc
Files:
1 deleted
22 edited

Legend:

Unmodified
Added
Removed
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/EventGenerationRule.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc; 
    23 
     
    1112/** 
    1213 * <p> 
    13  * TODO comment 
     14 * This class defines rules for the generation of MFC events. 
    1415 * </p> 
    1516 *  
    16  * @version $Revision: $ $Date: 22.08.2012$ 
    17  * @author 2012, last modified by $Author: patrick$ 
     17 * @version 1.0 
     18 * @author Steffen Herbold, Patrick Harms 
    1819 */ 
    1920class EventGenerationRule { 
     
    2122    /** 
    2223     * <p> 
    23      * the namespace used for parsing the rule 
     24     * Namespace used for parsing the rule. 
    2425     * </p> 
    2526     */ 
     
    2829    /** 
    2930     * <p> 
    30      * the name of the rule 
     31     * Name of the rule. 
    3132     * </p> 
    3233     */ 
     
    3536    /** 
    3637     * <p> 
    37      * the list of conditions for the rule to be matched 
     38     * List of conditions for the rule to be matched. 
    3839     * </p> 
    3940     */ 
     
    4243    /** 
    4344     * <p> 
    44      * the list of parameters to be provided to the generated event 
     45     * List of parameters to be provided to the generated event. 
    4546     * </p> 
    4647     */ 
     
    4950    /** 
    5051     * <p> 
    51      * the list of replay message generation rules 
     52     * List of replay message generation rules. 
    5253     * </p> 
    5354     */ 
     
    5657    /** 
    5758     * <p> 
    58      * TODO: comment 
    59      * </p> 
    60      * 
     59     * Constructor. Creates a new EventGenerationRule. 
     60     * </p> 
     61     *  
    6162     * @param ruleElement 
    62      * @param rulesNamespace  
     63     *            the JDOM element that descripes the rule 
     64     * @param rulesNamespace 
     65     *            the XML namespace the rule is defined in 
    6366     */ 
    6467    @SuppressWarnings("unchecked") 
    6568    EventGenerationRule(Element ruleElement, Namespace rulesNamespace) { 
    6669        this.namespace = rulesNamespace; 
    67          
     70 
    6871        this.name = ruleElement.getAttributeValue("name"); 
    69          
     72 
    7073        this.messageConditions = new ArrayList<MessageCondition>(); 
    7174        this.eventParameters = new ArrayList<Term>(); 
    7275        this.replayMessageSpecifications = new ArrayList<ReplayMessageSpec>(); 
    73          
     76 
    7477        for (Element child : (List<Element>) ruleElement.getChildren()) { 
    7578            if ("msg".equals(child.getName()) && namespace.equals(child.getNamespace())) { 
     
    8487                replayMessageSpecifications.add(new ReplayMessageSpec(child)); 
    8588            } 
    86             else if ("genMsgSeq".equals(child.getName()) && namespace.equals(child.getNamespace())) { 
     89            else if ("genMsgSeq".equals(child.getName()) && namespace.equals(child.getNamespace())) 
     90            { 
    8791                replayMessageSpecifications.add(new ReplayMessageSpec(child)); 
    8892            } 
    8993            else { 
    90                 throw new IllegalArgumentException 
    91                     ("the provided rules can not be parsed: unknown element " + child.getName()); 
     94                throw new IllegalArgumentException( 
     95                                                   "the provided rules can not be parsed: unknown element " + 
     96                                                       child.getName()); 
    9297            } 
    9398        } 
     
    95100 
    96101    /** 
     102     * <p> 
     103     * Returns the name of the rule. 
     104     * </p> 
     105     *  
    97106     * @return the name 
    98107     */ 
     
    103112    /** 
    104113     * <p> 
    105      * TODO: comment 
    106      * </p> 
    107      * 
    108      * @return 
     114     * Returns the conditions on the matched messages defined by this rule. 
     115     * </p> 
     116     *  
     117     * @return the message conditions 
    109118     */ 
    110119    List<MessageCondition> getMessageConditions() { 
     
    114123    /** 
    115124     * <p> 
    116      * TODO: comment 
    117      * </p> 
    118      * 
    119      * @return 
     125     * Returns the parameters of the event generated by this rule. 
     126     * </p> 
     127     *  
     128     * @return the event parameters 
    120129     */ 
    121130    List<Term> getEventParameters() { 
     
    125134    /** 
    126135     * <p> 
    127      * TODO: comment 
    128      * </p> 
    129      * 
    130      * @return 
     136     * Returns the replay specification defined by this rule. 
     137     * </p> 
     138     *  
     139     * @return the replay specification 
    131140     */ 
    132141    List<ReplayMessageSpec> getReplayMessageSpecifications() { 
     
    136145    /** 
    137146     * <p> 
    138      * TODO comment 
     147     * Helper class that describes conditions on the message sequence when matching this rule. 
    139148     * </p> 
    140149     *  
    141      * @version $Revision: $ $Date: 22.08.2012$ 
    142      * @author 2012, last modified by $Author: patrick$ 
     150     * @version 1.0 
     151     * @author Steffen Herbold, Patrick Harms 
    143152     */ 
    144153    class MessageCondition { 
     
    146155        /** 
    147156         * <p> 
    148          * true, if the condition defines to match several conditions 
     157         * True, if the condition defines to match several conditions 
    149158         * </p> 
    150159         */ 
    151160        private boolean matchMultiple; 
    152          
    153         /** 
    154          * <p> 
    155          * the type of the message matched by the condition 
     161 
     162        /** 
     163         * <p> 
     164         * Type of the message matched by the condition 
    156165         * </p> 
    157166         */ 
     
    160169        /** 
    161170         * <p> 
    162          * the term conditions associate with the rule condition 
     171         * Term conditions associated with the rule condition 
    163172         * </p> 
    164173         */ 
     
    167176        /** 
    168177         * <p> 
    169          * the list of messages to be stored, if the message matches, for continuing the 
    170          * rule application 
     178         * List of messages to be stored, if the message matches, for continuing the rule 
     179         * application 
    171180         * </p> 
    172181         */ 
     
    175184        /** 
    176185         * <p> 
    177          * TODO: comment 
    178          * </p> 
    179          * 
     186         * Constructor. Creates a new MessageCondition. 
     187         * </p> 
     188         *  
    180189         * @param msgChild 
     190         *            JDOM element that describes the message condition 
    181191         */ 
    182192        @SuppressWarnings("unchecked") 
     
    185195            this.messageType = 
    186196                WindowsMessageType.parseMessageType(msgChild.getAttributeValue("type")); 
    187              
     197 
    188198            this.attributeConditions = new ArrayList<AttributeCondition>(); 
    189199            for (Element childElement : (List<Element>) msgChild.getChildren("equals", namespace)) { 
    190200                attributeConditions.add(new AttributeCondition(childElement)); 
    191201            } 
    192              
     202 
    193203            this.messagesToStore = new ArrayList<Term>(); 
    194204            for (Element childElement : (List<Element>) msgChild.getChildren("store", namespace)) { 
    195205                messagesToStore.add(new Term(childElement)); 
    196206            } 
    197             for (Element childElement : 
    198                  (List<Element>) msgChild.getChildren("storeSeq", namespace)) 
     207            for (Element childElement : (List<Element>) msgChild.getChildren("storeSeq", namespace)) 
    199208            { 
    200209                messagesToStore.add(new Term(childElement)); 
     
    203212 
    204213        /** 
    205          * @return the matchMultiple 
     214         * <p> 
     215         * Returns whether a single message is matched to the condition or a whole sequence can be 
     216         * matched. 
     217         * </p> 
     218         *  
     219         * @return true if multiple message shall be matched, false if only a single message is 
     220         *         matched 
    206221         */ 
    207222        boolean matchMultiple() { 
     
    211226        /** 
    212227         * <p> 
    213          * TODO: comment 
    214          * </p> 
    215          * 
    216          * @return 
     228         * Returns the type of the matched messages. 
     229         * </p> 
     230         *  
     231         * @return the message type 
    217232         */ 
    218233        WindowsMessageType getMessageType() { 
     
    222237        /** 
    223238         * <p> 
    224          * TODO: comment 
    225          * </p> 
    226          * 
    227          * @return 
     239         * Returns the attribute conditions of the message condition. 
     240         * </p> 
     241         *  
     242         * @return the attribute conditions 
    228243         */ 
    229244        List<AttributeCondition> getAttributeConditions() { 
     
    232247 
    233248        /** 
    234          * @return the valuesToStore 
     249         * <p> 
     250         * Returns messages, that have eventually been stored as part of the condition. 
     251         * </p> 
     252         *  
     253         * @return the stored messages 
    235254         */ 
    236255        ArrayList<Term> getMessagesToStore() { 
     
    242261    /** 
    243262     * <p> 
    244      * TODO comment 
     263     * Helper class that defines attribute conditions for matching messages. 
    245264     * </p> 
    246265     *  
    247      * @version $Revision: $ $Date: 22.08.2012$ 
    248      * @author 2012, last modified by $Author: patrick$ 
     266     * @version 1.0 
     267     * @author Steffen Herbold, Patrick Harms 
    249268     */ 
    250269    class AttributeCondition { 
     
    252271        /** 
    253272         * <p> 
    254          * the left hand side of the condition 
     273         * Left hand side of the condition. 
    255274         * </p> 
    256275         */ 
    257276        private Term leftHandSide; 
    258          
    259         /** 
    260          * <p> 
    261          * the left hand side of the condition 
     277 
     278        /** 
     279         * <p> 
     280         * Reft hand side of the condition. 
    262281         * </p> 
    263282         */ 
     
    266285        /** 
    267286         * <p> 
    268          * TODO: comment 
    269          * </p> 
    270          * 
    271          * @param childElement 
     287         * Constructor. Creates a new AttributeCondition. 
     288         * </p> 
     289         *  
     290         * @param conditionElement 
     291         *            JDOM element that describes the condition 
    272292         */ 
    273293        private AttributeCondition(Element conditionElement) { 
     
    275295            this.rightHandSide = new Term((Element) conditionElement.getChildren().get(1)); 
    276296        } 
    277          
    278         /** 
    279          * @return the leftHandSide 
     297 
     298        /** 
     299         * <p> 
     300         * Returns the left hand side of the condition. 
     301         * </p> 
     302         *  
     303         * @return the left hand side 
    280304         */ 
    281305        Term getLeftHandSide() { 
     
    284308 
    285309        /** 
    286          * @return the rightHandSide 
     310         * <p> 
     311         * Returns the right hand side of the condition. 
     312         * </p> 
     313         *  
     314         * @return the right hand side 
    287315         */ 
    288316        Term getRightHandSide() { 
     
    294322    /** 
    295323     * <p> 
    296      * TODO comment 
     324     * Helper class that defines terms to define conditions. 
    297325     * </p> 
    298326     *  
    299      * @version $Revision: $ $Date: 22.08.2012$ 
    300      * @author 2012, last modified by $Author: patrick$ 
     327     * @version 1.0 
     328     * @author Steffen Herbold, Patrick Harms 
    301329     */ 
    302330    class Term { 
     
    304332        /** 
    305333         * <p> 
    306          * the name of the term 
     334         * Name of the term. 
    307335         * </p> 
    308336         */ 
    309337        private String name; 
    310          
    311         /** 
    312          * <p> 
    313          * the value of the term, if it is a constValue, null instead 
     338 
     339        /** 
     340         * <p> 
     341         * Value of the term, if it is a constValue; null otherwise. 
    314342         * </p> 
    315343         */ 
     
    318346        /** 
    319347         * <p> 
    320          * the variable name of the object, i.e. a message, of which a parameter is identified if 
    321          * the term is a winInfoValue or a msgInfoValue; null instead 
     348         * Variable name of the object, i.e. a message, of which a parameter is identified if the 
     349         * term is a winInfoValue or a msgInfoValue; null otherwise. 
    322350         * </p> 
    323351         */ 
     
    326354        /** 
    327355         * <p> 
    328          * the name of the parameter of the object, e.g. a message, of which a parameter is 
    329          * identified if the term is a paramValue, null instead 
     356         * Name of the parameter of the object, i.e., a message, of which a parameter is identified 
     357         * if the term is a paramValue; null otherwise. 
    330358         * </p> 
    331359         */ 
     
    334362        /** 
    335363         * <p> 
    336          * the variable name of the message sequence denoted by the term in case of a seqValue; 
    337          * null instead 
     364         * Variable name of the message sequence denoted by the term in case of a seqValue; null 
     365         * otherwise. 
    338366         * </p> 
    339367         */ 
     
    342370        /** 
    343371         * <p> 
    344          * the name of the parameter of the sequence of which a parameter is 
    345          * identified if the term is a seqValue, null instead 
     372         * Name of the parameter of the sequence of which a parameter is identified if the term is a 
     373         * seqValue; null otherwise. 
    346374         * </p> 
    347375         */ 
     
    350378        /** 
    351379         * <p> 
    352          * the name of the parameter of the window of the object, e.g. a message, of which a 
    353          * parameter is identified if the term is a winInfoValue, null instead 
     380         * Name of the parameter of the window of the object, e.g. a message, of which a parameter 
     381         * is identified if the term is a winInfoValue; null otherwise. 
    354382         * </p> 
    355383         */ 
     
    358386        /** 
    359387         * <p> 
    360          * the name of the info of the message of which a parameter is identified if the 
    361          * term is a msgInfoValue, null instead 
     388         * Name of the info of the message of which a parameter is identified if the term is a 
     389         * msgInfoValue; null otherwise. 
    362390         * </p> 
    363391         */ 
     
    366394        /** 
    367395         * <p> 
    368          * the name of the parameter of the message into which a value shall be stored if the 
    369          * term is a resolveHwnd, null instead 
     396         * Name of the parameter of the message into which a value shall be stored if the term is a 
     397         * resolveHwnd, null otherwise 
    370398         * </p> 
    371399         */ 
     
    374402        /** 
    375403         * <p> 
    376          * the list of handles to be resolved in case the term is a store or storeSeq, null instead 
     404         * List of handles to be resolved in case the term is a store or storeSeq; null otherwise. 
    377405         * </p> 
    378406         */ 
     
    381409        /** 
    382410         * <p> 
    383          * TODO: comment 
    384          * </p> 
    385          * 
    386          * @param object 
     411         * Constructor. Creates a new Term. 
     412         * </p> 
     413         *  
     414         * @param termElement 
     415         *            JDOM element that describes the term 
    387416         */ 
    388417        @SuppressWarnings("unchecked") 
    389418        private Term(Element termElement) { 
    390419            this.name = termElement.getName(); 
    391              
     420 
    392421            if ("constValue".equals(name)) { 
    393422                this.value = termElement.getAttributeValue("value"); 
     
    434463 
    435464        /** 
     465         * <p> 
     466         * Returns the name of the term. 
     467         * </p> 
     468         *  
    436469         * @return the name 
    437470         */ 
     
    441474 
    442475        /** 
     476         * <p> 
     477         * Returns the value of the term. 
     478         * </p> 
     479         *  
    443480         * @return the value 
    444481         */ 
     
    448485 
    449486        /** 
    450          * @return the object 
     487         * <p> 
     488         * Returns the object Id of the message, which is resolved as part of this term. 
     489         * </p> 
     490         *  
     491         * @return the object Id 
    451492         */ 
    452493        String getMessageId() { 
     
    455496 
    456497        /** 
    457          * @return the objectParameter 
     498         * <p> 
     499         * Returns the name of the message parameter that is resolved as part of this term. 
     500         * </p> 
     501         *  
     502         * @return the message parameter name 
    458503         */ 
    459504        String getMessageParameterName() { 
     
    462507 
    463508        /** 
    464          * @return the sequenceId 
     509         * <p> 
     510         * Returns the object Id of the message sequence, which is resolved as part of this term. 
     511         * </p> 
     512         *  
     513         * @return the object Id 
    465514         */ 
    466515        String getSequenceId() { 
     
    469518 
    470519        /** 
     520         * <p> 
     521         * Returns the name of the message parameter that is resolved as part of this term. 
     522         * </p> 
     523         *  
    471524         * @return the sequenceParameter 
    472525         */ 
     
    476529 
    477530        /** 
    478          * @return the windowParameter 
     531         * <p> 
     532         * Returns the window parameter name that is resolved as part of this term. 
     533         * </p> 
     534         *  
     535         * @return the name of the window parameter 
    479536         */ 
    480537        String getWindowParameterName() { 
     
    483540 
    484541        /** 
    485          * @return the messageParameter 
     542         * <p> 
     543         * Returns the name of the message info value that is resolved as part of this term. 
     544         * </p> 
     545         *  
     546         * @return the name of the message info value 
    486547         */ 
    487548        String getMessageInfoName() { 
     
    490551 
    491552        /** 
    492          * @return the storeParameter 
     553         * <p> 
     554         * Returns the object Id under which a message will be stored. 
     555         * </p> 
     556         *  
     557         * @return the object Id 
    493558         */ 
    494559        String getStoreParameterName() { 
     
    497562 
    498563        /** 
    499          * @return the resolveHandles 
     564         * <p> 
     565         * Returns all terms that are responsible to resolve HWNDs. 
     566         * </p> 
     567         *  
     568         * @return the terms 
    500569         */ 
    501570        List<Term> getResolveHandles() { 
     
    504573 
    505574    } 
    506      
    507     /** 
    508      * <p> 
    509      * TODO comment 
     575 
     576    /** 
     577     * <p> 
     578     * Helper class that defines the replay specification part of rules. 
    510579     * </p> 
    511580     *  
    512      * @version $Revision: $ $Date: 22.08.2012$ 
    513      * @author 2012, last modified by $Author: patrick$ 
     581     * @version 1.0 
     582     * @author Steffen Herbold, Patrick Harms 
    514583     */ 
    515584    class ReplayMessageSpec { 
     
    517586        /** 
    518587         * <p> 
    519          * determines, if this specification defines one, or a sequence of messages 
     588         * Determines if this specification defines one, or a sequence of messages. 
    520589         * </p> 
    521590         */ 
    522591        private boolean generateSingleMessage; 
    523          
    524         /** 
    525          * <p> 
    526          * the id of a concrete message of message sequence to be replayed as is 
     592 
     593        /** 
     594         * <p> 
     595         * Object Id of a concrete message of message sequence to be replayed as is. 
    527596         * </p> 
    528597         */ 
    529598        private String replayObjectId; 
    530599 
     600        /** 
     601         * <p> 
     602         * Term describing the type of the generated message. 
     603         * </p> 
     604         */ 
    531605        private Term type; 
    532606 
     607        /** 
     608         * <p> 
     609         * Term describing the target of the generated message. 
     610         * </p> 
     611         */ 
    533612        private Term target; 
    534613 
     614        /** 
     615         * <p> 
     616         * Term describing the LO word of the LParam of the generated message. 
     617         * </p> 
     618         */ 
    535619        private Term lparamLoWord; 
    536620 
     621        /** 
     622         * <p> 
     623         * Term describing the HI word of the LParam of the generated message. 
     624         * </p> 
     625         */ 
    537626        private Term lparamHiWord; 
    538627 
     628        /** 
     629         * <p> 
     630         * Term describing the LParam of the generated message. 
     631         * </p> 
     632         */ 
    539633        private Term lparam; 
    540634 
     635        /** 
     636         * <p> 
     637         * Term describing the LO word of the WParam of the generated message. 
     638         * </p> 
     639         */ 
    541640        private Term wparamLoWord; 
    542641 
     642        /** 
     643         * <p> 
     644         * Term describing the HI word of the WParam of the generated message. 
     645         * </p> 
     646         */ 
    543647        private Term wparamHiWord; 
    544648 
     649        /** 
     650         * <p> 
     651         * Term describing the WParam of the generated message. 
     652         * </p> 
     653         */ 
    545654        private Term wparam; 
    546655 
     656        /** 
     657         * <p> 
     658         * Value in milliseconds that the replay waits until the the next message is replayed. 
     659         * </p> 
     660         */ 
    547661        private int delay; 
    548          
    549         /** 
    550          * <p> 
    551          * TODO: comment 
    552          * </p> 
    553          * 
    554          * @param child 
     662 
     663        /** 
     664         * <p> 
     665         * Constructor. Creates a new ReplayMessageSpec. 
     666         * </p> 
     667         *  
     668         * @param replayMessageSpecElement 
     669         *            JDOM element that describes the replay message specification 
    555670         */ 
    556671        @SuppressWarnings("unchecked") 
     
    569684                } 
    570685            } 
    571              
     686 
    572687            this.delay = Integer.parseInt(replayMessageSpecElement.getAttributeValue("delay")); 
    573              
     688 
    574689            if (children.size() > 1) { 
    575690                for (Element child : children) { 
    576691                    Element termElement = (Element) child.getChildren().get(0); 
    577                      
     692 
    578693                    if (child.getName().equals("type")) { 
    579694                        this.type = new Term(termElement); 
     
    581696                    else if (child.getName().equals("target")) { 
    582697                        this.target = new Term(termElement); 
    583                          
     698 
    584699                        if (!generateSingleMessage) { 
    585700                            // in this case, the target is always a sequence value term, i.e. 
     
    595710                                new Term((Element) loWordElement.getChildren().get(0)); 
    596711                        } 
    597                          
     712 
    598713                        Element hiWordElement = child.getChild("HIWORD", namespace); 
    599714                        if (hiWordElement != null) { 
    600715                            this.lparamHiWord = 
    601                                  new Term((Element) hiWordElement.getChildren().get(0)); 
     716                                new Term((Element) hiWordElement.getChildren().get(0)); 
    602717                        } 
    603                          
     718 
    604719                        if ((lparamLoWord == null) && (lparamHiWord == null)) { 
    605720                            this.lparam = new Term(termElement); 
     
    612727                                new Term((Element) loWordElement.getChildren().get(0)); 
    613728                        } 
    614                          
     729 
    615730                        Element hiWordElement = child.getChild("HIWORD", namespace); 
    616731                        if (hiWordElement != null) { 
    617732                            this.wparamHiWord = 
    618                                  new Term((Element) hiWordElement.getChildren().get(0)); 
     733                                new Term((Element) hiWordElement.getChildren().get(0)); 
    619734                        } 
    620                          
     735 
    621736                        if ((wparamLoWord == null) && (wparamHiWord == null)) { 
    622737                            this.wparam = new Term(termElement); 
     
    629744        /** 
    630745         * <p> 
    631          * TODO: comment 
    632          * </p> 
    633          * 
    634          * @return 
     746         * Determines if this specification defines one, or a sequence of messages. 
     747         * </p> 
     748         *  
     749         * @return true if only a single message is generated; false if a sequence is generated 
    635750         */ 
    636751        boolean generateSingleMessage() { 
     
    640755        /** 
    641756         * <p> 
    642          * TODO: comment 
    643          * </p> 
    644          * 
    645          * @return 
     757         * Returns the object Id from which the message is generated. 
     758         * </p> 
     759         *  
     760         * @return the object Id 
    646761         */ 
    647762        String getReplayObjectId() { 
     
    650765 
    651766        /** 
    652          * @return the type 
     767         * <p> 
     768         * Returns the term that describes the type of the generated message. 
     769         * </p> 
     770         *  
     771         * @return the type term 
    653772         */ 
    654773        Term getType() { 
     
    657776 
    658777        /** 
    659          * @return the target 
     778         * <p> 
     779         * Returns the term that describes the target of the generated message. 
     780         * </p> 
     781         *  
     782         * @return the target term 
    660783         */ 
    661784        Term getTarget() { 
     
    664787 
    665788        /** 
    666          * @return the lparamLoWord 
     789         * <p> 
     790         * Returns the term that describes the LO word of the LParam of the generated message. 
     791         * </p> 
     792         *  
     793         * @return the LParam LO word term 
    667794         */ 
    668795        Term getLparamLoWord() { 
     
    671798 
    672799        /** 
    673          * @return the lparamHiWord 
     800         * <p> 
     801         * Returns the term that describes the HI word of the LParam of the generated message. 
     802         * </p> 
     803         *  
     804         * @return the LParam HI word term 
    674805         */ 
    675806        Term getLparamHiWord() { 
     
    678809 
    679810        /** 
    680          * @return the lparam 
     811         * <p> 
     812         * Returns the term that describes the LParam of the generated message. 
     813         * </p> 
     814         *  
     815         * @return the LParam term 
    681816         */ 
    682817        Term getLparam() { 
     
    685820 
    686821        /** 
    687          * @return the wparamLoWord 
     822         * <p> 
     823         * Returns the term that describes the LO word of the WParam of the generated message. 
     824         * </p> 
     825         *  
     826         * @return the WParam LO word term 
    688827         */ 
    689828        Term getWparamLoWord() { 
     
    692831 
    693832        /** 
    694          * @return the wparamHiWord 
     833         * <p> 
     834         * Returns the term that describes the HI word of the WParam of the generated message. 
     835         * </p> 
     836         *  
     837         * @return the WParam HI word term 
    695838         */ 
    696839        Term getWparamHiWord() { 
     
    699842 
    700843        /** 
    701          * @return the wparam 
     844         * <p> 
     845         * Returns the term that describes the WParam of the generated message. 
     846         * </p> 
     847         *  
     848         * @return the WParam term 
    702849         */ 
    703850        Term getWparam() { 
     
    706853 
    707854        /** 
     855         * <p> 
     856         * Returns the delay during the replay after this message is sent. 
     857         * </p> 
     858         *  
    708859         * @return the delay 
    709860         */ 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/EventGenerator.java

    r775 r837  
    3232 * <p> 
    3333 * Translates sequences of windows messages into {@link WindowsEvent}s that can be used by the 
    34  * EventBench core libraries. 
     34 * QUEST core libraries. 
    3535 * </p> 
    3636 *  
    37  * @author Steffen Herbold 
    3837 * @version 1.0 
     38 * @author Steffen Herbold, Patrick Harms 
    3939 */ 
    4040public class EventGenerator { 
     
    220220    /** 
    221221     * <p> 
    222      * TODO: comment 
     222     * Evaluates whether the current message sequence matches a given rule. 
    223223     * </p> 
    224224     * 
    225      * @param currentRule 
     225     * @param currentRule rule that is matched 
     226     * @return true if the message sequence matches the rule; false otherwise 
    226227     */ 
    227228    private boolean evaluateMessageConditions(EventGenerationRule currentRule) { 
     
    742743    /** 
    743744     * <p> 
    744      * TODO: comment 
     745     * Resolves the parameters described by {@link Term}s. 
    745746     * </p> 
    746747     * 
    747      * @param eventParameters 
    748      * @return 
     748     * @param eventParameters terms whose parameters are resolved 
     749     * @return resolved parameters 
    749750     */ 
    750751    private Map<String, String> resolveParameters(List<Term> eventParameters) { 
     
    947948    /** 
    948949     * <p> 
    949      * convenience method for {@link #getTermValueAsList(WindowsMessage, Term)} with current 
     950     * Convenience method for {@link #getTermValueAsList(WindowsMessage, Term)} with current 
    950951     * message is null. 
    951952     * </p> 
     
    996997    /** 
    997998     * <p> 
    998      * TODO: comment 
     999     * Resolves term values. 
    9991000     * </p> 
    10001001     * 
    1001      * @param value 
    1002      * @param expectedType 
    1003      * @return 
     1002     * @param value value to be resolved 
     1003     * @param expectedType class defining the expected type 
     1004     * @return resolved value 
    10041005     */ 
    10051006    @SuppressWarnings("unchecked") 
     
    10761077    /** 
    10771078     * <p> 
    1078      * TODO: comment 
     1079     * Parses the rules. 
    10791080     * </p> 
    10801081     * 
     
    10911092        catch (JDOMException e) { 
    10921093            Console.printerrln("Invalid rules file."); 
    1093             // TODO handle Exception 
    1094             e.printStackTrace(); 
     1094            Console.logException(e); 
    10951095            return; 
    10961096        } 
    10971097        catch (IOException e) { 
    10981098            Console.printerrln("Invalid rules file."); 
    1099             // TODO handle Exception 
    1100             e.printStackTrace(); 
     1099            Console.logException(e); 
    11011100            return; 
    11021101        } 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/MFCLogParser.java

    r774 r837  
    172172        }  
    173173        catch (UnsupportedEncodingException e) { 
    174             // TODO handle Exception 
    175             e.printStackTrace(); 
     174            Console.printerr("Error parsing file " + file.getName()); 
     175            Console.logException(e); 
    176176        } 
    177177        catch (ParserConfigurationException e) { 
    178             // TODO handle Exception 
    179             e.printStackTrace(); 
     178            Console.printerr("Error parsing file " + file.getName()); 
     179            Console.logException(e); 
    180180        } 
    181181        catch (SAXException e) { 
    182             // TODO handle Exception 
    183             e.printStackTrace(); 
     182            Console.printerr("Error parsing file " + file.getName()); 
     183            Console.logException(e); 
    184184        } 
    185185        catch (FileNotFoundException e) { 
    186             // TODO handle Exception 
    187             e.printStackTrace(); 
     186            Console.printerr("Error parsing file " + file.getName()); 
     187            Console.logException(e); 
    188188        } 
    189189         
     
    202202            } 
    203203            catch (SAXException e) { 
    204                 // TODO handle Exception 
    205                 e.printStackTrace(); 
     204                Console.printerr("Error parsing file " + file.getName()); 
     205                Console.logException(e); 
    206206            } 
    207207            catch (IOException e) { 
    208                 // TODO handle Exception 
    209                 e.printStackTrace(); 
     208                Console.printerr("Error parsing file " + file.getName()); 
     209                Console.logException(e); 
    210210            } 
    211211        } 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/MFCEventTypeFactory.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.eventcore; 
    23 
     
    45 
    56import de.ugoe.cs.quest.eventcore.IEventType; 
     7import de.ugoe.cs.quest.eventcore.gui.IInteraction; 
    68import de.ugoe.cs.quest.eventcore.gui.KeyPressed; 
    79import de.ugoe.cs.quest.eventcore.gui.KeyReleased; 
     
    1416/** 
    1517 * <p> 
    16  * TODO comment 
     18 * Creates the GUI event types (i.e., {@link IInteraction}s) for MFC events. 
    1719 * </p> 
    1820 *  
    19  * @version $Revision: $ $Date: 21.08.2012$ 
    20  * @author 2012, last modified by $Author: pharms$ 
     21 * @version 1.0 
     22 * @author Patrick Harms 
    2123 */ 
    2224public class MFCEventTypeFactory { 
    23      
     25 
    2426    /** 
    2527     * <p> 
    26      * the instance of the singleton 
     28     * Instance of the singleton 
    2729     * </p> 
    2830     */ 
     
    3133    /** 
    3234     * <p> 
    33      * TODO: comment 
     35     * Constructor. Creates a new MFCEventTypeFactory. Private to preserve singleton property. 
    3436     * </p> 
    35      * 
     37     *  
    3638     */ 
    37     private MFCEventTypeFactory() { 
    38         // prevent external instantiation 
    39     } 
     39    private MFCEventTypeFactory() {} 
    4040 
    4141    /** 
    4242     * <p> 
    43      * TODO: comment 
     43     * Returns the instance of the MFCEventTypeFactory. 
    4444     * </p> 
    45      * 
    46      * @return 
     45     *  
     46     * @return the instance 
    4747     */ 
    4848    public static MFCEventTypeFactory getInstance() { 
     
    5252    /** 
    5353     * <p> 
    54      * TODO: comment 
     54     * Returns the event type based on the name and parameters of a MFC event. 
    5555     * </p> 
    56      * 
    57      * @param currentRuleName 
    58      * @return 
     56     *  
     57     * @param eventName 
     58     *            name of the MFC event 
     59     * @param messageParameters 
     60     *            parameters of the MFC event 
     61     * @return the event type 
    5962     */ 
    60     public IEventType getEventType(String              eventName, 
    61                                    Map<String, String> messageParameters) 
    62     { 
     63    public IEventType getEventType(String eventName, Map<String, String> messageParameters) { 
    6364        if ("LeftClickButton".equals(eventName)) { 
    6465            return new MouseClick(MouseButtonInteraction.Button.LEFT); 
     
    136137 
    137138    /** 
    138      * @param message 
    139      * @return 
     139     * <p> 
     140     * If the message parameters contain information about a key that has been pressed, the 
     141     * associated {@link VirtualKey} is returned. 
     142     * </p> 
     143     *  
     144     * @param messageParameters 
     145     *            the message parameters 
     146     * @return key extracted from the message parameters 
     147     * @throws IllegalArgumentException 
     148     *             thrown if the messageParameters do not contain information about a key 
    140149     */ 
    141     private VirtualKey getKey(Map<String, String> messageParameters) { 
     150    private VirtualKey getKey(Map<String, String> messageParameters) 
     151        throws IllegalArgumentException 
     152    { 
    142153        String value = null; 
    143          
     154 
    144155        if (messageParameters != null) { 
    145156            value = messageParameters.get("key"); 
    146157        } 
    147          
     158 
    148159        if (value == null) { 
    149160            throw new IllegalArgumentException 
     
    157168    /** 
    158169     * <p> 
    159      * TODO: comment 
     170     * If the message parameters contain information about a scroll position, the respective 
     171     * position is returned. 
    160172     * </p> 
    161      * 
     173     *  
    162174     * @param messageParameters 
    163      * @return 
     175     *            the message parameters 
     176     * @return the scroll position 
     177     * @throws IllegalArgumentException 
     178     *             thrown if the messageParameters do not contain information about a scroll 
     179     *             position 
    164180     */ 
    165     private int getSelectedValue(Map<String, String> messageParameters) { 
     181    private int getSelectedValue(Map<String, String> messageParameters) 
     182        throws IllegalArgumentException 
     183    { 
    166184        String value = null; 
    167          
     185 
    168186        if (messageParameters != null) { 
    169187            value = messageParameters.get("scrollPos"); 
    170188        } 
    171          
     189 
    172190        if (value == null) { 
    173191            throw new IllegalArgumentException 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/ReplayWindowsMessage.java

    r655 r837  
    200200    /** 
    201201     * <p> 
    202      * TODO: comment 
     202     * Sets the XML target string. 
    203203     * </p> 
    204204     * 
    205      * @param termValue 
     205     * @param targetXML the target string 
    206206     */ 
    207207    public void setTargetXML(String targetXML) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/WindowsMessage.java

    r774 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.eventcore; 
    23 
     
    1718 *  
    1819 */ 
    19 public class WindowsMessage  implements Serializable { 
     20public class WindowsMessage implements Serializable { 
    2021 
    2122    /** 
     
    7677     * @param type 
    7778     *            type of the message 
    78      * @param currentMessageParameters  
    79      * @param target  
    80      */ 
    81     public WindowsMessage(WindowsMessageType  type, 
    82                           MFCGUIElement       target, 
     79     * @param currentMessageParameters 
     80     * @param target 
     81     */ 
     82    public WindowsMessage(WindowsMessageType type, 
     83                          MFCGUIElement target, 
    8384                          Map<String, Object> messageParameters) 
    8485    { 
    8586        this.type = type; 
    8687        setTarget(target); 
    87          
     88 
    8889        for (Map.Entry<String, Object> entry : messageParameters.entrySet()) { 
    8990            addParameter(entry.getKey(), entry.getValue()); 
     
    99100     *            type of the message 
    100101     */ 
    101     public WindowsMessage(WindowsMessageType type) 
    102     { 
     102    public WindowsMessage(WindowsMessageType type) { 
    103103        this.type = type; 
    104104    } 
     
    137137    /** 
    138138     * <p> 
    139      * TODO: comment 
    140      * </p> 
    141      * 
    142      * @param target2 
     139     * Sets the message target. 
     140     * </p> 
     141     *  
     142     * @param target 
     143     *            the target 
    143144     */ 
    144145    public void setTarget(MFCGUIElement target) { 
     
    149150    /** 
    150151     * <p> 
    151      * TODO: comment 
    152      * </p> 
    153      * 
    154      * @return 
     152     * Returns the target of the message. 
     153     * </p> 
     154     *  
     155     * @return the target 
    155156     */ 
    156157    public MFCGUIElement getTarget() { 
    157158        return target; 
    158159    } 
    159      
     160 
    160161    /** 
    161162     * <p> 
     
    189190            isEqual = 
    190191                ((WindowsMessage) other).type == this.type && 
    191                 ((WindowsMessage) other).target.equals(this.target) && 
    192                 ((WindowsMessage) other).params.equals(this.params); 
     192                    ((WindowsMessage) other).target.equals(this.target) && 
     193                    ((WindowsMessage) other).params.equals(this.params); 
    193194        } 
    194195        return isEqual; 
     
    259260    /** 
    260261     * <p> 
    261      * TODO: comment 
    262      * </p> 
    263      * 
    264      * @return 
     262     * Returns the parameters associated with this message. 
     263     * </p> 
     264     *  
     265     * @return the parameters 
    265266     */ 
    266267    protected Map<String, Object> getParameters() { 
     
    270271    /** 
    271272     * <p> 
    272      * TODO: comment 
    273      * </p> 
    274      * 
    275      * @return 
     273     * Returns the XML target description of this message. 
     274     * </p> 
     275     *  
     276     * @return the XML target description 
    276277     */ 
    277278    public String getTargetXML() { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/WindowsMessageType.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.eventcore; 
    23 
    34/** 
    4  * TODO comment 
     5 * <p> 
     6 * Enumeration to deal with MFC message types. 
     7 * </p> 
    58 *  
    6  * @version $Revision: $ $Date: $ 
    7  * @author 2011, last modified by $Author: $ 
     9 * @version 1.0 
     10 * @author Patrick Harms, Steffen Herbold 
    811 */ 
    912public enum WindowsMessageType { 
    10      
    11     WM_NULL(0), 
    12     WM_CREATE(1), 
    13     WM_DESTROY(2), 
    14     WM_MOVE(3), 
    15     WM_SIZE(5), 
    16     WM_ACTIVATE(6), 
    17     WM_SETFOCUS(7), 
    18     WM_KILLFOCUS(8), 
    19     WM_ENABLE(10), 
    20     WM_SETREDRAW(11), 
    21     WM_SETTEXT(12), 
    22     WM_GETTEXT(13), 
    23     WM_GETTEXTLENGTH(14), 
    24     WM_PAINT(15), 
    25     WM_CLOSE(16), 
    26     WM_QUERYENDSESSION(17), 
    27     WM_QUIT(18), 
    28     WM_QUERYOPEN(19), 
    29     WM_ERASEBKGND(20), 
    30     WM_SYSCOLORCHANGE(21), 
    31     WM_ENDSESSION(22), 
    32     WM_SHOWWINDOW(24), 
    33     WM_CTLCOLOR(25), 
    34     WM_WININICHANGE(26), 
    35     WM_DEVMODECHANGE(27), 
    36     WM_ACTIVATEAPP(28), 
    37     WM_FONTCHANGE(29), 
    38     WM_TIMECHANGE(30), 
    39     WM_CANCELMODE(31), 
    40     WM_SETCURSOR(32), 
    41     WM_MOUSEACTIVATE(33), 
    42     WM_CHILDACTIVATE(34), 
    43     WM_QUEUESYNC(35), 
    44     WM_GETMINMAXINFO(36), 
    45     WM_PAINTICON(38), 
    46     WM_ICONERASEBKGND(39), 
    47     WM_NEXTDLGCTL(40), 
    48     WM_SPOOLERSTATUS(42), 
    49     WM_DRAWITEM(43), 
    50     WM_MEASUREITEM(44), 
    51     WM_DELETEITEM(45), 
    52     WM_VKEYTOITEM(46), 
    53     WM_CHARTOITEM(47), 
    54     WM_SETFONT(48), 
    55     WM_GETFONT(49), 
    56     WM_SETHOTKEY(50), 
    57     WM_GETHOTKEY(51), 
    58     WM_QUERYDRAGICON(55), 
    59     WM_COMPAREITEM(57), 
    60     WM_GETOBJECT(61), 
    61     WM_COMPACTING(65), 
    62     WM_COMMNOTIFY(68), 
    63     WM_WINDOWPOSCHANGING(70), 
    64     WM_WINDOWPOSCHANGED(71), 
    65     WM_POWER(72), 
    66     WM_COPYDATA(74), 
    67     WM_CANCELJOURNAL(75), 
    68     WM_NOTIFY(78), 
    69     WM_INPUTLANGCHANGEREQUEST(80), 
    70     WM_INPUTLANGCHANGE(81), 
    71     WM_TCARD(82), 
    72     WM_HELP(83), 
    73     WM_USERCHANGED(84), 
    74     WM_NOTIFYFORMAT(85), 
    75     WM_CONTEXTMENU(123), 
    76     WM_STYLECHANGING(124), 
    77     WM_STYLECHANGED(125), 
    78     WM_DISPLAYCHANGE(126), 
    79     WM_GETICON(127), 
    80     WM_SETICON(128), 
    81     WM_NCCREATE(129), 
    82     WM_NCDESTROY(130), 
    83     WM_NCCALCSIZE(131), 
    84     WM_NCHITTEST(132), 
    85     WM_NCPAINT(133), 
    86     WM_NCACTIVATE(134), 
    87     WM_GETDLGCODE(135), 
    88     WM_SYNCPAINT(136), 
    89     WM_NCMOUSEMOVE(160), 
    90     WM_NCLBUTTONDOWN(161), 
    91     WM_NCLBUTTONUP(162), 
    92     WM_NCLBUTTONDBLCLK(163), 
    93     WM_NCRBUTTONDOWN(164), 
    94     WM_NCRBUTTONUP(165), 
    95     WM_NCRBUTTONDBLCLK(166), 
    96     WM_NCMBUTTONDOWN(167), 
    97     WM_NCMBUTTONUP(168), 
    98     WM_NCMBUTTONDBLCLK(169), 
    99     WM_NCXBUTTONDOWN(171), 
    100     WM_NCXBUTTONUP(172), 
    101     WM_NCXBUTTONDBLCLK(173), 
    102     SBM_SETPOS(224), 
    103     BM_CLICK(245), 
    104     WM_INPUT(255), 
    105     WM_KEYDOWN(256), 
    106     WM_KEYFIRST(256), 
    107     WM_KEYUP(257), 
    108     WM_CHAR(258), 
    109     WM_DEADCHAR(259), 
    110     WM_SYSKEYDOWN(260), 
    111     WM_SYSKEYUP(261), 
    112     WM_SYSCHAR(262), 
    113     WM_SYSDEADCHAR(263), 
    114     WM_KEYLAST(264), 
    115     WM_WNT_CONVERTREQUESTEX(265), 
    116     WM_CONVERTREQUEST(266), 
    117     WM_CONVERTRESULT(267), 
    118     WM_INTERIM(268), 
    119     WM_IME_STARTCOMPOSITION(269), 
    120     WM_IME_ENDCOMPOSITION(270), 
    121     WM_IME_COMPOSITION(271), 
    122     WM_IME_KEYLAST(271), 
    123     WM_INITDIALOG(272), 
    124     WM_COMMAND(273), 
    125     WM_SYSCOMMAND(274), 
    126     WM_TIMER(275), 
    127     WM_HSCROLL(276), 
    128     WM_VSCROLL(277), 
    129     WM_INITMENU(278), 
    130     WM_INITMENUPOPUP(279), 
    131     WM_MENUSELECT(287), 
    132     WM_MENUCHAR(288), 
    133     WM_ENTERIDLE(289), 
    134     WM_MENURBUTTONUP(290), 
    135     WM_MENUDRAG(291), 
    136     WM_MENUGETOBJECT(292), 
    137     WM_UNINTMENUPOPUP(293), 
    138     WM_MENUCOMMAND(294), 
    139     WM_CHANGEUISTATE(295), 
    140     WM_UPDATEUISTATE(296), 
    141     WM_QUERYUISTATE(297), 
    142     WM_CTLCOLORMSGBOX(306), 
    143     WM_CTLCOLOREDIT(307), 
    144     WM_CTLCOLORLISTBOX(308), 
    145     WM_CTLCOLORBTN(309), 
    146     WM_CTLCOLORDLG(310), 
    147     WM_CTLCOLORSCROLLBAR(311), 
    148     WM_CTLCOLORSTATIC(312), 
    149     CB_SHOWDROPDOWN(335), 
    150     LB_SETCURSEL(390), 
    151     WM_MOUSEFIRST(512), 
    152     WM_MOUSEMOVE(512), 
    153     WM_LBUTTONDOWN(513), 
    154     WM_LBUTTONUP(514), 
    155     WM_LBUTTONDBLCLK(515), 
    156     WM_RBUTTONDOWN(516), 
    157     WM_RBUTTONUP(517), 
    158     WM_RBUTTONDBLCLK(518), 
    159     WM_MBUTTONDOWN(519), 
    160     WM_MBUTTONUP(520), 
    161     WM_MBUTTONDBLCLK(521), 
    162     WM_MOUSELAST(521), 
    163     WM_MOUSEWHEEL(522), 
    164     WM_XBUTTONDOWN(523), 
    165     WM_XBUTTONUP(524), 
    166     WM_XBUTTONDBLCLK(525), 
    167     WM_USER(1024), 
    168     CB_SETCURSEL(334), 
    169     TBM_SETPOS(1029), 
    170     UDM_SETRANGE(1125), 
    171     TCM_SETCURSEL(4876); 
    172  
    173     /** the numerical representation of the message type */ 
     13 
     14    WM_NULL(0), WM_CREATE(1), WM_DESTROY(2), WM_MOVE(3), WM_SIZE(5), WM_ACTIVATE(6), 
     15    WM_SETFOCUS(7), WM_KILLFOCUS(8), WM_ENABLE(10), WM_SETREDRAW(11), WM_SETTEXT(12), 
     16    WM_GETTEXT(13), WM_GETTEXTLENGTH(14), WM_PAINT(15), WM_CLOSE(16), WM_QUERYENDSESSION(17), 
     17    WM_QUIT(18), WM_QUERYOPEN(19), WM_ERASEBKGND(20), WM_SYSCOLORCHANGE(21), WM_ENDSESSION(22), 
     18    WM_SHOWWINDOW(24), WM_CTLCOLOR(25), WM_WININICHANGE(26), WM_DEVMODECHANGE(27), WM_ACTIVATEAPP( 
     19        28), WM_FONTCHANGE(29), WM_TIMECHANGE(30), WM_CANCELMODE(31), WM_SETCURSOR(32), 
     20    WM_MOUSEACTIVATE(33), WM_CHILDACTIVATE(34), WM_QUEUESYNC(35), WM_GETMINMAXINFO(36), 
     21    WM_PAINTICON(38), WM_ICONERASEBKGND(39), WM_NEXTDLGCTL(40), WM_SPOOLERSTATUS(42), WM_DRAWITEM( 
     22        43), WM_MEASUREITEM(44), WM_DELETEITEM(45), WM_VKEYTOITEM(46), WM_CHARTOITEM(47), 
     23    WM_SETFONT(48), WM_GETFONT(49), WM_SETHOTKEY(50), WM_GETHOTKEY(51), WM_QUERYDRAGICON(55), 
     24    WM_COMPAREITEM(57), WM_GETOBJECT(61), WM_COMPACTING(65), WM_COMMNOTIFY(68), 
     25    WM_WINDOWPOSCHANGING(70), WM_WINDOWPOSCHANGED(71), WM_POWER(72), WM_COPYDATA(74), 
     26    WM_CANCELJOURNAL(75), WM_NOTIFY(78), WM_INPUTLANGCHANGEREQUEST(80), WM_INPUTLANGCHANGE(81), 
     27    WM_TCARD(82), WM_HELP(83), WM_USERCHANGED(84), WM_NOTIFYFORMAT(85), WM_CONTEXTMENU(123), 
     28    WM_STYLECHANGING(124), WM_STYLECHANGED(125), WM_DISPLAYCHANGE(126), WM_GETICON(127), 
     29    WM_SETICON(128), WM_NCCREATE(129), WM_NCDESTROY(130), WM_NCCALCSIZE(131), WM_NCHITTEST(132), 
     30    WM_NCPAINT(133), WM_NCACTIVATE(134), WM_GETDLGCODE(135), WM_SYNCPAINT(136), 
     31    WM_NCMOUSEMOVE(160), WM_NCLBUTTONDOWN(161), WM_NCLBUTTONUP(162), WM_NCLBUTTONDBLCLK(163), 
     32    WM_NCRBUTTONDOWN(164), WM_NCRBUTTONUP(165), WM_NCRBUTTONDBLCLK(166), WM_NCMBUTTONDOWN(167), 
     33    WM_NCMBUTTONUP(168), WM_NCMBUTTONDBLCLK(169), WM_NCXBUTTONDOWN(171), WM_NCXBUTTONUP(172), 
     34    WM_NCXBUTTONDBLCLK(173), SBM_SETPOS(224), BM_CLICK(245), WM_INPUT(255), WM_KEYDOWN(256), 
     35    WM_KEYFIRST(256), WM_KEYUP(257), WM_CHAR(258), WM_DEADCHAR(259), WM_SYSKEYDOWN(260), 
     36    WM_SYSKEYUP(261), WM_SYSCHAR(262), WM_SYSDEADCHAR(263), WM_KEYLAST(264), 
     37    WM_WNT_CONVERTREQUESTEX(265), WM_CONVERTREQUEST(266), WM_CONVERTRESULT(267), WM_INTERIM(268), 
     38    WM_IME_STARTCOMPOSITION(269), WM_IME_ENDCOMPOSITION(270), WM_IME_COMPOSITION(271), 
     39    WM_IME_KEYLAST(271), WM_INITDIALOG(272), WM_COMMAND(273), WM_SYSCOMMAND(274), WM_TIMER(275), 
     40    WM_HSCROLL(276), WM_VSCROLL(277), WM_INITMENU(278), WM_INITMENUPOPUP(279), WM_MENUSELECT(287), 
     41    WM_MENUCHAR(288), WM_ENTERIDLE(289), WM_MENURBUTTONUP(290), WM_MENUDRAG(291), WM_MENUGETOBJECT( 
     42        292), WM_UNINTMENUPOPUP(293), WM_MENUCOMMAND(294), WM_CHANGEUISTATE(295), WM_UPDATEUISTATE( 
     43        296), WM_QUERYUISTATE(297), WM_CTLCOLORMSGBOX(306), WM_CTLCOLOREDIT(307), 
     44    WM_CTLCOLORLISTBOX(308), WM_CTLCOLORBTN(309), WM_CTLCOLORDLG(310), WM_CTLCOLORSCROLLBAR(311), 
     45    WM_CTLCOLORSTATIC(312), CB_SHOWDROPDOWN(335), LB_SETCURSEL(390), WM_MOUSEFIRST(512), 
     46    WM_MOUSEMOVE(512), WM_LBUTTONDOWN(513), WM_LBUTTONUP(514), WM_LBUTTONDBLCLK(515), 
     47    WM_RBUTTONDOWN(516), WM_RBUTTONUP(517), WM_RBUTTONDBLCLK(518), WM_MBUTTONDOWN(519), 
     48    WM_MBUTTONUP(520), WM_MBUTTONDBLCLK(521), WM_MOUSELAST(521), WM_MOUSEWHEEL(522), 
     49    WM_XBUTTONDOWN(523), WM_XBUTTONUP(524), WM_XBUTTONDBLCLK(525), WM_USER(1024), 
     50    CB_SETCURSEL(334), TBM_SETPOS(1029), UDM_SETRANGE(1125), TCM_SETCURSEL(4876); 
     51 
     52    /** 
     53     * <p> 
     54     * Numerical representation of the message type. 
     55     * </p> 
     56     */ 
    17457    private int mNumber; 
    17558 
    17659    /** 
     60     * <p> 
     61     * Constructor. Creates a new WindowsMessageType. 
     62     * </p> 
     63     *  
    17764     * @param number 
     65     *            numerical representation of the message type 
    17866     */ 
    17967    WindowsMessageType(int number) { 
     
    18270 
    18371    /** 
    184      * @return Returns the number. 
     72     * <p> 
     73     * Returns the numerical representation of the message type. 
     74     * </p> 
     75     *  
     76     * @return the numerical representation 
    18577     */ 
    18678    public int getNumber() { 
     
    301193 
    302194    /** 
    303      * 
    304      */ 
    305     public static WindowsMessageType parseMessageType(String numberString) { 
     195     * <p> 
     196     * Parses an {@link String} and returns the respective WindowsMessageType if possible. 
     197     * </p> 
     198     *  
     199     * @param numberString 
     200     *            String representation of the event type 
     201     * @return created WindowsMessageType 
     202     * @throws IllegalArgumentException 
     203     *             thrown if there is no WindowsMessageType that correlates to numberString 
     204     */ 
     205    public static WindowsMessageType parseMessageType(String numberString) 
     206        throws IllegalArgumentException 
     207    { 
    306208        try { 
    307209            int number = Integer.parseInt(numberString); 
     
    314216 
    315217    /** 
    316      * 
    317      */ 
    318     public static WindowsMessageType valueOf(int number) { 
     218     * <p> 
     219     * Returns the WindowsMessageType associated with an integer. 
     220     * </p> 
     221     *  
     222     * @param number 
     223     *            integer to which the according WindowsMessageType is returned 
     224     * @return the WindowsMessageType 
     225     * @throws IllegalArgumentException 
     226     *             thrown if there is no WindowsMessageType that correlates to number 
     227     */ 
     228    public static WindowsMessageType valueOf(int number) throws IllegalArgumentException { 
    319229        for (WindowsMessageType type : WindowsMessageType.values()) { 
    320230            if (type.mNumber == number) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/WindowsVirtualKey.java

    r655 r837  
    55 
    66/** 
    7  * TODO comment 
     7 * <p> 
     8 * Map of virtual keys for MFC. 
     9 * </p> 
    810 *  
    9  * @version $Revision: $ $Date: $ 
    10  * @author 2011, last modified by $Author: $ 
     11 * @version 1.0 
     12 * @author Patrick Harms 
    1113 */ 
    12 // ------------------------------------------------------------------------------------------------- 
    13  
    14 public enum WindowsVirtualKey 
    15 { 
     14public enum WindowsVirtualKey { 
    1615    // VK_LBUTTON (0x01, "Left mouse button"), 
    1716    // VK_RBUTTON (0x02, "Right mouse button"), 
     
    168167    // VK_OEM_CLEAR (0xFE, "Clear key"); 
    169168 
    170     /** the id of the virtual key */ 
     169    /** 
     170     * <p> 
     171     * Numerical representation of the virtual key. 
     172     * </p> 
     173     */ 
    171174    private int mNumber; 
    172175 
    173     /** the <code>Key</code> represented by this virtual key */ 
     176    /** 
     177     * <p> 
     178     * {@link VirtualKey} represented by this WindowsVirtualKey 
     179     * </p> 
     180     */ 
    174181    private VirtualKey mRepresentedKey; 
    175182 
    176     // ----------------------------------------------------------------------------------------------- 
    177     /** 
     183    /** 
     184     * <p> 
     185     * Constructor. Creates a new WindowsVirtualKey. 
     186     * </p> 
     187     *  
    178188     * @param number 
    179      */ 
    180     // ----------------------------------------------------------------------------------------------- 
    181     WindowsVirtualKey(int number, VirtualKey representedKey) 
    182     { 
     189     *            numerical representation of the virtual key 
     190     * @param representedKey 
     191     *            virtual key that is represented 
     192     */ 
     193    WindowsVirtualKey(int number, VirtualKey representedKey) { 
    183194        mNumber = number; 
    184195        mRepresentedKey = representedKey; 
    185196    } 
    186197 
    187     // ----------------------------------------------------------------------------------------------- 
    188     /** 
    189      * @return Returns the number. 
    190      */ 
    191     // ----------------------------------------------------------------------------------------------- 
    192     int getNumber() 
    193     { 
     198    /** 
     199     * <p> 
     200     * Returns the numerical representation of the virtual key. 
     201     * </p> 
     202     *  
     203     * @return the numerical representation 
     204     */ 
     205    int getNumber() { 
    194206        return mNumber; 
    195207    } 
    196208 
    197     // ----------------------------------------------------------------------------------------------- 
    198     /** 
    199    * 
    200    */ 
    201     // ----------------------------------------------------------------------------------------------- 
    202     public static WindowsVirtualKey parseVirtualKey(String string) 
    203     { 
    204         for (WindowsVirtualKey virtualKey : WindowsVirtualKey.values()) 
    205         { 
    206             if (virtualKey.mNumber == Integer.parseInt(string)) 
    207             { 
     209    /** 
     210     * <p> 
     211     * Parses an {@link String} and returns the respective WindowsVirtualKey if possible. 
     212     * </p> 
     213     *  
     214     * @param string 
     215     *            String representation of the event type 
     216     * @return created WindowsVirtualKey 
     217     * @throws IllegalArgumentException 
     218     *             thrown if there is no WindowsVirtualKey that correlates to string 
     219     */ 
     220    public static WindowsVirtualKey parseVirtualKey(String string) throws IllegalArgumentException { 
     221        for (WindowsVirtualKey virtualKey : WindowsVirtualKey.values()) { 
     222            if (virtualKey.mNumber == Integer.parseInt(string)) { 
    208223                return virtualKey; 
    209224            } 
     
    213228    } 
    214229 
    215     // ----------------------------------------------------------------------------------------------- 
    216     /** 
    217    * 
    218    */ 
    219     // ----------------------------------------------------------------------------------------------- 
    220     public static WindowsVirtualKey valueOf(int number) 
    221     { 
    222         for (WindowsVirtualKey virtualKey : WindowsVirtualKey.values()) 
    223         { 
    224             if (virtualKey.mNumber == number) 
    225             { 
     230    /** 
     231     * <p> 
     232     * Returns the WindowsVirtualKey associated with an integer. 
     233     * </p> 
     234     *  
     235     * @param number 
     236     *            integer to which the according WindowsVirtualKey is returned 
     237     * @return the WindowsVirtualKey 
     238     * @throws IllegalArgumentException 
     239     *             thrown if there is no WindowsVirtualKey that correlates to number 
     240     */ 
     241    public static WindowsVirtualKey valueOf(int number) throws IllegalArgumentException { 
     242        for (WindowsVirtualKey virtualKey : WindowsVirtualKey.values()) { 
     243            if (virtualKey.mNumber == number) { 
    226244                return virtualKey; 
    227245            } 
     
    231249    } 
    232250 
    233     // ----------------------------------------------------------------------------------------------- 
    234     /** 
    235      * TODO: comment 
    236      *  
    237      * @return 
    238      */ 
    239     // ----------------------------------------------------------------------------------------------- 
    240     public VirtualKey getKey() 
    241     { 
     251    /** 
     252     * <p> 
     253     * Returns the {@link VirtualKey} associated with this WindowsVirtualKey. 
     254     * </p> 
     255     *  
     256     * @return the virtual key 
     257     */ 
     258    public VirtualKey getKey() { 
    242259        return mRepresentedKey; 
    243260    } 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCButton.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    56/** 
    67 * <p> 
    7  * TODO comment 
     8 * Class that represents buttons in MFC GUIs. 
    89 * </p> 
    910 *  
    10  * @version $Revision: $ $Date: 21.08.2012$ 
    11  * @author 2012, last modified by $Author: pharms$ 
     11 * @version 1.0 
     12 * @author Patrick Harms 
    1213 */ 
    1314public class MFCButton extends MFCGUIElement implements IButton { 
    1415 
    15     /**  */ 
     16    /** 
     17     * <p> 
     18     * Id for object serialization. 
     19     * </p> 
     20     */ 
    1621    private static final long serialVersionUID = 1L; 
    1722 
    1823    /** 
    1924     * <p> 
    20      * TODO: comment 
     25     * Constructor. Creates a new MFCButton. 
    2126     * </p> 
    22      * 
     27     *  
    2328     * @param specification 
     29     *            specification of created GUI element 
     30     * @param parent 
     31     *            parent of the created GUI element; null means that the element is a top-level 
     32     *            window 
    2433     */ 
    2534    public MFCButton(MFCGUIElementSpec specification, MFCGUIElement parent) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCCanvas.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    56/** 
    67 * <p> 
    7  * TODO comment 
     8 * Class that represents canvas' in MFC GUIs. 
    89 * </p> 
    910 *  
    10  * @version $Revision: $ $Date: 23.08.2012$ 
    11  * @author 2012, last modified by $Author: pharms$ 
     11 * @version 1.0 
     12 * @author Patrick Harms 
    1213 */ 
    1314public class MFCCanvas extends MFCGUIElement implements ICanvas { 
    1415 
    15     /**  */ 
     16    /** 
     17     * <p> 
     18     * Id for object serialization. 
     19     * </p> 
     20     */ 
    1621    private static final long serialVersionUID = 1L; 
    1722 
    1823    /** 
    1924     * <p> 
    20      * TODO: comment 
     25     * Constructor. Creates a new MFCCanvas. 
    2126     * </p> 
    22      * 
     27     *  
    2328     * @param specification 
     29     *            specification of created GUI element 
    2430     * @param parent 
     31     *            parent of the created GUI element; null means that the element is a top-level 
     32     *            window 
    2533     */ 
    2634    public MFCCanvas(MFCGUIElementSpec specification, MFCGUIElement parent) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCComboBox.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    56/** 
    67 * <p> 
    7  * TODO comment 
     8 * Class that represents combo boxes in MFC GUIs. 
    89 * </p> 
    910 *  
    10  * @version $Revision: $ $Date: 23.08.2012$ 
    11  * @author 2012, last modified by $Author: pharms$ 
     11 * @version 1.0 
     12 * @author Patrick Harms 
    1213 */ 
    1314public class MFCComboBox extends MFCGUIElement implements IComboBox { 
    1415 
    15     /**  */ 
     16    /** 
     17     * <p> 
     18     * Id for object serialization. 
     19     * </p> 
     20     */ 
    1621    private static final long serialVersionUID = 1L; 
    1722 
    1823    /** 
    1924     * <p> 
    20      * TODO: comment 
     25     * Constructor. Creates a new MFCComboBox. 
    2126     * </p> 
    22      * 
     27     *  
    2328     * @param specification 
     29     *            specification of created GUI element 
    2430     * @param parent 
     31     *            parent of the created GUI element; null means that the element is a top-level 
     32     *            window 
    2533     */ 
    2634    public MFCComboBox(MFCGUIElementSpec specification, MFCGUIElement parent) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCDialog.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    56/** 
    67 * <p> 
    7  * TODO comment 
     8 * Class that represents dialogs in MFC GUIs. 
    89 * </p> 
    910 *  
    10  * @version $Revision: $ $Date: 21.08.2012$ 
    11  * @author 2012, last modified by $Author: pharms$ 
     11 * @version 1.0 
     12 * @author Patrick Harms 
    1213 */ 
    1314public class MFCDialog extends MFCWindow implements IDialog { 
    1415 
    15     /**  */ 
     16    /** 
     17     * <p> 
     18     * Id for object serialization. 
     19     * </p> 
     20     */ 
    1621    private static final long serialVersionUID = 1L; 
    1722 
    1823    /** 
    1924     * <p> 
    20      * TODO: comment 
     25     * Constructor. Creates a new MFCDialog. 
    2126     * </p> 
    22      * 
     27     *  
    2328     * @param specification 
     29     *            specification of created GUI element 
     30     * @param parent 
     31     *            parent of the created GUI element; null means that the element is a top-level 
     32     *            window 
    2433     */ 
    2534    public MFCDialog(MFCGUIElementSpec specification, MFCGUIElement parent) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCGUIElement.java

    r681 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    56 
    67/** 
    7  * TODO comment 
     8 * <p> 
     9 * Base class that represents GUI element in MFC GUIs. 
     10 * </p> 
    811 *  
    9  * @version $Revision: $ $Date: $ 
    10  * @author 2011, last modified by $Author: $ 
     12 * @version 1.0 
     13 * @author Patrick Harms 
    1114 */ 
    1215public abstract class MFCGUIElement extends AbstractDefaultGUIElement { 
    13      
    14     /**  */ 
     16 
     17    /** 
     18     * <p> 
     19     * Id for object serialization. 
     20     * </p> 
     21     */ 
    1522    private static final long serialVersionUID = 1L; 
    1623 
    1724    /** 
    18      * @param name 
    19      * @param id 
    20      * @param isModal 
     25     * <p> 
     26     * Constructor. Creates a new MFCGUIElement. 
     27     * </p> 
     28     *  
     29     * @param specification 
     30     *            specification of created GUI element 
     31     * @param parent 
     32     *            parent of the created GUI element; null means that the element is a top-level 
     33     *            window 
    2134     */ 
    2235    public MFCGUIElement(MFCGUIElementSpec specification, MFCGUIElement parent) { 
     
    2437    } 
    2538 
    26     /* (non-Javadoc) 
     39    /* 
     40     * (non-Javadoc) 
     41     *  
    2742     * @see de.ugoe.cs.quest.eventcore.IEventTarget#getPlatform() 
    2843     */ 
     
    3348 
    3449    /** 
    35      * @return Returns the id. 
     50     * <p> 
     51     * Returns the HWND (Id) of the GUI element. 
     52     * </p> 
     53     *  
     54     * @return the HWND (Id) 
    3655     */ 
    3756    public String getId() { 
     
    4059 
    4160    /** 
    42      * @return Returns the name. 
     61     * <p> 
     62     * Returns the type of the GUI element. 
     63     * </p> 
     64     *  
     65     * @return the type 
    4366     */ 
    4467    public String getType() { 
     
    4770 
    4871    /** 
    49      * @return Returns the name. 
     72     * <p> 
     73     * Returns the name of the GUI element. 
     74     * </p> 
     75     *  
     76     * @return the name 
    5077     */ 
    5178    public String getName() { 
     
    5481 
    5582    /** 
    56      * @return Returns the isModal. 
     83     * <p> 
     84     * Returns the modality of the GUI element. 
     85     * </p> 
     86     *  
     87     * @return the modality 
    5788     */ 
    5889    public boolean isModal() { 
     
    6293    /** 
    6394     * <p> 
    64      * TODO: comment 
     95     * Returns the resource Id of the GUI element. 
    6596     * </p> 
    66      * 
    67      * @return 
     97     *  
     98     * @return the resource Id 
    6899     */ 
    69100    public int getResourceId() { 
     
    71102    } 
    72103 
    73     /* (non-Javadoc) 
    74      * @see de.ugoe.cs.quest.eventcore.guimodel.IGUIElement#updateSpecification(de.ugoe.cs.quest.eventcore.guimodel.IGUIElementSpec) 
     104    /* 
     105     * (non-Javadoc) 
     106     *  
     107     * @see 
     108     * de.ugoe.cs.quest.eventcore.guimodel.IGUIElement#updateSpecification(de.ugoe.cs.quest.eventcore 
     109     * .guimodel.IGUIElementSpec) 
    75110     */ 
    76111    @Override 
     
    78113        ((MFCGUIElementSpec) super.getSpecification()).update(furtherSpec); 
    79114    } 
    80      
     115 
     116    /* 
     117     * (non-Javadoc) 
     118     *  
     119     * @see de.ugoe.cs.quest.eventcore.IEventTarget#getStringIdentifier() 
     120     */ 
    81121    @Override 
    82122    public String getStringIdentifier() { 
    83123        String str = this.toString(); 
    84         if( getParent()!=null ) { 
     124        if (getParent() != null) { 
    85125            return getParent().getStringIdentifier() + "->" + str; 
    86126        } 
     
    88128    } 
    89129 
    90     /* (non-Javadoc) 
     130    /* 
     131     * (non-Javadoc) 
     132     *  
    91133     * @see java.lang.Object#toString() 
    92134     */ 
     
    98140    /** 
    99141     * <p> 
    100      * TODO: comment 
     142     * Returns the XML representation of the GUI element. 
    101143     * </p> 
     144     *  
     145     * @return the XML representation 
    102146     */ 
    103147    public String toXML() { 
    104148        if (getParent() != null) { 
    105             return 
    106                 ((MFCGUIElement) getParent()).toXML() + 
     149            return ((MFCGUIElement) getParent()).toXML() + 
    107150                ((MFCGUIElementSpec) super.getSpecification()).toXML(); 
    108151        } 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCGUIElementSpec.java

    r832 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    99100     *            modality of the window 
    100101     */ 
    101     protected MFCGUIElementSpec(long    hwnd, 
    102                                 String  name, 
    103                                 int     resourceId, 
    104                                 String  type, 
    105                                 boolean isModal) 
     102    protected MFCGUIElementSpec(long hwnd, String name, int resourceId, String type, boolean isModal) 
    106103    { 
    107104        this.hwnd = hwnd; 
     
    121118    public String getName() { 
    122119        StringBuffer names = new StringBuffer(); 
    123          
     120 
    124121        if (name != null) { 
    125122            names.append('"'); 
     
    130127            names.append("NOT_SET"); 
    131128        } 
    132          
     129 
    133130        if (formerNames.size() > 0) { 
    134              
     131 
    135132            names.append(" (aka "); 
    136              
     133 
    137134            for (int i = 0; i < formerNames.size(); i++) { 
    138135                if (i > 0) { 
     
    144141                names.append('"'); 
    145142            } 
    146              
     143 
    147144            names.append(")"); 
    148145        } 
    149          
     146 
    150147        return names.toString(); 
    151148    } 
     
    173170    } 
    174171 
    175     /* (non-Javadoc) 
     172    /* 
     173     * (non-Javadoc) 
     174     *  
    176175     * @see de.ugoe.cs.quest.eventcore.guimodel.IGUIElementSpec#getType() 
    177176     */ 
     
    183182    /** 
    184183     * <p> 
    185      * TODO: comment 
    186      * </p> 
    187      * 
    188      * @return 
     184     * Returns the modality of the specified GUI element. 
     185     * </p> 
     186     *  
     187     * @return the modality 
    189188     */ 
    190189    public boolean isModal() { 
     
    201200     */ 
    202201    public void setName(String newName) { 
    203         if ((this.name != null) && 
    204             (!this.name.equals(newName)) && 
     202        if ((this.name != null) && (!this.name.equals(newName)) && 
    205203            (!this.formerNames.contains(this.name))) 
    206204        { 
    207205            this.formerNames.add(this.name); 
    208206        } 
    209          
     207 
    210208        this.name = newName; 
    211209    } 
     
    223221            this.formerHwnds.add(this.hwnd); 
    224222        } 
    225          
     223 
    226224        this.hwnd = newHwnd; 
    227225    } 
    228226 
    229     /* (non-Javadoc) 
    230      * @see de.ugoe.cs.quest.eventcore.guimodel.IGUIElementSpec#getSimilarity(de.ugoe.cs.quest.eventcore.guimodel.IGUIElementSpec) 
     227    /* 
     228     * (non-Javadoc) 
     229     *  
     230     * @see 
     231     * de.ugoe.cs.quest.eventcore.guimodel.IGUIElementSpec#getSimilarity(de.ugoe.cs.quest.eventcore 
     232     * .guimodel.IGUIElementSpec) 
    231233     */ 
    232234    @Override 
    233235    public boolean getSimilarity(IGUIElementSpec other) { 
    234          
     236 
    235237        if (this == other) { 
    236238            return true; 
    237239        } 
    238          
     240 
    239241        if (!(other instanceof MFCGUIElementSpec)) { 
    240242            return false; 
    241243        } 
    242          
     244 
    243245        MFCGUIElementSpec otherSpec = (MFCGUIElementSpec) other; 
    244246 
     
    260262        // and reopend, i.e. a new instance is created. If one of them stays the same, then 
    261263        // similarity is given. Therefore these are the first two comparisons 
    262          
     264 
    263265        if (hwnd == otherSpec.hwnd) { 
    264266            return true; 
    265267        } 
    266          
     268 
    267269        if ((name != null) && (name.equals(otherSpec.name))) { 
    268270            return true; 
    269271        } 
    270          
    271         if ((((name == null) && (otherSpec.name == null)) || 
    272              (("".equals(name)) && ("".equals(otherSpec.name)))) && 
    273             (formerNames.size() == 0) && (otherSpec.formerNames.size() == 0)) 
     272 
     273        if ((((name == null) && (otherSpec.name == null)) || (("".equals(name)) && ("" 
     274            .equals(otherSpec.name)))) && 
     275            (formerNames.size() == 0) && 
     276            (otherSpec.formerNames.size() == 0)) 
    274277        { 
    275278            return true; 
    276279        } 
    277          
     280 
    278281        // if the hwnd and the name did not stay the same, then the name should be checked first. 
    279282        // The current name of one of the specs must be contained in the former names of the 
     
    291294            return true; 
    292295        } 
    293          
     296 
    294297        // ok. Even the names do not match. This is usually a clear indication, that the elements 
    295298        // are distinct. However, we check, if the former handles matched. This is very unlikely 
     
    302305 
    303306        // now we can be really sure, that the GUI elements differ 
    304          
     307 
    305308        return false; 
    306309    } 
    307310 
    308     /* (non-Javadoc) 
     311    /* 
     312     * (non-Javadoc) 
     313     *  
    309314     * @see de.ugoe.cs.quest.eventcore.guimodel.IGUIElementSpec#equals(IGUIElementSpec) 
    310315     */ 
    311316    @Override 
    312317    public boolean equals(Object other) { 
    313          
     318 
    314319        if (this == other) { 
    315320            return true; 
    316321        } 
    317          
     322 
    318323        if (!(other instanceof MFCGUIElementSpec)) { 
    319324            return false; 
    320325        } 
    321          
     326 
    322327        MFCGUIElementSpec otherSpec = (MFCGUIElementSpec) other; 
    323          
    324         return 
    325             (hwnd == otherSpec.hwnd) && (isModal == otherSpec.isModal) && 
     328 
     329        return (hwnd == otherSpec.hwnd) && (isModal == otherSpec.isModal) && 
    326330            (resourceId == otherSpec.resourceId) && 
    327331            ((type == otherSpec.type) || ((type != null) && (type.equals(otherSpec.type)))) && 
     
    329333    } 
    330334 
    331     /* (non-Javadoc) 
     335    /* 
     336     * (non-Javadoc) 
     337     *  
    332338     * @see java.lang.Object#hashCode() 
    333339     */ 
     
    340346    /** 
    341347     * <p> 
    342      * Returns a string identfier of the window:<br> 
     348     * Returns a string identifier of the window:<br> 
    343349     * {@code [resourceId;"windowName";"className";modality]} 
    344350     * </p> 
     
    348354    @Override 
    349355    public String toString() { 
    350         return "[" + resourceId + ";" + getName() + ";\"" + type + "\";" + isModal + ";" + 
    351             hwnd + "]"; 
    352     } 
    353  
    354     /** 
    355      * <p> 
    356      * TODO: comment 
    357      * </p> 
     356        return "[" + resourceId + ";" + getName() + ";\"" + type + "\";" + isModal + ";" + hwnd + 
     357            "]"; 
     358    } 
     359 
     360    /** 
     361     * <p> 
     362     * Returns the XML representation of this specification. 
     363     * </p> 
     364     *  
     365     * @return the XML representation 
    358366     */ 
    359367    String toXML() { 
    360         return 
    361             "<window name=\"" + (name != null ? StringTools.xmlEntityReplacement(name) : "") + 
    362             "\" class=\"" + StringTools.xmlEntityReplacement(type) + 
    363             "\" resourceId=\"" + resourceId + "\" isModal=\"" + 
    364             isModal + "\"/>"; 
    365     } 
    366  
    367     /** 
    368      * <p> 
    369      * TODO: comment 
    370      * </p> 
    371      * 
     368        return "<window name=\"" + (name != null ? StringTools.xmlEntityReplacement(name) : "") + 
     369            "\" class=\"" + StringTools.xmlEntityReplacement(type) + "\" resourceId=\"" + 
     370            resourceId + "\" isModal=\"" + isModal + "\"/>"; 
     371    } 
     372 
     373    /** 
     374     * <p> 
     375     * Updates the specification with another specification. 
     376     * </p> 
     377     *  
    372378     * @param furtherSpec 
     379     *            specification used to update the current specification 
    373380     */ 
    374381    void update(IGUIElementSpec furtherSpec) { 
    375382        MFCGUIElementSpec other = (MFCGUIElementSpec) furtherSpec; 
    376          
     383 
    377384        if (other != this) { 
    378385            for (long formerHwnd : other.formerHwnds) { 
     
    388395            } 
    389396 
    390             if ((name != other.name) && (name != null) && (!name.equals(other.name))) 
    391             { 
     397            if ((name != other.name) && (name != null) && (!name.equals(other.name))) { 
    392398                setName(other.name); 
    393399            } 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCListBox.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    56/** 
    67 * <p> 
    7  * TODO comment 
     8 * Class that represents list boxes in MFC GUIs. 
    89 * </p> 
    910 *  
    10  * @version $Revision: $ $Date: 23.08.2012$ 
    11  * @author 2012, last modified by $Author: pharms$ 
     11 * @version 1.0 
     12 * @author Patrick Harms 
    1213 */ 
    1314public class MFCListBox extends MFCGUIElement implements IListBox { 
    1415 
    15     /**  */ 
     16    /** 
     17     * <p> 
     18     * Id for object serialization. 
     19     * </p> 
     20     */ 
    1621    private static final long serialVersionUID = 1L; 
    1722 
    1823    /** 
    1924     * <p> 
    20      * TODO: comment 
     25     * Constructor. Creates a new MFCListBox. 
    2126     * </p> 
    22      * 
     27     *  
    2328     * @param specification 
     29     *            specification of created GUI element 
    2430     * @param parent 
     31     *            parent of the created GUI element; null means that the element is a top-level 
     32     *            window 
    2533     */ 
    2634    public MFCListBox(MFCGUIElementSpec specification, MFCGUIElement parent) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCPanel.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    56/** 
    67 * <p> 
    7  * TODO comment 
     8 * Class that represents panels in MFC GUIs. 
    89 * </p> 
    910 *  
    10  * @version $Revision: $ $Date: 23.08.2012$ 
    11  * @author 2012, last modified by $Author: pharms$ 
     11 * @version 1.0 
     12 * @author Patrick Harms 
    1213 */ 
    1314public class MFCPanel extends MFCGUIElement implements IPanel { 
    1415 
    15     /**  */ 
     16    /** 
     17     * <p> 
     18     * Id for object serialization. 
     19     * </p> 
     20     */ 
    1621    private static final long serialVersionUID = 1L; 
    1722 
    1823    /** 
    1924     * <p> 
    20      * TODO: comment 
     25     * Constructor. Creates a new MFCPanel. 
    2126     * </p> 
    22      * 
     27     *  
    2328     * @param specification 
     29     *            specification of created GUI element 
    2430     * @param parent 
     31     *            parent of the created GUI element; null means that the element is a top-level 
     32     *            window 
    2533     */ 
    2634    public MFCPanel(MFCGUIElementSpec specification, MFCGUIElement parent) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCTabbedPane.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    56/** 
    67 * <p> 
    7  * TODO comment 
     8 * Class that represents tabbed panes in MFC GUIs. 
    89 * </p> 
    910 *  
    10  * @version $Revision: $ $Date: 23.08.2012$ 
    11  * @author 2012, last modified by $Author: pharms$ 
     11 * @version 1.0 
     12 * @author Patrick Harms 
    1213 */ 
    1314public class MFCTabbedPane extends MFCGUIElement implements ITabbedPane { 
    1415 
    15     /**  */ 
     16    /** 
     17     * <p> 
     18     * Id for object serialization. 
     19     * </p> 
     20     */ 
    1621    private static final long serialVersionUID = 1L; 
    1722 
    1823    /** 
    1924     * <p> 
    20      * TODO: comment 
     25     * Constructor. Creates a new TabbedPane. 
    2126     * </p> 
    22      * 
     27     *  
    2328     * @param specification 
     29     *            specification of created GUI element 
    2430     * @param parent 
     31     *            parent of the created GUI element; null means that the element is a top-level 
     32     *            window 
    2533     */ 
    2634    public MFCTabbedPane(MFCGUIElementSpec specification, MFCGUIElement parent) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCTextArea.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    56/** 
    67 * <p> 
    7  * TODO comment 
     8 * Class that represents text areas in MFC GUIs. 
    89 * </p> 
    910 *  
    10  * @version $Revision: $ $Date: 21.08.2012$ 
    11  * @author 2012, last modified by $Author: pharms$ 
     11 * @version 1.0 
     12 * @author Patrick Harms 
    1213 */ 
    1314public class MFCTextArea extends MFCGUIElement implements ITextArea { 
    1415 
    15     /**  */ 
     16    /** 
     17     * <p> 
     18     * Id for object serialization. 
     19     * </p> 
     20     */ 
    1621    private static final long serialVersionUID = 1L; 
    1722 
    1823    /** 
    1924     * <p> 
    20      * TODO: comment 
     25     * Constructor. Creates a new MFCTextArea. 
    2126     * </p> 
    22      * 
     27     *  
    2328     * @param specification 
     29     *            specification of created GUI element 
     30     * @param parent 
     31     *            parent of the created GUI element; null means that the element is a top-level 
     32     *            window 
    2433     */ 
    2534    public MFCTextArea(MFCGUIElementSpec specification, MFCGUIElement parent) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCToolBar.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    56/** 
    67 * <p> 
    7  * TODO comment 
     8 * Class that represents tool bars in MFC GUIs. 
    89 * </p> 
    910 *  
    10  * @version $Revision: $ $Date: 23.08.2012$ 
    11  * @author 2012, last modified by $Author: pharms$ 
     11 * @version 1.0 
     12 * @author Patrick Harms 
    1213 */ 
    1314public class MFCToolBar extends MFCGUIElement implements IToolBar { 
    1415 
    15     /**  */ 
     16    /** 
     17     * <p> 
     18     * Id for object serialization. 
     19     * </p> 
     20     */ 
    1621    private static final long serialVersionUID = 1L; 
    1722 
    1823    /** 
    1924     * <p> 
    20      * TODO: comment 
     25     * Constructor. Creates a new MFCToolBar. 
    2126     * </p> 
    22      * 
     27     *  
    2328     * @param specification 
     29     *            specification of created GUI element 
    2430     * @param parent 
     31     *            parent of the created GUI element; null means that the element is a top-level 
     32     *            window 
    2533     */ 
    2634    public MFCToolBar(MFCGUIElementSpec specification, MFCGUIElement parent) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCTrackBar.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    56/** 
    67 * <p> 
    7  * TODO comment 
     8 * Class that represents track bars in MFC GUIs. 
    89 * </p> 
    910 *  
    10  * @version $Revision: $ $Date: 23.08.2012$ 
    11  * @author 2012, last modified by $Author: pharms$ 
     11 * @version 1.0 
     12 * @author Patrick Harms 
    1213 */ 
    1314public class MFCTrackBar extends MFCGUIElement implements ITrackBar { 
    1415 
    15     /**  */ 
     16    /** 
     17     * <p> 
     18     * Id for object serialization. 
     19     * </p> 
     20     */ 
    1621    private static final long serialVersionUID = 1L; 
    1722 
    1823    /** 
    1924     * <p> 
    20      * TODO: comment 
     25     * Constructor. Creates a new MFCTrackBar. 
    2126     * </p> 
    22      * 
     27     *  
    2328     * @param specification 
     29     *            specification of created GUI element 
    2430     * @param parent 
     31     *            parent of the created GUI element; null means that the element is a top-level 
     32     *            window 
    2533     */ 
    2634    public MFCTrackBar(MFCGUIElementSpec specification, MFCGUIElement parent) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/MFCWindow.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    45 
    56/** 
    6  * TODO comment 
     7 * <p> 
     8 * Class that represents windows in MFC GUIs. 
     9 * </p> 
    710 *  
    8  * @version $Revision: $ $Date: $ 
    9  * @author 2011, last modified by $Author: $ 
     11 * @version 1.0 
     12 * @author Patrick Harms 
    1013 */ 
    1114public class MFCWindow extends MFCGUIElement implements IFrame { 
    1215 
    13     /**  */ 
     16    /** 
     17     * <p> 
     18     * Id for object serialization. 
     19     * </p> 
     20     */ 
    1421    private static final long serialVersionUID = 1L; 
    1522 
    1623    /** 
    17      * @param name 
    18      * @param id 
    19      * @param isModal 
     24     * <p> 
     25     * Constructor. Creates a new MFCWindow. 
     26     * </p> 
     27     *  
     28     * @param specification 
     29     *            specification of created GUI element 
     30     * @param parent 
     31     *            parent of the created GUI element; null means that the element is a top-level 
     32     *            window 
    2033     */ 
    2134    public MFCWindow(MFCGUIElementSpec specification, MFCGUIElement parent) { 
  • trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/guimodel/WindowTree.java

    r655 r837  
     1 
    12package de.ugoe.cs.quest.plugin.mfc.guimodel; 
    23 
     
    1213import de.ugoe.cs.quest.eventcore.guimodel.GUIModelException; 
    1314import de.ugoe.cs.quest.eventcore.guimodel.IGUIElementFactory; 
    14  
    1515 
    1616/** 
     
    3030    /** 
    3131     * <p> 
    32      * Maintains a set of all the targets of all widgets that were at some point part of the 
    33      * window tree. 
     32     * Maintains a set of all the targets of all widgets that were at some point part of the window 
     33     * tree. 
    3434     * </p> 
    3535     */ 
     
    3838    /** 
    3939     * <p> 
    40      * Map of all GUI element specifications that are part of the tree for efficient searching. 
    41      * The keys of the map are the hwnd's of the GUI elements. 
     40     * Map of all GUI element specifications that are part of the tree for efficient searching. The 
     41     * keys of the map are the hwnd's of the GUI elements. 
    4242     * </p> 
    4343     */ 
     
    4646    /** 
    4747     * <p> 
    48      * Map of all children of GUI elements that are part of the tree. The keys of the map are 
    49      * the hwnd's of the parent GUI elements. 
     48     * Map of all children of GUI elements that are part of the tree. The keys of the map are the 
     49     * hwnd's of the parent GUI elements. 
    5050     * </p> 
    5151     */ 
     
    5454    /** 
    5555     * <p> 
    56      * Map of all parents of GUI elements that are part of the tree. The keys of the map are 
    57      * the hwnd's of the child GUI elements. 
     56     * Map of all parents of GUI elements that are part of the tree. The keys of the map are the 
     57     * hwnd's of the child GUI elements. 
    5858     * </p> 
    5959     */ 
     
    6666     */ 
    6767    private GUIModel guiModel = new GUIModel(); 
    68      
     68 
    6969    /** 
    7070     * <p> 
     
    114114     *            class name of the window to be created 
    115115     */ 
    116     public void add(long    parentHwnd, 
    117                     long    childHwnd, 
    118                     String  childWindowName, 
    119                     int     resourceId, 
    120                     String  className, 
     116    public void add(long parentHwnd, 
     117                    long childHwnd, 
     118                    String childWindowName, 
     119                    int resourceId, 
     120                    String className, 
    121121                    boolean isModal) 
    122122    { 
     
    128128            if (parent != null) { 
    129129                List<MFCGUIElementSpec> otherChildren = childRelations.get(parentHwnd); 
    130                  
     130 
    131131                if (otherChildren == null) { 
    132132                    otherChildren = new ArrayList<MFCGUIElementSpec>(); 
    133133                    childRelations.put(parentHwnd, otherChildren); 
    134134                } 
    135                  
     135 
    136136                otherChildren.add(child); 
    137                  
     137 
    138138                parentRelations.put(childHwnd, parent); 
    139139            } 
     
    145145    /** 
    146146     * <p> 
    147      * Searches the tree for a window with the specified hwnd and returns its {@link MFCGUIElementSpec} 
    148      * . 
     147     * Searches the tree for a window with the specified hwnd and returns its 
     148     * {@link MFCGUIElementSpec} . 
    149149     * </p> 
    150150     *  
     
    157157        if (guiElement == null) { 
    158158            List<MFCGUIElementSpec> guiElementPath = new ArrayList<MFCGUIElementSpec>(); 
    159              
     159 
    160160            MFCGUIElementSpec child = guiElementSpecs.get(hwnd); 
    161              
     161 
    162162            if (child == null) { 
    163163                throw new RuntimeException("no GUI element found with id " + hwnd); 
    164164            } 
    165              
     165 
    166166            while (child != null) { 
    167167                guiElementPath.add(0, child); 
    168168                child = parentRelations.get(child.getHwnd()); 
    169169            } 
    170              
     170 
    171171            try { 
    172                 guiElement = (MFCGUIElement) 
    173                     guiModel.integratePath(guiElementPath, guiElementFactory); 
     172                guiElement = 
     173                    (MFCGUIElement) guiModel.integratePath(guiElementPath, guiElementFactory); 
    174174            } 
    175175            catch (GUIModelException e) { 
     
    183183    /** 
    184184     * <p> 
    185      * TODO: comment 
    186      * </p> 
    187      * 
     185     * Sets the name of a GUI element given its HWND. 
     186     * </p> 
     187     *  
    188188     * @param hwnd 
     189     *            HWND of the GUI element 
    189190     * @param windowName 
     191     *            new name of the GUI element 
    190192     */ 
    191193    public void setName(long hwnd, String windowName) { 
     
    201203        } 
    202204    } 
    203      
     205 
    204206    /** 
    205207     * <p> 
     
    215217        MFCGUIElementSpec node = guiElementSpecs.remove(hwnd); 
    216218        int removedCounter = 1; 
    217          
     219 
    218220        if (node != null) { 
    219221            List<MFCGUIElementSpec> nodesToBeRemoved = childRelations.remove(hwnd); 
    220              
     222 
    221223            // remove all children and sub-children, if any 
    222224            if (nodesToBeRemoved != null) { 
     
    225227                    List<MFCGUIElementSpec> children = 
    226228                        childRelations.remove(nodeToBeRemoved.getHwnd()); 
    227                      
     229 
    228230                    if (children != null) { 
    229231                        nodesToBeRemoved.addAll(children); 
    230232                    } 
    231                      
     233 
    232234                    guiElementSpecs.remove(nodeToBeRemoved.getHwnd()); 
    233235                    parentRelations.remove(nodeToBeRemoved.getHwnd()); 
     
    248250                        } 
    249251                    } 
    250                      
     252 
    251253                    if (children.size() <= 0) { 
    252254                        childRelations.remove(parent.getHwnd()); 
Note: See TracChangeset for help on using the changeset viewer.