source: subversion/applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/gui/RoutingDialog.java

Last change on this file was 33794, checked in by donvip, 18 months ago

update to JOSM 12840

File size: 3.1 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package com.innovant.josm.plugin.routing.gui;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.ComponentOrientation;
7import java.awt.event.KeyEvent;
8
9import javax.swing.DefaultListModel;
10import javax.swing.JList;
11import javax.swing.JScrollPane;
12
13import org.openstreetmap.josm.data.osm.Node;
14import org.openstreetmap.josm.gui.MainApplication;
15import org.openstreetmap.josm.gui.dialogs.ToggleDialog;
16import org.openstreetmap.josm.tools.Shortcut;
17
18import com.innovant.josm.plugin.routing.RoutingLayer;
19import com.innovant.josm.plugin.routing.RoutingModel;
20
21
22/**
23 * @author jose
24 *
25 */
26public class RoutingDialog extends ToggleDialog {
27
28    private final DefaultListModel<String> model;
29    private JList<String> jList = null;
30    private JScrollPane jScrollPane = null;
31
32    /**
33     * Serial UID
34     */
35    private static final long serialVersionUID = 8625615652900341987L;
36
37    public RoutingDialog() {
38        super(tr("Routing"), "routing", tr("Open a list of routing nodes"),
39                Shortcut.registerShortcut("subwindow:routing", tr("Toggle: {0}", tr("Routing")), KeyEvent.VK_R, Shortcut.ALT_CTRL_SHIFT), 150);
40        model = new DefaultListModel<>();
41        createLayout(getJScrollPane(), false, null);
42    }
43
44    /**
45     * This method initializes jScrollPane
46     *
47     * @return javax.swing.JScrollPane
48     */
49    private JScrollPane getJScrollPane() {
50        if (jScrollPane == null) {
51            jScrollPane = new JScrollPane();
52            jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
53            jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
54            jScrollPane.setViewportView(getJList());
55        }
56        return jScrollPane;
57    }
58
59    /**
60     * This method initializes jList
61     *
62     * @return javax.swing.JList
63     */
64    private JList<String> getJList() {
65        if (jList == null) {
66            jList = new JList<>();
67            jList.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
68            jList.setModel(model);
69        }
70        return jList;
71    }
72
73    /**
74     * Remove item from the list of nodes
75     */
76    public void removeNode(int index) {
77        model.remove(index);
78    }
79
80    /**
81     * Add item to the list of nodes
82     */
83    public void addNode(Node n) {
84        model.addElement(n.getId()+" ["+n.getCoor().toDisplayString()+"]");
85    }
86
87    /**
88     * Insert item to the list of nodes
89     */
90    public void insertNode(int index, Node n) {
91        model.insertElementAt(n.getId()+" ["+n.getCoor().toDisplayString()+"]", index);
92    }
93
94    /**
95     * Clear list of nodes
96     */
97    public void clearNodes() {
98        model.clear();
99    }
100
101    public void refresh() {
102        clearNodes();
103        if (MainApplication.getLayerManager().getActiveLayer() instanceof RoutingLayer) {
104            RoutingLayer routingLayer = (RoutingLayer) MainApplication.getLayerManager().getActiveLayer();
105            RoutingModel routingModel = routingLayer.getRoutingModel();
106            for (Node n : routingModel.getSelectedNodes()) {
107                addNode(n);
108            }
109        }
110    }
111}
Note: See TracBrowser for help on using the repository browser.