From 3e1a1063d2576073cccc576a96e251a563a0ba52 Mon Sep 17 00:00:00 2001
From: Nils Christian Ehmke <nie@informatik.uni-kiel.de>
Date: Sat, 28 Jan 2012 21:47:33 +0100
Subject: [PATCH] Some refactoring; Continued with the uploading-function;
 added some more pages

---
 .../AvailableDependenciesBean.java            |  26 ++
 .../AvailableProjectsBean.java                |  14 +-
 .../{ => application}/ThemeSwitcherBean.java  |   2 +-
 .../request/SelectedDependenciesBean.java     |  35 +++
 .../beans/{ => request}/StringBean.java       |   2 +-
 .../{ => session}/AvailablePluginsBean.java   |   2 +-
 .../beans/{ => session}/CurrentThemeBean.java |   4 +-
 .../DependencyUploadController.java           |   4 +-
 .../{ => session}/SelectedProjectBean.java    |   2 +-
 .../src/main/webapp/WEB-INF/pretty-config.xml |  10 +
 Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml |   4 -
 Kieker.WebGUI/src/main/webapp/main.css        |  23 +-
 Kieker.WebGUI/src/main/webapp/main.xhtml      | 288 ++++++++++--------
 .../src/main/webapp/manageDependencies.css    |   5 +
 .../src/main/webapp/manageDependencies.xhtml  |  35 +++
 .../src/main/webapp/projectDependencies.xhtml |  26 ++
 16 files changed, 323 insertions(+), 159 deletions(-)
 create mode 100644 Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableDependenciesBean.java
 rename Kieker.WebGUI/src/main/java/kieker/webgui/beans/{ => application}/AvailableProjectsBean.java (86%)
 rename Kieker.WebGUI/src/main/java/kieker/webgui/beans/{ => application}/ThemeSwitcherBean.java (98%)
 create mode 100644 Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/SelectedDependenciesBean.java
 rename Kieker.WebGUI/src/main/java/kieker/webgui/beans/{ => request}/StringBean.java (96%)
 rename Kieker.WebGUI/src/main/java/kieker/webgui/beans/{ => session}/AvailablePluginsBean.java (95%)
 rename Kieker.WebGUI/src/main/java/kieker/webgui/beans/{ => session}/CurrentThemeBean.java (93%)
 rename Kieker.WebGUI/src/main/java/kieker/webgui/beans/{ => session}/DependencyUploadController.java (88%)
 rename Kieker.WebGUI/src/main/java/kieker/webgui/beans/{ => session}/SelectedProjectBean.java (97%)
 create mode 100644 Kieker.WebGUI/src/main/webapp/manageDependencies.css
 create mode 100644 Kieker.WebGUI/src/main/webapp/manageDependencies.xhtml
 create mode 100644 Kieker.WebGUI/src/main/webapp/projectDependencies.xhtml

diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableDependenciesBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableDependenciesBean.java
new file mode 100644
index 00000000..474d638e
--- /dev/null
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableDependenciesBean.java
@@ -0,0 +1,26 @@
+package kieker.webgui.beans.application;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.faces.bean.ApplicationScoped;
+import javax.faces.bean.ManagedBean;
+
+import kieker.analysis.model.analysisMetaModel.MIDependency;
+
+@ManagedBean
+@ApplicationScoped
+public class AvailableDependenciesBean {
+	
+	private final List<MIDependency> dependencies;
+
+	public AvailableDependenciesBean() {
+		this.dependencies = new ArrayList<MIDependency>();
+
+	}
+
+	public List<MIDependency> getDependencies() {
+		return dependencies;
+	}
+
+}
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/AvailableProjectsBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableProjectsBean.java
similarity index 86%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/AvailableProjectsBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableProjectsBean.java
index a5af7e44..bbd85e30 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/AvailableProjectsBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/AvailableProjectsBean.java
@@ -1,14 +1,15 @@
-package kieker.webgui.beans;
+package kieker.webgui.beans.application;
 
-import java.util.ArrayList;
 import java.util.List;
 
