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 OtsEditor editor;
28
29
30
31
32
33
34 public RouteEditor(final OtsEditor editor) throws RemoteException
35 {
36 editor.addTab("Route", null, buildRoutePane(), null);
37 editor.addListener(this, OtsEditor.NEW_FILE);
38 this.editor = editor;
39 }
40
41
42
43
44
45 private static JComponent buildRoutePane()
46 {
47 JLabel route = new JLabel("route");
48 route.setOpaque(true);
49 route.setHorizontalAlignment(JLabel.CENTER);
50 return route;
51 }
52
53 @Override
54 public void notify(final Event event)
55 {
56
57 if (event.getType().equals(OtsEditor.NEW_FILE))
58 {
59 XsdTreeNodeRoot root = (XsdTreeNodeRoot) event.getContent();
60 root.addListener(this, XsdTreeNodeRoot.NODE_CREATED);
61 }
62 else if (event.getType().equals(XsdTreeNodeRoot.NODE_CREATED))
63 {
64 XsdTreeNode node = (XsdTreeNode) ((Object[]) event.getContent())[0];
65 if (node.isType("Ots.Demand.Route"))
66 {
67 node.addConsumer("Show in panel...", this);
68 node.addConsumer("Compute shortest...", new Consumer<XsdTreeNode>()
69 {
70 @Override
71 public void accept(final XsdTreeNode t)
72 {
73 System.out.println("We are not going to do that.");
74 }
75 });
76 }
77 }
78 }
79
80 @Override
81 public void accept(final XsdTreeNode t)
82 {
83 JLabel label = ((JLabel) this.editor.getTab("Route").get());
84 label.setText(LocalDateTime.now().toString());
85 this.editor.focusTab("Route");
86 }
87 }