annotate test/editortest/REPSimpleEditor.java @ 415:648c676bf9df

REPSimpleEditor
author one
date Tue, 09 Dec 2008 16:34:41 +0900
parents 784a4d67e6a5
children b7f42fc75a36
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
414
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
1 package test.editortest;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
2
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
3 import java.awt.BorderLayout;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
4 import java.awt.Dimension;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
5 import java.awt.Font;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
6 import java.awt.event.ActionEvent;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
7 import java.awt.event.ActionListener;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
8
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
9 import javax.swing.JButton;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
10 import javax.swing.JFrame;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
11 import javax.swing.JScrollPane;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
12 import javax.swing.JSplitPane;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
13 import javax.swing.JTextArea;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
14 import javax.swing.JToolBar;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
15 import javax.swing.event.DocumentEvent;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
16 import javax.swing.event.DocumentListener;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
17 import javax.swing.text.BadLocationException;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
18 import javax.swing.text.Document;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
19
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
20 import rep.REP;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
21 import rep.REPCommand;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
22 import test.Text;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
23
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
24 public class REPSimpleEditor extends JFrame implements DocumentListener, ActionListener, LogTarget{
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
25
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
26 /**
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
27 *
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
28 */
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
29 private static final long serialVersionUID = 1L;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
30 private String BR = System.getProperty("line.separator");
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
31 private Document document;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
32 private JTextArea textArea;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
33 private int seq;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
34 private int eid;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
35 private int sid;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
36 private JButton putButton;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
37 private JButton joinButton;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
38 private REPText repText;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
39 private TestEditor2 testEditor;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
40 private JSplitPane splitPane;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
41 private JScrollPane scrollPane1;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
42 private JTextArea console;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
43 private JScrollPane scrollPane2;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
44
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
45 public REPSimpleEditor(String title){
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
46 super(title);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
47 setSize(new Dimension(640, 480));
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
48 this.setLayout(new BorderLayout());
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
49
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
50 setToolBar();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
51 setEditor();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
52 setConsole();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
53 setSplitPane();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
54 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
55
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
56 public REPSimpleEditor(){
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
57 this("Sample Editor");
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
58 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
59
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
60 private void setToolBar() {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
61 JToolBar toolbar = new JToolBar();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
62 putButton = new JButton("put");
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
63 joinButton = new JButton("join");
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
64
415
648c676bf9df REPSimpleEditor
one
parents: 414
diff changeset
65 //putButton.addActionListener(this);
648c676bf9df REPSimpleEditor
one
parents: 414
diff changeset
66 //joinButton.addActionListener(this);
414
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
67
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
68 toolbar.add(putButton);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
69 toolbar.add(joinButton);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
70 add(toolbar, BorderLayout.NORTH);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
71 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
72
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
73 private void setEditor(){
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
74 textArea = new JTextArea();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
75 textArea.setFont(new Font("Monaco", Font.PLAIN, textArea.getFont().getSize()));
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
76 document = textArea.getDocument();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
77 document.addDocumentListener(this);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
78
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
79 scrollPane1 = new JScrollPane(textArea);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
80
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
81 repText = new REPTextImpl(textArea);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
82 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
83
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
84 private void setConsole(){
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
85 console = new JTextArea();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
86 console.setFont(new Font("Monaco", Font.PLAIN, console.getFont().getSize()));
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
87 console.setEditable(false);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
88 scrollPane2 = new JScrollPane(console);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
89 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
90
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
91 private void setSplitPane(){
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
92 splitPane = new JSplitPane();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
93 splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
94 splitPane.add(scrollPane1, JSplitPane.TOP);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
95 splitPane.add(scrollPane2, JSplitPane.BOTTOM);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
96 splitPane.setDividerLocation(300);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
97 add(splitPane, BorderLayout.CENTER);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
98 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
99
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
100 private REPCommand createREPCommand(int offset, int length) {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
101 REPCommand command = null;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
102 try {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
103 int lineno = textArea.getLineOfOffset(offset);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
104 int lineStart = textArea.getLineStartOffset(lineno);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
105 int lineEnd = textArea.getLineEndOffset(lineno);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
106 String text = textArea.getText(lineStart, lineEnd-lineStart);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
107 command = new REPCommand(REP.REPCMD_INSERT_USER, sid, eid, seq++, lineno, text);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
108 } catch (BadLocationException e1) {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
109 e1.printStackTrace();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
110 }
415
648c676bf9df REPSimpleEditor
one
parents: 414
diff changeset
111 //Logger.printT(command);
414
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
112 return command;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
113 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
114
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
115 public void changedUpdate(DocumentEvent e) {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
116 Logger.print(e);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
117 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
118
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
119 public void insertUpdate(DocumentEvent e) {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
120 int offset = e.getOffset();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
121 int length = e.getLength();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
122 createREPCommand(offset, length);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
123 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
124
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
125 public void removeUpdate(DocumentEvent e) {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
126 Logger.print(e);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
127 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
128
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
129 public void actionPerformed(ActionEvent e) {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
130 if(e.getSource() == putButton){
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
131 repPut();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
132 }else if(e.getSource() == joinButton){
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
133 repJoin();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
134 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
135 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
136
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
137 private void repJoin() {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
138 testEditor = new TestEditor2("TestEditor", "localhost", 8766, false);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
139 testEditor.setREPText(repText);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
140 testEditor.setLogTarget(this);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
141 testEditor.start();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
142 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
143
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
144 private void repPut() {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
145 setMasterText();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
146 testEditor = new TestEditor2("TestEditor", "localhost", 8766, true);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
147 testEditor.setText(repText.list());
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
148 testEditor.setREPText(repText);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
149 testEditor.setLogTarget(this);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
150 testEditor.start();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
151 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
152
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
153 private void setMasterText() {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
154 textArea.append("AAAAA" + BR);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
155 textArea.append("BBBBB" + BR);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
156 textArea.append("CCCCC" + BR);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
157 textArea.append("DDDDD" + BR);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
158 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
159
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
160 public void printLog(Object obj) {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
161 String log = obj.toString();
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
162 console.append(log + BR);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
163 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
164
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
165 public REPText getREPText() {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
166 return repText;
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
167 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
168
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
169 public void setText(Text text) {
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
170 for(String str : text){
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
171 textArea.append(str + BR);
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
172 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
173 }
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
174
784a4d67e6a5 (no commit message)
one
parents:
diff changeset
175 }