changeset 223:1c37472fc00d

add catch command from editors
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Thu, 28 Nov 2019 15:12:37 +0900
parents 3bee0ab985a4
children 0c74d9168aff
files src/main/java/christie/remotingTextEditor/CatchDG.java src/main/java/christie/remotingTextEditor/SetInstance.java src/main/java/christie/remotingTextEditor/StartTwoEditor.java src/main/java/christie/textEditor/mainFrame.java src/main/java/christie/textEditor/textFrame.java
diffstat 5 files changed, 74 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- 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");
     }
 }
--- 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) {
-    }
-    */
 }
--- 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());
     }
--- 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);
 
--- 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");
     }
 }