This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 144139
Collapse All | Expand All

(-)a/visual.examples/src/org/netbeans/modules/visual/examples/RunDialog.java (+1 lines)
Lines 34-39 Link Here
34
        "javaone.demo5.ManyObjectsDemo",
34
        "javaone.demo5.ManyObjectsDemo",
35
        "javaone.demo6.LODDemo",
35
        "javaone.demo6.LODDemo",
36
        "test.action.ActionMapActionTest",
36
        "test.action.ActionMapActionTest",
37
        "test.action.ContiguousSelectActionTest",
37
        "test.action.PanActionTest",
38
        "test.action.PanActionTest",
38
        "test.action.PopupMenuActionTest",
39
        "test.action.PopupMenuActionTest",
39
        "test.action.SelectLockedActionTest",
40
        "test.action.SelectLockedActionTest",
(-)5a000c71af9b (+87 lines)
Added Link Here
1
package test.action;
2
3
import org.netbeans.api.visual.action.ActionFactory;
4
import org.netbeans.api.visual.action.ContiguousSelectEvent;
5
import org.netbeans.api.visual.action.ContiguousSelectProvider;
6
import org.netbeans.api.visual.action.WidgetAction;
7
import org.netbeans.api.visual.model.ObjectScene;
8
import org.netbeans.api.visual.widget.general.ListItemWidget;
9
import org.netbeans.api.visual.widget.general.ListWidget;
10
import test.SceneSupport;
11
12
import java.util.Collections;
13
import java.util.HashSet;
14
15
/**
16
 * @author David Kaspar
17
 */
18
public class ContiguousSelectActionTest extends ObjectScene {
19
20
    public ContiguousSelectActionTest () {
21
        ListWidget list = new ListWidget (this);
22
        list.setLabel ("List of selectable items");
23
        addChild (list);
24
25
        WidgetAction contiguousSelectAction = ActionFactory.createContiguousAction (new MyContiguousSelectProvider ());
26
27
        for (int a = 0; a < 10; a ++) {
28
            String item = "Item no. " + a;
29
            ListItemWidget itemWidget = new ListItemWidget (this);
30
            itemWidget.setLabel (item);
31
            itemWidget.getActions ().addAction (createObjectHoverAction ());
32
            itemWidget.getActions ().addAction (contiguousSelectAction);
33
            list.addChild (itemWidget);
34
            addObject (a, itemWidget);
35
        }
36
    }
37
38
    public static void main (String[] args) {
39
        SceneSupport.show (new ContiguousSelectActionTest ());
40
    }
41
42
    private class MyContiguousSelectProvider implements ContiguousSelectProvider {
43
44
        public boolean isSelectionAllowed (ContiguousSelectEvent event) {
45
            return true;
46
        }
47
48
        public void select (ContiguousSelectEvent event) {
49
            Object previous = findObject (event.getPreviouslyChoosenWidget ());
50
            Object last = findObject (event.getChoosenWidget ());
51
            switch (event.getSelectionType ()) {
52
                case ADDITIVE_CONTIGUOUS:
53
                    if (last != null) {
54
                        HashSet<Object> set = collectContiguousObjects ((Integer)  (previous != null ? previous : last), (Integer) last);
55
                        set.addAll (getSelectedObjects ());
56
                        userSelectionSuggested (set, false);
57
                    }
58
                    break;
59
                case ADDITIVE_NON_CONTIGUOUS:
60
                    if (last != null) {
61
                        HashSet<Object> set = new HashSet<Object> (getSelectedObjects ());
62
                        set.add (last);
63
                        userSelectionSuggested (set, false);
64
                    }
65
                    break;
66
                case REPLACE_CONTIGUOUS:
67
                    HashSet<Object> set = collectContiguousObjects ((Integer)  (previous != null ? previous : last), (Integer) last);
68
                    userSelectionSuggested (set, false);
69
                    break;
70
                case REPLACE_NON_CONTIGUOUS:
71
                    userSelectionSuggested (Collections.singleton (last), false);
72
                    break;
73
            }
74
        }
75
76
        private HashSet<Object> collectContiguousObjects (int first, int last) {
77
            int max = Math.max (first, last);
78
            HashSet<Object> set = new HashSet<Object> ();
79
            for (int i = Math.min (first, last); i <= max; i ++) {
80
                set.add (i);
81
            }
82
            return set;
83
        }
84
85
    }
86
87
}

Return to bug 144139