package controlledparts; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import javax.swing.JScrollBar; public class ControlledTextField extends javax.swing.JTextField { public void ControlledTextField_textPasted() { this.frame.sendEvent("fld.set("+this.id+"," +this.getStrConst()+")"); } FrameWithControlledTextField frame; JScrollBar horizontalScrollBar; JScrollBar virticalScrollBar; RemoteMouse rmouse; String fileSeparator; boolean crReceived; int selectionStartPoint; int selectionEndPoint; String tempString; int id; public String getStrConst() { 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=='\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); } public void moveMouse(int x, int y) { rmouse.move(x,y); repaint(); } public void pressMouse(int position,int x, int y) { rmouse.move(x,y); this.rmouse.setColor(Color.blue); setCaretPosition(position); this.setSelectionStart(position); selectionStartPoint=position; selectionEndPoint=position; // tempString=""; repaint(); } public void releaseMouse(int position,int x, int y) { rmouse.move(x,y); if((this.getText()).equals("")) return; this.setSelectionEnd(position); selectionEndPoint=position; if(selectionStartPoint==position) return; this.select(this.selectionStartPoint,this.selectionEndPoint); tempString=this.getSelectedText(); // System.out.println("mouse released at carat "+position); this.rmouse.resetColor(); repaint(); } public void dragMouse(int position,int x, int y) { rmouse.move(x,y); this.rmouse.setColor(Color.blue); this.setSelectionEnd(position); selectionEndPoint=position; this.select(this.selectionStartPoint,this.selectionEndPoint); repaint(); } public void clickMouse(int position,int x, int y) { rmouse.move(x,y); this.rmouse.setColor(Color.blue); setCaretPosition(position); this.setSelectionStart(position); selectionStartPoint=position; selectionEndPoint=position; // tempString=""; repaint(); try{ Thread.sleep(80); } catch(InterruptedException e){} this.rmouse.resetColor(); repaint(); } public void typeKey(int position, int key) { String s=getText(); String pre=""; String post=""; int length=s.length(); // System.out.println("s="+s+" len="+length+" position="+position+" key="+key); if(key==(int)('\r')||key==(int)('\n')){ // return, enter, new-line, CR, LF // crReceived=true; if(position>length-1){ pre=s; post=""; } else{ pre=s.substring(0,position-1); post=s.substring(position-1,length); } // setText(pre+(char)key+post); setText(pre+"\n"+post); repaint(); return; } crReceived=false; if(key==8){ // when back space key if(length<=0) {setText(""); setCaretPosition(0); return; } if(this.fileSeparator.equals("/")){ position--;} // position--; if(position<1) pre=""; else pre=s.substring(0,position); if(pre.length()<=0) post=s.substring(1,length); else if(position+1>length){ post=""; pre=s.substring(0,length-1); position=length-1; } else post=s.substring(position+1,length); setText(pre+post); setCaretPosition(position); } else{ if(position>=length) pre=s; else if(position>0) pre=s.substring(0,position); else {pre=""; position=0;} if(position