+import javax.faces.application.FacesMessage;
 import javax.faces.bean.ApplicationScoped;
 import javax.faces.bean.ManagedBean;
 import javax.faces.context.FacesContext;
 
 import kieker.analysis.model.analysisMetaModel.MIProject;
 import kieker.analysis.model.analysisMetaModel.impl.MAnalysisMetaModelFactory;
+import kieker.webgui.beans.session.SelectedProjectBean;
 import kieker.webgui.common.FileManager;
 
 import org.primefaces.model.DefaultTreeNode;
@@ -31,16 +32,13 @@ public class AvailableProjectsBean {
 		factory = new MAnalysisMetaModelFactory();
 	}
 
-	public synchronized boolean addProject(final String projectName) {
+	public synchronized void addProject(final String projectName) {
 		/* Create a new project. */
 		final MIProject project = factory.createProject();
 		project.setName(projectName);
 
 		/* Try to save the project. */
-		if (!FileManager.getInstance().saveNewProject(project)) {
-			return false;
-		} else {
-
+		if (FileManager.getInstance().saveNewProject(project)) {
 			/* Set the new project as the main project, if the current user doesn't have one. */
 			FacesContext context = FacesContext.getCurrentInstance();
 			SelectedProjectBean bean = (SelectedProjectBean) context.getApplication().evaluateExpressionGet(context, "#{selectedProjectBean}",
@@ -49,7 +47,7 @@ public class AvailableProjectsBean {
 				bean.setMainProject(project);
 			}
 
-			return projects.add(project);
+			projects.add(project);
 		}
 	}
 
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/ThemeSwitcherBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java
similarity index 98%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/ThemeSwitcherBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java
index 23156fe7..8357c651 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/ThemeSwitcherBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java
@@ -1,4 +1,4 @@
-package kieker.webgui.beans;
+package kieker.webgui.beans.application;
 
 import java.util.Map;
 import java.util.TreeMap;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/SelectedDependenciesBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/SelectedDependenciesBean.java
new file mode 100644
index 00000000..438655a5
--- /dev/null
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/SelectedDependenciesBean.java
@@ -0,0 +1,35 @@
+package kieker.webgui.beans.request;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.RequestScoped;
+
+import org.primefaces.model.DualListModel;
+
+@ManagedBean
+@RequestScoped
+public class SelectedDependenciesBean {
+
+	private DualListModel<String> dependencies;
+
+	public SelectedDependenciesBean() {
+		List<String> source = new ArrayList<String>();
+		List<String> target = new ArrayList<String>();
+
+		source.add("Lib 1");
+		source.add("Lib 2");
+
+		dependencies = new DualListModel<String>(source, target);
+	}
+
+	public DualListModel<String> getDependencies() {
+		return dependencies;
+	}
+
+	public void setDependencies(DualListModel<String> dependencies) {
+		this.dependencies = dependencies;
+	}
+
+}
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/StringBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java
similarity index 96%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/StringBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java
index 2f16cae3..bb5fda66 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/StringBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java
@@ -1,4 +1,4 @@
-package kieker.webgui.beans;
+package kieker.webgui.beans.request;
 
 import javax.faces.bean.ManagedBean;
 import javax.faces.bean.RequestScoped;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/AvailablePluginsBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/AvailablePluginsBean.java
similarity index 95%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/AvailablePluginsBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/AvailablePluginsBean.java
index 3003e968..20c98807 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/AvailablePluginsBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/AvailablePluginsBean.java
@@ -1,4 +1,4 @@
-package kieker.webgui.beans;
+package kieker.webgui.beans.session;
 
 import javax.enterprise.context.SessionScoped;
 import javax.faces.bean.ManagedBean;
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/CurrentThemeBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java
similarity index 93%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/CurrentThemeBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java
index a49d66c4..65b67e3c 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/CurrentThemeBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java
@@ -1,10 +1,12 @@
-package kieker.webgui.beans;
+package kieker.webgui.beans.session;
 
 import java.util.Map;
 import javax.faces.bean.ManagedBean;
 import javax.faces.bean.SessionScoped;
 import javax.faces.context.FacesContext;
 
+import kieker.webgui.beans.application.ThemeSwitcherBean;
+
 /**
  * This bean can be used for a single session of a user and stores the currently used theme (look and feel) for this user. Currently the default value being used is
  * the "glass-x"-theme, if none is find within the parameters of the faces context.
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/DependencyUploadController.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/DependencyUploadController.java
similarity index 88%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/DependencyUploadController.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/DependencyUploadController.java
index 4fd3b6fd..1a127210 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/DependencyUploadController.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/DependencyUploadController.java
@@ -1,4 +1,4 @@
-package kieker.webgui.beans;
+package kieker.webgui.beans.session;
 
 import javax.faces.application.FacesMessage;
 import javax.faces.bean.ManagedBean;
@@ -30,6 +30,6 @@ public class DependencyUploadController {
 	public void upload() {
 		FacesMessage msg = new FacesMessage("Succesful", file.getFileName() + " is uploaded.");
 		FacesContext.getCurrentInstance().addMessage(null, msg);
-		FileManager.getInstance().uploadDependency(file);
+	//	FileManager.getInstance().uploadDependency(file);
 	}
 }
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/SelectedProjectBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/SelectedProjectBean.java
similarity index 97%
rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/SelectedProjectBean.java
rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/SelectedProjectBean.java
index 04d6dd7b..85dcf550 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/SelectedProjectBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/SelectedProjectBean.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package kieker.webgui.beans;
+package kieker.webgui.beans.session;
 
 import javax.faces.bean.ManagedBean;
 import javax.faces.bean.SessionScoped;
diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml
index 5169bbe2..79b98996 100644
--- a/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml
+++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml
@@ -8,5 +8,15 @@
         <pattern value="/Kieker.WebGUI" /> 
         <view-id value="/faces/main.xhtml" />
     </url-mapping> 
+    
+    <url-mapping id="projectDependencies"> 
+        <pattern value="/Kieker.WebGUI/projectDependencies" /> 
+        <view-id value="/faces/projectDependencies.xhtml" />
+    </url-mapping> 
+    
+     <url-mapping id="manageDependencies"> 
+        <pattern value="/Kieker.WebGUI/manageDependencies" /> 
+        <view-id value="/faces/manageDependencies.xhtml" />
+    </url-mapping> 
 
 </pretty-config>
\ No newline at end of file
diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml
index d8878dbb..f456e788 100644
--- a/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml
+++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml
@@ -17,10 +17,6 @@
 			<param-name>thresholdSize</param-name>
 			<param-value>51200</param-value>
 		</init-param>
-		<init-param>
-			<param-name>uploadDirectory</param-name>
-			<param-value>C:\Temp</param-value>
-		</init-param>
 	</filter>
 	<filter-mapping>
 		<filter-name>PrimeFaces FileUpload Filter</filter-name>
diff --git a/Kieker.WebGUI/src/main/webapp/main.css b/Kieker.WebGUI/src/main/webapp/main.css
index b85cf6c6..35e24a8d 100644
--- a/Kieker.WebGUI/src/main/webapp/main.css
+++ b/Kieker.WebGUI/src/main/webapp/main.css
@@ -4,40 +4,39 @@
  * The following style modifications make sure that the menu bar is visible. 
 */
 .ui-layout-north {
-    z-index:20 !important;
-    overflow:visible !important;;
+	z-index: 20 !important;
+	overflow: visible !important;;
 }
 
-
 .ui-layout-north .ui-layout-unit-content {
-    overflow:visible !important;
+	overflow: visible !important;
 }
 
 .ui-layout-center {
-    font-size: 15px;
+	font-size: 15px;
 }
 
 .ui-layout-east {
-    font-size: 15px;
+	font-size: 15px;
 }
 
 .ui-layout-south {
-    font-size: 15px;
+	font-size: 15px;
 }
 
 .ui-layout-west {
-    font-size: 15px;
+	font-size: 15px;
 }
 
 .ui-menubar .ui-menuitem {
-    font-size: 15px;
+	font-size: 15px;
 }
 
 .ui-contextmenu {
-    font-size: 15px;
+	font-size: 15px;
 }
 
 .ui-dialog {
-    font-size: 15px;
-    width: auto;
+	font-size: 15px;
+	width: auto;
 }
\ No newline at end of file
diff --git a/Kieker.WebGUI/src/main/webapp/main.xhtml b/Kieker.WebGUI/src/main/webapp/main.xhtml
index 4e7aa177..54cde655 100644
--- a/Kieker.WebGUI/src/main/webapp/main.xhtml
+++ b/Kieker.WebGUI/src/main/webapp/main.xhtml
@@ -13,29 +13,38 @@
 	</h:head>
 
 	<h:body>
+
 		<!-- This is the layout for the whole page. -->
 		<p:layout fullPage="true">
 
+			<!-- ******************************************************************************** -->
 			<!-- This is the top unit within the layout and is used for the menu bar. -->
 			<p:layoutUnit position="north" size="60" collapsible="false">
 				<h:form>
 					<p:menubar>
 						<p:submenu label="File">
-							<p:menuitem value="New Project"
-								onclick="NewProjectDialog.show();" ajax="true"
-								update="ProjectsList" />
+							<p:menuitem value="New Project" onclick="newProjectDialog.show()"
+								ajax="true" />
+							<p:menuitem value="Manage Dependencies" ajax="false"
+								url="/Kieker.WebGUI/manageDependencies" />
+							<p:separator />
+
+							<p:menuitem value="Settings" onclick="settingsDialog.show()"
+								ajax="true" />
+						</p:submenu>
+
+						<!-- This is the submenu for the current project, for example if someone doesn't want to use the context menu within the browser. -->
+						<p:submenu label="Current Project">
 							<p:menuitem value="Save Project" ajax="true" />
 							<p:menuitem value="Set as Main Project" ajax="true" />
 							<p:separator />
+
 							<p:menuitem value="Delete Project" ajax="true" />
 							<p:menuitem value="Reset Project" ajax="true" />
 							<p:separator />
-							<p:menuitem value="Add Dependency" ajax="true"
-								onclick="DependenciesUploadDialog.show();" />
-							<p:menuitem value="Delete Dependency" ajax="true" />
-							<p:separator />
-							<p:menuitem value="Settings" onclick="SettingsDialog.show();"
-								ajax="true" />
+
+							<p:menuitem value="Configure Dependencies" ajax="false"
+								url="/Kieker.WebGUI/projectDependencies" />
 						</p:submenu>
 
 						<p:submenu label="Help">
@@ -46,13 +55,15 @@
 
 				</h:form>
 			</p:layoutUnit>
+			<!-- ******************************************************************************** -->
 
+			<!-- ******************************************************************************** -->
 			<!-- The following layout is at the left side of the page and shows the available projects. -->
 			<p:layoutUnit header="Projects" collapsible="true" position="west"
 				size="200" resizable="true" minSize="100">
-				<h:form id="ProjectsList">
+				<h:form id="projectsForm">
 					<p:tree selection="#{selectedProjectBean.selectedNode}"
-						id="ProjectsListTree" selectionMode="single" style="width: auto"
+						id="projectsTree" selectionMode="single" style="width: auto"
 						value="#{availableProjectsBean.projectsRoot}" var="node">
 						<p:treeNode type="project">
 							<h:outputText
@@ -70,153 +81,174 @@
 						</p:treeNode>
 					</p:tree>
 
-					<p:contextMenu for="ProjectsListTree" nodeType="project">
-						<p:menuitem value="New Project" onclick="NewProjectDialog.show();"
-							ajax="true" update="ProjectsList" />
+					<p:contextMenu for="projectsTree" nodeType="project">
 						<p:menuitem value="Save Project" ajax="true" />
 						<p:menuitem value="Set as Main Project" ajax="true"
 							action="#{selectedProjectBean.setMainProject(selectedProjectBean.getSelectedProject())}"
-							update="ProjectsListTree" />
+							update="projectsForm" />
+
 						<p:separator />
 						<p:menuitem value="Delete Project" ajax="true" />
 						<p:menuitem value="Reset Project" ajax="true" />
+						<p:separator />
+						<p:menuitem value="Configure Dependencies" ajax="true" />
 					</p:contextMenu>
-					<p:contextMenu for="ProjectsListTree" nodeType="dependencies">
-						<p:menuitem value="Add Dependency" ajax="true"
-							onclick="DependenciesUploadDialog.show();" />
-						<p:menuitem value="Delete Dependency" ajax="true" />
+					<p:contextMenu for="projectsTree" nodeType="dependencies">
 					</p:contextMenu>
-					<p:contextMenu for="ProjectsListTree" nodeType="usedPlugins">
-
+					<p:contextMenu for="projectsTree" nodeType="usedPlugins">
 					</p:contextMenu>
 				</h:form>
 
 			</p:layoutUnit>
+			<!-- ******************************************************************************** -->
 
+			<!-- ******************************************************************************** -->
 			<!-- The following layout unit is within the center and used for the graph. -->
 			<p:layoutUnit position="center">
 			</p:layoutUnit>
+			<!-- ******************************************************************************** -->
 
+			<!-- ******************************************************************************** -->
 			<!-- The following layout unit is located at the bottom and will be used for properties. -->
 			<p:layoutUnit position="south" size="150" header="Properties"
 				resizable="true" collapsible="true">
-				<p:dataTable id="carList">
-
-
-					<p:column headerText="Key" style="width:125px">
-						<p:cellEditor>
-							<f:facet name="output">
-								<h:outputText value="" />
-							</f:facet>
-							<f:facet name="input">
-								<p:inputText value="" style="width:100%" />
-							</f:facet>
-						</p:cellEditor>
-					</p:column>
-
-					<p:column headerText="Value" style="width:125px">
-						<p:cellEditor>
-							<f:facet name="output">
-								<h:outputText value="" />
-							</f:facet>
-							<f:facet name="input">
-								<p:inputText value="" style="width:100%" label="Year" />
-							</f:facet>
-						</p:cellEditor>
-					</p:column>
-
-					<p:column headerText="Options" style="width:50px">
-						<p:rowEditor />
-					</p:column>
-
-				</p:dataTable>
+				<h:form>
+					<p:dataTable id="carList">
+
+
+						<p:column headerText="Key" style="width:125px">
+							<p:cellEditor>
+								<f:facet name="output">
+									<h:outputText value="" />
+								</f:facet>
+								<f:facet name="input">
+									<p:inputText value="" style="width:100%" />
+								</f:facet>
+							</p:cellEditor>
+						</p:column>
+
+						<p:column headerText="Value" style="width:125px">
+							<p:cellEditor>
+								<f:facet name="output">
+									<h:outputText value="" />
+								</f:facet>
+								<f:facet name="input">
+									<p:inputText value="" style="width:100%" label="Year" />
+								</f:facet>
+							</p:cellEditor>
+						</p:column>
+
+						<p:column headerText="Options" style="width:50px">
+							<p:rowEditor />
+						</p:column>
+
+					</p:dataTable>
+				</h:form>
 			</p:layoutUnit>
+			<!-- ******************************************************************************** -->
 
+			<!-- ******************************************************************************** -->
 			<!-- The following layout unit is located at the right side of the page and is used as a tool palette. It shows the available plugins etc. -->
 			<p:layoutUnit position="east" size="200" header="Tool Palette"
 				resizable="true" collapsible="true">
-				<p:tree style="width: auto"
-					value="#{availablePluginsBean.availablePluginsRoot}" var="node">
-					<p:treeNode>
-						<h:outputText value="#{node}" />
-					</p:treeNode>
-				</p:tree>
+				<h:form>
+					<p:tree style="width: auto"
+						value="#{availablePluginsBean.availablePluginsRoot}" var="node">
+						<p:treeNode>
+							<h:outputText value="#{node}" />
+						</p:treeNode>
+					</p:tree>
+				</h:form>
 			</p:layoutUnit>
+			<!-- ******************************************************************************** -->
 		</p:layout>
 
-	</h:body>
 
-	<!-- This is the about-dialog. -->
-	<p:dialog header="About..." resizable="false" modal="true"
-		widgetVar="AboutDialog">
-		<h:outputText value="Kieker.WebGUI" />
-		<br />
-		<br />
-		<h:outputText value="Version: 1.0-SNAPSHOT" />
-		<br />
-		<h:outputText value="Copyright (c) 2012 Kieker Project" />
-		<br />
-		<br />
-		<a href="http://www.kieker-monitoring.net/">http://www.kieker-monitoring.net/</a>
-	</p:dialog>
-
-	<!-- This is the dialog to create a new project. -->
-	<p:dialog id="NewProjectDialog" header="New Project" resizable="false"
-		modal="true" widgetVar="NewProjectDialog">
-		<p:ajax event="close" update="NewProjectDialog"
-			listener="#{stringBean.clear()}" />
-
-		<h:form>
-			<h:outputText value="Please enter the name of the new project: " />
-			<br />
-			<br />
-			<center>
-				<p:inputText id="NewProjectInput" style="width: 90%"
-					value="#{stringBean.string}" />
-				<br /> <br />
-				<p:commandButton value="Submit"
-					action="#{availableProjectsBean.addProject(stringBean.string)}"
-					update="ProjectsList" oncomplete="NewProjectDialog.hide();" />
-			</center>
-		</h:form>
-	</p:dialog>
-
-	<!-- This is the dialog for settings and properties. -->
-	<p:dialog id="SettingsDialog" header="Settings" resizable="false"
-		modal="true" widgetVar="SettingsDialog">
-		<h:form>
-			<h:panelGrid columns="2" cellpadding="10">
-				<h:outputText value="Look and Feel:" />
-				<p:themeSwitcher value="#{currentThemeBean.theme}"
-					style="width:150px" effect="fade">
-					<f:selectItem itemLabel="Choose Theme" itemValue="" />
-					<f:selectItems value="#{themeSwitcherBean.themes}" />
-				</p:themeSwitcher>
-			</h:panelGrid>
-			<center>
-				<p:commandButton value="Okay" oncomplete="SettingsDialog.hide();" />
-			</center>
-		</h:form>
-	</p:dialog>
-
-	<!-- This is the dialog for uploading dependencies. -->
-	<p:dialog id="DependenciesUploadDialog" header="Add Dependency"
-		resizable="false" modal="true" widgetVar="DependenciesUploadDialog">
-
-		<h:form enctype="multipart/form-data">
-
-			<p:messages showDetail="true" />
-
-			<p:fileUpload value="#{dependencyUploadController.file}"
-				mode="simple" />
-
-			<p:commandButton value="Submit" ajax="false"
-				actionListener="#{dependencyUploadController.upload}" />
-
-		</h:form>
-
-	</p:dialog>
+		<!-- ******************************************************************************** -->
+		<!-- This is the about-dialog. -->
+		<p:dialog header="About..." resizable="false" modal="true"
+			widgetVar="AboutDialog">
+			<h:form>
+				<h:outputText value="Kieker.WebGUI" />
+				<br />
+				<br />
+				<h:outputText value="Version: 1.0-SNAPSHOT" />
+				<br />
+				<h:outputText value="Copyright (c) 2012 Kieker Project" />
+				<br />
+				<br />
+				<a href="http://www.kieker-monitoring.net/">http://www.kieker-monitoring.net/</a>
+			</h:form>
+		</p:dialog>
+		<!-- ******************************************************************************** -->
+
+		<!-- ******************************************************************************** -->
+		<!-- This is the dialog to create a new project. -->
+		<p:dialog id="newProjectDialog" header="New Project" resizable="false"
+			modal="true" widgetVar="newProjectDialog">
+			<!-- Make sure that closing of the dialog also clears the input field. -->
+			<p:ajax event="close" update="newProjectDialog"
+				listener="#{stringBean.clear()}" />
+
+			<h:form>
+				<h:outputText value="Please enter the name of the new project: " />
+				<br />
+				<br />
+				<center>
+					<p:inputText id="NewProjectInput" style="width: 90%"
+						value="#{stringBean.string}" />
+					<br /> <br />
+					<p:commandButton value="Ok"
+						action="#{availableProjectsBean.addProject(stringBean.string)}"
+						oncomplete="newProjectDialog.hide()" />
+					<p:spacer width="100" height="10" />
+					<p:commandButton value="Cancel" onclick="newProjectDialog.hide()" />
+				</center>
+			</h:form>
+		</p:dialog>
+		<!-- ******************************************************************************** -->
+
+		<!-- ******************************************************************************** -->
+		<!-- This is the dialog for settings and properties. -->
+		<p:dialog id="settingsDialog" header="Settings" resizable="false"
+			modal="true" widgetVar="settingsDialog">
+			<h:form>
+				<h:panelGrid columns="2" cellpadding="10">
+					<h:outputText value="Look and Feel:" />
+					<p:themeSwitcher value="#{currentThemeBean.theme}"
+						style="width:150px" effect="fade">
+						<f:selectItem itemLabel="Choose Theme" itemValue="" />
+						<f:selectItems value="#{themeSwitcherBean.themes}" />
+					</p:themeSwitcher>
+				</h:panelGrid>
+				<center>
+					<p:commandButton value="Ok" oncomplete="settingsDialog.hide();" />
+				</center>
+			</h:form>
+		</p:dialog>
+		<!-- ******************************************************************************** -->
+
+		<!-- ******************************************************************************** -->
+		<!-- This is the dialog for uploading dependencies. -->
+		<p:dialog id="dependenciesUploadDialog" header="Add Dependency"
+			resizable="false" modal="true" widgetVar="dependenciesUploadDialog">
+
+			<h:form enctype="multipart/form-data">
+
+				<p:messages showDetail="true" />
+
+				<p:fileUpload value="#{dependencyUploadController.file}"
+					mode="simple" />
+
+				<p:commandButton value="Submit" ajax="false"
+					actionListener="#{dependencyUploadController.upload}" />
+
+			</h:form>
+
+		</p:dialog>
+		<!-- ******************************************************************************** -->
 
+	</h:body>
 </f:view>
 </html>
 
diff --git a/Kieker.WebGUI/src/main/webapp/manageDependencies.css b/Kieker.WebGUI/src/main/webapp/manageDependencies.css
new file mode 100644
index 00000000..133b19ab
--- /dev/null
+++ b/Kieker.WebGUI/src/main/webapp/manageDependencies.css
@@ -0,0 +1,5 @@
+@charset "UTF-8";
+
+.ui-button {
+	font-size: 15px;
+}
\ No newline at end of file
diff --git a/Kieker.WebGUI/src/main/webapp/manageDependencies.xhtml b/Kieker.WebGUI/src/main/webapp/manageDependencies.xhtml
new file mode 100644
index 00000000..d92351a3
--- /dev/null
+++ b/Kieker.WebGUI/src/main/webapp/manageDependencies.xhtml
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:p="http://primefaces.org/ui">
+
+<f:view contentType="text/html">
+	<h:head>
+		<title>Kieker.WebGUI - Dependencies</title>
+		<link rel="stylesheet" title="Standard-Stylesheet" type="text/css"
+			href="manageDependencies.css" />
+	</h:head>
+	<body>
+		<h:form>
+			<h3>Currently Available Dependencies</h3>
+			<p:dataList id="currentDependencies"
+				value="#{availableDependenciesBean.dependencies}" var="dependency"
+				itemType="square">
+ 				#{dependency.getFilePath()} 
+			</p:dataList>
+		</h:form>
+		
+		<h:form enctype="multipart/form-data">
+			<p:fileUpload value="#{dependencyUploadController.file}"
+				mode="simple" />
+			<br />
+			<p:commandButton value="Upload" ajax="false"
+				actionListener="#{dependencyUploadController.upload}" />
+
+		</h:form>
+	</body>
+</f:view>
+
+</html>
\ No newline at end of file
diff --git a/Kieker.WebGUI/src/main/webapp/projectDependencies.xhtml b/Kieker.WebGUI/src/main/webapp/projectDependencies.xhtml
new file mode 100644
index 00000000..a4813ae3
--- /dev/null
+++ b/Kieker.WebGUI/src/main/webapp/projectDependencies.xhtml
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:p="http://primefaces.org/ui">
+
+<f:view contentType="text/html">
+	<h:head>
+		<title>Kieker.WebGUI - Project Dependencies</title>
+		<link rel="stylesheet" title="Standard-Stylesheet" type="text/css"
+			href="main.css" />
+	</h:head>
+	<body>
+		<h:form>
+			<p:pickList id="pickList" value="#{selectedDependenciesBean.dependencies}" var="dependency"
+				itemLabel="#{dependency}" itemValue="#{dependency}" />
+			<p:commandButton value="Ok" />
+			<p:commandButton value="Accept" />
+			<p:commandButton value="Cancel" />
+			<p:commandButton value="Reset" />
+		</h:form>
+	</body>
+</f:view>
+
+</html>
\ No newline at end of file
-- 
GitLab