changeset 224:0c74d9168aff

fix Editor & trans
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Tue, 24 Dec 2019 19:33:50 +0900
parents 1c37472fc00d
children 401981622a1e
files src/main/java/christie/remotingTextEditor/CatchDG.java src/main/java/christie/remotingTextEditor/GetOpponentMessage.java src/main/java/christie/remotingTextEditor/ManToManNodeConfig.java src/main/java/christie/remotingTextEditor/NodeStart.java src/main/java/christie/remotingTextEditor/SetEditorCommunication.java src/main/java/christie/remotingTextEditor/SetInstance.java src/main/java/christie/remotingTextEditor/StartManToManSession.java src/main/java/christie/remotingTextEditor/StartTwoEditor.java src/main/java/christie/textEditor/NewTF.java src/main/java/christie/textEditor/NewTextEditor.java src/main/java/christie/textEditor/StartEditor.java src/main/java/christie/textEditor/mainFrame.java src/main/java/christie/textEditor/textFrame.java
diffstat 13 files changed, 367 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/christie/remotingTextEditor/CatchDG.java	Thu Nov 28 15:12:37 2019 +0900
+++ b/src/main/java/christie/remotingTextEditor/CatchDG.java	Tue Dec 24 19:33:50 2019 +0900
@@ -6,22 +6,27 @@
 import christie.codegear.CodeGearManager;
 import christie.textEditor.TextFrame;
 import christie.topology.Message;
