diff --git a/Kieker.WebGUI/lib/jcl-over-slf4j.LICENSE b/Kieker.WebGUI/lib/jcl-over-slf4j-1.7.2.LICENSE
similarity index 100%
rename from Kieker.WebGUI/lib/jcl-over-slf4j.LICENSE
rename to Kieker.WebGUI/lib/jcl-over-slf4j-1.7.2.LICENSE
diff --git a/Kieker.WebGUI/lib/jetty-runner-8.1.4.v20120524.LICENSE b/Kieker.WebGUI/lib/jetty-runner-8.1.7.v20120910.LICENSE
similarity index 100%
rename from Kieker.WebGUI/lib/jetty-runner-8.1.4.v20120524.LICENSE
rename to Kieker.WebGUI/lib/jetty-runner-8.1.7.v20120910.LICENSE
diff --git a/Kieker.WebGUI/lib/jetty-runner-8.1.4.v20120524.jar b/Kieker.WebGUI/lib/jetty-runner-8.1.7.v20120910.jar
similarity index 76%
rename from Kieker.WebGUI/lib/jetty-runner-8.1.4.v20120524.jar
rename to Kieker.WebGUI/lib/jetty-runner-8.1.7.v20120910.jar
index ba1089212fe5c2d16a9e52c6fded55b83ae7d558..c5c47f72748779eaa0bef044eaf406c25242cada 100644
Binary files a/Kieker.WebGUI/lib/jetty-runner-8.1.4.v20120524.jar and b/Kieker.WebGUI/lib/jetty-runner-8.1.7.v20120910.jar differ
diff --git a/Kieker.WebGUI/lib/slf4j-api.LICENSE b/Kieker.WebGUI/lib/slf4j-api-1.7.2.LICENSE
similarity index 100%
rename from Kieker.WebGUI/lib/slf4j-api.LICENSE
rename to Kieker.WebGUI/lib/slf4j-api-1.7.2.LICENSE
diff --git a/Kieker.WebGUI/lib/slf4j-log4j12.LICENSE b/Kieker.WebGUI/lib/slf4j-log4j12-1.7.2.LICENSE
similarity index 100%
rename from Kieker.WebGUI/lib/slf4j-log4j12.LICENSE
rename to Kieker.WebGUI/lib/slf4j-log4j12-1.7.2.LICENSE
diff --git a/Kieker.WebGUI/pom.xml b/Kieker.WebGUI/pom.xml
index 40fc557995ed3b1ce29e7d0c7f657cb6dce67930..099cd3de759dcfbdd2f16aad7bb483b6d57d18c8 100644
--- a/Kieker.WebGUI/pom.xml
+++ b/Kieker.WebGUI/pom.xml
@@ -27,6 +27,8 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <kieker.jar>kieker-1.6_emf.jar</kieker.jar>
         <spring.version>3.1.2.RELEASE</spring.version>
+        <slf4j.version>1.7.2</slf4j.version>
+        <primefaces.themes.version>1.0.8</primefaces.themes.version>
     </properties>
 
     <repositories>
@@ -83,17 +85,17 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>jcl-over-slf4j</artifactId>
-            <version>1.6.6</version>
+            <version>${slf4j.version}</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
-            <version>1.6.6</version>
+            <version>${slf4j.version}</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-log4j12</artifactId>
-            <version>1.6.6</version>
+            <version>${slf4j.version}</version>
         </dependency>
         <dependency>
             <groupId>com.ocpsoft</groupId>
@@ -130,6 +132,11 @@
             <artifactId>derby</artifactId>
             <version>10.9.1.0</version>
         </dependency>
+        <dependency>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jetty-runner</artifactId>
+            <version>8.1.7.v20120910</version>
+        </dependency>
         <dependency>
             <groupId>javax</groupId>
             <artifactId>javaee-web-api</artifactId>
@@ -144,152 +151,152 @@
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>black-tie</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>blitzer</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>bluesky</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>casablanca</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>cupertino</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>dark-hive</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>dot-luv</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>eggplant</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>excite-bike</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>flick</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>hot-sneaks</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>humanity</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>le-frog</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>midnight</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>mint-choc</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>overcast</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>pepper-grinder</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>redmond</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>rocket</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>sam</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>smoothness</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>south-street</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>start</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>sunny</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>swanky-purse</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>trontastic</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>ui-darkness</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>ui-lightness</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>vader</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>org.primefaces.themes</groupId>
             <artifactId>glass-x</artifactId>
-            <version>1.0.8</version>
+            <version>${primefaces.themes.version}</version>
         </dependency>
         <dependency>
             <groupId>kieker</groupId>
@@ -331,7 +338,7 @@
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>findbugs-maven-plugin</artifactId>
-                <version>2.4.0</version>
+                <version>2.5.2</version>
                 <configuration>
                     <effort>Max</effort>
                     <threshold>Low</threshold>
