TOC_patch.txt

TOC changes - Daniel Martinez, 02/10/2016 12:20 PM

Download (10.4 KB)

 
1
Index: src/main/java/org/gvsig/app/project/documents/view/toc/gui/TOC.java
2
===================================================================
3
--- projects/externals/gvSIG/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/toc/gui/TOC.java	(revision 42550)
4
+++ projects/externals/gvSIG/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/toc/gui/TOC.java	(working copy)
5
@@ -843,7 +843,11 @@
6
                     lyr.getMapContext().beginAtomicEvent();
7
 
8
                     if (((e.getModifiers() & InputEvent.SHIFT_MASK) != 0)
9
-                        && (e.getButton() == MouseEvent.BUTTON1)) {
10
+                        && (
11
+                            e.getButton() == MouseEvent.BUTTON1 ||
12
+                            e.getButton() == MouseEvent.BUTTON3
13
+                            )
14
+                       ) {
15
                         FLayer[] activeLayers = layers.getActives();
16
                         if (activeLayers.length > 0) {
17
                             selectInterval(layers, lyr);
18
@@ -853,10 +857,15 @@
19
 
20
                     } else {
21
                         if (!((e.getModifiers() & InputEvent.CTRL_MASK) != 0)
22
-                            && (e.getButton() == MouseEvent.BUTTON1)) {
23
+                            && (
24
+                                e.getButton() == MouseEvent.BUTTON1 ||
25
+                                e.getButton() == MouseEvent.BUTTON3
26
+                                )
27
+                           ) {
28
                             layers.setAllActives(false);
29
                         }
30
-                        if (e.getButton() == MouseEvent.BUTTON1) {
31
+                        if (e.getButton() == MouseEvent.BUTTON1
32
+                            ||e.getButton() == MouseEvent.BUTTON3) {
33
                             // lyr.setActive(true);
34
                             updateActive(lyr, !lyr.isActive());
35
                         }
36
@@ -884,6 +893,12 @@
37
                     if (e.getButton() == MouseEvent.BUTTON3) {
38
                         // Boton derecho sobre un nodo del arbol
39
                         // if ((e.getModifiers() & InputEvent.META_MASK) != 0) {
40
+                        //***** Change selection
41
+//                        if(!lyr.isActive()){
42
+//                            layers.setAllActives(false);
43
+//                            updateActive(lyr, true);
44
+//                        }
45
+                        //*****
46
                         popmenu = new FPopupMenu(mapContext, node);
47
                         tree.add(popmenu);
48
 
49
@@ -896,6 +911,41 @@
50
                 }
51
 
52
                 if (node != null && node.getUserObject() instanceof TocItemLeaf) {
53
+                    TocItemBranch owner =
54
+                        (TocItemBranch) ((DefaultMutableTreeNode) node
55
+                            .getParent()).getUserObject();
56
+
57
+                    FLayer masterLayer = owner.getLayer();
58
+
59
+                    if (((e.getModifiers() & InputEvent.SHIFT_MASK) != 0)
60
+                        && (
61
+                            e.getButton() == MouseEvent.BUTTON1 ||
62
+                            e.getButton() == MouseEvent.BUTTON3
63
+                            )
64
+                       ) {
65
+                        FLayer[] activeLayers = layers.getActives();
66
+                        if (activeLayers.length > 0) {
67
+                            selectInterval(layers, masterLayer);
68
+                        } else {
69
+                            updateActive(masterLayer, !masterLayer.isActive());
70
+                        }
71
+
72
+                    } else {
73
+                        if (!((e.getModifiers() & InputEvent.CTRL_MASK) != 0)
74
+                            && (
75
+                                e.getButton() == MouseEvent.BUTTON1 ||
76
+                                e.getButton() == MouseEvent.BUTTON3
77
+                                )
78
+                           ) {
79
+                            layers.setAllActives(false);
80
+                        }
81
+                        if (e.getButton() == MouseEvent.BUTTON1
82
+                            ||e.getButton() == MouseEvent.BUTTON3) {
83
+                            // lyr.setActive(true);
84
+                            updateActive(masterLayer, !masterLayer.isActive());
85
+                        }
86
+                    }
87
+
88
                     // double click with left button ON A LEAF (ISymbol)
89
                     if (e.getClickCount() >= 2
90
                         && e.getButton() == MouseEvent.BUTTON1) {
91
@@ -914,45 +964,45 @@
92
                                  * it and FOR ALL OTHER COMPATIBLES THAT HAVE
93
                                  * BEEN ACTIVATED.
94
                                  */
95
+                                /*
96
+                                 * #3035: Symbology is applied to active layers too
97
+                                 * Now it will be done only on the double-clicked one
98
+                                 */
99
                                 ArrayList<FLayer> targetLayers =
100
                                     new ArrayList<FLayer>();
101
 
102
-                                TocItemBranch owner =
103
-                                    (TocItemBranch) ((DefaultMutableTreeNode) node
104
-                                        .getParent()).getUserObject();
105
 
106
-                                FLayer masterLayer = owner.getLayer();
107
                                 targetLayers.add(masterLayer);
108
-                                FLayer[] actives =
109
-                                    mapContext.getLayers().getActives();
110
-                                for (int i = 0; i < actives.length; i++) {
111
-                                    if (actives[i].getClass().equals(
112
-                                        masterLayer.getClass())) {
113
-                                        if (actives[i] instanceof FLyrVect) {
114
-                                            FLyrVect vectorLayer =
115
-                                                (FLyrVect) actives[i];
116
-                                            FLyrVect vectorMaster =
117
-                                                (FLyrVect) masterLayer;
118
-                                            int masterLayerShapetypeOF_THE_LEGEND =
119
-                                                ((IVectorLegend) vectorMaster
120
-                                                    .getLegend())
121
-                                                    .getShapeType();
122
-                                            int anotherVectorLayerShapetypeOF_THE_LEGEND =
123
-                                                ((IVectorLegend) vectorLayer
124
-                                                    .getLegend())
125
-                                                    .getShapeType();
126
-                                            if (masterLayerShapetypeOF_THE_LEGEND == anotherVectorLayerShapetypeOF_THE_LEGEND) {
127
-                                                targetLayers.add(vectorLayer);
128
-                                            } else {
129
-                                                vectorLayer.setActive(false);
130
-                                            }
131
-                                        }
132
-                                        // TODO for the rest of layer types
133
-                                        // (i.e. FLyrRaster)
134
-                                    } else {
135
-                                        actives[i].setActive(false);
136
-                                    }
137
-                                }
138
+//                                FLayer[] actives =
139
+//                                    mapContext.getLayers().getActives();
140
+//                                for (int i = 0; i < actives.length; i++) {
141
+//                                    if (actives[i].getClass().equals(
142
+//                                        masterLayer.getClass())) {
143
+//                                        if (actives[i] instanceof FLyrVect) {
144
+//                                            FLyrVect vectorLayer =
145
+//                                                (FLyrVect) actives[i];
146
+//                                            FLyrVect vectorMaster =
147
+//                                                (FLyrVect) masterLayer;
148
+//                                            int masterLayerShapetypeOF_THE_LEGEND =
149
+//                                                ((IVectorLegend) vectorMaster
150
+//                                                    .getLegend())
151
+//                                                    .getShapeType();
152
+//                                            int anotherVectorLayerShapetypeOF_THE_LEGEND =
153
+//                                                ((IVectorLegend) vectorLayer
154
+//                                                    .getLegend())
155
+//                                                    .getShapeType();
156
+//                                            if (masterLayerShapetypeOF_THE_LEGEND == anotherVectorLayerShapetypeOF_THE_LEGEND) {
157
+//                                                targetLayers.add(vectorLayer);
158
+//                                            } else {
159
+//                                                vectorLayer.setActive(false);
160
+//                                            }
161
+//                                        }
162
+//                                        // TODO for the rest of layer types
163
+//                                        // (i.e. FLyrRaster)
164
+//                                    } else {
165
+//                                        actives[i].setActive(false);
166
+//                                    }
167
+//                                }
168
                                 action.execute(leaf,
169
                                     targetLayers.toArray(new FLayer[0]));
170
                             }
171
@@ -968,6 +1018,12 @@
172
                     // TocItemLeaf auxLeaf = (TocItemLeaf) node.getUserObject();
173
                     // FSymbol theSym = auxLeaf.getSymbol();
174
                     if ((e.getModifiers() & InputEvent.META_MASK) != 0) {
175
+                        //***** Change selection
176
+                        if (!masterLayer.isActive()){
177
+                            layers.setAllActives(false);
178
+                            updateActive(masterLayer, true);
179
+                        }
180
+                        //*****
181
                         popmenu = new FPopupMenu(mapContext, node);
182
                         tree.add(popmenu);
183
                         popmenu.show(e.getComponent(), e.getX(), e.getY());