From f7bbfc85514de2af3952443a47b71b874f298171 Mon Sep 17 00:00:00 2001
From: Nils Christian Ehmke <nie@informatik.uni-kiel.de>
Date: Sat, 4 May 2013 20:21:57 +0200
Subject: [PATCH] Added a non-removable component to every project; #982

---
 .../beans/view/CurrentAnalysisEditorBean.java |  23 ++++++++++++------
 .../view/CurrentAnalysisEditorGraphBean.java  |   8 ++++++
 .../img/graphIcons/ProjectConfiguration.png   | Bin 0 -> 13483 bytes
 3 files changed, 24 insertions(+), 7 deletions(-)
 create mode 100644 Kieker.WebGUI/src/main/webapp/img/graphIcons/ProjectConfiguration.png

diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorBean.java
index d3ea5ee4..fe2ec941 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorBean.java
@@ -34,6 +34,7 @@ import kieker.analysis.model.analysisMetaModel.MIInputPort;
 import kieker.analysis.model.analysisMetaModel.MIOutputPort;
 import kieker.analysis.model.analysisMetaModel.MIPlugin;
 import kieker.analysis.model.analysisMetaModel.MIProject;
+import kieker.analysis.model.analysisMetaModel.MIProperty;
 import kieker.analysis.model.analysisMetaModel.MIReader;
 import kieker.analysis.model.analysisMetaModel.MIRepository;
 import kieker.analysis.model.analysisMetaModel.MIRepositoryConnector;
@@ -78,6 +79,7 @@ public class CurrentAnalysisEditorBean {
 	private static final Log LOG = LogFactory.getLog(CurrentAnalysisEditorBean.class);
 	private static final MIAnalysisMetaModelFactory FACTORY = MAnalysisMetaModelFactory.eINSTANCE;
 
+	private MIAnalysisComponent globalConfigurationInstance;
 	private ComponentListContainer availableComponents;
 	private MIAnalysisComponent selectedComponent;
 	private boolean unsavedModifications;
@@ -395,15 +397,13 @@ public class CurrentAnalysisEditorBean {
 		final List<Object> result = new ArrayList<Object>();
 
 		// Add the properties as strings
-		result.add("Name");
-		result.add("ClassName");
+		if (this.selectedComponent != this.globalConfigurationInstance) {
+			result.add("Name");
+			result.add("ClassName");
+		}
 
 		// Get the original properties of the plugin
-		if (this.selectedComponent instanceof MIPlugin) {
-			result.addAll(((MIPlugin) this.selectedComponent).getProperties());
-		} else {
-			result.addAll(((MIRepository) this.selectedComponent).getProperties());
-		}
+		result.addAll(this.selectedComponent.getProperties());
 
 		return result;
 	}
@@ -481,6 +481,11 @@ public class CurrentAnalysisEditorBean {
 	 * repositories and their connections. All further components will be added mostly by other methods.
 	 */
 	public void initializeGraph() {
+		this.globalConfigurationInstance = CurrentAnalysisEditorBean.FACTORY.createFilter();
+		final MIProperty prop1 = CurrentAnalysisEditorBean.FACTORY.createProperty();
+		prop1.setName("Bla");
+		this.globalConfigurationInstance.getProperties().add(prop1);
+
 		// Make sure that the currentAnalysisEditorGraphBean knows "this" as well.
 		this.currentAnalysisEditorGraphBean.setCurrentAnalysisEditorBean(this);
 
@@ -649,4 +654,8 @@ public class CurrentAnalysisEditorBean {
 		this.setModificationsFlag();
 	}
 
+	public MIAnalysisComponent getGlobalConfigurationComponent() {
+		return this.globalConfigurationInstance;
+	}
+
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorGraphBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorGraphBean.java
index 3e2148d5..0d5a0973 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorGraphBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentAnalysisEditorGraphBean.java
@@ -71,6 +71,7 @@ public class CurrentAnalysisEditorGraphBean {
 	private static final String JS_CMD_CREATE_GRAPH_VAR = "var graph = GraphFlow()";
 	private static final String JS_CMD_ADD_EDGE_CONSTRAINTS = "graph.addEdgeConstraints()";
 
+	private static final String JS_CMD_SET_GLOBAL_ICON = "graph.setNodeIcon('Global', '../img/graphIcons/ProjectConfiguration.png', true)";
 	private static final String JS_CMD_SET_FILTER_ICON = "graph.setNodeIcon('Filter', '../img/graphIcons/FilterIcon.png', true)";
 	private static final String JS_CMD_SET_READER_ICON = "graph.setNodeIcon('Reader', '../img/graphIcons/ReaderIcon.png', true)";
 	private static final String JS_CMD_SET_REPOSITORY_ICON = "graph.setNodeIcon('Repository', '../img/graphIcons/RepositoryIcon.png', true)";
@@ -88,6 +89,7 @@ public class CurrentAnalysisEditorGraphBean {
 	private static final String JS_CMD_ADD_FILTER = "var center = graph.getScreenCenter(); graph.addNode(center.x, center.y, %s,[%s],[%s],[%s],'Filter', false)";
 	private static final String JS_CMD_ADD_READER = "var center = graph.getScreenCenter(); graph.addNode(center.x, center.y, %s,[%s],null,[%s], 'Reader', false)";
 	private static final String JS_CMD_ADD_REPOSITORY = "var center = graph.getScreenCenter(); graph.addNode(center.x, center.y, %s, null, [%s], null, 'Repository',false)";
+	private static final String JS_CMD_ADD_GLOBAL_COMPONENT = "var center = graph.getScreenCenter(); graph.addNode(center.x, center.y, {'id':'%s', 'name':'Project-Configuration', 'nodeClass':'', 'tooltip':''}, null, null, null,'Global', false); graph.setNodeData('%s.close', {'$visible' : false});";
 
 	private static final String JS_CMD_ENABLE_GRID = "graph.setGridVisible(true, false)";
 	private static final String JS_CMD_DISABLE_GRID = "graph.setGridVisible(false, false)";
@@ -133,6 +135,12 @@ public class CurrentAnalysisEditorGraphBean {
 		RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_SET_FILTER_ICON);
 		RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_SET_REPOSITORY_ICON);
 		RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_SET_READER_ICON);
+		RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_SET_GLOBAL_ICON);
+
+		// Create an MIAnalysisComponent instance, which represents the global configuration of the project
+		final MIAnalysisComponent globalComponent = this.currentAnalysisEditorBean.getGlobalConfigurationComponent();
+		final int id = this.componentMap.get(globalComponent);
+		RequestContext.getCurrentInstance().execute(String.format(CurrentAnalysisEditorGraphBean.JS_CMD_ADD_GLOBAL_COMPONENT, "id" + id, "id" + id));
 	}
 
 	/**
diff --git a/Kieker.WebGUI/src/main/webapp/img/graphIcons/ProjectConfiguration.png b/Kieker.WebGUI/src/main/webapp/img/graphIcons/ProjectConfiguration.png
new file mode 100644
index 0000000000000000000000000000000000000000..203f88308a7399448403f54a6b790b1157bcab82
GIT binary patch
literal 13483
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
ZUp{H3h*g&JE(Qh$22WQ%mvv4FO#q&ZFS7su

literal 0
HcmV?d00001

-- 
GitLab