@@ -368,8 +375,11 @@
             <plugin>
                 <groupId>org.mortbay.jetty</groupId>
                 <artifactId>jetty-maven-plugin</artifactId>
-                <version>8.1.4.v20120524</version>
+                <version>8.1.7.v20120910</version>
                 <configuration>
+                    <webApp>
+                        <contextPath>/Kieker.WebGUI</contextPath>
+                    </webApp>
                     <scanIntervalSeconds>5</scanIntervalSeconds>
                     <connectors>
                         <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
@@ -383,7 +393,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>2.4</version>
+                <version>2.5.1</version>
                 <configuration>
                     <source>1.6</source>
                     <target>1.6</target>
@@ -413,7 +423,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-war-plugin</artifactId>
-                <version>2.2</version>
+                <version>2.3</version>
                 <configuration>
                     <failOnMissingWebXml>false</failOnMissingWebXml>
                 </configuration>
diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/ProjectOverviewPageDialogs.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/ProjectOverviewPageDialogs.xhtml
index 3970abaa82b5c1742d36358ce9ed178828e0180a..25ae3ba6c45e221eaa9586e26070158da5fe01b5 100644
--- a/Kieker.WebGUI/src/main/webapp/dialogs/ProjectOverviewPageDialogs.xhtml
+++ b/Kieker.WebGUI/src/main/webapp/dialogs/ProjectOverviewPageDialogs.xhtml
@@ -71,4 +71,18 @@
             </div>
         </h:form>  
     </p:dialog>
+
+    <p:dialog header="Save Project" resizable="false" modal="true" widgetVar="forceSaveDlg">
+        <h:form>
+            <div style="text-align: center">
+                <h:outputText value="The project has been modified externally in the meanwhile. Do you want to overwrite the changes?" /> 
+            </div>
+            <hr/>
+            <div style="text-align: right">
+                <p:commandButton value="Yes" action="#{currentCockpitEditorBean.saveProject(true)}" oncomplete="forceSaveDlg.hide()" update=":messages" />
+                <p:spacer width="10px" height="10" />
+                <p:commandButton value="Cancel" onclick="forceSaveDlg.hide()" />
+            </div>
+        </h:form>
+    </p:dialog>
 </ui:composition>
\ No newline at end of file
diff --git a/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml
index c7f1e6e011b1e6c076d7374a2b475d19b243b2ee..cda5721a49cd93928a414b473f4b998404453dea 100644
--- a/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml
+++ b/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml
@@ -3,107 +3,53 @@
 <html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:ui="http://java.sun.com/jsf/facelets"
-      xmlns:f="http://java.sun.com/jsf/core"
-      xmlns:p="http://primefaces.org/ui">
+      xmlns:p="http://primefaces.org/ui"
+      xmlns:f="http://java.sun.com/jsf/core">
 
-    <f:metadata>
-        <f:viewParam name="projectName" value="#{currentCockpitEditorBean.projectName}"/>
-        <f:event type="preRenderView" listener="#{currentCockpitEditorBean.initalize()}"  />
-    </f:metadata>
-
-    <f:loadBundle var="localizedMessages" basename="lang.Common"/>
-    <f:loadBundle var="localizedCockpitEditorPageMessages" basename="lang.CockpitEditorPage"/>
-
-    <h:head>
-        <title>Kieker.WebGUI</title>
-        <link rel="stylesheet" type="text/css" href="../css/Common.css" />
-        <link rel="stylesheet" type="text/css" href="../css/Icons.css" />
-        <link rel="stylesheet" type="text/css" href="../css/CockpitEditorPage.css" />
-    </h:head> 
+    <h:head/>
 
     <h:body>
