# HG changeset patch # User pin # Date 1194666744 -32400 # Node ID 593f915dd6ff84752a36212feaf602920fd41ee3 # Parent e67b1cec9dbe40dc3c9f9003ea56711551197602 for JOIN and PUT Testing diff -r e67b1cec9dbe -r 593f915dd6ff rep/EditorList.java --- a/rep/EditorList.java Fri Nov 09 19:45:19 2007 +0900 +++ b/rep/EditorList.java Sat Nov 10 12:52:24 2007 +0900 @@ -63,4 +63,15 @@ } } + + public void sendPutAck(SocketChannel channel, REPCommand repCmd) { + REPPacketSend send = new REPPacketSend(channel); + send.send(repCmd); + } + + public void send(SocketChannel channel, REPCommand command){ + REPPacketSend send = new REPPacketSend(channel); + send.send(command); + } + } diff -r e67b1cec9dbe -r 593f915dd6ff rep/REP.java --- a/rep/REP.java Fri Nov 09 19:45:19 2007 +0900 +++ b/rep/REP.java Sat Nov 10 12:52:24 2007 +0900 @@ -15,24 +15,24 @@ public static final int REPCMD_REPLACE_ACK = 14; public static final int SMCMD_JOIN = 41; public static final int SMCMD_JOIN_ACK = 42; - public static final int SMCMD_GET = 43; - public static final int SMCMD_GET_ACK = 44; + public static final int SMCMD_GET = 43; //obsolete + public static final int SMCMD_GET_ACK = 44; //obsolete public static final int SMCMD_PUT = 45; public static final int SMCMD_PUT_ACK = 46; public static final int SMCMD_SELECT = 47; public static final int SMCMD_SELECT_ACK = 48; - public static final int SMCMD_REGISTER = 49; - public static final int SMCMD_REGISTER_ACK = 50; - public static final int SMCMD_DEREGISTER = 51; - public static final int SMCMD_DEREGISTER_ACK= 52; + public static final int SMCMD_REGISTER = 49; //obsolete + public static final int SMCMD_REGISTER_ACK = 50; //obsolete + public static final int SMCMD_DEREGISTER = 51; //obsolete + public static final int SMCMD_DEREGISTER_ACK= 52; //obsolete public static final int SMCMD_QUIT = 53; public static final int SMCMD_QUIT_ACK = 54; - public static final int SMCMD_SESSION = 60; - public static final int SMCMD_SESSION_ACK = 61; + public static final int SMCMD_SESSION = 60; //obsolete + public static final int SMCMD_SESSION_ACK = 61; //obsolete public static final int SMCMD_SM_JOIN = 62; public static final int SMCMD_SM_JOIN_ACK = 63; public static final int SMCMD_UPDATE = 65; public static final int SMCMD_UPDATE_ACK = 66; - public static final int SMCMD_UPDATE_UP = 67; - public static final int SMCMD_UPDATE_DOWN = 68; + public static final int SMCMD_UPDATE_UP = 67; //obsolete + public static final int SMCMD_UPDATE_DOWN = 68; //obsolete } diff -r e67b1cec9dbe -r 593f915dd6ff rep/SessionList.java --- a/rep/SessionList.java Fri Nov 09 19:45:19 2007 +0900 +++ b/rep/SessionList.java Sat Nov 10 12:52:24 2007 +0900 @@ -15,10 +15,19 @@ private SocketChannel smchannel; private boolean channelequals = false; + private LinkedList tmpSessionList = new LinkedList(); + + public SessionList(){ + makeDefaultSession(); + } public void add(SocketChannel channel) { } + + public void makeDefaultSession(){ + session3.put(0, new Session(0, null, null)); + } public int getEditorNumber() { return 0; @@ -146,4 +155,8 @@ send.send(new REPCommand(REP.SMCMD_SELECT, sid, 0, 0, 0, 0, "")); } + public void addSession(SocketChannel channel, String string, int i) { + tmpSessionList.add(new Session(0, string, channel)); + } + } diff -r e67b1cec9dbe -r 593f915dd6ff rep/SessionManager.java --- a/rep/SessionManager.java Fri Nov 09 19:45:19 2007 +0900 +++ b/rep/SessionManager.java Sat Nov 10 12:52:24 2007 +0900 @@ -133,24 +133,36 @@ smList.sendJoin(repCmd); //sessionmanagerGUI.setComboEditor(repCmd.eid, channel); } + + /*** 各エディタのテスト用 ***/ + repCmd.setCMD(REP.SMCMD_JOIN_ACK); + REPPacketSend sendJoinAckTest = new REPPacketSend(channel); + sendJoinAckTest.send(repCmd); + break; case REP.SMCMD_JOIN_ACK: - editorList.setEID(repCmd); - editorList.sendJoinAck(repCmd); - sessionmanagerGUI.setComboEditor(repCmd.eid, channel); +// editorList.setEID(repCmd); +// editorList.sendJoinAck(repCmd); +// sessionmanagerGUI.setComboEditor(repCmd.eid, channel); break; + case REP.SMCMD_PUT: - int sessionID = sessionlist.addSession(channel, repCmd.string); //SIDを取得 - smList.sendUpdate(sessionID, repCmd.string); //updateコマンド:Session生成を通知 - sessionmanagerGUI.setComboSession(sessionID, repCmd.string); //ComboBoxにSessionを追加 - repCmd.setSID(sessionID); //SIDをセット - repCmd.setCMD(repCmd.cmd + 1); //ACKを返す - REPPacketSend repSend2 = new REPPacketSend(channel); - repSend2.send(repCmd); - //sessionlist.sendAddedSession(repCmd); + if(repCmd.string.length() == 0){ + sessionlist.addEditor(channel, 0, 0); + }else if(repCmd.string.length() > 0){ + int sid = sessionlist.addSession(channel, repCmd.string); + sessionlist.addEditor(channel, sid, 0); + } + + /*** 各エディタのテスト用 ***/ + repCmd.setCMD(REP.SMCMD_PUT_ACK); + REPPacketSend sendPutAckTest = new REPPacketSend(channel); + sendPutAckTest.send(repCmd); + break; // case REP.SMCMD_PUT_ACK: // break; + case REP.SMCMD_SELECT: sessionlist.addEditor(channel, repCmd.sid, repCmd); //sessionlistへ追加 repCmd.setCMD(repCmd.cmd + 1); @@ -162,8 +174,13 @@ case REP.SMCMD_SESSION: break; case REP.SMCMD_SM_JOIN: - this.isMaster = true; - myHost = repCmd.host; + //this.isMaster = true; + //myHost = repCmd.host; + if(isMaster){ + //REPPacketSend send = new REPPacketSend(channel); + repCmd.setCMD(REP.SMCMD_SM_JOIN_ACK); + smList.sendSessionList(sessionlist, repCmd); + } sendSessionManagerJoinAck(channel, repCmd); break; case REP.SMCMD_SM_JOIN_ACK: @@ -265,6 +282,7 @@ //sm_join_com.setString(sm_join_com.string + ":" + socketString); send.send(REPCommand.SMCMD_SESSION_JOIN); smList.add(sessionchannel); + smList.setMaster(sessionchannel); }catch (IOException e) { e.printStackTrace(); } diff -r e67b1cec9dbe -r 593f915dd6ff rep/SessionManagerList.java --- a/rep/SessionManagerList.java Fri Nov 09 19:45:19 2007 +0900 +++ b/rep/SessionManagerList.java Sat Nov 10 12:52:24 2007 +0900 @@ -47,4 +47,13 @@ this.master = channel; } + public void sendSessionList(SessionList sessionlist, REPCommand command) { + command.setCMD(REP.SMCMD_SM_JOIN_ACK); + + for(SocketChannel channel : list){ + REPPacketSend send = new REPPacketSend(channel); + send.send(command); + } + } + } diff -r e67b1cec9dbe -r 593f915dd6ff rep/gui/DefaultTableModelTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rep/gui/DefaultTableModelTest.java Sat Nov 10 12:52:24 2007 +0900 @@ -0,0 +1,1 @@ +package rep.gui; import java.awt.*; import javax.swing.*; import javax.swing.table.*; class DefaultTableModelTest extends JFrame { DefaultTableModelTest() { getContentPane().setLayout(new FlowLayout()); String[][] rowData = { { "A1", "B1", "C1" }, { "A2", "B2", "C2" }, { "A3", "B3", "C3" }, { "A4", "B4", "C4" }, }; String[] colNames = { "A", "B", "C" }; DefaultTableModel tm = new DefaultTableModel(rowData, colNames); JTable tb = new JTable(tm); JScrollPane sp = new JScrollPane(tb); sp.setPreferredSize(new Dimension(230, 80)); getContentPane().add(sp); String[] data = { "A5", "B5", "C5" }; tm.addRow(data); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("DefaultTableModelTest"); setSize(250, 120); setVisible(true); } public static void main(String[] args) { new DefaultTableModelTest(); } } \ No newline at end of file diff -r e67b1cec9dbe -r 593f915dd6ff rep/gui/JTableTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rep/gui/JTableTest.java Sat Nov 10 12:52:24 2007 +0900 @@ -0,0 +1,1 @@ +package rep.gui; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import javax.swing.*; import javax.swing.event.AncestorEvent; import javax.swing.event.AncestorListener; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; class JTableTest extends JFrame implements ActionListener, FocusListener, ListSelectionListener{ /** * */ private static final long serialVersionUID = 1L; private JTable tb; JTableTest() { getContentPane().setLayout(new FlowLayout()); tb = new JTable(10, 5); tb.setValueAt("AAA", 0, 0); tb.setValueAt("BBB", 1, 1); tb.setValueAt("CCC", 2, 2); tb.addFocusListener(this); JScrollPane sp = new JScrollPane(tb); sp.setPreferredSize(new Dimension(230, 80)); getContentPane().add(sp); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("JTableTest"); setSize(250, 120); setVisible(true); } public static void main(String[] args) { new JTableTest(); } public void actionPerformed(ActionEvent event) { //if(event.getSource() == tb){ // int a = tb.getSelectedColumn(); // int b = tb.getSelectedRow(); // System.out.println("Selected item is " + a + ":" + b); //} } public void focusGained(FocusEvent event) { int column = tb.getSelectedColumn(); int row = tb.getSelectedRow(); System.out.println("Gained item is " + column + ":" + row); } public void focusLost(FocusEvent event) { } public void valueChanged(ListSelectionEvent event) { int column = tb.getSelectedColumn(); int row = tb.getSelectedRow(); Object value = tb.getValueAt(row, column); System.out.println("Gained item is " + column + ":" + row + "," + value); } } \ No newline at end of file