comparison src/remoteeditor/editors/RemoteEditor.java @ 117:a441426fe48a

*** empty log message ***
author pin
date Sun, 23 Dec 2007 17:22:18 +0900
parents 65ba9545fa49
children ad836eeae5bd
comparison
equal deleted inserted replaced
116:cf4df4f73605 117:a441426fe48a
130 } 130 }
131 public void textChanged(TextEvent event) { 131 public void textChanged(TextEvent event) {
132 String replacedText = event.getReplacedText(); 132 String replacedText = event.getReplacedText();
133 String inputText = event.getText(); 133 String inputText = event.getText();
134 134
135 // �y�[�W�擪����̕�����(��s��܂�)�ɂ��W 135 //ページ先頭からの文字数による座標(改行を含む)
136 int textOffset = event.getOffset(); 136 int textOffset = event.getOffset();
137 137
138 System.out.println("replace = " + replacedText); 138 System.out.println("replace = " + replacedText);
139 System.out.println("input = " + inputText + " : " + inputText.length()); 139 System.out.println("input = " + inputText + " : " + inputText.length());
140 140
143 int length = 0; 143 int length = 0;
144 int cmd = 0; 144 int cmd = 0;
145 int numberOfLinesNew = 0; 145 int numberOfLinesNew = 0;
146 String lineText = null; 146 String lineText = null;
147 try { 147 try {
148 line = document.getNumberOfLines(0, textOffset); // lineno ��擾���Ă܂��B 148 line = document.getNumberOfLines(0, textOffset); // lineno を取得してます。
149 offset = document.getLineOffset(line-1); 149 offset = document.getLineOffset(line-1);
150 length = document.getLineLength(line-1); 150 length = document.getLineLength(line-1);
151 lineText = document.get(offset, length); 151 lineText = document.get(offset, length);
152 numberOfLinesNew = document.getNumberOfLines(); 152 numberOfLinesNew = document.getNumberOfLines();
153 } catch (BadLocationException e1) { 153 } catch (BadLocationException e1) {
154 e1.printStackTrace(); 154 e1.printStackTrace();
155 } 155 }
156 if(numberOfLinesNew > numberOfLinesOld){ 156 if(numberOfLinesNew > numberOfLinesOld){
157 //insert, delete, replace �� �s���Ŕ��f 157 //insert, delete, replace 行数で判断
158 cmd = REP.REPCMD_INSERT; 158 cmd = REP.REPCMD_INSERT;
159 if(inputText.equals("\n")){ 159 if(inputText.equals("\n")){
160 line--; 160 line--;
161 } 161 }
162 lineText = inputText; 162 lineText = inputText;
256 case REP.SMCMD_SELECT_ACK: 256 case REP.SMCMD_SELECT_ACK:
257 mysid = command.sid; 257 mysid = command.sid;
258 break; 258 break;
259 case REP.REPCMD_INSERT: 259 case REP.REPCMD_INSERT:
260 try { 260 try {
261 if(command.eid == myeid) break; //���ƂŏB� 261 if(command.eid == myeid) break; //mergerを導入する時に消す
262 textInsert(command.lineno, command.len, command.string); 262 textInsert(command.lineno, command.len, command.string);
263 } catch (Exception e) { 263 } catch (Exception e) {
264 e.printStackTrace(); 264 e.printStackTrace();
265 } 265 }
266 break; 266 break;
267 case REP.REPCMD_REPLACE: 267 case REP.REPCMD_REPLACE:
268 try { 268 try {
269 if(command.eid == myeid) break;//���ƂŏB� 269 if(command.eid == myeid) break;//mergerを導入する時に消す
270 repsend.send(command); 270 repsend.send(command);
271 changeText(command.cmd, command.lineno, command.len, command.string); 271 changeText(command.cmd, command.lineno, command.len, command.string);
272 } catch (Exception e1) { 272 } catch (Exception e1) {
273 e1.printStackTrace(); 273 e1.printStackTrace();
274 } 274 }
275 break; 275 break;
276 case REP.REPCMD_DELETE: 276 case REP.REPCMD_DELETE:
277 try { 277 try {
278 if(command.eid == myeid) break;//���ƂŏB� 278 if(command.eid == myeid) break;//mergerを導入する時に消す
279 textDelete(command.lineno, command.len, command.string); 279 textDelete(command.lineno, command.len, command.string);
280 } catch (BadLocationException e1) { 280 } catch (BadLocationException e1) {
281 e1.printStackTrace(); 281 e1.printStackTrace();
282 } 282 }
283 break; 283 break;