-        <p:layout id="layout" fullPage="true">
-
-            <p:layoutUnit position="north" collapsible="false">
-                <h:form>
-                    <p:toolbar>
-                        <p:toolbarGroup align="left">
-                            <h:outputText styleClass="kieker-title" value="Kieker &raquo; #{stringBean.shortenLongName(currentCockpitEditorBean.projectName, 30)}"/>
-                        </p:toolbarGroup>
-                        <p:toolbarGroup align="right">
-                            <p:button styleClass="perspective-button" icon="ui-icon-home" outcome="projectOverview" />
-                            <p:separator/>
-                            <p:button styleClass="perspective-button" icon="ui-icon-analysisEditor" value="#{localizedMessages.analysisEditor}" style="white-space: none" outcome="analysisEditor">
-                                <f:param name="projectName" value="#{currentCockpitEditorBean.projectName}" rendered="#{not empty currentCockpitEditorBean.projectName}"/>
-                            </p:button>
-                            <p:button styleClass="perspective-button" icon="ui-icon-analysis" value="#{localizedMessages.analysis}" style="white-space: none" outcome="controller">
-                                <f:param name="projectName" value="#{currentCockpitEditorBean.projectName}" rendered="#{not empty currentCockpitEditorBean.projectName}"/>
-                            </p:button>
-                            <p:separator/>
-                            <p:button styleClass="perspective-button" icon="ui-icon-cockpitEditor" value="#{localizedMessages.cockpitEditor}" style="white-space: none" disabled="true"/>
-                            <p:button styleClass="perspective-button" icon="ui-icon-cockpit" value="#{localizedMessages.cockpit}" style="white-space: none" outcome="cockpit">
-                                <f:param name="projectName" value="#{currentCockpitEditorBean.projectName}" rendered="#{not empty currentCockpitEditorBean.projectName}"/>
-                            </p:button>
-                        </p:toolbarGroup>
-                    </p:toolbar>
-
-                    <!-- The following is the main menu. -->
-                    <p:menubar> 
-                        <p:submenu  label="#{localizedMessages.file}">
-                            <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-newProject" value="  Neues View" update=":messages" ajax="true" onclick="newViewDialog.show();" disabled="#{empty currentCockpitEditorBean.project}"/>
-                            <p:separator />
-                            <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-save" value="  #{localizedMessages.saveProject}" update=":messages" ajax="true" action="#{currentCockpitEditorBean.saveProject(false)}" disabled="#{empty currentCockpitEditorBean.project}"/>
-                            <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-saveAs" value="  #{localizedMessages.saveProjectAs}" update=":messages" ajax="true" disabled="#{true or empty currentCockpitEditorBean.project}"/>
-                            <p:separator />
-                            <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-reload" value="  #{localizedMessages.reloadProject}" ajax="false" url="cockpitEditor?projectName=#{currentCockpitEditorBean.projectName}" disabled="#{empty currentCockpitEditorBean.project}" />
-                            <p:separator/>
-                            <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-settings" value="  #{localizedMessages.settings}" onclick="settingsDlg.show()" ajax="true"/>
-                            <p:separator />
-                            <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-close" value="  #{localizedMessages.closeProject}" action="ProjectOverviewPage.xhtml?faces-redirect=true" ajax="false"/>
-                        </p:submenu>
-
-                        <p:submenu label="#{localizedMessages.help}">
-                            <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-userGuide" value="  #{localizedMessages.userGuide}" ajax="true" disabled="true"/>
-                            <p:separator/>
-                            <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-about" value="  #{localizedMessages.about}" onclick="aboutDlg.show()" ajax="true"/>
-                        </p:submenu>
-
-                        <p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.username}" ajax="true" url="#{request.contextPath}/j_spring_security_logout"/>
-                    </p:menubar> 
-                </h:form>
-            </p:layoutUnit>
 
