Revision 42822

View differences:

trunk/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
843 843
                    lyr.getMapContext().beginAtomicEvent();
844 844

  
845 845
                    if (((e.getModifiers() & InputEvent.SHIFT_MASK) != 0)
846
                        && (e.getButton() == MouseEvent.BUTTON1)) {
846
                        && (
847
                            e.getButton() == MouseEvent.BUTTON1 ||
848
                            e.getButton() == MouseEvent.BUTTON3
849
                            )
850
                       ) {
847 851
                        FLayer[] activeLayers = layers.getActives();
848 852
                        if (activeLayers.length > 0) {
849 853
                            selectInterval(layers, lyr);
......
853 857

  
854 858
                    } else {
855 859
                        if (!((e.getModifiers() & InputEvent.CTRL_MASK) != 0)
856
                            && (e.getButton() == MouseEvent.BUTTON1)) {
860
                            && (
861
                                e.getButton() == MouseEvent.BUTTON1 ||
862
                                e.getButton() == MouseEvent.BUTTON3
863
                                )
864
                           ) {
857 865
                            layers.setAllActives(false);
858 866
                        }
859
                        if (e.getButton() == MouseEvent.BUTTON1) {
867
                        if (e.getButton() == MouseEvent.BUTTON1
868
                            ||e.getButton() == MouseEvent.BUTTON3) {
860 869
                            // lyr.setActive(true);
861 870
                            updateActive(lyr, !lyr.isActive());
862 871
                        }
......
884 893
                    if (e.getButton() == MouseEvent.BUTTON3) {
885 894
                        // Boton derecho sobre un nodo del arbol
886 895
                        // if ((e.getModifiers() & InputEvent.META_MASK) != 0) {
896
                        //***** Change selection
897
//                        if(!lyr.isActive()){
898
//                            layers.setAllActives(false);
899
//                            updateActive(lyr, true);
900
//                        }
901
                        //*****
887 902
                        popmenu = new FPopupMenu(mapContext, node);
888 903
                        tree.add(popmenu);
889 904

  
......
896 911
                }
897 912

  
898 913
                if (node != null && node.getUserObject() instanceof TocItemLeaf) {
914
                    TocItemBranch owner =
915
                        (TocItemBranch) ((DefaultMutableTreeNode) node
916
                            .getParent()).getUserObject();
917

  
918
                    FLayer masterLayer = owner.getLayer();
919

  
920
                    if (((e.getModifiers() & InputEvent.SHIFT_MASK) != 0)
921
                        && (
922
                            e.getButton() == MouseEvent.BUTTON1 ||
923
                            e.getButton() == MouseEvent.BUTTON3
924
                            )
925
                       ) {
926
                        FLayer[] activeLayers = layers.getActives();
927
                        if (activeLayers.length > 0) {
928
                            selectInterval(layers, masterLayer);
929
                        } else {
930
                            updateActive(masterLayer, !masterLayer.isActive());
931
                        }
932

  
933
                    } else {
934
                        if (!((e.getModifiers() & InputEvent.CTRL_MASK) != 0)
935
                            && (
936
                                e.getButton() == MouseEvent.BUTTON1 ||
937
                                e.getButton() == MouseEvent.BUTTON3
938
                                )
939
                           ) {
940
                            layers.setAllActives(false);
941
                        }
942
                        if (e.getButton() == MouseEvent.BUTTON1
943
                            ||e.getButton() == MouseEvent.BUTTON3) {
944
                            // lyr.setActive(true);
945
                            updateActive(masterLayer, !masterLayer.isActive());
946
                        }
947
                    }
948

  
899 949
                    // double click with left button ON A LEAF (ISymbol)
900 950
                    if (e.getClickCount() >= 2
901 951
                        && e.getButton() == MouseEvent.BUTTON1) {
......
914 964
                                 * it and FOR ALL OTHER COMPATIBLES THAT HAVE
915 965
                                 * BEEN ACTIVATED.
916 966
                                 */
967
                                /*
968
                                 * #3035: Symbology is applied to active layers too
969
                                 * Now it will be done only on the double-clicked one
970
                                 */
917 971
                                ArrayList<FLayer> targetLayers =
918 972
                                    new ArrayList<FLayer>();
919 973

  
920
                                TocItemBranch owner =
921
                                    (TocItemBranch) ((DefaultMutableTreeNode) node
922
                                        .getParent()).getUserObject();
923 974

  
924
                                FLayer masterLayer = owner.getLayer();
925 975
                                targetLayers.add(masterLayer);
926
                                FLayer[] actives =
927
                                    mapContext.getLayers().getActives();
928
                                for (int i = 0; i < actives.length; i++) {
929
                                    if (actives[i].getClass().equals(
930
                                        masterLayer.getClass())) {
931
                                        if (actives[i] instanceof FLyrVect) {
932
                                            FLyrVect vectorLayer =
933
                                                (FLyrVect) actives[i];
934
                                            FLyrVect vectorMaster =
935
                                                (FLyrVect) masterLayer;
936
                                            int masterLayerShapetypeOF_THE_LEGEND =
937
                                                ((IVectorLegend) vectorMaster
938
                                                    .getLegend())
939
                                                    .getShapeType();
940
                                            int anotherVectorLayerShapetypeOF_THE_LEGEND =
941
                                                ((IVectorLegend) vectorLayer
942
                                                    .getLegend())
943
                                                    .getShapeType();
944
                                            if (masterLayerShapetypeOF_THE_LEGEND == anotherVectorLayerShapetypeOF_THE_LEGEND) {
945
                                                targetLayers.add(vectorLayer);
946
                                            } else {
947
                                                vectorLayer.setActive(false);
948
                                            }
949
                                        }
950
                                        // TODO for the rest of layer types
951
                                        // (i.e. FLyrRaster)
952
                                    } else {
953
                                        actives[i].setActive(false);
954
                                    }
955
                                }
976
//                                FLayer[] actives =
977
//                                    mapContext.getLayers().getActives();
978
//                                for (int i = 0; i < actives.length; i++) {
979
//                                    if (actives[i].getClass().equals(
980
//                                        masterLayer.getClass())) {
981
//                                        if (actives[i] instanceof FLyrVect) {
982
//                                            FLyrVect vectorLayer =
983
//                                                (FLyrVect) actives[i];
984
//                                            FLyrVect vectorMaster =
985
//                                                (FLyrVect) masterLayer;
986
//                                            int masterLayerShapetypeOF_THE_LEGEND =
987
//                                                ((IVectorLegend) vectorMaster
988
//                                                    .getLegend())
989
//                                                    .getShapeType();
990
//                                            int anotherVectorLayerShapetypeOF_THE_LEGEND =
991
//                                                ((IVectorLegend) vectorLayer
992
//                                                    .getLegend())
993
//                                                    .getShapeType();
994
//                                            if (masterLayerShapetypeOF_THE_LEGEND == anotherVectorLayerShapetypeOF_THE_LEGEND) {
995
//                                                targetLayers.add(vectorLayer);
996
//                                            } else {
997
//                                                vectorLayer.setActive(false);
998
//                                            }
999
//                                        }
1000
//                                        // TODO for the rest of layer types
1001
//                                        // (i.e. FLyrRaster)
1002
//                                    } else {
1003
//                                        actives[i].setActive(false);
1004
//                                    }
1005
//                                }
956 1006
                                action.execute(leaf,
957 1007
                                    targetLayers.toArray(new FLayer[0]));
958 1008
                            }
......
968 1018
                    // TocItemLeaf auxLeaf = (TocItemLeaf) node.getUserObject();
969 1019
                    // FSymbol theSym = auxLeaf.getSymbol();
970 1020
                    if ((e.getModifiers() & InputEvent.META_MASK) != 0) {
1021
                        //***** Change selection
1022
                        if (!masterLayer.isActive()){
1023
                            layers.setAllActives(false);
1024
                            updateActive(masterLayer, true);
1025
                        }
1026
                        //*****
971 1027
                        popmenu = new FPopupMenu(mapContext, node);
972 1028
                        tree.add(popmenu);
973 1029
                        popmenu.show(e.getComponent(), e.getX(), e.getY());

Also available in: Unified diff