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 d831a6f9017a8ef086e31fc036c7216aa63165b9..6ee0d3cff9850dcaffcf43668db368e88911acab 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 387210a58123de81e0ef9043db03a99e86494f29..e43eaac16b9b65e992d54f08043575aad331787c 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 ad9ec6f0c9751301dc9af060350d0277bd68dba6..94d56c450bae09047b88d7fc5a092a510da34d50 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 99a38f3aa5a320a01e7346d287dc84a21c59142d..bd0356c2094862e1bdfbf434f130d671fa3bf398 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>