-            <p:layoutUnit position="west" resizable="true" size="300" collapsible="true" header="Available Views">
-                <h:form id="availableViewsForm">
-                    <p:dataList value="#{currentCockpitEditorBean.project.views}" var="viewElem"> 
-                            <p:commandLink id="dynaButton" value="#{viewElem.name}"/>
-
-                            <p:menu overlay="true" trigger="dynaButton" my="left top" at="left bottom" style="width:210px">        
-                                <p:menuitem icon="ui-icon-analysisEditor" value="  #{localizedCockpitEditorPageMessages.selectView}" action="#{currentCockpitEditorBean.setActiveView(viewElem)}" styleClass="element-with-whitespace" update=":messages :centerForm"/>
-                                <p:separator/>
-                                <p:menuitem  icon="ui-icon-copy"  styleClass="element-with-whitespace" value="  #{localizedCockpitEditorPageMessages.copyView}" />
-                                <p:menuitem  icon="ui-icon-edit"  styleClass="element-with-whitespace" value="  #{localizedCockpitEditorPageMessages.renameView}"/>
-                                <p:menuitem  icon="ui-icon-delete"  styleClass="element-with-whitespace" value="  #{localizedCockpitEditorPageMessages.deleteView}"/> 
-                            </p:menu>
-                    </p:dataList>
-                </h:form>
-            </p:layoutUnit>
-
-            <p:layoutUnit position="east" resizable="true" size="300" collapsible="true" header="Available Displays">
-                <h:form  rendered="#{not empty currentCockpitEditorBean.project}">
-                    <p:accordionPanel value="#{currentCockpitEditorBean.project.plugins}" multiple="true" activeIndex="" var="plugin">
-                        <p:tab title="#{plugin.name}" titletip="#{plugin.classname}">
-                            <h:outputText value="No Displays Available" rendered="#{empty plugin.displays}"/>
-                            <ui:repeat value="#{plugin.displays}" var="display">             
-                                <p:commandLink id="displayLink" value="#{display.name}" action="#{currentCockpitEditorBean.addDisplayToView(display)}" update=":availableViewsForm :centerForm"/><br/>
-                                <p:tooltip for="displayLink" value="#{currentCockpitEditorBean.getDescription(display)}"/>
-                            </ui:repeat>
-                        </p:tab>
-                    </p:accordionPanel>
-                </h:form>
-            </p:layoutUnit>
-
-            <p:layoutUnit position="center">
+        <ui:composition template="/templates/PagesTemplate.xhtml">
+
+            <ui:param name="projectName" value="#{currentCockpitEditorBean.projectName}"/>
+            <ui:param name="pagename" value="cockpitEditor"/>
+            <ui:param name="showProjectName" value="true"/>
+
+            <ui:define name="metaData">
+                <f:metadata>
+                    <f:viewParam name="projectName" value="#{currentCockpitEditorBean.projectName}"/>
+                    <f:event type="preRenderView" listener="#{currentCockpitEditorBean.initalize()}"  />
+                </f:metadata>
+            </ui:define>
+
+            <ui:define name="bundleIncludes">
+                <f:loadBundle var="localizedCockpitEditorPageMessages" basename="lang.CockpitEditorPage"/>
+            </ui:define>
+
+            <ui:define name="cssIncludes">
+                <link rel="stylesheet" type="text/css" href="${root}/css/CockpitEditorPage.css" />
+            </ui:define>
+
+
+            <!-- Those are the menu bar entries left from the help-submenu. -->
+            <ui:define name="furtherMenuBarEntries">
+                <p:submenu  label="#{localizedMessages.file}">
+                    <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-newProject" value="  Neues View" update=":messages" ajax="true" onclick="newViewDialog.show();" disabled="#{empty currentCockpitEditorBean.project}"/>
+                    <p:separator />
+                    <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-save" value="  #{localizedMessages.saveProject}" update=":messages" ajax="true" action="#{currentCockpitEditorBean.saveProject(false)}" disabled="#{empty currentCockpitEditorBean.project}"/>
+                    <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-saveAs" value="  #{localizedMessages.saveProjectAs}" update=":messages" ajax="true" disabled="#{true or empty currentCockpitEditorBean.project}"/>
+                    <p:separator />
+                    <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-reload" value="  #{localizedMessages.reloadProject}" ajax="false" url="cockpitEditor?projectName=#{currentCockpitEditorBean.projectName}" disabled="#{empty currentCockpitEditorBean.project}" />
+                    <p:separator/>
+                    <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-settings" value="  #{localizedMessages.settings}" onclick="settingsDlg.show()" ajax="true"/>
+                    <p:separator />
+                    <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-close" value="  #{localizedMessages.closeProject}" action="ProjectOverviewPage.xhtml?faces-redirect=true" ajax="false"/>
+                </p:submenu>
+            </ui:define>  
+
+
+            <ui:define name="centerContent">
                 <h:form id="centerForm">
                     <ui:fragment rendered="#{not empty currentCockpitEditorBean.activeView}">
                         <h:outputText value="Description: "/>  
@@ -115,45 +61,58 @@
                         <p:dashboard id="dynamicDashboard" binding="#{currentCockpitEditorBean.dashboard}"/>
                     </ui:fragment>
                 </h:form>
