Ignore:
Timestamp:
08/27/12 11:45:09 (12 years ago)
Author:
pharms
Message:
  • adapted implementation to now generate a full GUI model as well as concrete GUI interaction events
File:
1 copied

Legend:

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

    r578 r619  
     1// Module    : $RCSfile: MessageType.java,v $ 
     2// Version   : $Revision: 0.0 $  $Author: Patrick $  $Date: 26.11.2011 14:36:45 $ 
     3// Project   : TaskTreePerformanceTest 
     4// Creation  : 2011 by Patrick 
     5// Copyright : Patrick Harms, 2011 
    16 
    27package de.ugoe.cs.quest.plugin.mfc.eventcore; 
    38 
    4 import de.ugoe.cs.quest.eventcore.IEventType; 
    5  
    69/** 
    7  * <p> 
    810 * TODO comment 
    9  * </p> 
    1011 *  
    11  * @version $Revision: $ $Date: Aug 17, 2012$ 
    12  * @author 2012, last modified by $Author: sherbold$ 
     12 * @version $Revision: $ $Date: $ 
     13 * @author 2011, last modified by $Author: $ 
    1314 */ 
    14 public class MFCEventType implements IEventType { 
    15  
    16     /**  */ 
    17     private static final long serialVersionUID = 1L; 
    18  
    19     private final String typeString; 
     15public enum WindowsMessageType { 
    2016     
    21     private String info = null; 
    22  
    23     public MFCEventType(String typeString) { 
    24         this.typeString = typeString; 
    25     } 
    26      
    27     public void setInfo(String info) { 
    28         this.info = info; 
    29     } 
    30  
    31     /* 
    32      * (non-Javadoc) 
     17    WM_NULL(0), 
     18    WM_CREATE(1), 
     19    WM_DESTROY(2), 
     20    WM_MOVE(3), 
     21    WM_SIZE(5), 
     22    WM_ACTIVATE(6), 
     23    WM_SETFOCUS(7), 
     24    WM_KILLFOCUS(8), 
     25    WM_ENABLE(10), 
     26    WM_SETREDRAW(11), 
     27    WM_SETTEXT(12), 
     28    WM_GETTEXT(13), 
     29    WM_GETTEXTLENGTH(14), 
     30    WM_PAINT(15), 
     31    WM_CLOSE(16), 
     32    WM_QUERYENDSESSION(17), 
     33    WM_QUIT(18), 
     34    WM_QUERYOPEN(19), 
     35    WM_ERASEBKGND(20), 
     36    WM_SYSCOLORCHANGE(21), 
     37    WM_ENDSESSION(22), 
     38    WM_SHOWWINDOW(24), 
     39    WM_CTLCOLOR(25), 
     40    WM_WININICHANGE(26), 
     41    WM_DEVMODECHANGE(27), 
     42    WM_ACTIVATEAPP(28), 
     43    WM_FONTCHANGE(29), 
     44    WM_TIMECHANGE(30), 
     45    WM_CANCELMODE(31), 
     46    WM_SETCURSOR(32), 
     47    WM_MOUSEACTIVATE(33), 
     48    WM_CHILDACTIVATE(34), 
     49    WM_QUEUESYNC(35), 
     50    WM_GETMINMAXINFO(36), 
     51    WM_PAINTICON(38), 
     52    WM_ICONERASEBKGND(39), 
     53    WM_NEXTDLGCTL(40), 
     54    WM_SPOOLERSTATUS(42), 
     55    WM_DRAWITEM(43), 
     56    WM_MEASUREITEM(44), 
     57    WM_DELETEITEM(45), 
     58    WM_VKEYTOITEM(46), 
     59    WM_CHARTOITEM(47), 
     60    WM_SETFONT(48), 
     61    WM_GETFONT(49), 
     62    WM_SETHOTKEY(50), 
     63    WM_GETHOTKEY(51), 
     64    WM_QUERYDRAGICON(55), 
     65    WM_COMPAREITEM(57), 
     66    WM_GETOBJECT(61), 
     67    WM_COMPACTING(65), 
     68    WM_COMMNOTIFY(68), 
     69    WM_WINDOWPOSCHANGING(70), 
     70    WM_WINDOWPOSCHANGED(71), 
     71    WM_POWER(72), 
     72    WM_COPYDATA(74), 
     73    WM_CANCELJOURNAL(75), 
     74    WM_NOTIFY(78), 
     75    WM_INPUTLANGCHANGEREQUEST(80), 
     76    WM_INPUTLANGCHANGE(81), 
     77    WM_TCARD(82), 
     78    WM_HELP(83), 
     79    WM_USERCHANGED(84), 
     80    WM_NOTIFYFORMAT(85), 
     81    WM_CONTEXTMENU(123), 
     82    WM_STYLECHANGING(124), 
     83    WM_STYLECHANGED(125), 
     84    WM_DISPLAYCHANGE(126), 
     85    WM_GETICON(127), 
     86    WM_SETICON(128), 
     87    WM_NCCREATE(129), 
     88    WM_NCDESTROY(130), 
     89    WM_NCCALCSIZE(131), 
     90    WM_NCHITTEST(132), 
     91    WM_NCPAINT(133), 
     92    WM_NCACTIVATE(134), 
     93    WM_GETDLGCODE(135), 
     94    WM_SYNCPAINT(136), 
     95    WM_NCMOUSEMOVE(160), 
     96    WM_NCLBUTTONDOWN(161), 
     97    WM_NCLBUTTONUP(162), 
     98    WM_NCLBUTTONDBLCLK(163), 
     99    WM_NCRBUTTONDOWN(164), 
     100    WM_NCRBUTTONUP(165), 
     101    WM_NCRBUTTONDBLCLK(166), 
     102    WM_NCMBUTTONDOWN(167), 
     103    WM_NCMBUTTONUP(168), 
     104    WM_NCMBUTTONDBLCLK(169), 
     105    WM_NCXBUTTONDOWN(171), 
     106    WM_NCXBUTTONUP(172), 
     107    WM_NCXBUTTONDBLCLK(173), 
     108    SBM_SETPOS(224), 
     109    BM_CLICK(245), 
     110    WM_INPUT(255), 
     111    WM_KEYDOWN(256), 
     112    WM_KEYFIRST(256), 
     113    WM_KEYUP(257), 
     114    WM_CHAR(258), 
     115    WM_DEADCHAR(259), 
     116    WM_SYSKEYDOWN(260), 
     117    WM_SYSKEYUP(261), 
     118    WM_SYSCHAR(262), 
     119    WM_SYSDEADCHAR(263), 
     120    WM_KEYLAST(264), 
     121    WM_WNT_CONVERTREQUESTEX(265), 
     122    WM_CONVERTREQUEST(266), 
     123    WM_CONVERTRESULT(267), 
     124    WM_INTERIM(268), 
     125    WM_IME_STARTCOMPOSITION(269), 
     126    WM_IME_ENDCOMPOSITION(270), 
     127    WM_IME_COMPOSITION(271), 
     128    WM_IME_KEYLAST(271), 
     129    WM_INITDIALOG(272), 
     130    WM_COMMAND(273), 
     131    WM_SYSCOMMAND(274), 
     132    WM_TIMER(275), 
     133    WM_HSCROLL(276), 
     134    WM_VSCROLL(277), 
     135    WM_INITMENU(278), 
     136    WM_INITMENUPOPUP(279), 
     137    WM_MENUSELECT(287), 
     138    WM_MENUCHAR(288), 
     139    WM_ENTERIDLE(289), 
     140    WM_MENURBUTTONUP(290), 
     141    WM_MENUDRAG(291), 
     142    WM_MENUGETOBJECT(292), 
     143    WM_UNINTMENUPOPUP(293), 
     144    WM_MENUCOMMAND(294), 
     145    WM_CHANGEUISTATE(295), 
     146    WM_UPDATEUISTATE(296), 
     147    WM_QUERYUISTATE(297), 
     148    WM_CTLCOLORMSGBOX(306), 
     149    WM_CTLCOLOREDIT(307), 
     150    WM_CTLCOLORLISTBOX(308), 
     151    WM_CTLCOLORBTN(309), 
     152    WM_CTLCOLORDLG(310), 
     153    WM_CTLCOLORSCROLLBAR(311), 
     154    WM_CTLCOLORSTATIC(312), 
     155    CB_SHOWDROPDOWN(335), 
     156    LB_SETCURSEL(390), 
     157    WM_MOUSEFIRST(512), 
     158    WM_MOUSEMOVE(512), 
     159    WM_LBUTTONDOWN(513), 
     160    WM_LBUTTONUP(514), 
     161    WM_LBUTTONDBLCLK(515), 
     162    WM_RBUTTONDOWN(516), 
     163    WM_RBUTTONUP(517), 
     164    WM_RBUTTONDBLCLK(518), 
     165    WM_MBUTTONDOWN(519), 
     166    WM_MBUTTONUP(520), 
     167    WM_MBUTTONDBLCLK(521), 
     168    WM_MOUSELAST(521), 
     169    WM_MOUSEWHEEL(522), 
     170    WM_XBUTTONDOWN(523), 
     171    WM_XBUTTONUP(524), 
     172    WM_XBUTTONDBLCLK(525), 
     173    WM_USER(1024), 
     174    CB_SETCURSEL(334), 
     175    TBM_SETPOS(1029), 
     176    UDM_SETRANGE(1125), 
     177    TCM_SETCURSEL(4876); 
     178 
     179    /** the numerical representation of the message type */ 
     180    private int mNumber; 
     181 
     182    /** 
     183     * @param number 
     184     */ 
     185    WindowsMessageType(int number) { 
     186        mNumber = number; 
     187    } 
     188 
     189    /** 
     190     * @return Returns the number. 
     191     */ 
     192    public int getNumber() { 
     193        return mNumber; 
     194    } 
     195 
     196    /** 
     197     * <p> 
     198     * Checks if the type of a message generated is a keyboard interaction. 
     199     * </p> 
    33200     *  
    34      * @see de.ugoe.cs.quest.eventcore.IEventType#getName() 
    35      */ 
    36     @Override 
    37     public String getName() { 
    38         return "MFCEventType"; 
    39     } 
    40  
    41     /* 
    42      * (non-Javadoc) 
     201     * @param msgType 
     202     *            type of the message 
     203     * @return true if it is a keyboard interaction; false otherwise 
     204     */ 
     205    public boolean isKeyMessage() { 
     206        boolean isKeyMsg = false; 
     207        switch (this) 
     208        { 
     209            case WM_KEYDOWN: 
     210            case WM_KEYUP: 
     211            case WM_SYSKEYDOWN: 
     212            case WM_SYSKEYUP: 
     213                isKeyMsg = true; 
     214                break; 
     215            default: 
     216                break; 
     217        } 
     218        return isKeyMsg; 
     219    } 
     220 
     221    /** 
     222     * <p> 
     223     * Checks if the type of a message indicates that the mouse has been pressed down. 
     224     * </p> 
    43225     *  
    44      * @see java.lang.Object#toString() 
    45      */ 
    46     @Override 
    47     public String toString() { 
    48         String str = typeString; 
    49         if( info!=null ) { 
    50             str += "." + info; 
    51         } 
    52         return str; 
    53     } 
    54  
     226     * @param msgType 
     227     *            type of the message 
     228     * @return true if it is mouse-down message; false otherwise 
     229     */ 
     230    public boolean isDownMessage() { 
     231        boolean isDownMsg = false; 
     232        switch (this) 
     233        { 
     234            case WM_LBUTTONDOWN: 
     235            case WM_RBUTTONDOWN: 
     236            case WM_MBUTTONDOWN: 
     237            case WM_XBUTTONDOWN: 
     238            case WM_NCLBUTTONDOWN: 
     239            case WM_NCRBUTTONDOWN: 
     240            case WM_NCMBUTTONDOWN: 
     241            case WM_NCXBUTTONDOWN: 
     242                isDownMsg = true; 
     243                break; 
     244            default: 
     245                break; 
     246        } 
     247        return isDownMsg; 
     248    } 
     249 
     250    /** 
     251     * <p> 
     252     * Checks if the type of a message indicates that a double click has been performed. 
     253     * </p> 
     254     *  
     255     * @param msgType 
     256     *            type of the message 
     257     * @return true if it is a double click message; false otherwise 
     258     */ 
     259    public boolean isDblclkMessage() { 
     260        boolean isDblclkMsg = false; 
     261        switch (this) 
     262        { 
     263            case WM_LBUTTONDBLCLK: 
     264            case WM_RBUTTONDBLCLK: 
     265            case WM_MBUTTONDBLCLK: 
     266            case WM_XBUTTONDBLCLK: 
     267            case WM_NCLBUTTONDBLCLK: 
     268            case WM_NCRBUTTONDBLCLK: 
     269            case WM_NCMBUTTONDBLCLK: 
     270            case WM_NCXBUTTONDBLCLK: 
     271                isDblclkMsg = true; 
     272                break; 
     273            default: 
     274                break; 
     275        } 
     276        return isDblclkMsg; 
     277    } 
     278 
     279    /** 
     280     * <p> 
     281     * Checks if the type of a message indicates that the mouse has been released. 
     282     * </p> 
     283     *  
     284     * @param msgType 
     285     *            type of the message 
     286     * @return true if it is mouse-up message; false otherwise 
     287     */ 
     288    public boolean isUpMessage() { 
     289        boolean isUpMsg = false; 
     290        switch (this) 
     291        { 
     292            case WM_LBUTTONUP: 
     293            case WM_RBUTTONUP: 
     294            case WM_MBUTTONUP: 
     295            case WM_XBUTTONUP: 
     296            case WM_NCLBUTTONUP: 
     297            case WM_NCRBUTTONUP: 
     298            case WM_NCMBUTTONUP: 
     299            case WM_NCXBUTTONUP: 
     300                isUpMsg = true; 
     301                break; 
     302            default: 
     303                break; 
     304        } 
     305        return isUpMsg; 
     306    } 
     307 
     308    /** 
     309     * 
     310     */ 
     311    public static WindowsMessageType parseMessageType(String numberString) { 
     312        try { 
     313            int number = Integer.parseInt(numberString); 
     314            return valueOf(number); 
     315        } 
     316        catch (NumberFormatException e) { 
     317            return WindowsMessageType.valueOf(WindowsMessageType.class, numberString); 
     318        } 
     319    } 
     320 
     321    /** 
     322     * 
     323     */ 
     324    public static WindowsMessageType valueOf(int number) { 
     325        for (WindowsMessageType type : WindowsMessageType.values()) { 
     326            if (type.mNumber == number) { 
     327                return type; 
     328            } 
     329        } 
     330 
     331        throw new IllegalArgumentException("there is no message type with number " + number); 
     332    } 
    55333} 
Note: See TracChangeset for help on using the changeset viewer.