From 765eada9271ead1de98f25c6f4a4d51bc7dfeae9 Mon Sep 17 00:00:00 2001
From: Nils Christian Ehmke <nie@informatik.uni-kiel.de>
Date: Mon, 1 Apr 2013 13:29:34 +0200
Subject: [PATCH] Minor modifications for CS and FB; Advanced the cockpit
 editor

---
 .../persistence/impl/FSProjectDAOImpl.java       |  4 +++-
 .../beans/view/CurrentAnalysisEditorBean.java    |  6 ++----
 .../web/beans/view/CurrentCockpitEditorBean.java | 10 ++++++++++
 .../main/webapp/pages/CockpitEditorPage.xhtml    | 16 +++++++++++-----
 4 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/persistence/impl/FSProjectDAOImpl.java b/Kieker.WebGUI/src/main/java/kieker/webgui/persistence/impl/FSProjectDAOImpl.java
index d831a6f9..6ee0d3cf 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/persistence/impl/FSProjectDAOImpl.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/persistence/impl/FSProjectDAOImpl.java
@@ -320,7 +320,9 @@ public class FSProjectDAOImpl implements IProjectDAO, ReleaseListener {
 					+ FSProjectDAOImpl.KAX_EXTENSION);
 			final File realDstKaxFile = FSProjectDAOImpl.assembleKaxFile(newProjectName);
 
-			dstKaxFile.renameTo(realDstKaxFile);
+			if (!dstKaxFile.renameTo(realDstKaxFile)) {
+				throw new IOException("Could not rename KAX file.");
+			}
 
 			this.initializeAvailableComponentsListContainers(newProjectName);
 		} catch (final IOException ex) {
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 387210a5..e43eaac1 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
@@ -280,10 +280,8 @@ public final class CurrentAnalysisEditorBean {
 	}
 
 	/**
-	 * This method tries to save the current project and informs the user about success or fail.
-	 * 
-	 * @param overwriteNewerProject
-	 *            This flag determines whether a newer project should be overwritten.
+	 * This method tries to save the current project and informs the user about success or fail. There should be two parameters within the request parameter map
+	 * (layoutString and overwriteNewerProject) as this method is called via javascript.
 	 */
 	public synchronized void saveProject() {
 		// Get the parameters
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitEditorBean.java
index ad9ec6f0..94d56c45 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitEditorBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/web/beans/view/CurrentCockpitEditorBean.java
@@ -17,6 +17,7 @@
 package kieker.webgui.web.beans.view;
 
 import java.io.IOException;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -226,6 +227,15 @@ public final class CurrentCockpitEditorBean {
 		return this.project;
 	}
 
+	/**
+	 * This is a dummy method returning just a collection of null objects. This is necessary due to Primefaces.
+	 * 
+	 * @return A collection with two null objects.
+	 */
+	public synchronized Collection<Object> getProperties() {
+		return Collections.nCopies(3, null);
+	}
+
 	/**
 	 * This method sets the project stored within this bean and returns the new page for the navigation.
 	 * 
diff --git a/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml
index 99a38f3a..bd0356c2 100644
--- a/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml
+++ b/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml
@@ -86,9 +86,9 @@
                                 </div>
                             </p:column>
                             <p:column headerText="# Elements"><div align="center">#{viewElem.displayConnectors.size()}</div></p:column>
-                            <p:column headerText="Description">
+                            <p:column headerText="Description" width="50">
                                 <div align="center">
-                                    <p:inplace id="normalEditor" editor="true">  
+                                    <p:inplace id="normalEditor" editor="true" >  
                                         <p:inputText value="#{viewElem.description}" />
                                     </p:inplace>  
                                 </div>
@@ -113,13 +113,19 @@
                 <!-- 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" value="[1]" rowIndexVar="rowIndex" emptyMessage="#{localizedMessages.noPropertiesAvailable}" rendered="#{not empty currentCockpitEditorBean.selectedNode}">
+                        <p:dataTable editable="true" var="property" value="#{currentCockpitEditorBean.properties}" rowIndexVar="rowIndex" emptyMessage="#{localizedMessages.noPropertiesAvailable}" rendered="#{not empty currentCockpitEditorBean.selectedNode}">
                             <p:column headerText="#{localizedMessages.property}" style="width:125px"> 
-                                <h:outputText id="nameProperty" value="#{localizedCockpitEditorPageMessages.name}" rendered="#{rowIndex == 0}"/>
+                                <h:outputText value="Plugin-Name" rendered="#{rowIndex == 0}"/>
+                                <h:outputText value="Display-Name" rendered="#{rowIndex == 1}"/>
+                                <h:outputText value="#{localizedCockpitEditorPageMessages.name}" rendered="#{rowIndex == 2}"/>
                             </p:column>                
 
                             <p:column headerText="#{localizedMessages.value}" style="width:125px">
-                                <h:outputText value="#{currentCockpitEditorBean.selectedNode.name}" />
+                                <h:outputText value="#{currentCockpitEditorBean.selectedNode.display.parent.name}" rendered="#{rowIndex == 0}" />
+                                <h:outputText value="#{currentCockpitEditorBean.selectedNode.display.name}" rendered="#{rowIndex == 1}" />
+                                <p:inplace editor="true"  rendered="#{rowIndex == 2}">
+                                    <p:inputText value="#{currentCockpitEditorBean.selectedNode.name}"/>
+                                </p:inplace>
                             </p:column>                       
                         </p:dataTable>
                     </h:form>
-- 
GitLab