-            </p:layoutUnit>
-
-            <!-- This is the component presenting the available properties. -->
-            <p:layoutUnit style="font-size: 12px" position="south" size="150" header="#{localizedMessages.properties}" resizable="true" collapsible="true">
-                <h:form id="propertiesForm" >
-                    <p:dataTable editable="true" var="property" rowIndexVar="rowIndex" emptyMessage="#{localizedMessages.noPropertiesAvailable}">
-                        <p:column headerText="#{localizedMessages.property}" style="width:125px"> 
-                        </p:column>
-
-                        <p:column headerText="#{localizedMessages.value}" style="width:125px">
-                        </p:column>                       
-                    </p:dataTable>
-                </h:form>
-            </p:layoutUnit>
-        </p:layout>
-
-        <p:dialog header="Save Project" resizable="false" modal="true" widgetVar="forceSaveDlg">
-            <h:form>
-                <div style="text-align: center">
-                    <h:outputText value="The project has been modified externally in the meanwhile. Do you want to overwrite the changes?" /> 
-                </div>
-                <hr/>
-                <div style="text-align: right">
-                    <p:commandButton value="Yes" action="#{currentCockpitEditorBean.saveProject(true)}" oncomplete="forceSaveDlg.hide()" update=":messages" />
-                    <p:spacer width="10px" height="10" />
-                    <p:commandButton value="Cancel" onclick="forceSaveDlg.hide()" />
-                </div>
-            </h:form>
-        </p:dialog>
-
-        <p:growl id="messages" life="1500" showDetail="true"  autoUpdate="false" sticky="true"/>  
-
-        <!-- Include the dialog for the configuration. -->
-        <ui:include src="../dialogs/SettingsDialog.xhtml" />
-
-        <!-- Include the dialogs for the views. -->
-        <ui:include src="../dialogs/CockpitEditorPageDialogs.xhtml" />
-
-        <!-- Include the about-dialog. -->
-        <ui:include src="../dialogs/AboutDialog.xhtml" />
+            </ui:define>
+
+            <ui:define name="furtherLayoutUnits">
+                <p:layoutUnit position="west" resizable="true" size="300" collapsible="true" header="Available Views">
+                    <h:form id="availableViewsForm">
+                        <p:dataList value="#{currentCockpitEditorBean.project.views}" var="viewElem"> 
+                            <p:commandLink id="dynaButton" value="#{viewElem.name}"/>
+
+                            <p:menu overlay="true" trigger="dynaButton" my="left top" at="left bottom" style="width:210px">        
+                                <p:menuitem icon="ui-icon-analysisEditor" value="  #{localizedCockpitEditorPageMessages.selectView}" action="#{currentCockpitEditorBean.setActiveView(viewElem)}" styleClass="element-with-whitespace" update=":messages :centerForm"/>
+                                <p:separator/>
+                                <p:menuitem  icon="ui-icon-copy"  styleClass="element-with-whitespace" value="  #{localizedCockpitEditorPageMessages.copyView}" />
+                                <p:menuitem  icon="ui-icon-edit"  styleClass="element-with-whitespace" value="  #{localizedCockpitEditorPageMessages.renameView}"/>
+                                <p:menuitem  icon="ui-icon-delete"  styleClass="element-with-whitespace" value="  #{localizedCockpitEditorPageMessages.deleteView}"/> 
+                            </p:menu>
+                        </p:dataList>
+                    </h:form>
+                </p:layoutUnit>
+
+                <p:layoutUnit position="east" resizable="true" size="300" collapsible="true" header="Available Displays">
+                    <h:form  rendered="#{not empty currentCockpitEditorBean.project}">
+                        <p:accordionPanel value="#{currentCockpitEditorBean.project.plugins}" multiple="true" activeIndex="" var="plugin">
+                            <p:tab title="#{plugin.name}" titletip="#{plugin.classname}">
+                                <h:outputText value="No Displays Available" rendered="#{empty plugin.displays}"/>
+                                <ui:repeat value="#{plugin.displays}" var="display">             
+                                    <p:commandLink id="displayLink" value="#{display.name}" action="#{currentCockpitEditorBean.addDisplayToView(display)}" update=":availableViewsForm :centerForm"/><br/>
+                                    <p:tooltip for="displayLink" value="#{currentCockpitEditorBean.getDescription(display)}"/>
+                                </ui:repeat>
+                            </p:tab>
+                        </p:accordionPanel>
+                    </h:form>
+                </p:layoutUnit>
+                <!-- This is the component presenting the available properties. -->
+                <p:layoutUnit style="font-size: 12px" position="south" size="150" header="#{localizedMessages.properties}" resizable="true" collapsible="true">
+                    <h:form id="propertiesForm" >
+                        <p:dataTable editable="true" var="property" rowIndexVar="rowIndex" emptyMessage="#{localizedMessages.noPropertiesAvailable}">
+                            <p:column headerText="#{localizedMessages.property}" style="width:125px"> 
+                            </p:column>
+
+                            <p:column headerText="#{localizedMessages.value}" style="width:125px">
+                            </p:column>                       
+                        </p:dataTable>
+                    </h:form>
+                </p:layoutUnit>
+            </ui:define>
+
+            <ui:define name="furtherDialogIncludes">
+                <!-- Include the dialogs for the views. -->
+                <ui:include src="../dialogs/CockpitEditorPageDialogs.xhtml" />
+            </ui:define>
+
+        </ui:composition>
+
     </h:body>
 </html>
\ No newline at end of file
diff --git a/Kieker.WebGUI/src/main/webapp/pages/ControllerPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/ControllerPage.xhtml
index 623647308973d2b3be3c0206afde6f7c8b71e1a9..89d6bede4e18577cacb93b153f3674fde9bdefc6 100644
--- a/Kieker.WebGUI/src/main/webapp/pages/ControllerPage.xhtml
+++ b/Kieker.WebGUI/src/main/webapp/pages/ControllerPage.xhtml
@@ -3,72 +3,45 @@
 <html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:ui="http://java.sun.com/jsf/facelets"
-      xmlns:f="http://java.sun.com/jsf/core"
-      xmlns:p="http://primefaces.org/ui">
+      xmlns:p="http://primefaces.org/ui"
+      xmlns:f="http://java.sun.com/jsf/core">
 
