Ignore:
Timestamp:
2009-04-03T13:19:41+02:00 (15 years ago)
Author:
juangui
Message:

Menu items are enabled or disabled according to availability of a routing layer.

Location:
applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/RoutingPlugin.java

    r14365 r14395  
    113113     */
    114114    private IconToggleButton moveRouteNodeButton;
     115
     116    /**
     117     * IconToggleButton for moving route nodes, we use this field to show or hide the button.
     118     */
     119    private RoutingMenu menu;
    115120
    116121    /**
     
    133138        // Add routing layer
    134139        routingLayer = new RoutingLayer(tr("Navigation"));
    135         Main.main.menu.add(new RoutingMenu(tr("Routing")));
     140        // Add menu
     141        menu = new RoutingMenu(tr("Routing"));
     142        Main.main.menu.add(menu);
    136143        // Register this class as LayerChangeListener
    137144        Layer.listeners.add(this);
     
    188195                        removeRouteNodeButton.setVisible(false);
    189196                        moveRouteNodeButton.setVisible(false);
     197                        // Enable menu
     198                        menu.enableStartItem();
    190199            newFrame.addToggleDialog(routingDialog);
    191200        }
     
    209218                        removeRouteNodeButton.setVisible(true);
    210219                        moveRouteNodeButton.setVisible(true);
     220                        menu.enableRestOfItems();
    211221                        logger.debug("Added routing layer.");
    212222                }
     
    223233                        removeRouteNodeButton.setVisible(false);
    224234                        moveRouteNodeButton.setVisible(false);
     235                        menu.disableRestOfItems();
    225236                logger.debug("Removed routing layer.");
    226237                }
  • applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/gui/RoutingMenu.java

    r14287 r14395  
    6060        private static final long serialVersionUID = 3559922048225708480L;
    6161
     62        private JMenuItem startMI;
     63        private JMenuItem reverseMI;
     64        private JMenuItem clearMI;
     65        private JMenu criteriaM;
     66
    6267        /**
    6368         * @param s
     
    7176                JMenu m;
    7277
    73                 mi = new JMenuItem(tr("Start routing"));
    74                 mi.addActionListener(new ActionListener() {
     78                startMI = new JMenuItem(tr("Start routing"));
     79                startMI.addActionListener(new ActionListener() {
    7580                        public void actionPerformed(ActionEvent e) {
    7681                                if(!routingLayer.isLayerAdded()) {
     
    8085                        }
    8186                });
    82                 this.add(mi);
     87                this.add(startMI);
    8388
    8489                this.addSeparator();
    8590                ButtonGroup group = new ButtonGroup();
    8691
    87                 m = new JMenu(tr("Criteria"));
     92                criteriaM = new JMenu(tr("Criteria"));
    8893
    8994                JRadioButtonMenuItem rshorter = new JRadioButtonMenuItem(tr("Shortest"));
     
    110115                group.add(rshorter);
    111116                group.add(rfaster);
    112                 m.add(rshorter);
    113                 m.add(rfaster);
     117                criteriaM.add(rshorter);
     118                criteriaM.add(rfaster);
    114119
    115                 m.addSeparator();
     120                criteriaM.addSeparator();
    116121                JCheckBoxMenuItem cbmi = new JCheckBoxMenuItem("Ignore oneways");
    117122                cbmi.addItemListener(new ItemListener() {
     
    125130                        }
    126131                });
    127                 m.add(cbmi);
    128                 this.add(m);
     132                criteriaM.add(cbmi);
     133                this.add(criteriaM);
    129134
    130135                this.addSeparator();
    131                 mi = new JMenuItem(tr("Reverse route"));
    132                 mi.addActionListener(new ActionListener() {
     136                reverseMI = new JMenuItem(tr("Reverse route"));
     137                reverseMI.addActionListener(new ActionListener() {
    133138                        public void actionPerformed(ActionEvent e) {
    134139                                routingModel.reverseNodes();
     
    136141                        }
    137142                });
    138                 this.add(mi);
     143                this.add(reverseMI);
    139144
    140                 mi = new JMenuItem(tr("Clear route"));
    141                 mi.addActionListener(new ActionListener() {
     145                clearMI = new JMenuItem(tr("Clear route"));
     146                clearMI.addActionListener(new ActionListener() {
    142147                        public void actionPerformed(ActionEvent e) {
    143148                                // Reset routing nodes and paths
     
    147152                        }
    148153                });
    149                 this.add(mi);
     154                this.add(clearMI);
    150155
     156                // Initially disabled
     157                disableAllItems();
    151158        }
    152159
     160        public void disableAllItems() {
     161                startMI.setEnabled(false);
     162                reverseMI.setEnabled(false);
     163                clearMI.setEnabled(false);
     164                criteriaM.setEnabled(false);
     165        }
    153166
     167        public void enableStartItem() {
     168                startMI.setEnabled(true);
     169        }
     170
     171        public void enableRestOfItems() {
     172                reverseMI.setEnabled(true);
     173                clearMI.setEnabled(true);
     174                criteriaM.setEnabled(true);
     175        }
     176
     177        public void disableRestOfItems() {
     178                reverseMI.setEnabled(false);
     179                clearMI.setEnabled(false);
     180                criteriaM.setEnabled(false);
     181        }
    154182}
Note: See TracChangeset for help on using the changeset viewer.