Changeset 33362 in osm for applications/editors/josm


Ignore:
Timestamp:
2017-06-01T12:16:44+02:00 (7 years ago)
Author:
giackserva
Message:

closed #josm14873

Location:
applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant
Files:
1 added
3 edited

Legend:

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

    r33346 r33362  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.plugins.pt_assistant;
     3
     4import java.util.ArrayList;
     5import java.util.List;
    36
    47import javax.swing.JMenuItem;
     
    69
    710import org.openstreetmap.josm.Main;
     11import org.openstreetmap.josm.data.osm.Relation;
    812import org.openstreetmap.josm.data.validation.OsmValidator;
    913import org.openstreetmap.josm.gui.IconToggleButton;
     
    1418import org.openstreetmap.josm.plugins.PluginInformation;
    1519import org.openstreetmap.josm.plugins.pt_assistant.actions.AddStopPositionAction;
     20import org.openstreetmap.josm.plugins.pt_assistant.actions.EditHighlightedRelationsAction;
    1621import org.openstreetmap.josm.plugins.pt_assistant.actions.RepeatLastFixAction;
    1722import org.openstreetmap.josm.plugins.pt_assistant.data.PTRouteSegment;
     
    3338    private static PTRouteSegment lastFix;
    3439
     40    /* list of relation currently highlighted by the layer */
     41    private static List<Relation> highlightedRelations;
     42
    3543    /* item of the Tools menu for repeating the last fix */
    3644    private static JMenuItem repeatLastFixMenu;
     45
     46    /* edit the currently highlighted relations */
     47    private static JMenuItem editHighlightedRelationsMenu;
    3748
    3849    /**
     
    4859        OsmValidator.addTest(PTAssistantValidatorTest.class);
    4960
     61        highlightedRelations = new ArrayList<>();
    5062        RepeatLastFixAction repeatLastFixAction = new RepeatLastFixAction();
     63        EditHighlightedRelationsAction editHighlightedRelationsAction = new EditHighlightedRelationsAction();
    5164        repeatLastFixMenu = MainMenu.add(Main.main.menu.toolsMenu, repeatLastFixAction, false);
     65        editHighlightedRelationsMenu = MainMenu.add(Main.main.menu.toolsMenu, editHighlightedRelationsAction, false);
    5266    }
    5367
     
    5973        if (oldFrame == null && newFrame != null) {
    6074            repeatLastFixMenu.setEnabled(false);
     75            editHighlightedRelationsMenu.setEnabled(false);
    6176            Main.map.addMapMode(new IconToggleButton(new AddStopPositionAction()));
    6277        } else if (oldFrame != null && newFrame == null) {
    6378            repeatLastFixMenu.setEnabled(false);
     79            editHighlightedRelationsMenu.setEnabled(false);
    6480        }
    6581    }
     
    103119    }
    104120
     121        public static List<Relation> getHighlightedRelations() {
     122                return new ArrayList<>(highlightedRelations);
     123        }
     124
     125        public static void addHighlightedRelation(Relation highlightedRelation) {
     126                highlightedRelations.add(highlightedRelation);
     127                if(!editHighlightedRelationsMenu.isEnabled()) {
     128                        SwingUtilities.invokeLater(new Runnable() {
     129                    @Override
     130                    public void run() {
     131                        editHighlightedRelationsMenu.setEnabled(true);
     132                    }
     133                });
     134                }
     135
     136        }
     137
     138        public static void clearHighlightedRelations() {
     139                highlightedRelations.clear();
     140                SwingUtilities.invokeLater(new Runnable() {
     141            @Override
     142            public void run() {
     143                editHighlightedRelationsMenu.setEnabled(false);
     144            }
     145        });
     146        }
    105147}
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/PTAssistantLayer.java

    r33345 r33362  
    3333import org.openstreetmap.josm.gui.layer.LayerPositionStrategy;
    3434import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     35import org.openstreetmap.josm.plugins.pt_assistant.PTAssistantPlugin;
    3536import org.openstreetmap.josm.plugins.pt_assistant.data.PTWay;
    3637import org.openstreetmap.josm.plugins.pt_assistant.utils.RouteUtils;
     
    265266            event.scheduleRemoval(Collections.singleton(this));
    266267
    267         if(event.getRemovedLayer() == this)
     268        if(event.getRemovedLayer() == this) {
    268269                PTAssistantLayerManager.PTLM.resetLayer();
     270                PTAssistantPlugin.clearHighlightedRelations();
     271        }
    269272    }
    270273
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/PTAssistantLayerManager.java

    r33345 r33362  
    88import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
    99import org.openstreetmap.josm.data.osm.Relation;
     10import org.openstreetmap.josm.plugins.pt_assistant.PTAssistantPlugin;
    1011import org.openstreetmap.josm.plugins.pt_assistant.utils.RouteUtils;
    1112
     
    4041                    routes.add(primitive);
    4142                }
    42 
    4343            }
    4444        }
     
    4646        if (!routes.isEmpty()) {
    4747                getLayer().setPrimitives(routes);
     48                PTAssistantPlugin.clearHighlightedRelations();
     49                for(OsmPrimitive primitive : routes)
     50                        PTAssistantPlugin.addHighlightedRelation((Relation) primitive);
    4851        }
    49 
    5052    }
    5153}
Note: See TracChangeset for help on using the changeset viewer.