-    <f:metadata>
-        <f:viewParam name="projectName" value="#{currentControllerBean.projectName}"/>
-    </f:metadata>
+    <h:head/>
 
-    <f:loadBundle var="localizedMessages" basename="lang.Common"/>
-    <f:loadBundle var="localizedControllerPageMessages" basename="lang.ControllerPage"/>
+    <h:body>
 
-    <h:head>
-        <title>Kieker.WebGUI</title>
-        <link rel="stylesheet" type="text/css" href="../css/Common.css" />
-        <link rel="stylesheet" type="text/css" href="../css/Icons.css" />
-        <link rel="stylesheet" type="text/css" href="../css/ControllerPage.css" />
-    </h:head>
+        <ui:composition template="/templates/PagesTemplate.xhtml">
 
-    <h:body>
+            <ui:param name="projectName" value="#{currentControllerBean.projectName}"/>
+            <ui:param name="pagename" value="controller"/>
+            <ui:param name="showProjectName" value="true"/>
+
+            <ui:define name="metaData">
+                <f:metadata>
+                    <f:viewParam name="projectName" value="#{currentControllerBean.projectName}"/>
+                </f:metadata>
+            </ui:define>
+
+            <ui:define name="bundleIncludes">
+                <f:loadBundle var="localizedControllerPageMessages" basename="lang.ControllerPage"/>
+            </ui:define>
+
+            <ui:define name="cssIncludes">
+                <link rel="stylesheet" type="text/css" href="${root}/css/ControllerPage.css" />
+            </ui:define>
 
-        <!-- This is the layout for the whole page. -->
-        <p:layout id="layout" fullPage="true">
-
-            <p:layoutUnit position="north" collapsible="false">
-                <h:form>
-                    <p:toolbar>
-                        <p:toolbarGroup align="left">
-                            <h:outputText styleClass="kieker-title" value="Kieker &raquo; #{stringBean.shortenLongName(currentControllerBean.projectName, 30)}"/>
-                        </p:toolbarGroup>
-                        <p:toolbarGroup align="right">
-                            <p:button styleClass="perspective-button" icon="ui-icon-home" outcome="projectOverview" />
-                            <p:separator/>
-                            <p:button styleClass="perspective-button" icon="ui-icon-analysisEditor" value="#{localizedMessages.analysisEditor}" style="white-space: none" outcome="analysisEditor" >
-                                <f:param name="projectName" value="#{currentControllerBean.projectName}" rendered="#{not empty currentControllerBean.projectName}"/>
-                            </p:button>
-                            <p:button styleClass="perspective-button" icon="ui-icon-analysis" value="#{localizedMessages.analysis}" style="white-space: none" disabled="true"/>
-                            <p:separator/>
-                            <p:button styleClass="perspective-button" icon="ui-icon-cockpitEditor" value="#{localizedMessages.cockpitEditor}" style="white-space: none" outcome="cockpitEditor">
-                                <f:param name="projectName" value="#{currentControllerBean.projectName}" rendered="#{not empty currentControllerBean.projectName}"/>
-                            </p:button>
-                            <p:button styleClass="perspective-button" icon="ui-icon-cockpit" value="#{localizedMessages.cockpit}" style="white-space: none" outcome="cockpit">
-                                <f:param name="projectName" value="#{currentControllerBean.projectName}" rendered="#{not empty currentControllerBean.projectName}"/>
-                            </p:button>
-                        </p:toolbarGroup>
-                    </p:toolbar>
-
-                    <p:menubar>
-                        <p:submenu label="#{localizedMessages.file}">
-                            <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-settings" value="  #{localizedMessages.settings}" onclick="settingsDlg.show()" ajax="true"/>
-                            <p:separator/>
-                            <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-close" value="  #{localizedMessages.closeProject}" action="ProjectOverviewPage.xhtml?faces-redirect=true"  ajax="false"/>   
-                        </p:submenu>
-
-                        <p:submenu label="#{localizedMessages.help}">
-                            <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-userGuide" value="  #{localizedMessages.userGuide}" ajax="true" disabled="true"/>
-                            <p:separator/>
-                            <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-about" value="  #{localizedMessages.about}" onclick="aboutDlg.show()" ajax="true"/>
-                        </p:submenu>
-
-                        <p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.username}" ajax="true" url="#{request.contextPath}/j_spring_security_logout"/>
-                    </p:menubar>
-
-                </h:form>
-            </p:layoutUnit>
-
-
-            <p:layoutUnit position="center" id="centerLayout">
+            <!-- Those are the menu bar entries left from the help-submenu. -->
+            <ui:define name="furtherMenuBarEntries">
+                <p:submenu label="#{localizedMessages.file}">
+                    <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-settings" value="  #{localizedMessages.settings}" onclick="settingsDlg.show()" ajax="true"/>
+                    <p:separator/>
+                    <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-close" value="  #{localizedMessages.closeProject}" action="ProjectOverviewPage.xhtml?faces-redirect=true"  ajax="false"/>   
+                </p:submenu>
+            </ui:define>  
+
+
+
+            <ui:define name="centerContent">
                 <p:tabView id="tabView" style="height: 99%"> 
                     <p:tab title="#{localizedControllerPageMessages.personalLog}">
                         <h:form id="currentViewLog">
