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.JLabel;
8
9 import org.djutils.event.Event;
10 import org.djutils.event.EventListener;
11 import org.opentrafficsim.editor.OtsEditor;
12 import org.opentrafficsim.editor.XsdTreeNode;
13 import org.opentrafficsim.editor.XsdTreeNodeRoot;
14
15
16
17
18
19
20
21
22
23 public class TrafCodEditor implements EventListener, Consumer<XsdTreeNode>
24 {
25
26 private OtsEditor editor;
27
28
29
30
31
32
33 public TrafCodEditor(final OtsEditor editor) throws RemoteException
34 {
35 editor.addListener(this, OtsEditor.NEW_FILE);
36 this.editor = editor;
37 }
38
39 @Override
40 public void notify(final Event event)
41 {
42
43 if (event.getType().equals(OtsEditor.NEW_FILE))
44 {
45 XsdTreeNodeRoot root = (XsdTreeNodeRoot) event.getContent();
46 root.addListener(this, XsdTreeNodeRoot.NODE_CREATED);
47 }
48 else if (event.getType().equals(XsdTreeNodeRoot.NODE_CREATED))
49 {
50 XsdTreeNode node = (XsdTreeNode) ((Object[]) event.getContent())[0];
51 if (node.isType("Ots.Control.TrafCod.Program"))
52 {
53 node.addConsumer("Configure...", this);
54 }
55 }
56 }
57
58 @Override
59 public void accept(final XsdTreeNode t)
60 {
61 JLabel label = (JLabel) this.editor.getTab("Text").get();
62 label.setText(LocalDateTime.now().toString());
63 this.editor.focusTab("Text");
64 }
65 }