view rep/RPanel.java @ 56:6ead43b2475e

*** empty log message ***
author pin
date Fri, 16 Nov 2007 13:58:25 +0900
parents ece6aaddfec4
children 491962300d0a
line wrap: on
line source

package rep;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.nio.channels.SocketChannel;

import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import java.util.*;

public class RPanel extends JPanel implements ActionListener {

	private JButton button;
	private JTextField textField;
	private String host;
	private JLabel label;
	private JTextArea textArea;
	//private JScrollPane scrollPane;
	private SessionViewer sessionViewer;
	//private JScrollPane viewerPane;
	private JTable session_table;
	private JScrollPane s_sp;
	private JTable editor_table;
	private JScrollPane e_sp;
	private String[] session_column = {"HOST", "PORT", "FILE", "SID", "EID"};
	private String[] editor_column = {"EID", "SOCKET_CHANNEL"};
	private DefaultTableModel s_tableModel = new DefaultTableModel(session_column, 0);
	private DefaultTableModel e_tableModel = new DefaultTableModel(editor_column, 0);
	LinkedList<SessionPlus> s_list = new LinkedList<SessionPlus>();
	LinkedList<EditorPlus> e_list = new LinkedList<EditorPlus>();
	private String s_host;
	private String s_port;
	private String s_file;
	private String s_sid;
	private String s_eid;
	private String e_eid;
	private String e_socketchannel;
	private ConnectionListener listener;
	private JComboBox comboEditor;
	private JComboBox comboSession;
	private JButton buttonSelect;
	private REPActionListener actionListener;

	public RPanel() {
		button = new JButton("Connect");
		textField = new JTextField("firefly.cr.ie.u-ryukyu.ac.jp");
		textArea = new JTextArea();
		label = new JLabel("test");
		//scrollPane = new JScrollPane(textArea);
		sessionViewer = new SessionViewer();
		//viewerPane = new JScrollPane(sessionViewer.getTree());

		SessionPlus s1 = new SessionPlus(1, "session 1");
		SessionPlus s2 = new SessionPlus(2, "session 2");
		s_list.add(s1);
		s_list.add(s2);
		
		Vector vec = new Vector();
		s_host = "host-1";
		s_port = "port-1";
		s_file = "file-1";
		s_sid = "" + s1.getSID();
		s_eid = "eid-1";
		vec.add(s_host);
		vec.add(s_port);
		vec.add(s_file);
		vec.add(s_sid);
		vec.add(s_eid);
		
		Vector vec2 = new Vector();
		s_host = "host-2";
		s_port = "port-2";
		s_file = "file-2";
		s_sid = "" + s2.getSID();
		s_eid = "eid-2";
		vec2.add(s_host);
		vec2.add(s_port);
		vec2.add(s_file);
		vec2.add(s_sid);
		vec2.add(s_eid);

		
		//veve = s_list.get(i);
		s_tableModel.addRow(vec);
		s_tableModel.addRow(vec2);			
		
		session_table = new JTable(s_tableModel);
		s_sp = new JScrollPane(session_table);
		editor_table = new JTable(e_tableModel);
		e_sp = new JScrollPane(editor_table);
		//scrollBar = new JScrollBar(JScrollBar.VERTICAL);
		comboEditor = new JComboBox();
		comboSession = new JComboBox();
		buttonSelect = new JButton("Select");
		
		
		button.setBounds(160, 5, 100, 20);
		textField.setBounds(5, 5, 150, 20);
		textArea.setEditable(false);
		textArea.setLineWrap(false);
		//scrollPane.setBounds(5, 30, 200, 200);
		//scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		//viewerPane.setBounds(5, 30, 200, 200);
		//viewerPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		session_table.setBounds(5,30,400,200);
		s_sp.setPreferredSize(new Dimension(200, 200));
        s_sp.setBounds(5,30,400,100);
        e_sp.setPreferredSize(new Dimension(200, 200));
        e_sp.setBounds(5,140,400,100);
		//scrollPane.setPreferredSize(new Dimension(200, 200));
		//textArea.setBounds(5, 30, 200, 200);
		//textArea.add(scrollBar, BorderLayout.EAST);
		comboEditor.setBounds(450, 50, 100, 50);
		comboSession.setBounds(450, 100, 100, 50);
		buttonSelect.setBounds(450, 180, 100, 20);
				

		this.setLayout(null);
		this.add(textField);
		this.add( button);
		this.add(label);
		//this.add(textArea);
		//this.add(scrollPane, BorderLayout.CENTER);
		///this.add(viewerPane, BorderLayout.CENTER);
        this.add(s_sp);
        this.add(e_sp);
		//this.add(label, BorderLayout.CENTER);
		this.add(comboEditor);
		this.add(comboSession);
		this.add(buttonSelect);

		button.addActionListener(this);
		buttonSelect.addActionListener(this);
	}
	
	public void addSessionTree(int SID){
		sessionViewer.addSessionTree(SID);
	}
	
	public void actionPerformed(ActionEvent event) {
		if (event.getSource() == button) {
			host = textField.getText();
			listener.connectionOccured(new ConnectionEvent(host));
		}else if(event.getSource() == buttonSelect){
			//System.out.println(session_table.getSelectedRow());
			//System.out.println(s_list.get(session_table.getSelectedRow()).getSID());
			//System.out.println(editor_table.getSelectedRow());
			//System.out.println(e_list.get(editor_table.getSelectedRow()).getEID());
			
			actionListener.ActionOccured(new REPActionEvent((EditorPlus) comboEditor.getSelectedItem(),
					(SessionPlus)comboSession.getSelectedItem()));
		}
	}

	public void addConnectionListener(ConnectionListener listener) {
		System.out.println(listener.toString());
		this.listener = listener;
	}

	public void setComboEditor(int eid, SocketChannel channel) {
		//comboEditor.addItem("Editor:"+eid);
		comboEditor.addItem(new EditorPlus(eid, channel));
	}

	public void REPActionListener(REPActionListener listener2) {
		this.actionListener = listener2;
	}

	public void setComboSession(int sessionID, String string) {
		comboSession.addItem(new SessionPlus(sessionID, string));
	}
	
	public void setTableEditor(int eid, SocketChannel channel) {
		//comboEditor.addItem("Editor:"+eid);
		
		EditorPlus ep = new EditorPlus(eid, channel);
		e_list.add(ep);
		Vector editor = new Vector();
		e_eid = "Editor : " + eid;
		e_socketchannel = "SocketChannel : " + channel;
		editor.add(e_eid);
		editor.add(e_socketchannel);
		e_tableModel.addRow(editor);
	}
	
	public void setTableSession(int sessionID, String string) {
		SessionPlus sp = new SessionPlus(sessionID, string);
		s_list.add(sp);
		Vector session = new Vector();
		s_host = " ";
		s_port = " ";
		s_file = " ";
		s_sid = "" + sessionID;
		s_eid = " ";
		session.add(s_host);
		session.add(s_port);
		session.add(s_file);
		session.add(s_sid);
		session.add(s_eid);
		s_tableModel.addRow(session);
	}

}