# HG changeset patch # User ichikitakahiro # Date 1574921557 -32400 # Node ID 1c37472fc00dbf4f6bc0acadc31a8225fbc07f7a # Parent 3bee0ab985a4ce7ac64b9168245d44ccc30a1ed4 add catch command from editors diff -r 3bee0ab985a4 -r 1c37472fc00d src/main/java/christie/remotingTextEditor/CatchDG.java --- a/src/main/java/christie/remotingTextEditor/CatchDG.java Tue Nov 19 16:59:41 2019 +0900 +++ b/src/main/java/christie/remotingTextEditor/CatchDG.java Thu Nov 28 15:12:37 2019 +0900 @@ -4,15 +4,24 @@ import christie.annotation.Take; import christie.codegear.CodeGear; import christie.codegear.CodeGearManager; +import christie.textEditor.TextFrame; +import christie.topology.Message; public class CatchDG extends CodeGear { @Take - int loc; - + Message start; @Override protected void run(CodeGearManager cgm) { - System.out.println(loc); + System.out.println("Start"); + while(TextFrame.SendPermission() == false){ + try{ + Thread.sleep(1); + }catch(InterruptedException e){ + + } + } + System.out.println("Catch"); } } diff -r 3bee0ab985a4 -r 1c37472fc00d src/main/java/christie/remotingTextEditor/SetInstance.java --- a/src/main/java/christie/remotingTextEditor/SetInstance.java Tue Nov 19 16:59:41 2019 +0900 +++ b/src/main/java/christie/remotingTextEditor/SetInstance.java Thu Nov 28 15:12:37 2019 +0900 @@ -9,29 +9,17 @@ import javax.swing.event.DocumentListener; import javax.swing.text.*; import christie.textEditor.*; +import christie.topology.Message; import java.io.FileWriter; public class SetInstance extends CodeGear { - protected void run(CodeGearManager cgm){ - StartEditor myEditor = new StartEditor(); + protected void run(CodeGearManager cgm) { + TextFrame myEditor = new TextFrame(); myEditor.StartEditor(); - } - - /* - @Override - public void insertUpdate(DocumentEvent e) { - System.out.println("catch"); + cgm.setup(new CatchDG()); + cgm.getLocalDGM().put("start", new Message()); } - - @Override - public void removeUpdate(DocumentEvent e) { - } - - @Override - public void changedUpdate(DocumentEvent e) { - } - */ } diff -r 3bee0ab985a4 -r 1c37472fc00d src/main/java/christie/remotingTextEditor/StartTwoEditor.java --- a/src/main/java/christie/remotingTextEditor/StartTwoEditor.java Tue Nov 19 16:59:41 2019 +0900 +++ b/src/main/java/christie/remotingTextEditor/StartTwoEditor.java Thu Nov 28 15:12:37 2019 +0900 @@ -12,6 +12,7 @@ public static void main(String[] args){ CodeGearManager editor1 = createCGM(10001); CodeGearManager editor2 = createCGM(10002); + editor1.createRemoteDGM("editor2","localhost",10002); editor1.setup(new SetInstance()); editor2.setup(new SetInstance()); } diff -r 3bee0ab985a4 -r 1c37472fc00d src/main/java/christie/textEditor/mainFrame.java --- a/src/main/java/christie/textEditor/mainFrame.java Tue Nov 19 16:59:41 2019 +0900 +++ b/src/main/java/christie/textEditor/mainFrame.java Thu Nov 28 15:12:37 2019 +0900 @@ -50,6 +50,7 @@ container.add(desktop); TextFrame textFrame = new TextFrame(); + desktop.add(textFrame); textFrame.setVisible(true); diff -r 3bee0ab985a4 -r 1c37472fc00d src/main/java/christie/textEditor/textFrame.java --- a/src/main/java/christie/textEditor/textFrame.java Tue Nov 19 16:59:41 2019 +0900 +++ b/src/main/java/christie/textEditor/textFrame.java Thu Nov 28 15:12:37 2019 +0900 @@ -1,5 +1,6 @@ package christie.textEditor; +import christie.codegear.CodeGear; import christie.remotingTextEditor.SetInstance; import java.io.ByteArrayOutputStream; @@ -7,12 +8,15 @@ import java.io.FileInputStream; import java.io.IOException; -import javax.swing.JInternalFrame; -import javax.swing.JTextArea; +import javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.BadLocationException; import javax.swing.text.Document; +import javax.swing.text.StyleConstants; +import javax.swing.text.StyleContext; + +import static javax.swing.UIManager.put; public class TextFrame extends JInternalFrame { @@ -22,6 +26,12 @@ public int loc = 0; + public static boolean send = false; + + public static boolean canWrite = true; + + StyleContext sc = new StyleContext(); + SetInstance setInstance = new SetInstance(); public TextFrame() { @@ -40,10 +50,10 @@ //textArea.getDocument().putProperty("name", "Text Area"); - this.add(textArea); } + public TextFrame(File file) throws IOException { this(file.getName()); this.openFile(file); @@ -83,23 +93,36 @@ + public class MyDocumentListener implements DocumentListener { public void insertUpdate(DocumentEvent e) { - Document doc = (Document) e.getDocument(); - loc = e.getOffset(); - System.out.print("location = " + loc + "\n"); - ReturnToChristie(loc); - try { - System.out.print("string = " + doc.getText(loc, 1) + "\n"); + if(canWrite == true) { + Document doc = e.getDocument(); + loc = e.getOffset(); + System.out.println(doc); + send = true; + - } catch (BadLocationException e1) { - e1.printStackTrace(); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + try { + canWrite = false; + doc.insertString(0, "kakikomi", sc.getStyle(StyleContext.DEFAULT_STYLE)); + canWrite = true; + //System.out.print("string = " + doc.getText(loc, 1) + "\n"); + } catch (BadLocationException e1) { + e1.printStackTrace(); + } + } + }); + } } @Override public void removeUpdate(DocumentEvent e) { - Document doc = (Document) e.getDocument(); + Document doc = e.getDocument(); int loc = e.getOffset(); int e_length = e.getLength(); int del_loc_end = loc + e_length - 1; @@ -108,20 +131,37 @@ } else { System.out.println("delete " + loc + " to " + del_loc_end); } + + + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + try { + doc.insertString(0, "kakikomi", sc.getStyle(StyleContext.DEFAULT_STYLE)); + //System.out.print("string = " + doc.getText(loc, 1) + "\n"); + } catch (BadLocationException e1) { + e1.printStackTrace(); + } + } + }); } @Override public void changedUpdate(DocumentEvent e) { } + + public void insertString(){ + + } } - public void ReturnToChristie(int loc){ - System.out.println("return" + loc); + public static boolean SendPermission(){ + return send; } + public void StartEditor(){ MainFrame mainFrame = MainFrame.getInstance(); mainFrame.setVisible(true); - System.out.println("move"); } }