⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guieventmanager.java

📁 P2P模拟器P2Psim的程序源码
💻 JAVA
字号:
package gui;

import org.jgraph.graph.DefaultGraphModel;
import org.jgraph.graph.DefaultGraphCell;

import javax.swing.JOptionPane;

import graph.GraphEventManager;
import graph.Resource;


public class GUIEventManager 
{
	
	// De enige instantie van deze klasse
	static private GUIEventManager gUIEventManager;
	// Controle of er reeds instantie van deze klasse werd gemaakt
	static private boolean $created = false;

	private static ComponentManager componentManager;

	public GUIController[] gUIController;

	private static DisplayOptions displayOptions;

/****************************
*   GENERAL     			*
****************************/

	static public GUIEventManager getReference()
	{
		if (!$created)
		{
			gUIEventManager = new GUIEventManager();
			componentManager = new ComponentManager();
			displayOptions = new DisplayOptions();
			$created = true;
		}
		return(gUIEventManager);
	}
		
	
	private GUIEventManager() 
	{
		gUIController = new GUIController[10];
	}
	
	public void addGUIController(GUIController gUIController)
	{
		this.gUIController[0] = gUIController;
	}
	
/****************************
*    SHOW DIALOGS			*
****************************/
	
	public void eventShowLayoutDialog()
	{
		gUIController[0].showLayoutDialog();
	}
	
	public String eventGetString(String message, String standard)
	{
		String s = (String)JOptionPane.showInputDialog(
							gUIController[0].getHoofdscherm(),
							message,
							"Question",
							//JOptionPane.DEFAULT_OPTION,
							//JOptionPane.YES_NO_CANCEL_OPTION,
							/*Icon*/ JOptionPane.QUESTION_MESSAGE,
							null,
							null,
							standard);
		return s;
	}
	
	public Resource eventGetResource(String message)
	{
		String[] names = GraphEventManager.getReference().eventGetResourceNames();
		String resourceName = (String)ListDialog.showDialog(
					gUIController[0].getHoofdscherm(),
					null,
					message,
					"Resource-Library",
					names,
					"test",
					"test");
					

		return GraphEventManager.getReference().eventGetResource(resourceName);
	}
	
	public void eventShowGraphConstructionDialog1()
	{
		gUIController[0].showGraphConstructionDialog1();
	}
	
	public void eventConstructNetworkGraph(int[] properties)
	{
		gUIController[0].askParametersForLevel(properties[0]);
		//GUIEventManager.getReference().eventAskParametersForLevels(properties[0]);
	}
	
	public void eventLoadExistingGraphDialog(String tekst)
	{
		gUIController[0].showLoadExistingGraphDialog(tekst);
	}
	
	public void eventShowOpenDialog(String tekst)
	{
		gUIController[0].showOpenDialog(tekst);
	}
	
	public void eventShowSaveDialog()
	{
		gUIController[0].showSaveDialog();
	}
	
	
	
/****************************
*   UPDATES     			*
****************************/
	
	public void eventUpdateModel(DefaultGraphModel model)
	{
		gUIController[0].updateModel(model);	
	}
	
	public void eventUpdateInfoJPanel(DefaultGraphCell dgc)
	{
		this.gUIController[0].updateInfoJPanel(dgc);	
	}
	
	public void eventRedrawGraph()
	{
		gUIController[0].redrawGraph();
	}		

	public static ComponentManager getComponentManager()
	{
		return componentManager;
	}

/****************************
*   OPERATIONS     			*
****************************/	
	
	public void eventZoom(double factor)
	{
		gUIController[0].zoom(factor);
	}
	
	public void eventChangeColorFor(DefaultGraphCell dgc)
	{
		gUIController[0].showColorChooserDialog(dgc);
		eventUpdateInfoJPanel(dgc);
		eventRedrawGraph();
	}
	
