1 package org.opentrafficsim.editor.extensions;
2
3 import java.rmi.RemoteException;
4 import java.time.LocalDateTime;
5 import java.util.function.Consumer;
6
7 import javax.swing.JComponent;
8 import javax.swing.JLabel;
9
10 import org.djutils.event.Event;
11 import org.djutils.event.EventListener;
12 import org.opentrafficsim.editor.OtsEditor;
13 import org.opentrafficsim.editor.XsdTreeNode;
14 import org.opentrafficsim.editor.XsdTreeNodeRoot;
15
16
17
18
19
20
21
22
23
24 public class RouteEditor implements EventListener, Consumer<XsdTreeNode>
25 {
26
27 private static final long serialVersionUID = 20230313L;
28
29
30 private OtsEditor editor;
31
32
33
34
35
36
37 public RouteEditor(final OtsEditor editor) throws RemoteException
38 {
39 editor.addTab("Route", null, buildRoutePane(), null);
40 editor.addListener(this, OtsEditor.NEW_FILE);
41 this.editor = editor;
42 }
43
44
45
46
47
48 private static JComponent buildRoutePane()
49 {
50 JLabel route = new JLabel("route");
51 route.setOpaque(true);
52 route.setHorizontalAlignment(JLabel.CENTER);
53 return route;
54 }
55
56 @Override
57 public void notify(final Event event) throws RemoteException
58 {
59
60 if (event.getType().equals(OtsEditor.NEW_FILE))
61 {
62 XsdTreeNodeRoot root = (XsdTreeNodeRoot) event.getContent();
63 root.addListener(this, XsdTreeNodeRoot.NODE_CREATED);
64 }
65 else if (event.getType().equals(XsdTreeNodeRoot.NODE_CREATED))
66 {
67 XsdTreeNode node = (XsdTreeNode) ((Object[]) event.getContent())[0];
68 if (node.isType("Ots.Demand.Route"))
69 {
70 node.addConsumer("Show in panel...", this);
71 node.addConsumer("Compute shortest...", new Consumer<XsdTreeNode>()
72 {
73 @Override
74 public void accept(final XsdTreeNode t)
75 {
76 System.out.println("We are not going to do that.");
77 }
78 });
79 }
80 }
81 }
82
83 @Override
84 public void accept(final XsdTreeNode t)
85 {
86 JLabel label = ((JLabel) this.editor.getTab("Route"));
87 label.setText(LocalDateTime.now().toString());
88 this.editor.focusTab("Route");
89 }
90 }