Changeset 20384 in osm for applications


Ignore:
Timestamp:
2010-03-09T12:59:21+01:00 (14 years ago)
Author:
guggis
Message:

Initial version
New: toggle dialog for turn restrictions

Location:
applications/editors/josm/plugins/turnrestrictions
Files:
22 added
3 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/turnrestrictions/README

    r20378 r20384  
    44
    55turnrestrictions plugin is a plugin for the open source map editor
    6 JOSM. It allows to enter maintain information about turn restrictions
     6JOSM. It allows to maintain information about turn restrictions
    77in the OpenStreetMap database.                           
    88                         
    9 
     9SEE ALSO
     10========
     11http://wiki.openstreetmap.org/wiki/JOSM/Plugins/turnrestrictions
     12                         
    1013CREDIT
    1114======
    1215Initial development of this plugin was sponsored by skobbler GmbH, see
    13 http://beta.skobbler.de/.
     16http://www.skobbler.de/.
    1417
    15 Initial author: Karl Guggisberg
    1618 
    1719                         
  • applications/editors/josm/plugins/turnrestrictions/src/org/openstreetmap/josm/plugins/turnrestrictions/TurnRestrictionsListDialog.java

    r20378 r20384  
    1212import java.util.HashSet;
    1313import java.util.List;
     14import java.util.Set;
    1415
    1516import javax.swing.AbstractAction;
     
    2324
    2425import org.openstreetmap.josm.Main;
     26import org.openstreetmap.josm.actions.AutoScaleAction;
    2527import org.openstreetmap.josm.data.osm.OsmPrimitive;
    2628import org.openstreetmap.josm.data.osm.Relation;
    2729import org.openstreetmap.josm.data.osm.RelationMember;
    2830import org.openstreetmap.josm.gui.MapView;
     31import org.openstreetmap.josm.gui.SideButton;
    2932import org.openstreetmap.josm.gui.MapView.EditLayerChangeListener;
    3033import org.openstreetmap.josm.gui.dialogs.ToggleDialog;
     
    5659        private EditAction actEdit;
    5760        private DeleteAction actDelete; 
     61        private SelectSelectedTurnRestrictions actSelectSelectedTurnRestrictions;
     62        private ZoomToAction actZoomTo;
    5863        private SwitchListViewHandler switchListViewHandler;
    5964       
     
    101106                JPanel pnl = new JPanel(new FlowLayout(FlowLayout.LEFT,0,0));
    102107                pnl.setBorder(null);
    103                 pnl.add(new JButton(actNew = new NewAction()));
    104                 pnl.add(new JButton(actEdit = new EditAction()));
    105                 pnl.add(new JButton(actDelete = new DeleteAction()));
     108                pnl.add(new SideButton(actNew = new NewAction(), false /* don't show the name */));
     109                pnl.add(new SideButton(actEdit = new EditAction(), false /* don't show the name */));
     110                pnl.add(new SideButton(actDelete = new DeleteAction(), false /* don't show the name */));
     111               
     112                actSelectSelectedTurnRestrictions = new SelectSelectedTurnRestrictions();
     113                actZoomTo = new ZoomToAction();
    106114                return pnl;
    107115        }
     
    155163                                currentListView.removeListSelectionListener(actEdit);
    156164                                currentListView.removeListSelectionListener(actDelete);
     165                                currentListView.removeListSelectionListener(actSelectSelectedTurnRestrictions);
     166                                currentListView.removeListSelectionListener(actZoomTo);
    157167                                pnlContent.remove(currentListView);
    158168                        }
    159169                        pnlContent.add(view,BorderLayout.CENTER);
     170                        currentListView = view;                                         
    160171                        view.addListSelectionListener(actEdit);
    161172                        view.addListSelectionListener(actDelete);
     173                        view.addListSelectionListener(actSelectSelectedTurnRestrictions);
     174                        view.addListSelectionListener(actZoomTo);
    162175                        actEdit.updateEnabledState();
    163176                        actDelete.updateEnabledState();
    164                         currentListView = view;
     177                        actSelectSelectedTurnRestrictions.updateEnabledState();
     178                        actZoomTo.updateEnabledState();
    165179                        currentListView.revalidate();
    166180                        currentListView.repaint();
     
    188202            putValue(SHORT_DESCRIPTION,tr( "Open an editor for the selected turn restricion"));
    189203            putValue(SMALL_ICON, ImageProvider.get("dialogs", "edit"));
     204            putValue(NAME, tr("Edit"));
    190205            setEnabled(false);
    191206        }
     
    210225            if (!isEnabled())
    211226                return;
    212             List<Relation> toEdit = pnlTurnRestrictionsInDataSet.getModel().getSelectedTurnRestrictions();
     227            List<Relation> toEdit = currentListView.getModel().getSelectedTurnRestrictions();
    213228            if (toEdit.size() != 1) return;
    214229            launchEditor(toEdit.get(0));
     
    216231
    217232        public void updateEnabledState() {
    218                 setEnabled(pnlTurnRestrictionsInDataSet.getModel().getSelectedTurnRestrictions().size() == 1);
     233                setEnabled(currentListView!= null && currentListView.getModel().getSelectedTurnRestrictions().size() == 1);
    219234        }
    220235       
     
    234249            putValue(SHORT_DESCRIPTION,tr("Delete the selected turn restriction"));
    235250            putValue(SMALL_ICON, ImageProvider.get("dialogs", "delete"));
     251            putValue(NAME, tr("Delete"));
    236252            setEnabled(false);
    237253        }
     
    248264        public void actionPerformed(ActionEvent e) {
    249265            if (!isEnabled()) return;
    250             List<Relation> toDelete = pnlTurnRestrictionsInDataSet.getModel().getSelectedTurnRestrictions();
     266            List<Relation> toDelete = currentListView.getModel().getSelectedTurnRestrictions();
    251267            for (Relation r: toDelete) {
    252268                deleteRelation(r);
     
    255271       
    256272        public void updateEnabledState() {
    257                 setEnabled(!pnlTurnRestrictionsInDataSet.getModel().getSelectedTurnRestrictions().isEmpty());
     273                setEnabled(currentListView != null && !currentListView.getModel().getSelectedTurnRestrictions().isEmpty());
    258274        }
    259275
     
    270286        public NewAction() {
    271287            putValue(SHORT_DESCRIPTION,tr("Create a new turn restriction"));
    272             putValue(SMALL_ICON, ImageProvider.get("dialogs", "addrelation"));
     288            putValue(SMALL_ICON, ImageProvider.get("new"));
     289            putValue(NAME, tr("New"));
    273290            updateEnabledState();
    274291        }
     
    290307            updateEnabledState();
    291308                }
     309    }
     310   
     311    /**
     312     * Sets the selection of the current data set to the currently selected
     313     * turn restrictions.
     314     *
     315     */
     316    class SelectSelectedTurnRestrictions extends AbstractAction implements ListSelectionListener {
     317        class AbortException extends Exception {}
     318
     319        public SelectSelectedTurnRestrictions() {
     320            putValue(SHORT_DESCRIPTION,tr("Set the current JOSM selection to the selected turn restrictions"));
     321            putValue(SMALL_ICON, ImageProvider.get("selectall"));
     322            putValue(NAME, tr("Select in current data layer"));
     323            setEnabled(false);
     324        }
     325
     326        public void actionPerformed(ActionEvent e) {
     327            if (!isEnabled()) return;
     328            List<Relation> toSelect = currentListView.getModel().getSelectedTurnRestrictions();
     329            if (toSelect.isEmpty()) return;
     330            OsmDataLayer layer= Main.main.getEditLayer();
     331            if (layer == null) return;
     332            layer.data.setSelected(toSelect);
     333        }
     334       
     335        public void updateEnabledState() {
     336                setEnabled(currentListView != null && !currentListView.getModel().getSelectedTurnRestrictions().isEmpty());
     337        }
     338
     339        public void valueChanged(ListSelectionEvent e) {
     340                updateEnabledState();
     341        }
     342    }
     343   
     344    /**
     345     * Sets the selection of the current data set to the currently selected
     346     * turn restrictions.
     347     *
     348     */
     349    class ZoomToAction extends AbstractAction implements ListSelectionListener {
     350        class AbortException extends Exception {}
     351
     352        public ZoomToAction() {
     353            putValue(SHORT_DESCRIPTION,tr("Zoom to the currently selected turn restrictions"));
     354            putValue(SMALL_ICON, ImageProvider.get("dialogs/autoscale/selection"));
     355            putValue(NAME, tr("Zoom to"));
     356            setEnabled(false);
     357        }
     358
     359        public void actionPerformed(ActionEvent e) {
     360            if (!isEnabled()) return;
     361            List<Relation> toSelect = currentListView.getModel().getSelectedTurnRestrictions();
     362            if (toSelect.isEmpty()) return;
     363            OsmDataLayer layer= Main.main.getEditLayer();
     364            if (layer == null) return;
     365            layer.data.setSelected(toSelect);
     366            new AutoScaleAction("selection").autoScale();
     367        }
     368       
     369        public void updateEnabledState() {
     370                setEnabled(currentListView != null && !currentListView.getModel().getSelectedTurnRestrictions().isEmpty());
     371        }
     372
     373        public void valueChanged(ListSelectionEvent e) {
     374                updateEnabledState();
     375        }
    292376    }
    293377   
     
    320404            add(actEdit);
    321405            add(actDelete);
     406            addSeparator();
     407            add(actSelectSelectedTurnRestrictions);
     408            add(actZoomTo);
    322409        }
    323410    }
  • applications/editors/josm/plugins/turnrestrictions/src/org/openstreetmap/josm/plugins/turnrestrictions/TurnRestrictionsPlugin.java

    r20378 r20384  
    22
    33import org.openstreetmap.josm.gui.MapFrame;
     4import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
    45import org.openstreetmap.josm.plugins.Plugin;
    56import org.openstreetmap.josm.plugins.PluginInformation;
     7import org.openstreetmap.josm.plugins.turnrestrictions.preferences.PreferenceEditor;
    68
     9/**
     10 * This is the main class for the turnrestriction plugin.
     11 *
     12 */
    713public class TurnRestrictionsPlugin extends Plugin{
     14       
    815        public TurnRestrictionsPlugin(PluginInformation info) {
    916                super(info);
     
    2128                }
    2229        }
     30
     31        @Override
     32        public PreferenceSetting getPreferenceSetting() {
     33                return new PreferenceEditor();
     34        }
    2335}
Note: See TracChangeset for help on using the changeset viewer.