	public void eventChangeNameFor(DefaultGraphCell dgc)
	{
		String newName = eventGetString("What is the new name ?", "New name");
		GraphEventManager.getReference().eventChangeNameFor(dgc, newName);
		eventUpdateInfoJPanel(dgc);
	}
	
	
	public void eventChangeCapacityFor(DefaultGraphCell dgc)
	{
		try
		{
			int newCapacity = Integer.valueOf(eventGetString("What is the new capacity ? \n (small = 1 < new capacity < 10 = large)", "6")).intValue();
			GraphEventManager.getReference().eventChangeCapacityFor(dgc, newCapacity);
			eventUpdateInfoJPanel(dgc);
		}
		catch(NumberFormatException e)
		{
			System.out.println("Invalid number-format");
		}
	}
	
	public void eventAddResource(DefaultGraphCell dgc)
	{
		Resource resource = eventGetResource("What's the name of the resource ?");
		GraphEventManager.getReference().eventAddResource(dgc, resource);
	}
	
	public void eventSearchForResource(DefaultGraphCell dgc)
	{
		Resource resource = GUIEventManager.getReference().eventGetResource("What are you looking for ?");
		GraphEventManager.getReference().eventSearchForResource(dgc, resource.getName());
	}
	
	public void eventAddNewResourceToLibrary()
	{
		GraphEventManager.getReference().eventAddNewResourceToLibrary(eventGetString("What is the name of the new resource ?", "New resource"));
	}
		
		
	public void eventAskStrengthForGradientField(DefaultGraphCell dgc)
	{
		try
		{
			int strength = Integer.valueOf(eventGetString("What is the strength of the gradientField ?", "40")).intValue();
			GraphEventManager.getReference().eventConstructGradientField(dgc, strength);
			eventUpdateInfoJPanel(dgc);
		}
		catch(NumberFormatException e)
		{
			System.out.println("Invalid number-format");
		}
	}
			
	public String eventLoadFile()
	{
		return "test.col";
	}	

	public void eventApplyStandardLayoutAlgorithm()
	{
		gUIController[0].applyStandardLayoutAlgorithm();
	}

	public DefaultGraphCell eventGetGraphCellAtPosition(int x, int y)
	{
		return (DefaultGraphCell) gUIController[0].getHoofdscherm().getNetworkGraph().getFirstCellForLocation(x, y);
	}
	

	public static void setComponentManager(ComponentManager componentManagerParameter)
	{
		componentManager = componentManagerParameter;
	}
	
	public double eventGetScale()
	{
		return gUIController[0].getHoofdscherm().getNetworkGraph().getScale();
	}

	private static DisplayOptions getDisplayOptions()
	{
		return displayOptions;
	}

	private static void setDisplayOptions(DisplayOptions newDisplayOptions)
	{
		displayOptions = newDisplayOptions;
	}

	// IN NODE ABOVE	
	public String eventWhatInNode()
	{
		return getDisplayOptions().whatInNode();
	}

	public void eventShowInNode(String inNode)
	{
		getDisplayOptions().showInNode(inNode);
		eventRedrawGraph();
	}
	
	// EDGES
	public void eventSelectEdges(String edges)
	{
		if (edges != null)
		{
			getDisplayOptions().selectEdges(edges);
		}
		eventRedrawGraph();
	}
	
	public void eventSelectEdges()
	{
		eventSelectEdges(eventGetResource("The path to which resource ?").getName());	
	}
	
	public String eventGetSelectedEdges()
	{
		return getDisplayOptions().getSelectedEdges();
	}
	
	// RESOURCES
	public void eventSelectResource(String resource)
	{
		if (resource != null)
		{
			getDisplayOptions().selectResource(resource);
		}
		eventRedrawGraph();
	}
	
	public void eventSelectResource()
	{
		eventSelectResource(eventGetResource("The path to which resource ?").getName());
	}

	public String eventGetSelectedResources()
	{
		return getDisplayOptions().getSelectedResources();
	}

	public RequestAnalyser ra;

	public void analyseRequests(DefaultGraphCell dgc)
	{
		//RequestAnalyser ra = new RequestAnalyser();
		//ra.writeAllSearchRequests(dgc);
		System.out.println("analyseRequests met dgc");
		ra.actionPerformed(null);
	}
	
	public void analyseRequests()
	{
		ra = new RequestAnalyser();
		ra.show();
		
	}
	
	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -