Changeset 32430 in osm


Ignore:
Timestamp:
2016-06-29T00:04:10+02:00 (8 years ago)
Author:
darya
Message:

focus listener added

Location:
applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/PTAssistantLayer.java

    r32415 r32430  
    22
    33import java.awt.Graphics2D;
     4import java.awt.KeyboardFocusManager;
     5import java.beans.PropertyChangeEvent;
     6import java.beans.PropertyChangeListener;
    47import java.util.ArrayList;
    58import java.util.Collection;
     
    2023import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
    2124import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
     25import org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor;
    2226import org.openstreetmap.josm.gui.layer.Layer;
    2327import org.openstreetmap.josm.gui.layer.LayerPositionStrategy;
     
    2529import org.openstreetmap.josm.tools.ImageProvider;
    2630
    27 public class PTAssistantLayer extends Layer implements SelectionChangedListener {
    28        
     31public class PTAssistantLayer extends Layer implements SelectionChangedListener, PropertyChangeListener {
     32
    2933        private List<OsmPrimitive> primitives = new ArrayList<>();
    3034
    31        
    3235        public PTAssistantLayer() {
    3336                super("pt_assistant layer");
     37
     38                 KeyboardFocusManager.getCurrentKeyboardFocusManager().addPropertyChangeListener(this);
     39
    3440        }
    35        
     41
    3642        public void addPrimitive(OsmPrimitive primitive) {
    3743                this.primitives.add(primitive);
    3844        }
    39        
     45
    4046        public void clear() {
    4147                this.primitives.clear();
    4248        }
    4349
    44        
    45     @Override
    46     public void paint(final Graphics2D g, final MapView mv, Bounds bounds) {
     50        @Override
     51        public void paint(final Graphics2D g, final MapView mv, Bounds bounds) {
    4752
    48         PTAssistantPaintVisitor paintVisitor = new PTAssistantPaintVisitor(g, mv);
    49         for (OsmPrimitive primitive: primitives) {
    50             paintVisitor.visit(primitive);
     53                PTAssistantPaintVisitor paintVisitor = new PTAssistantPaintVisitor(g, mv);
     54                for (OsmPrimitive primitive : primitives) {
     55                        paintVisitor.visit(primitive);
    5156
    52         }
    53        
    54     }
     57                }
     58
     59        }
    5560
    5661        @Override
    5762        public Icon getIcon() {
    58         return ImageProvider.get("layer", "osmdata_small");
     63                return ImageProvider.get("layer", "osmdata_small");
    5964        }
    6065
     
    6671        @Override
    6772        public Action[] getMenuEntries() {
    68         return new Action[] {
    69                 LayerListDialog.getInstance().createShowHideLayerAction(),
    70                 LayerListDialog.getInstance().createDeleteLayerAction(),
    71                 SeparatorLayerAction.INSTANCE,
    72                 new RenameLayerAction(null, this),
    73                 SeparatorLayerAction.INSTANCE,
    74                 new LayerListPopup.InfoAction(this) };
     73                return new Action[] { LayerListDialog.getInstance().createShowHideLayerAction(),
     74                                LayerListDialog.getInstance().createDeleteLayerAction(), SeparatorLayerAction.INSTANCE,
     75                                new RenameLayerAction(null, this), SeparatorLayerAction.INSTANCE, new LayerListPopup.InfoAction(this) };
    7576        }
    7677
     
    8889        public void mergeFrom(Layer arg0) {
    8990                // do nothing
    90                
     91
    9192        }
    9293
     
    9495        public void visitBoundingBox(BoundingXYVisitor arg0) {
    9596                // do nothing
    96                
     97
    9798        }
    9899
    99        
    100     @Override
    101     public LayerPositionStrategy getDefaultLayerPosition() {
    102         return LayerPositionStrategy.IN_FRONT;
    103     }
     100        @Override
     101        public LayerPositionStrategy getDefaultLayerPosition() {
     102                return LayerPositionStrategy.IN_FRONT;
     103        }
    104104
    105105        @Override
    106106        public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
    107                
    108                
     107
    109108                ArrayList<Relation> routes = new ArrayList<>();
    110                
    111                 for (OsmPrimitive primitive: newSelection) {
     109
     110                for (OsmPrimitive primitive : newSelection) {
    112111                        if (primitive.getType().equals(OsmPrimitiveType.RELATION)) {
    113112                                Relation relation = (Relation) primitive;
     
    115114                                        routes.add(relation);
    116115                                }
     116
    117117                        }
    118118                }
    119                
     119
    120120                if (!routes.isEmpty()) {
    121121                        this.primitives.clear();
     
    125125                        }
    126126                }
    127                
    128127
    129                
    130128        }
    131    
    132    
     129       
     130       
     131        /**
     132         * Listens to a focus change
     133         */
     134        @Override
     135        public void propertyChange(PropertyChangeEvent evt) {
     136
     137                if ("focusedWindow".equals(evt.getPropertyName())) {
     138
     139                        if (evt.getNewValue() == null) {
     140                                return;
     141                        }
     142
     143                        if (evt.getNewValue().getClass().equals(GenericRelationEditor.class)) {
     144                               
     145                                GenericRelationEditor editor = (GenericRelationEditor) evt.getNewValue();
     146                                Relation relation = editor.getRelation();
     147                               
     148                                if (RouteUtils.isTwoDirectionRoute(relation)) {
     149                                        this.primitives.clear();
     150                                        this.primitives.add(relation);
     151                                        if (!Main.getLayerManager().containsLayer(this)) {
     152                                                Main.getLayerManager().addLayer(this);
     153                                        }
     154//                                      Main.map.repaint();
     155                                }
     156
     157                        }
     158
     159//                      System.out.println("focusedWindow: ");
     160//                      System.out.println("GET NEW VALUE: " + evt.getNewValue().getClass());
     161//                      System.out.println("");
     162                }
     163        }
    133164}
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssitantValidatorTest.java

    r32427 r32430  
    4747                layer = new PTAssistantLayer();
    4848                DataSet.addSelectionListener(layer);
    49 
     49               
    5050        }
    5151
Note: See TracChangeset for help on using the changeset viewer.