@@ -85,53 +58,47 @@
                         </h:form>
                     </p:tab>
                 </p:tabView>
-            </p:layoutUnit>
-
-            <p:layoutUnit position="south" header="#{localizedControllerPageMessages.control}" resizable="true" collapsible="true">
-                <h:form id="controllerForm">
-                    <p:commandButton value="#{localizedControllerPageMessages.analysisControllerInstantiateAnalysisController}" action="#{currentControllerBean.instantiateAnalysis()}" update=":messages :tabView:currentViewLog" disabled="#{empty currentControllerBean.projectName}"/>
-                    <p:commandButton value="#{localizedControllerPageMessages.analysisControllerCleaAnalysisController}" action="#{currentControllerBean.cleanAnalysis()}"  update=":messages :tabView:currentViewLog" disabled="#{empty currentControllerBean.projectName}"/>
-                    <p:commandButton value="#{localizedControllerPageMessages.analysisControllerStartAnalysis}" action="#{currentControllerBean.startAnalysis()}"  update=":messages :tabView:currentViewLog" disabled="#{empty currentControllerBean.projectName}"/>
-                    <p:commandButton value="#{localizedControllerPageMessages.analysisControllerStopAnalysis}" action="#{currentControllerBean.stopAnalysis()}"  update=":messages :tabView:currentViewLog" disabled="#{empty currentControllerBean.projectName}"/>
-                    <p:poll interval="1" update=":ledsForm :tabView:analysisControllerLog"/>
-                </h:form>  
-                <hr/>
-                <h:form id="ledsForm">
-                    <div align="center">
-                        <h:graphicImage id="iconLEDRed1"  url="../img/LEDs/Icon_LED_Red.png" height="50px" rendered="#{currentControllerBean.isAnalysisNotAvailable()}"/>
-                        <h:graphicImage id="iconLEDRed1_2"  url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisNotAvailable()}"/>
-                        <p:spacer height="0" width="15px"/>
-                        <h:graphicImage id="iconLEDYellow"  url="../img/LEDs/Icon_LED_Yellow.png" height="50px" rendered="#{currentControllerBean.isAnalysisReady()}"/>
-                        <h:graphicImage id="iconLEDYellow_2"  url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisReady()}"/>
-                        <p:spacer height="0" width="15px"/>
-                        <h:graphicImage id="iconLEDGreen"  url="../img/LEDs/Icon_LED_Green.png" height="50px" rendered="#{currentControllerBean.isAnalysisRunning()}"/>
-                        <h:graphicImage id="iconLEDGreen_2"  url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisRunning()}"/>
-                        <p:spacer height="0" width="15px"/>
-                        <h:graphicImage id="iconLEDRed2"  url="../img/LEDs/Icon_LED_Red.png" height="50px" rendered="#{currentControllerBean.isAnalysisTerminated() or currentControllerBean.isAnalysisFailed()}"/>
-                        <h:graphicImage id="iconLEDRed2_2"  url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not (currentControllerBean.isAnalysisTerminated() or currentControllerBean.isAnalysisFailed())}"/>
-
-                        <p:tooltip for="iconLEDRed1" value="#{localizedControllerPageMessages.analysisControllerMsgNotInstantiated}"/>
-                        <p:tooltip for="iconLEDYellow" value="#{localizedControllerPageMessages.analysisControllerMsgReady}"/>
-                        <p:tooltip for="iconLEDGreen" value="#{localizedControllerPageMessages.analysisControllerMsgRunning}"/>
-                        <p:tooltip for="iconLEDRed2" value="#{localizedControllerPageMessages.analysisControllerMsgFailed}"/>
-                        <p:tooltip for="iconLEDRed1_2" value="#{localizedControllerPageMessages.analysisControllerMsgNotInstantiated}"/>
-                        <p:tooltip for="iconLEDYellow_2" value="#{localizedControllerPageMessages.analysisControllerMsgReady}"/>
-                        <p:tooltip for="iconLEDGreen_2" value="#{localizedControllerPageMessages.analysisControllerMsgRunning}"/>
-                        <p:tooltip for="iconLEDRed2_2" value="#{localizedControllerPageMessages.analysisControllerMsgFailed}"/>
-                    </div>
-                </h:form>
-
-            </p:layoutUnit>
-        </p:layout>
-
-        <p:growl id="messages" life="1500" showDetail="true"  autoUpdate="false" sticky="true"/>  
-
-        <!-- Include the dialog for the configuration. -->
-        <ui:include src="../dialogs/SettingsDialog.xhtml" />
-
-        <!-- Include the about-dialog. -->
-        <ui:include src="../dialogs/AboutDialog.xhtml" />
+            </ui:define>
+
+            <ui:define name="furtherLayoutUnits">
+                <p:layoutUnit position="south" header="#{localizedControllerPageMessages.control}" resizable="true" collapsible="true">
+                    <h:form id="controllerForm">
+                        <p:commandButton value="#{localizedControllerPageMessages.analysisControllerInstantiateAnalysisController}" action="#{currentControllerBean.instantiateAnalysis()}" update=":messages :tabView:currentViewLog" disabled="#{empty currentControllerBean.projectName}"/>
+                        <p:commandButton value="#{localizedControllerPageMessages.analysisControllerCleaAnalysisController}" action="#{currentControllerBean.cleanAnalysis()}"  update=":messages :tabView:currentViewLog" disabled="#{empty currentControllerBean.projectName}"/>
+                        <p:commandButton value="#{localizedControllerPageMessages.analysisControllerStartAnalysis}" action="#{currentControllerBean.startAnalysis()}"  update=":messages :tabView:currentViewLog" disabled="#{empty currentControllerBean.projectName}"/>
+                        <p:commandButton value="#{localizedControllerPageMessages.analysisControllerStopAnalysis}" action="#{currentControllerBean.stopAnalysis()}"  update=":messages :tabView:currentViewLog" disabled="#{empty currentControllerBean.projectName}"/>
+                        <p:poll interval="1" update=":ledsForm :tabView:analysisControllerLog"/>
+                    </h:form>  
+                    <hr/>
+                    <h:form id="ledsForm">
+                        <div align="center">
+                            <h:graphicImage id="iconLEDRed1"  url="../img/LEDs/Icon_LED_Red.png" height="50px" rendered="#{currentControllerBean.isAnalysisNotAvailable()}"/>
+                            <h:graphicImage id="iconLEDRed1_2"  url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisNotAvailable()}"/>
+                            <p:spacer height="0" width="15px"/>
+                            <h:graphicImage id="iconLEDYellow"  url="../img/LEDs/Icon_LED_Yellow.png" height="50px" rendered="#{currentControllerBean.isAnalysisReady()}"/>
+                            <h:graphicImage id="iconLEDYellow_2"  url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisReady()}"/>
+                            <p:spacer height="0" width="15px"/>
+                            <h:graphicImage id="iconLEDGreen"  url="../img/LEDs/Icon_LED_Green.png" height="50px" rendered="#{currentControllerBean.isAnalysisRunning()}"/>
+                            <h:graphicImage id="iconLEDGreen_2"  url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisRunning()}"/>
+                            <p:spacer height="0" width="15px"/>
+                            <h:graphicImage id="iconLEDRed2"  url="../img/LEDs/Icon_LED_Red.png" height="50px" rendered="#{currentControllerBean.isAnalysisTerminated() or currentControllerBean.isAnalysisFailed()}"/>
+                            <h:graphicImage id="iconLEDRed2_2"  url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not (currentControllerBean.isAnalysisTerminated() or currentControllerBean.isAnalysisFailed())}"/>
+
+                            <p:tooltip for="iconLEDRed1" value="#{localizedControllerPageMessages.analysisControllerMsgNotInstantiated}"/>
+                            <p:tooltip for="iconLEDYellow" value="#{localizedControllerPageMessages.analysisControllerMsgReady}"/>
+                            <p:tooltip for="iconLEDGreen" value="#{localizedControllerPageMessages.analysisControllerMsgRunning}"/>
+                            <p:tooltip for="iconLEDRed2" value="#{localizedControllerPageMessages.analysisControllerMsgFailed}"/>
+                            <p:tooltip for="iconLEDRed1_2" value="#{localizedControllerPageMessages.analysisControllerMsgNotInstantiated}"/>
+                            <p:tooltip for="iconLEDYellow_2" value="#{localizedControllerPageMessages.analysisControllerMsgReady}"/>
+                            <p:tooltip for="iconLEDGreen_2" value="#{localizedControllerPageMessages.analysisControllerMsgRunning}"/>
+                            <p:tooltip for="iconLEDRed2_2" value="#{localizedControllerPageMessages.analysisControllerMsgFailed}"/>
+                        </div>
+                    </h:form>
+
+                </p:layoutUnit>
+            </ui:define>
+
+        </ui:composition>
 
     </h:body>
-
 </html>
\ No newline at end of file