source: java/main/src/main/java/com/framsticks/gui/console/TrackConsole.java @ 193

Last change on this file since 193 was 193, checked in by Maciej Komosinski, 10 years ago

Set svn:eol-style native for all textual files

  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1package com.framsticks.gui.console;
2
3import java.awt.BorderLayout;
4import java.awt.event.ActionEvent;
5import java.awt.event.ActionListener;
6
7import javax.swing.Box;
8import javax.swing.BoxLayout;
9import javax.swing.JCheckBox;
10
11import com.framsticks.communication.Connection;
12import com.framsticks.communication.ConnectionListener;
13import com.framsticks.params.annotations.AutoAppendAnnotation;
14import com.framsticks.params.annotations.FramsClassAnnotation;
15
16@FramsClassAnnotation
17public class TrackConsole extends Console implements ConnectionListener {
18
19        volatile boolean writeOut = true;
20        volatile boolean writeIn = true;
21
22        public TrackConsole() {
23        }
24
25        @AutoAppendAnnotation
26        public TrackConsole setConnection(Connection connection) {
27                this.connection = connection;
28                return this;
29        }
30
31        @Override
32        protected void joinableStart() {
33                super.joinableStart();
34                connection.getListeners().add(this);
35        }
36
37        @Override
38        protected void joinableInterrupt() {
39                connection.getListeners().remove(this);
40                super.joinableInterrupt();
41        }
42
43        @Override
44        public void connectionOutgoing(String line) {
45                if (writeOut) {
46                        dispatchWrite(line);
47                }
48        }
49
50        @Override
51        public void connectionIncomming(String line) {
52                if (writeIn) {
53                        dispatchWrite(line);
54                }
55        }
56
57        @Override
58        protected void initializeGui() {
59                super.initializeGui();
60
61                final Box box = new Box(BoxLayout.LINE_AXIS);
62
63                final JCheckBox outCheckbox = new JCheckBox();
64                outCheckbox.setText("Show out");
65                outCheckbox.setSelected(true);
66                outCheckbox.addActionListener(new ActionListener() {
67                        @Override
68                        public void actionPerformed(ActionEvent arg0) {
69                                writeOut = outCheckbox.isSelected();
70                        }
71                });
72
73                final JCheckBox inCheckbox = new JCheckBox();
74                inCheckbox.setText("Show in");
75                inCheckbox.setSelected(true);
76                inCheckbox.addActionListener(new ActionListener() {
77                        @Override
78                        public void actionPerformed(ActionEvent arg0) {
79                                writeIn = inCheckbox.isSelected();
80                        }
81                });
82
83                box.add(outCheckbox);
84                box.add(Box.createHorizontalStrut(10));
85                box.add(inCheckbox);
86
87                panel.add(box, BorderLayout.PAGE_END);
88        }
89
90}
Note: See TracBrowser for help on using the repository browser.