Ignore:
Timestamp:
08/17/12 11:38:43 (12 years ago)
Author:
sherbold
Message:
  • adapted to quest coding style
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/InsertTextEquals.java

    r548 r570  
     1 
    12package de.ugoe.cs.quest.ui.swt; 
    23 
     
    1314import org.eclipse.swt.widgets.TreeItem; 
    1415 
    15 import de.ugoe.cs.quest.assertions.AssertEvent; 
    1616import de.ugoe.cs.quest.assertions.TextEqualsAssertEventType; 
    17 import de.ugoe.cs.quest.assertions.TextEqualsReplay; 
    1817import de.ugoe.cs.quest.eventcore.Event; 
    19 import de.ugoe.cs.quest.eventcore.IEventTarget; 
    2018import de.ugoe.cs.util.ArrayTools; 
    2119 
     
    2422 
    2523public class InsertTextEquals extends AbstractInsertEventComposite { 
    26         private Text expectedText; 
    27         private Tree targetTree; 
    28         private Text targetText; 
    29          
    30         /** 
    31          * Create the composite. 
    32          * @param parent 
    33          * @param style 
    34          */ 
    35         public InsertTextEquals(Composite parent, int style, SortedSet<String> targets) { 
    36                 super(parent, style, targets); 
    37                 setLayout(new GridLayout(3, false)); 
    38                  
    39                 Label lblExpectedValue = new Label(this, SWT.NONE); 
    40                 lblExpectedValue.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); 
    41                 lblExpectedValue.setText("Expected Value:"); 
    42                  
    43                 expectedText = new Text(this, SWT.BORDER); 
    44                 expectedText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1)); 
    45                  
    46                 Label lblTargetWidget = new Label(this, SWT.NONE); 
    47                 lblTargetWidget.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); 
    48                 lblTargetWidget.setText("Target Widget:"); 
    49                  
    50                 targetText = new Text(this, SWT.BORDER); 
    51                 targetText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1)); 
    52                 new Label(this, SWT.NONE); 
    53                  
    54                 targetTree = new Tree(this, SWT.BORDER); 
    55                 targetTree.addSelectionListener(new SelectionAdapter() { 
    56                         @Override 
    57                         public void widgetSelected(SelectionEvent e) { 
    58                                 TreeItem[] selection = targetTree.getSelection(); 
    59                                 if( selection.length==1 ) { 
    60                                         TreeItem item = selection[0]; 
    61                                         String targetString = item.getText(); 
    62                                         item = item.getParentItem(); 
    63                                         while( item!=null ) { 
    64                                                 // TODO the "." is hard coded for the JFCMonitor. should be flexible  
    65                                                 targetString = item.getText()+"."+targetString; 
    66                                                 item = item.getParentItem(); 
    67                                         } 
    68                                         targetText.setText(targetString); 
    69                                 } 
    70                         } 
    71                 }); 
    72                 targetTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); 
    73                 buildTargetTree(); 
    74                 new Label(this, SWT.NONE); 
    75                  
    76                 Button btnExpandAll = new Button(this, SWT.NONE); 
    77                 btnExpandAll.addSelectionListener(new SelectionAdapter() { 
    78                         @Override 
    79                         public void widgetSelected(SelectionEvent e) { 
    80                                 expandAll(targetTree, true); 
    81                         } 
    82                 }); 
    83                 btnExpandAll.setText("Expand all"); 
    84                  
    85                 Button btnCollapseAll = new Button(this, SWT.NONE); 
    86                 btnCollapseAll.addSelectionListener(new SelectionAdapter() { 
    87                         @Override 
    88                         public void widgetSelected(SelectionEvent e) { 
    89                                 expandAll(targetTree, false); 
    90                         } 
    91                 }); 
    92                 btnCollapseAll.setText("Collapse all"); 
     24    private Text expectedText; 
     25    private Tree targetTree; 
     26    private Text targetText; 
    9327 
    94         } 
     28    /** 
     29     * Create the composite. 
     30     *  
     31     * @param parent 
     32     * @param style 
     33     */ 
     34    public InsertTextEquals(Composite parent, int style, SortedSet<String> targets) { 
     35        super(parent, style, targets); 
     36        setLayout(new GridLayout(3, false)); 
    9537 
    96         @Override 
    97         protected void checkSubclass() { 
    98                 // Disable the check that prevents subclassing of SWT components 
    99         } 
     38        Label lblExpectedValue = new Label(this, SWT.NONE); 
     39        lblExpectedValue.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); 
     40        lblExpectedValue.setText("Expected Value:"); 
    10041 
    101         @Override 
    102         public Event getEvent() {                
    103                 IEventTarget target = targetText.getText(); 
    104                 TextEqualsReplay replay = new TextEqualsReplay(expectedText.getText(), target); 
    105                 Event event = new Event(new TextEqualsAssertEventType()); 
    106                 event.setTarget(target); 
    107                 event.addReplayable(replay); 
    108                 return event; 
    109         } 
    110          
    111         private void buildTargetTree() { 
    112                 for( String target : targets ) { 
    113                         TreeItem currentParent = null; 
    114                         TreeItem[] currentItems = targetTree.getItems(); 
    115                          
    116                         //TODO needs rule for target splitting. currently its hard coded for JFCEvent targets. 
    117                         String[] targetParts = target.split("\\.\\["); 
    118                         for( String targetPart : targetParts) { 
    119                                 String[] currentTexts = new String[currentItems.length]; 
    120                                 for( int i=0; i<currentItems.length ; i++ ) { 
    121                                         currentTexts[i] = currentItems[i].getText(); 
    122                                 } 
    123                                 if( currentParent!=null ) { 
    124                                         targetPart = "["+targetPart; 
    125                                 } 
    126                                 int index = ArrayTools.findIndex(currentTexts, targetPart); 
    127                                 if( index>= 0 ) { 
    128                                         currentParent = currentItems[index]; 
    129                                 } else { 
    130                                         if( currentParent==null ) { 
    131                                                 currentParent = new TreeItem(targetTree, SWT.NULL); 
    132                                                 currentParent.setText(targetPart); 
    133                                         } else { 
    134                                                 currentParent = new TreeItem(currentParent, SWT.NULL); 
    135                                                 currentParent.setText(targetPart); 
    136                                         } 
    137                                 } 
    138                                 currentItems = currentParent.getItems(); 
    139                         } 
    140                 } 
     42        expectedText = new Text(this, SWT.BORDER); 
     43        expectedText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1)); 
    14144 
    142         } 
    143          
    144         private void expandAll(Tree tree, boolean expanded) { 
    145                 for( TreeItem item : tree.getItems() ) { 
    146                         expandAll(item, expanded); 
    147                 } 
    148         } 
    149          
    150         private void expandAll(TreeItem item, boolean expanded) { 
    151                 item.setExpanded(expanded); 
    152                 for( TreeItem childItem : item.getItems() ) { 
    153                         expandAll(childItem, expanded); 
    154                 } 
    155         } 
    156          
    157          
     45        Label lblTargetWidget = new Label(this, SWT.NONE); 
     46        lblTargetWidget.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); 
     47        lblTargetWidget.setText("Target Widget:"); 
     48 
     49        targetText = new Text(this, SWT.BORDER); 
     50        targetText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1)); 
     51        new Label(this, SWT.NONE); 
     52 
     53        targetTree = new Tree(this, SWT.BORDER); 
     54        targetTree.addSelectionListener(new SelectionAdapter() { 
     55            @Override 
     56            public void widgetSelected(SelectionEvent e) { 
     57                TreeItem[] selection = targetTree.getSelection(); 
     58                if (selection.length == 1) { 
     59                    TreeItem item = selection[0]; 
     60                    String targetString = item.getText(); 
     61                    item = item.getParentItem(); 
     62                    while (item != null) { 
     63                        // TODO the "." is hard coded for the JFCMonitor. should be flexible 
     64                        targetString = item.getText() + "." + targetString; 
     65                        item = item.getParentItem(); 
     66                    } 
     67                    targetText.setText(targetString); 
     68                } 
     69            } 
     70        }); 
     71        targetTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); 
     72        buildTargetTree(); 
     73        new Label(this, SWT.NONE); 
     74 
     75        Button btnExpandAll = new Button(this, SWT.NONE); 
     76        btnExpandAll.addSelectionListener(new SelectionAdapter() { 
     77            @Override 
     78            public void widgetSelected(SelectionEvent e) { 
     79                expandAll(targetTree, true); 
     80            } 
     81        }); 
     82        btnExpandAll.setText("Expand all"); 
     83 
     84        Button btnCollapseAll = new Button(this, SWT.NONE); 
     85        btnCollapseAll.addSelectionListener(new SelectionAdapter() { 
     86            @Override 
     87            public void widgetSelected(SelectionEvent e) { 
     88                expandAll(targetTree, false); 
     89            } 
     90        }); 
     91        btnCollapseAll.setText("Collapse all"); 
     92 
     93    } 
     94 
     95    @Override 
     96    protected void checkSubclass() { 
     97        // Disable the check that prevents subclassing of SWT components 
     98    } 
     99 
     100    @Override 
     101    public Event getEvent() { 
     102        // TODO make compatible to new event core 
     103        /* 
     104         * IEventTarget target = targetText.getText(); TextEqualsReplay replay = new 
     105         * TextEqualsReplay(expectedText.getText(), target); 
     106         */ 
     107        Event event = new Event(new TextEqualsAssertEventType()); 
     108        /* 
     109         * event.setTarget(target); event.addReplayable(replay); 
     110         */ 
     111        return event; 
     112    } 
     113 
     114    private void buildTargetTree() { 
     115        for (String target : targets) { 
     116            TreeItem currentParent = null; 
     117            TreeItem[] currentItems = targetTree.getItems(); 
     118 
     119            // TODO needs rule for target splitting. currently its hard coded for JFCEvent targets. 
     120            String[] targetParts = target.split("\\.\\["); 
     121            for (String targetPart : targetParts) { 
     122                String[] currentTexts = new String[currentItems.length]; 
     123                for (int i = 0; i < currentItems.length; i++) { 
     124                    currentTexts[i] = currentItems[i].getText(); 
     125                } 
     126                if (currentParent != null) { 
     127                    targetPart = "[" + targetPart; 
     128                } 
     129                int index = ArrayTools.findIndex(currentTexts, targetPart); 
     130                if (index >= 0) { 
     131                    currentParent = currentItems[index]; 
     132                } 
     133                else { 
     134                    if (currentParent == null) { 
     135                        currentParent = new TreeItem(targetTree, SWT.NULL); 
     136                        currentParent.setText(targetPart); 
     137                    } 
     138                    else { 
     139                        currentParent = new TreeItem(currentParent, SWT.NULL); 
     140                        currentParent.setText(targetPart); 
     141                    } 
     142                } 
     143                currentItems = currentParent.getItems(); 
     144            } 
     145        } 
     146 
     147    } 
     148 
     149    private void expandAll(Tree tree, boolean expanded) { 
     150        for (TreeItem item : tree.getItems()) { 
     151            expandAll(item, expanded); 
     152        } 
     153    } 
     154 
     155    private void expandAll(TreeItem item, boolean expanded) { 
     156        item.setExpanded(expanded); 
     157        for (TreeItem childItem : item.getItems()) { 
     158            expandAll(childItem, expanded); 
     159        } 
     160    } 
     161 
    158162} 
Note: See TracChangeset for help on using the changeset viewer.