package cytoscape.tutorial07;

import java.awt.event.ActionEvent;

import javax.swing.JOptionPane;

import cytoscape.CyEdge;
import cytoscape.CyNetwork;
import cytoscape.CyNode;
import cytoscape.Cytoscape;
import cytoscape.data.Semantics;
import cytoscape.Cytoscape;
import cytoscape.plugin.CytoscapePlugin;
import cytoscape.util.CytoscapeAction;
import cytoscape.view.CytoscapeDesktop;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

/**
 * 
 */
public class JackPlugin extends CytoscapePlugin {

	/**
	 * 
	 */
	public JackPlugin() {
		// Create an Action, add it to Cytoscape menu
		MyPluginAction myAction = new MyPluginAction(this);
		Cytoscape.getDesktop().getCyMenus().addCytoscapeAction((CytoscapeAction) myAction);
	
		//TestClass myTestClass = new TestClass();
		MakeNetwork();
	}

	
		

	// Add a menu item "JackPlugin" under menu "Plugins"
	public class MyPluginAction extends CytoscapeAction {

		public MyPluginAction(JackPlugin myPlugin) {
			super("JackPlugin");
			setPreferredMenu("Plugins");
		}


		public void actionPerformed(ActionEvent e) {
			String message = "Message from JackPlugin";
			JOptionPane.showMessageDialog(Cytoscape.getDesktop(),message);	
		}


		
		public boolean isInToolBar() {
			return false;
		}

		
		public boolean isInMenuBar() {
			return true;
		}
	}
		
		public void MakeNetwork() 
		{
			CyNetwork cyNetwork = Cytoscape.createNetwork("network1", false);

			CyNode node0 = Cytoscape.getCyNode("rain", true);
			CyNode node1 = Cytoscape.getCyNode("rainbow", true);
			CyNode node2 = Cytoscape.getCyNode("rabbit", true);
			CyNode node3 = Cytoscape.getCyNode("yellow", true);

			cyNetwork.addNode(node0);
			cyNetwork.addNode(node1);
			cyNetwork.addNode(node2);
			cyNetwork.addNode(node3);
			
			CyEdge edge0 = Cytoscape.getCyEdge(node0, node1, Semantics.INTERACTION, "pp", true);
			CyEdge edge1 = Cytoscape.getCyEdge(node0, node2, Semantics.INTERACTION, "pp", true);
			CyEdge edge2 = Cytoscape.getCyEdge(node0, node3, Semantics.INTERACTION, "pp", true);
			cyNetwork.addEdge(edge0);
			cyNetwork.addEdge(edge1);
			cyNetwork.addEdge(edge2);
			//header.addMouseListener(this);
			//addMouseListener(new MouseListener());
		}	
/**
			// Handle PropertyChangeEvent
			public void mouseReleased(MouseEvent e) 
			{
			


			//First, get a handler to the cytoPanel west, which is the control panel
					CytoPanelImp ctrlPanel = (CytoPanelImp) Cytoscape.getDesktop().getCytoPanel(SwingConstants.WEST);

					//Create a JPanel object (a class extends JPanel, say, MyPanel)
					MyPanel myPanel = new MyPanel();

					//Add it to the control panel.
					ctrlPanel.add("myPanel", myPanel);

			}
 			public void mouseClicked(MouseEvent e) {
			}
		        public void mouseExited(MouseEvent e) {

			}

			public void mousePressed(MouseEvent e) {

			}

			public void mouseEntered(MouseEvent e) {

			}
		
			
			
		}
	
*/
	
}
