Ignore:
Timestamp:
04/11/14 11:22:26 (10 years ago)
Author:
pharms
Message:
  • state of the HCSE 2014 Paper. An appropriate tag will follow.
File:
1 edited

Legend:

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

    r1424 r1495  
    2323import org.eclipse.swt.events.MenuEvent; 
    2424import org.eclipse.swt.events.SelectionAdapter; 
     25import org.eclipse.swt.events.SelectionEvent; 
    2526import org.eclipse.swt.layout.GridData; 
    2627import org.eclipse.swt.widgets.Composite; 
     
    5354class VisualizationUtils { 
    5455     
    55  
    5656    /** 
    5757     * 
     
    156156     * 
    157157     */ 
    158     static Tree createGUIElementsTree(Composite  parent, String name) { 
    159         Tree tree = new Tree(parent, SWT.BORDER | SWT.SINGLE); 
     158    static Tree createTargetsTree(Composite  parent, String name) { 
     159        Tree tree = new Tree(parent, SWT.BORDER | SWT.MULTI); 
    160160        tree.setHeaderVisible(true); 
    161161         
     
    307307     * 
    308308     */ 
     309    static void addInvolvedTargetsHighlighting(final Tree tasks, final Tree involvedTargetsTree) { 
     310        tasks.addSelectionListener(new SelectionAdapter() { 
     311            @Override 
     312            public void widgetSelected(SelectionEvent e) { 
     313                TreeItem[] selectedItems = tasks.getSelection(); 
     314                if ((selectedItems.length == 1) && 
     315                    (selectedItems[0].getData() instanceof ITask)) 
     316                { 
     317                    highlightInvolvedTargets 
     318                        ((ITask) selectedItems[0].getData(), involvedTargetsTree); 
     319                } 
     320            } 
     321        }); 
     322 
     323    } 
     324 
     325    /** 
     326     * 
     327     */ 
     328    static void highlightInvolvedTargets(ITask task, Tree involvedTargetsTree) { 
     329        List<IEventTarget> targets = new ArrayList<IEventTarget>(); 
     330        getInvolvedTargets(task, targets); 
     331         
     332        List<TreeItem> itemsToSelect = new LinkedList<TreeItem>(); 
     333        List<TreeItem> candidateItems = new LinkedList<TreeItem>(); 
     334         
     335        for (TreeItem item : involvedTargetsTree.getItems()) { 
     336            candidateItems.add(item); 
     337        } 
     338         
     339        while (candidateItems.size() > 0) { 
     340            TreeItem candidate = candidateItems.remove(0); 
     341             
     342            if (targets.contains(candidate.getData())) { 
     343                itemsToSelect.add(candidate); 
     344            } 
     345             
     346            for (TreeItem child : candidate.getItems()) { 
     347                candidateItems.add(child); 
     348            } 
     349        } 
     350         
     351        involvedTargetsTree.setSelection 
     352            (itemsToSelect.toArray(new TreeItem[itemsToSelect.size()])); 
     353    } 
     354 
     355    /** 
     356     * 
     357     */ 
    309358    static void addExpansionListener(Tree tree, Listener listener) { 
    310359        Listener[] listeners = tree.getListeners(SWT.Expand); 
Note: See TracChangeset for help on using the changeset viewer.