+import christie.topology.TopologyDataGear;
 
 public class CatchDG extends CodeGear {
     @Take
-    Message start;
+    Message say;
 
+    @Peek
+    TopologyDataGear topoDG;
 
     @Override
     protected void run(CodeGearManager cgm) {
         System.out.println("Start");
-        while(TextFrame.SendPermission() == false){
-            try{
-                Thread.sleep(1);
-            }catch(InterruptedException e){
 
-            }
-        }
-        System.out.println("Catch");
+//        while(TextFrame.SendPermission() == false){
+//            try{
+//                Thread.sleep(1);
+//            }catch(InterruptedException e){
+//
+//            }
+//        }
+        System.out.println(topoDG.getNodeName());
+
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/christie/remotingTextEditor/GetOpponentMessage.java	Tue Dec 24 19:33:50 2019 +0900
@@ -0,0 +1,27 @@
+package christie.remotingTextEditor;
+
+import christie.annotation.Peek;
+import christie.annotation.Take;
+import christie.codegear.CodeGear;
+import christie.codegear.CodeGearManager;
+import christie.textEditor.NewTextEditor;
+import christie.topology.Message;
+import christie.topology.TopologyDataGear;
+
+public class GetOpponentMessage extends CodeGear {
+    @Take
+    Message offset;
+
+    @Peek
+    NewTextEditor myEditor;
+
+    @Peek
+    TopologyDataGear topoDG;
+
+
+    @Override
+    protected void run(CodeGearManager cgm) {
+        System.out.println( topoDG.getNodeName() + " catch Offest:" + offset);
+        cgm.setup(new GetOpponentMessage());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/christie/remotingTextEditor/ManToManNodeConfig.java	Tue Dec 24 19:33:50 2019 +0900
@@ -0,0 +1,15 @@
+package christie.remotingTextEditor;
+
+import christie.topology.node.TopologyNodeConfig;
+
+public class ManToManNodeConfig extends TopologyNodeConfig {
+
+    public ManToManNodeConfig(String[] args) {
+        super(args);
+        for (int j = 0; j< args.length; j++) {
+            if ("--totalNodeNum".equals(args[j])) {
+
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/christie/remotingTextEditor/NodeStart.java	Tue Dec 24 19:33:50 2019 +0900
@@ -0,0 +1,13 @@
+package christie.remotingTextEditor;
+
+
+import christie.topology.node.StartTopologyNode;
+import christie.topology.node.TopologyNodeConfig;
+
+public class NodeStart {
+    public static void main(String[] args){
+        ManToManNodeConfig manToManNodeConfig = new ManToManNodeConfig(args);
+
+        StartTopologyNode startTopologyNode = new StartTopologyNode((TopologyNodeConfig) manToManNodeConfig, new SetInstance());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/christie/remotingTextEditor/SetEditorCommunication.java	Tue Dec 24 19:33:50 2019 +0900
@@ -0,0 +1,35 @@
+package christie.remotingTextEditor;
+
+import christie.annotation.Peek;
+import christie.codegear.CodeGear;
+import christie.codegear.CodeGearManager;
+import christie.textEditor.NewTextEditor;
+import christie.topology.Message;
+import christie.topology.TopologyDataGear;
+
+public class SetEditorCommunication extends CodeGear {
+    @Peek
+    TopologyDataGear topoDG;
+
+    @Peek
+    NewTextEditor myEditor;
+
+    @Override
+    protected void run(CodeGearManager cgm) {
+//        System.out.println(topoDG.getNodeName());
+        while(myEditor.checkPermission() == false){
+            try{
+                Thread.sleep(1);
+            }catch(InterruptedException e){
+
+            }
+        }
+        int sendOffset = myEditor.getOffset();
+        System.out.println(topoDG.getNodeName()+ ":catchoffset=: " + sendOffset);
+//        put("opponent", "offset", new Message());
+        myEditor.changeToFalseSendPermmision();
+        cgm.setup(new SetEditorCommunication());
+
+    }
+
+}
--- a/src/main/java/christie/remotingTextEditor/SetInstance.java	Thu Nov 28 15:12:37 2019 +0900
+++ b/src/main/java/christie/remotingTextEditor/SetInstance.java	Tue Dec 24 19:33:50 2019 +0900
@@ -1,5 +1,6 @@
 package christie.remotingTextEditor;
 
+import christie.annotation.Peek;
 import christie.annotation.Take;
 import christie.codegear.CodeGear;
 import christie.codegear.CodeGearManager;
@@ -10,16 +11,47 @@
 import javax.swing.text.*;
 import christie.textEditor.*;
 import christie.topology.Message;
+import christie.topology.TopologyDataGear;
 
 import java.io.FileWriter;
 
 
 public class SetInstance extends CodeGear {
 
+    @Peek
+    TopologyDataGear topoDG;
+
     protected void run(CodeGearManager cgm) {
-        TextFrame myEditor = new TextFrame();
-        myEditor.StartEditor();
-        cgm.setup(new CatchDG());
-        cgm.getLocalDGM().put("start", new Message());
+
+        System.out.println("I am " + topoDG.getNodeName());
+        if(topoDG.getNodeName().equals("node0")) {
+            NewTextEditor Editor0 = new NewTextEditor();
+            Editor0.StartEditor(topoDG.getNodeName());
+            System.out.println("node0");
+            //cgm.setup(new GetOpponentMessage());
+            cgm.setup(new SetEditorCommunication());
+            cgm.getLocalDGM().put("myEditor", Editor0);
+
+        }else if(topoDG.getNodeName().equals("node1")){
+            NewTextEditor Editor1 = new NewTextEditor();
+            Editor1.StartEditor(topoDG.getNodeName());
+            System.out.println("node1");
+            //cgm.setup(new GetOpponentMessage());
+            cgm.setup(new SetEditorCommunication());
+            cgm.getLocalDGM().put("myEditor", Editor1);
+        }
+        //cgm.setup(new CatchDG());
+
+
+        /*
+        while(myEditor.SendPermission() == false){
+            try{
+                Thread.sleep(1);
+            }catch(InterruptedException e){
+
+            }
+        }
+        System.out.println("catch");
+        */
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/christie/remotingTextEditor/StartManToManSession.java	Tue Dec 24 19:33:50 2019 +0900
@@ -0,0 +1,34 @@
+package christie.remotingTextEditor;
+
+import christie.codegear.CodeGearManager;
+import christie.codegear.StartCodeGear;
+import christie.topology.manager.StartTopologyManager;
+import christie.topology.manager.TopologyManagerConfig;
+
+public class StartManToManSession extends StartCodeGear {
+
+    public StartManToManSession(CodeGearManager cgm) {
+        super(cgm);
+    }
+
+    public static void main(String[] args){
+        int TopologyManagerPort = 10000;
+        int TopologyNodePort = 10001;
+
+        String[] managerArg = {"--localPort", String.valueOf(TopologyManagerPort), "--confFile", "scripts/Log/manToMan.dot"};
+
+        TopologyManagerConfig topologyManagerConfig = new TopologyManagerConfig(managerArg);
+        new StartTopologyManager(topologyManagerConfig);
+
+
+        for (int i = 0; i <= 1; i++){
+            String[] nodeArg = {"--managerPort", String.valueOf(TopologyManagerPort),
+                    "--managerHost", "localhost",
+                    "--localPort", String.valueOf(TopologyNodePort + i),
+            };
+
+            NodeStart.main(nodeArg);
+
+        }
+    }
+}
--- a/src/main/java/christie/remotingTextEditor/StartTwoEditor.java	Thu Nov 28 15:12:37 2019 +0900
+++ b/src/main/java/christie/remotingTextEditor/StartTwoEditor.java	Tue Dec 24 19:33:50 2019 +0900
@@ -3,6 +3,7 @@
 import christie.codegear.CodeGear;
 import christie.codegear.CodeGearManager;
 import christie.codegear.StartCodeGear;
+import christie.textEditor.NewTextEditor;
 
 public class StartTwoEditor extends StartCodeGear{
     public StartTwoEditor(CodeGearManager cgm) {
@@ -10,10 +11,18 @@
     }
 
     public static void main(String[] args){
+        NewTextEditor ed1 = new NewTextEditor();
+        NewTextEditor ed2 = new NewTextEditor();
+
+
+
+
+        /*
         CodeGearManager editor1 = createCGM(10001);
         CodeGearManager editor2 = createCGM(10002);
         editor1.createRemoteDGM("editor2","localhost",10002);
         editor1.setup(new SetInstance());
         editor2.setup(new SetInstance());
+        */
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/christie/textEditor/NewTF.java	Tue Dec 24 19:33:50 2019 +0900
@@ -0,0 +1,77 @@
+package christie.textEditor;
+
+import javax.swing.*;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
+import javax.swing.text.DefaultStyledDocument;
+import javax.swing.text.Document;
+import javax.swing.text.StyleContext;
+
+public class NewTF {
+
+    public class NewTextFrame extends JInternalFrame {
+        private StyleContext sc = new StyleContext();
+
+        JTextArea textArea = new JTextArea();
+
+        private DefaultStyledDocument doc = new DefaultStyledDocument(sc);
+
+        private String DEFAULT_CHARACTER_CODE = "Shift_JIS";
+
+        private NewTextFrame(){
+            super("New Text",  true, true, true, true);
+
+            //JTextArea textArea = new JTextArea();
+
+            this.setSize(800, 600);
+
+            textArea.getDocument().addDocumentListener(new NewDocumentListener());
+
+            this.add(textArea);
+        }
+
+        public NewTextFrame(String title){
+            super(title, true, true, true, true);
+
+            //JTextArea textArea = new JTextArea();
+
+            this.setSize(800, 600);
+
+            textArea.getDocument().addDocumentListener(new NewDocumentListener());
+
+            this.add(textArea);
+        }
+
+
+        public void insertText() {
+            textArea.insert("tsts", 0);
+        }
+
+
+    }
+
+    public class NewDocumentListener implements DocumentListener {
+
+        @Override
+        public void insertUpdate(DocumentEvent e) {
+            Document doc = e.getDocument();
+            int loc = e.getOffset();
+            System.out.println("location = "  + loc);
+            //canSend = true;
+        }
+
+        @Override
+        public void removeUpdate(DocumentEvent e) {
+
+        }
+
+        @Override
+        public void changedUpdate(DocumentEvent e) {
+
+        }
+    }
+
+//    public static boolean SendPermission(){
+//        return canSend;
+//    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/christie/textEditor/NewTextEditor.java	Tue Dec 24 19:33:50 2019 +0900
@@ -0,0 +1,75 @@
+package christie.textEditor;
+
+import javax.swing.*;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.DefaultStyledDocument;
+import javax.swing.text.Document;
+import javax.swing.text.StyleContext;
+import java.awt.*;
+
+public class NewTextEditor extends JFrame {
+    private static boolean canSend = false;
+    TextFrame textFrame = new TextFrame();
+    static JTextArea textArea = new JTextArea();
+
+
+    public void callInner(){
+        textFrame.insertText();
+    }
+
+    public boolean checkPermission(){
+        return textFrame.SendPermission();
+    }
+
+    public int getOffset(){
+        return textFrame.returnOffset();
+    }
+
+    public void changeToFalseSendPermmision(){
+        textFrame.changeToFalseSend();
+    }
+
+//    public static void main(String[] args){
+//        NewTextEditor editor = new NewTextEditor();
+//
+//        editor.setTitle("text Editor");
+//        editor.setSize(1024,768);
+//        editor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+//        editor.NewTextEditor();
+//        editor.setVisible(true);
+//
+//    }
+
+    public void StartEditor(String name) {
+        setTitle(name);
+        setSize(1024, 768);
+        setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
+        NewTextEditor();
+        setVisible(true);
+    }
+
+    public void NewTextEditor(){
+
+        JDesktopPane desktop;
+
+        MainFrame instance;
+
+        Container container = getContentPane();
+
+        JMenuBar menuBar = new JMenuBar();
+
+        container.add(menuBar, BorderLayout.NORTH);
+
+        desktop = new JDesktopPane();
+        container.add(desktop);
+        desktop.add(textFrame);
+        //textFrame.InsertText();
+        textFrame.setVisible(true);
+        System.out.println("call");
+
+
+    }
+
+}
--- a/src/main/java/christie/textEditor/StartEditor.java	Thu Nov 28 15:12:37 2019 +0900
+++ b/src/main/java/christie/textEditor/StartEditor.java	Tue Dec 24 19:33:50 2019 +0900
@@ -1,7 +1,6 @@
 package christie.textEditor;
 
 public class StartEditor {
-    public int loc;
     public static void main(String[] args) {
         MainFrame mainFrame = MainFrame.getInstance();
         mainFrame.setVisible(true);
--- a/src/main/java/christie/textEditor/mainFrame.java	Thu Nov 28 15:12:37 2019 +0900
+++ b/src/main/java/christie/textEditor/mainFrame.java	Tue Dec 24 19:33:50 2019 +0900
@@ -28,7 +28,7 @@
         super("テキストエディタ") ;
         setSize(1024,768);
         //ウィンドウを閉じたらアプリを終了する。
-        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
         //メインウィンドウにコンポーネントを配置する領域とのこと。
         Container container = this.getContentPane();
@@ -70,7 +70,7 @@
             try{
                 TextFrame textFrame = new TextFrame(selectedFile);
                 //JDesktopPaneにテキストウィンドウを追加
-                desktop.add(textFrame);
+                this.desktop.add(textFrame);
                 textFrame.setVisible(true);
             }catch(IOException e){
                 JOptionPane.showMessageDialog(this, "IOExeption: ファイルを開くのに失敗しました。");
--- a/src/main/java/christie/textEditor/textFrame.java	Thu Nov 28 15:12:37 2019 +0900
+++ b/src/main/java/christie/textEditor/textFrame.java	Tue Dec 24 19:33:50 2019 +0900
@@ -26,14 +26,14 @@
 
     public int loc = 0;
 
-    public static boolean send = false;
+    public boolean send = false;
 
-    public static boolean canWrite = true;
+    private int sendLoc = 0;
+
+    public boolean canWrite = true;
 
     StyleContext sc = new StyleContext();
 
-    SetInstance setInstance = new SetInstance();
-
     public TextFrame() {
         this("新規テキスト");
     }
@@ -49,7 +49,6 @@
         textArea.getDocument().addDocumentListener(new MyDocumentListener());
 
         //textArea.getDocument().putProperty("name", "Text Area");
-
         this.add(textArea);
     }
 
@@ -91,6 +90,21 @@
         }
     }
 
+    public void insertText(){
+        textArea.insert("send", 0);
+    }
+
+    public boolean SendPermission(){
+        return send;
+    }
+
+    public void changeToFalseSend(){
+        send = false;
+    }
+
+    public int returnOffset(){
+        return sendLoc;
+    }
 
 
 
@@ -99,10 +113,17 @@
             if(canWrite == true) {
                 Document doc = e.getDocument();
                 loc = e.getOffset();
-                System.out.println(doc);
+                sendLoc = loc;
+
+                //System.out.println("location = "  + loc);
+                try {
+                    System.out.print("string = " + doc.getText(loc, 1) + "\n");
+                } catch (BadLocationException e1){
+                    e1.printStackTrace();
+                }
                 send = true;
 
-
+                /*
                 SwingUtilities.invokeLater(new Runnable() {
                     @Override
                     public void run() {
@@ -116,6 +137,7 @@
                         }
                     }
                 });
+                */
 
             }
         }
@@ -150,17 +172,11 @@
         public void changedUpdate(DocumentEvent e) {
         }
 
-        public void insertString(){
-
-        }
-    }
-
-    public static boolean SendPermission(){
-        return send;
     }
 
 
-    public void StartEditor(){
+
+    public static void StartEditor(){
         MainFrame mainFrame = MainFrame.getInstance();
         mainFrame.setVisible(true);
     }