package controlledparts; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Point; import java.awt.datatransfer.Clipboard; import java.awt.event.*; import javax.swing.TransferHandler; import javax.swing.text.Caret; public class ControlledTextArea extends javax.swing.JTextArea { TransferHandler transferHandler; Caret caret; public void setTextAt(int pos, String s){ String cs=this.getText(); int len=cs.length(); String head=cs.substring(0,pos); this.setText(head+s); } public void ControlledTextArea_textPasted() { /* this.frame.sendEvent("txt.set("+this.id+"," +this.getStrConst()+")"); */ String s=this.getText(); int p=0; int lengthAtOneTime=1200; // size of the sending text(byte) per one time int len=s.length(); while(p=lengthAtOneTime){ sx=s.substring(p,p+lengthAtOneTime); this.frame.sendEvent("txt.set("+this.id+"," +p+","+this.getStrConst(sx)+")\n"); p=p+lengthAtOneTime; } else{ sx=s.substring(p); this.frame.sendEvent("txt.set("+this.id+"," +p+","+this.getStrConst(sx)+")\n"); p=p+sx.length(); } } } public String getStrConst(String s) { // String s=this.getText(); String sx=""; int i=0; int len=s.length(); while(i=len) break; // c=s.charAt(i); sx=sx+c; i++; } else if(c=='\b'){ sx=sx+'\\'; sx=sx+'b'; i++; } else if(c=='\f'){ sx=sx+'\\'; sx=sx+'f'; i++; } else if((int)c==10){ sx=sx+"\\n"; i++; // if(i>=len) break; // c=s.charAt(i); // if((int)c==13) i++; } else if((int)c==13){ sx=sx+"\\n"; i++; // if(i>=len) break; // c=s.charAt(i); // if((int)c==10) i++; } else if(c=='\n'){ sx=sx+'\\'; sx=sx+"n"; i++; } else if(c=='\r'){ sx=sx+'\\'; sx=sx+"r"; i++; } else if(c=='\t'){ sx=sx+'\\'; sx=sx+"t"; i++; } else { sx=sx+c; i++; } // System.out.println(sx); } // Unicode ‚ð S-JIS Code ‚ɕϊ· // byte[] sjisCode = JavaStringToShiftJISString.convertAll( sx.toCharArray()); // String rtn=new String(sjisCode,0); String rtn="\""+sx+"\""; return rtn; } public void exitMouse() { this.rmouse.setVisible(false); this.repaint(); } public void enterMouse(int x, int y) { if(this.frame.isShowingRmouse()) this.rmouse.setVisible(true); else this.rmouse.setVisible(false); this.rmouse.resetColor(); rmouse.move(x,y); this.repaint(); } public void paint(Graphics g) { super.paint(g); rmouse.paint(g); } RemoteMouse rmouse; public void moveMouse(int x, int y) { rmouse.move(x,y); repaint(); } // String fileSeparator; public void pressMouse(int position,int x, int y) { this.setDragEnabled(true); int p=this.viewToModel(new Point(x,y)); setCaretPosition(p); rmouse.move(x,y); this.rmouse.setColor(Color.blue); this.setSelectionStart(p); selectionStartPoint=p; selectionEndPoint=p; repaint(); } boolean crReceived; int selectionStartPoint; int selectionEndPoint; String tempString; public void releaseMouse(int position,int x, int y) { rmouse.move(x,y); if((this.getText()).equals("")) return; int p=this.viewToModel(new Point(x,y)); // this.setSelectionEnd(position); this.setSelectionEnd(p); selectionEndPoint=p; if(selectionStartPoint==p) return; this.select(this.selectionStartPoint,this.selectionEndPoint); tempString=this.getSelectedText(); this.rmouse.resetColor(); repaint(); } public void dragMouse(int position,int x, int y) { rmouse.move(x,y); this.rmouse.setColor(Color.blue); int p=this.viewToModel(new Point(x,y)); this.selectionEndPoint=p; int start=0; int end=0; if(selectionEndPointlength){ post=""; pre=s.substring(0,length-1); position=length-1; } else post=s.substring(position+1,length); } setText(pre+post); setCaretPosition(position); } else if(key==127){ // when delete key if(length<=0) {setText(""); setCaretPosition(0); return; } // if(this.fileSeparator.equals("/")){ position--;} // position--; if(selectedStartlength){ post=""; pre=s.substring(0,length-1); position=length-1; } else post=s.substring(position+1,length); setText(pre+post); setCaretPosition(position); } else{ if(selectedStart=length) pre=s; else if(position>0) pre=s.substring(0,position); else {pre=""; position=0;} if(position