diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisCockpitProjectBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisCockpitProjectBean.java index 95514158f33b442011e2a131a44bd822d40351a6..d79388a86ce5b39b53093f76e536f1e30c2b4afe 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisCockpitProjectBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisCockpitProjectBean.java @@ -20,6 +20,8 @@ package kieker.webgui.beans.session; +import java.io.Serializable; + import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @@ -40,8 +42,12 @@ import kieker.webgui.common.Global; */ @ManagedBean @SessionScoped -public class CurrentAnalysisCockpitProjectBean { +public class CurrentAnalysisCockpitProjectBean implements Serializable { + /** + * The serial version UID. + */ + private static final long serialVersionUID = 3547633191203876924L; /** * This is the name of the stored project. It can be used as an identifier within the FS-Manager */ @@ -87,9 +93,16 @@ public class CurrentAnalysisCockpitProjectBean { // Remember the given parameters this.project = newProject; this.projectName = newName; - } - return Global.PAGE_ANALYSIS_COCKPIT; + // Now deliver the correct navigation page + final String navigationPage; + if (this.project != null) { + navigationPage = Global.PAGE_ANALYSIS_COCKPIT; + } else { + navigationPage = ""; + } + return navigationPage; + } } /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisViewWorkSpaceProjectBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentCockpitEditorBean.java similarity index 87% rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisViewWorkSpaceProjectBean.java rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentCockpitEditorBean.java index 18bb4740e641589cadcbd93b5f65a642e5a2b0cf..bda6523b37e6a57a3bb13d5eee440a75a8266ad6 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisViewWorkSpaceProjectBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentCockpitEditorBean.java @@ -21,6 +21,7 @@ package kieker.webgui.beans.session; import java.io.IOException; +import java.io.Serializable; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; @@ -54,11 +55,15 @@ import org.primefaces.event.TabChangeEvent; */ @ManagedBean @SessionScoped -public class CurrentAnalysisViewWorkSpaceProjectBean { +public class CurrentCockpitEditorBean implements Serializable { + /** + * The serial version UID. + */ + private static final long serialVersionUID = -7805981069286797493L; /** * This is the log for errors, exceptions etc. */ - private static final Log LOG = LogFactory.getLog(CurrentAnalysisViewWorkSpaceProjectBean.class); + private static final Log LOG = LogFactory.getLog(CurrentCockpitEditorBean.class); /** * This is the factory which will be used to create new components for the project. */ @@ -83,7 +88,7 @@ public class CurrentAnalysisViewWorkSpaceProjectBean { /** * Creates a new instance of this class. */ - public CurrentAnalysisViewWorkSpaceProjectBean() { + public CurrentCockpitEditorBean() { // No code necessary } @@ -117,9 +122,15 @@ public class CurrentAnalysisViewWorkSpaceProjectBean { // Remember the current time! This is important for the later comparison of the time stamps. this.resetTimeStamp(); } + // Now deliver the correct navigation page + final String navigationPage; + if (this.project != null) { + navigationPage = Global.PAGE_ANALYSIS_VIEW_WORK_SPACE; + } else { + navigationPage = ""; + } + return navigationPage; } - - return Global.PAGE_ANALYSIS_VIEW_WORK_SPACE; } /** @@ -159,15 +170,15 @@ public class CurrentAnalysisViewWorkSpaceProjectBean { synchronized (this) { try { FSManager.getInstance().saveProject(this.projectName, this.project, this.timeStamp, overwriteNewerProject); - CurrentAnalysisViewWorkSpaceProjectBean.showMessage(FacesMessage.SEVERITY_INFO, "Project saved."); + CurrentCockpitEditorBean.showMessage(FacesMessage.SEVERITY_INFO, "Project saved."); // Update the time stamp! this.resetTimeStamp(); } catch (final IOException ex) { - CurrentAnalysisViewWorkSpaceProjectBean.LOG.error("An error occured while saving the projct.", ex); - CurrentAnalysisViewWorkSpaceProjectBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while saving the projct."); + CurrentCockpitEditorBean.LOG.error("An error occured while saving the projct.", ex); + CurrentCockpitEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while saving the projct."); } catch (final NewerProjectException ex) { - CurrentAnalysisViewWorkSpaceProjectBean.LOG.info("The project has been modified externally in the meanwhile.", ex); - CurrentAnalysisViewWorkSpaceProjectBean.showMessage(FacesMessage.SEVERITY_WARN, "The project has been modified externally in the meanwhile."); + CurrentCockpitEditorBean.LOG.info("The project has been modified externally in the meanwhile.", ex); + CurrentCockpitEditorBean.showMessage(FacesMessage.SEVERITY_WARN, "The project has been modified externally in the meanwhile."); } } } @@ -232,6 +243,7 @@ public class CurrentAnalysisViewWorkSpaceProjectBean { // Create the view and add it to our project final MIView view = this.factory.createView(); view.setName(viewName); + view.setDescription("No description available."); this.project.getViews().add(view); } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisControllerProjectBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentControllerBean.java similarity index 66% rename from Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisControllerProjectBean.java rename to Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentControllerBean.java index 5f0d267f5ff72cc3effffe4b3f6d658dd9d62484..c9c1a8fe920fc51d8680791e5df2d1239133aa4a 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisControllerProjectBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentControllerBean.java @@ -21,6 +21,7 @@ package kieker.webgui.beans.session; import java.io.IOException; +import java.io.Serializable; import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; @@ -30,6 +31,7 @@ import javax.faces.context.FacesContext; import kieker.analysis.AnalysisController; import kieker.analysis.exception.AnalysisConfigurationException; +import kieker.analysis.model.analysisMetaModel.MIProject; import kieker.common.logging.Log; import kieker.common.logging.LogFactory; import kieker.webgui.common.ACManager; @@ -47,35 +49,67 @@ import kieker.webgui.common.exception.ProjectStillRunningException; */ @ManagedBean @SessionScoped -public class CurrentAnalysisControllerProjectBean { +public class CurrentControllerBean implements Serializable { + /** + * The serial version UID. + */ + private static final long serialVersionUID = 2070646497643630097L; /** * This is the log for errors, exceptions etc. */ - private static final Log LOG = LogFactory.getLog(CurrentAnalysisControllerProjectBean.class); + private static final Log LOG = LogFactory.getLog(CurrentControllerBean.class); /** * This is the name of the stored project. It can be used as an identifier within the FS-Manager */ private String projectName; + /** + * This is the actual model instance. It is the in-memory-model of the current (session) user. + */ + private MIProject project; /** * Creates a new instance of this class. */ - public CurrentAnalysisControllerProjectBean() { + public CurrentControllerBean() { // No code necessary } /** * This method sets the project stored within this bean and returns the new page for the navigation. * - * @param name + * @param newProject + * The project to be stored in this bean. + * @param newName * The name of the project. - * @return The name of the page for the analysis controller. - */ - public String setProject(final String name) { - this.projectName = name; + * @return The name of the page for the cockpit. + */ + public String setProject(final MIProject newProject, final String newName) { + synchronized (this) { + // Remember the given parameters + this.project = newProject; + this.projectName = newName; + + // Now deliver the correct navigation page + final String navigationPage; + if (this.project != null) { + navigationPage = Global.PAGE_ANALYSIS_CONTROLLER; + } else { + navigationPage = ""; + } + return navigationPage; + } + } - return Global.PAGE_ANALYSIS_CONTROLLER; + /** + * This method delivers the project stored in this bean. + * + * @return The project for this user. + */ + public MIProject getProject() { + synchronized (this) { + return this.project; + } } /** @@ -84,7 +118,9 @@ public class CurrentAnalysisControllerProjectBean { * @return The project name for this user. */ public String getProjectName() { - return this.projectName; + synchronized (this) { + return this.projectName; + } } /** @@ -93,7 +129,10 @@ public class CurrentAnalysisControllerProjectBean { * @return The name of the page of the project overview. */ public String clearProject() { - this.projectName = null; // NOPMD + synchronized (this) { + this.projectName = null; // NOPMD + this.project = null; // NOPMD + } return Global.PAGE_PROJECT_OVERVIEW; } @@ -105,11 +144,11 @@ public class CurrentAnalysisControllerProjectBean { try { ACManager.getInstance().startAnalysisController(this.projectName); } catch (final ProjectAlreadyStartedException ex) { - CurrentAnalysisControllerProjectBean.LOG.info("The analysis is already running.", ex); - CurrentAnalysisControllerProjectBean.showMessage(FacesMessage.SEVERITY_WARN, "The analysis is already running."); + CurrentControllerBean.LOG.info("The analysis is already running.", ex); + CurrentControllerBean.showMessage(FacesMessage.SEVERITY_WARN, "The analysis is already running."); } catch (final AnalysisNotInstantiatedException ex) { - CurrentAnalysisControllerProjectBean.LOG.info("The analysis has not been instantiated yet.", ex); - CurrentAnalysisControllerProjectBean.showMessage(FacesMessage.SEVERITY_WARN, "The analysis has not been instantiated yet."); + CurrentControllerBean.LOG.info("The analysis has not been instantiated yet.", ex); + CurrentControllerBean.showMessage(FacesMessage.SEVERITY_WARN, "The analysis has not been instantiated yet."); } } @@ -120,10 +159,10 @@ public class CurrentAnalysisControllerProjectBean { try { ACManager.getInstance().stopAnalysisController(this.projectName); } catch (final AnalysisNotRunningException ex) { - CurrentAnalysisControllerProjectBean.LOG.info("The analysis has not been started yet.", ex); - CurrentAnalysisControllerProjectBean.showMessage(FacesMessage.SEVERITY_WARN, "The analysis has not been started yet."); + CurrentControllerBean.LOG.info("The analysis has not been started yet.", ex); + CurrentControllerBean.showMessage(FacesMessage.SEVERITY_WARN, "The analysis has not been started yet."); } catch (final InterruptedException ex) { - CurrentAnalysisControllerProjectBean.LOG.error("Unknown interrupted exception.", ex); + CurrentControllerBean.LOG.error("Unknown interrupted exception.", ex); } } @@ -134,17 +173,17 @@ public class CurrentAnalysisControllerProjectBean { try { ACManager.getInstance().instantiateAnalysisController(this.projectName); } catch (final NullPointerException ex) { // NOPMD (Exception is explicitly thrown) - CurrentAnalysisControllerProjectBean.LOG.error("An error occurred while instantiating the analysis.", ex); - CurrentAnalysisControllerProjectBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occurred while instantiating the analysis."); + CurrentControllerBean.LOG.error("An error occurred while instantiating the analysis.", ex); + CurrentControllerBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occurred while instantiating the analysis."); } catch (final AnalysisConfigurationException ex) { - CurrentAnalysisControllerProjectBean.LOG.error("An error occurred while instantiating the analysis.", ex); - CurrentAnalysisControllerProjectBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occurred while instantiating the analysis."); + CurrentControllerBean.LOG.error("An error occurred while instantiating the analysis.", ex); + CurrentControllerBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occurred while instantiating the analysis."); } catch (final IOException ex) { - CurrentAnalysisControllerProjectBean.LOG.error("An error occurred while instantiating the analysis.", ex); - CurrentAnalysisControllerProjectBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occurred while instantiating the analysis."); + CurrentControllerBean.LOG.error("An error occurred while instantiating the analysis.", ex); + CurrentControllerBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occurred while instantiating the analysis."); } catch (final ProjectStillRunningException ex) { - CurrentAnalysisControllerProjectBean.LOG.info("The analysis is still running.", ex); - CurrentAnalysisControllerProjectBean.showMessage(FacesMessage.SEVERITY_ERROR, "The analysis is still running."); + CurrentControllerBean.LOG.info("The analysis is still running.", ex); + CurrentControllerBean.showMessage(FacesMessage.SEVERITY_ERROR, "The analysis is still running."); } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java index b0138b3b0e4eab697de30b597f58c7fde4266283..044c86ba132853d171b03a6ee020159433a3df1a 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentThemeBean.java @@ -20,6 +20,7 @@ package kieker.webgui.beans.session; +import java.io.Serializable; import java.util.Map; import javax.faces.bean.ManagedBean; @@ -41,8 +42,12 @@ import kieker.webgui.beans.application.ThemeSwitcherBean; */ @ManagedBean @SessionScoped -public final class CurrentThemeBean { +public final class CurrentThemeBean implements Serializable { + /** + * The serial version UID. + */ + private static final long serialVersionUID = 2919719099912650971L; /** * The default theme used for all users. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentWorkSpaceProjectBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentWorkSpaceProjectBean.java index b2460efe5e8758a1c60c74d4ee6f3d74c725da9a..406c9beae5356aa754729feeabb23e136067e707 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentWorkSpaceProjectBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentWorkSpaceProjectBean.java @@ -21,6 +21,7 @@ package kieker.webgui.beans.session; import java.io.IOException; +import java.io.Serializable; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Modifier; import java.net.MalformedURLException; @@ -83,7 +84,11 @@ import org.eclipse.emf.ecore.EObject; // TODO Clean the connections when someone removes a plugin/repository @ManagedBean @SessionScoped -public final class CurrentWorkSpaceProjectBean { +public final class CurrentWorkSpaceProjectBean implements Serializable { + /** + * The serial version UID. + */ + private static final long serialVersionUID = -6957852548314885573L; /** * This is the log for errors, exceptions etc. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java index c3f63a62299af7e24115cbd786aabe0638c5e0bf..aee82bb4b3a33f593282628cbba210dd24afa6e1 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java @@ -20,6 +20,8 @@ package kieker.webgui.beans.session; +import java.io.Serializable; + import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @@ -31,8 +33,12 @@ import javax.faces.bean.SessionScoped; */ @ManagedBean @SessionScoped -public final class UserBean { +public final class UserBean implements Serializable { + /** + * The serial version UID. + */ + private static final long serialVersionUID = 3942693805646862667L; /** * This field contains the name of the user. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/Global.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/Global.java index 1d3891f67056e8f4cb5439acb401ff039390aca2..67d754b3239c9ac49810db9f4c175f49e136fe15 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/Global.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/Global.java @@ -30,7 +30,7 @@ public final class Global { /** * This is the page used for the redirection to the controller page. */ - public static final String PAGE_ANALYSIS_CONTROLLER = "AnalysisController.xhtml"; + public static final String PAGE_ANALYSIS_CONTROLLER = "Controller.xhtml"; /** * This is the page used for the redirection to the overview. */ @@ -38,15 +38,15 @@ public final class Global { /** * This is the page used for the redirection to the cockpit. */ - public static final String PAGE_ANALYSIS_COCKPIT = "AnalysisCockpit.xhtml"; + public static final String PAGE_ANALYSIS_COCKPIT = "Cockpit.xhtml"; /** * This is the page used for the redirection to the cockpit editor. */ - public static final String PAGE_ANALYSIS_VIEW_WORK_SPACE = "AnalysisViewWorkSpace.xhtml"; + public static final String PAGE_ANALYSIS_VIEW_WORK_SPACE = "CockpitEditor.xhtml"; /** * This is the page used for the redirection to the analysis editor. */ - public static final String PAGE_PROJECT_WORK_SPACE = "ProjectWorkSpace.xhtml"; + public static final String PAGE_PROJECT_WORK_SPACE = "AnalysisEditor.xhtml"; /** * Default constructor. diff --git a/Kieker.WebGUI/src/main/webapp/ProjectWorkSpace.xhtml b/Kieker.WebGUI/src/main/webapp/AnalysisEditor.xhtml similarity index 100% rename from Kieker.WebGUI/src/main/webapp/ProjectWorkSpace.xhtml rename to Kieker.WebGUI/src/main/webapp/AnalysisEditor.xhtml diff --git a/Kieker.WebGUI/src/main/webapp/AnalysisCockpit.xhtml b/Kieker.WebGUI/src/main/webapp/Cockpit.xhtml similarity index 100% rename from Kieker.WebGUI/src/main/webapp/AnalysisCockpit.xhtml rename to Kieker.WebGUI/src/main/webapp/Cockpit.xhtml diff --git a/Kieker.WebGUI/src/main/webapp/AnalysisViewWorkSpace.xhtml b/Kieker.WebGUI/src/main/webapp/CockpitEditor.xhtml similarity index 67% rename from Kieker.WebGUI/src/main/webapp/AnalysisViewWorkSpace.xhtml rename to Kieker.WebGUI/src/main/webapp/CockpitEditor.xhtml index 69a2f4e18dba06f1ada6457b60838674f17bdbb0..2721e26aac9020eed291cb43cbc93c48b82a5977 100644 --- a/Kieker.WebGUI/src/main/webapp/AnalysisViewWorkSpace.xhtml +++ b/Kieker.WebGUI/src/main/webapp/CockpitEditor.xhtml @@ -16,25 +16,25 @@ <h:body> <p:layout id="layout" fullPage="true"> - <p:layoutUnit position="north" collapsible="false" header="Kieker.WebGUI - Cockpit Editor (#{currentAnalysisViewWorkSpaceProjectBean.projectName})"> + <p:layoutUnit position="north" collapsible="false" header="Kieker.WebGUI - Cockpit Editor (#{currentCockpitEditorBean.projectName})"> <h:form> <p:menubar> <p:submenu label="File"> <p:menuitem value="New View" onclick="newViewDialog.show()" ajax="true"/> <p:separator/> - <p:menuitem value="Save Project" update=":messages" ajax="true" action="#{currentAnalysisViewWorkSpaceProjectBean.saveProject(false)}" disabled="#{empty currentAnalysisViewWorkSpaceProjectBean.project}"/> + <p:menuitem value="Save Project" update=":messages" ajax="true" action="#{currentCockpitEditorBean.saveProject(false)}" disabled="#{empty currentCockpitEditorBean.project}"/> <p:menuitem value="Save Project As" update=":messages" ajax="true" disabled="#{empty currentWorkSpaceProjectBean.project}"/> - <p:menuitem styleClass="Force-Save-Project-Button" value="Force Save Project" update=":messages" ajax="true" action="#{currentAnalysisViewWorkSpaceProjectBean.saveProject(true)}" disabled="#{empty currentAnalysisViewWorkSpaceProjectBean.project}"/> + <p:menuitem styleClass="Force-Save-Project-Button" value="Force Save Project" update=":messages" ajax="true" action="#{currentCockpitEditorBean.saveProject(true)}" disabled="#{empty currentCockpitEditorBean.project}"/> <p:separator/> - <p:menuitem value="Reload Project" ajax="true" disabled="#{empty currentAnalysisViewWorkSpaceProjectBean.project or true}"/> + <p:menuitem value="Reload Project" ajax="true" disabled="#{empty currentCockpitEditorBean.project or true}"/> <p:separator/> <p:menuitem value="New View" ajax="true" disabled="true"/> <p:separator/> - <p:menuitem value="Close Project" action="#{currentAnalysisViewWorkSpaceProjectBean.clearProject()}" ajax="false"/> + <p:menuitem value="Close Project" action="#{currentCockpitEditorBean.clearProject()}" ajax="false"/> <p:separator/> <p:menuitem value="Settings" onclick="settingsDlg.show()" ajax="true"/> </p:submenu> - + <p:submenu label="View"> <p:menuitem value="Project Overview"/> <p:separator/> @@ -58,11 +58,11 @@ </p:layoutUnit> <p:layoutUnit size="300" position="west"> - <h:form rendered="#{not empty currentAnalysisViewWorkSpaceProjectBean.project}"> - <p:accordionPanel activeIndex="-1" value="#{currentAnalysisViewWorkSpaceProjectBean.project.plugins}" var="plugin"> + <h:form rendered="#{not empty currentCockpitEditorBean.project}"> + <p:accordionPanel activeIndex="-1" value="#{currentCockpitEditorBean.project.plugins}" var="plugin"> <p:tab title="#{plugin.name}"> <ui:repeat value="#{plugin.displays}" var="display"> - <p:commandLink id="displayLink" value="#{display.name}" action="#{currentAnalysisViewWorkSpaceProjectBean.addDisplayToView(display)}" update=":viewsForm"/> + <p:commandLink id="displayLink" value="#{display.name}" action="#{currentCockpitEditorBean.addDisplayToView(display)}" update=":viewsForm"/> </ui:repeat> </p:tab> </p:accordionPanel> @@ -71,13 +71,29 @@ <p:layoutUnit position="center"> <h:form id="viewsForm"> - <p:accordionPanel value="#{currentAnalysisViewWorkSpaceProjectBean.project.views}" var="viewComp" activeIndex="-1"> + <p:accordionPanel value="#{currentCockpitEditorBean.project.views}" var="viewComp" activeIndex="-1"> <p:tab title="#{viewComp.name}" closable="true"> - <p:dataList value="#{viewComp.displays}" var="disp"> - #{disp.name} - </p:dataList> + <h:outputText value="Description: " /> + <p:inplace id="basic" editor="true"> + <p:inputText value="#{viewComp.description}" /> + </p:inplace> + <hr/> + <p:dataTable value="#{viewComp.displays}" var="disp"> + <p:column headerText="Plugin" style="text-align: center"> + #{disp.parent.name} + </p:column> + <p:column headerText="Display Name" style="text-align: center"> + #{disp.name} + </p:column> + <p:column headerText="Name" style="text-align: center"> + TODO + </p:column> + <p:column style="text-align: center; width: 50px" > + <p:commandButton icon="ui-icon-trash"/> + </p:column> + </p:dataTable> </p:tab> - <p:ajax event="tabChange" listener="#{currentAnalysisViewWorkSpaceProjectBean.onChange}" /> + <p:ajax event="tabChange" listener="#{currentCockpitEditorBean.onChange}" /> </p:accordionPanel> </h:form> </p:layoutUnit> diff --git a/Kieker.WebGUI/src/main/webapp/AnalysisController.xhtml b/Kieker.WebGUI/src/main/webapp/Controller.xhtml similarity index 77% rename from Kieker.WebGUI/src/main/webapp/AnalysisController.xhtml rename to Kieker.WebGUI/src/main/webapp/Controller.xhtml index 5635915ff107b4cb3ca05a8ad8522a5ad9592ef7..c1c873d1ebd858dd606b98c7a7c515b727e4f95c 100644 --- a/Kieker.WebGUI/src/main/webapp/AnalysisController.xhtml +++ b/Kieker.WebGUI/src/main/webapp/Controller.xhtml @@ -18,11 +18,11 @@ <!-- This is the layout for the whole page. --> <p:layout id="layout" fullPage="true"> - <p:layoutUnit position="north" collapsible="false" header="Kieker.WebGUI - Controller (#{currentAnalysisControllerProjectBean.projectName})"> + <p:layoutUnit position="north" collapsible="false" header="Kieker.WebGUI - Controller (#{currentControllerBean.projectName})"> <h:form> <p:menubar> <p:submenu label="File"> - <p:menuitem value="Close Controller" action="#{currentAnalysisControllerProjectBean.clearProject()}" ajax="false"/> + <p:menuitem value="Close Controller" action="#{currentControllerBean.clearProject()}" ajax="false"/> <p:separator/> <p:menuitem value="Settings" onclick="settingsDlg.show()" ajax="true"/> </p:submenu> @@ -55,26 +55,26 @@ <p:layoutUnit position="south" header="Control" resizable="true" collapsible="true"> <h:form id="controllerForm"> - <p:commandButton value="Instantiate Analysis Controller" action="#{currentAnalysisControllerProjectBean.instantiateAnalysis()}" update=":messages" disabled="#{empty currentAnalysisControllerProjectBean.projectName}"/> - <p:commandButton value="Clean Analysis" action="#{currentAnalysisControllerProjectBean.cleanAnalysis()}" update=":messages" disabled="#{empty currentAnalysisControllerProjectBean.projectName}"/> - <p:commandButton value="Start Analysis" action="#{currentAnalysisControllerProjectBean.startAnalysis()}" update=":messages" disabled="#{empty currentAnalysisControllerProjectBean.projectName}"/> - <p:commandButton value="Stop Analysis" action="#{currentAnalysisControllerProjectBean.stopAnalysis()}" update=":messages" disabled="#{empty currentAnalysisControllerProjectBean.projectName}"/> + <p:commandButton value="Instantiate Analysis Controller" action="#{currentControllerBean.instantiateAnalysis()}" update=":messages" disabled="#{empty currentControllerBean.projectName}"/> + <p:commandButton value="Clean Analysis" action="#{currentControllerBean.cleanAnalysis()}" update=":messages" disabled="#{empty currentControllerBean.projectName}"/> + <p:commandButton value="Start Analysis" action="#{currentControllerBean.startAnalysis()}" update=":messages" disabled="#{empty currentControllerBean.projectName}"/> + <p:commandButton value="Stop Analysis" action="#{currentControllerBean.stopAnalysis()}" update=":messages" disabled="#{empty currentControllerBean.projectName}"/> <p:poll interval="1" update=":ledsForm"/> </h:form> <hr/> <h:form id="ledsForm"> <div align="center"> - <h:graphicImage id="iconLEDRed1" url="../img/Icon_LED_Red.png" height="50px" rendered="#{currentAnalysisControllerProjectBean.isAnalysisNotAvailable()}"/> - <h:graphicImage id="iconLEDRed1_2" url="../img/Icon_LED_Gray.png" height="50px" rendered="#{not currentAnalysisControllerProjectBean.isAnalysisNotAvailable()}"/> + <h:graphicImage id="iconLEDRed1" url="../img/Icon_LED_Red.png" height="50px" rendered="#{currentControllerBean.isAnalysisNotAvailable()}"/> + <h:graphicImage id="iconLEDRed1_2" url="../img/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisNotAvailable()}"/> <p:spacer height="0" width="15px"/> - <h:graphicImage id="iconLEDYellow" url="../img/Icon_LED_Yellow.png" height="50px" rendered="#{currentAnalysisControllerProjectBean.isAnalysisReady()}"/> - <h:graphicImage id="iconLEDYellow_2" url="../img/Icon_LED_Gray.png" height="50px" rendered="#{not currentAnalysisControllerProjectBean.isAnalysisReady()}"/> + <h:graphicImage id="iconLEDYellow" url="../img/Icon_LED_Yellow.png" height="50px" rendered="#{currentControllerBean.isAnalysisReady()}"/> + <h:graphicImage id="iconLEDYellow_2" url="../img/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisReady()}"/> <p:spacer height="0" width="15px"/> - <h:graphicImage id="iconLEDGreen" url="../img/Icon_LED_Green.png" height="50px" rendered="#{currentAnalysisControllerProjectBean.isAnalysisRunning()}"/> - <h:graphicImage id="iconLEDGreen_2" url="../img/Icon_LED_Gray.png" height="50px" rendered="#{not currentAnalysisControllerProjectBean.isAnalysisRunning()}"/> + <h:graphicImage id="iconLEDGreen" url="../img/Icon_LED_Green.png" height="50px" rendered="#{currentControllerBean.isAnalysisRunning()}"/> + <h:graphicImage id="iconLEDGreen_2" url="../img/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisRunning()}"/> <p:spacer height="0" width="15px"/> - <h:graphicImage id="iconLEDRed2" url="../img/Icon_LED_Red.png" height="50px" rendered="#{currentAnalysisControllerProjectBean.isAnalysisTerminated() or currentAnalysisControllerProjectBean.isAnalysisFailed()}"/> - <h:graphicImage id="iconLEDRed2_2" url="../img/Icon_LED_Gray.png" height="50px" rendered="#{not (currentAnalysisControllerProjectBean.isAnalysisTerminated() or currentAnalysisControllerProjectBean.isAnalysisFailed())}"/> + <h:graphicImage id="iconLEDRed2" url="../img/Icon_LED_Red.png" height="50px" rendered="#{currentControllerBean.isAnalysisTerminated() or currentControllerBean.isAnalysisFailed()}"/> + <h:graphicImage id="iconLEDRed2_2" url="../img/Icon_LED_Gray.png" height="50px" rendered="#{not (currentControllerBean.isAnalysisTerminated() or currentControllerBean.isAnalysisFailed())}"/> <p:tooltip for="iconLEDRed1" value="Indicates that the AnalysisController has not been instantiated yet."/> <p:tooltip for="iconLEDYellow" value="Indicates that the AnalysisController has been instantiated, but not yet started."/> diff --git a/Kieker.WebGUI/src/main/webapp/ProjectOverview.xhtml b/Kieker.WebGUI/src/main/webapp/ProjectOverview.xhtml index 4020bd631811abd13f7ef0739b7dd52f3fe5c12a..9461387ba7b67c0486f375ce9f591ae68da937ab 100644 --- a/Kieker.WebGUI/src/main/webapp/ProjectOverview.xhtml +++ b/Kieker.WebGUI/src/main/webapp/ProjectOverview.xhtml @@ -52,13 +52,13 @@ <p:menu overlay="true" trigger="dynaButton" my="left top" at="left bottom" style="width:210px"> <p:menuitem id="openButton" value="Open in Analysis Editor" style="white-space: none" ajax="false" action="#{currentWorkSpaceProjectBean.setProject(projectsBean.openProject(project), project)}"/> - <p:menuitem id="editAnalysisViews" value="Open in Cockpit Editor" ajax="false" action="#{currentAnalysisViewWorkSpaceProjectBean.setProject(projectsBean.openProject(project), project)}" /> + <p:menuitem id="editAnalysisViews" value="Open in Cockpit Editor" ajax="false" action="#{currentCockpitEditorBean.setProject(projectsBean.openProject(project), project)}" /> <p:separator/> <p:menuitem id="copyButton" value="Copy Project" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="copyProjectDialog.show()" disabled="true"/> <p:menuitem id="renameButton" value="Rename Project" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="renameProjectDialog.show()" disabled="true"/> <p:menuitem id="deleteButton" value="Delete Project" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="deleteProjectDialog.show()" disabled="true"/> <p:separator/> - <p:menuitem id="controlAnalysis" value="Open in Controller" ajax="false" action="#{currentAnalysisControllerProjectBean.setProject(project)}" /> + <p:menuitem id="controlAnalysis" value="Open in Controller" ajax="false" action="#{currentControllerBean.setProject(projectsBean.openProject(project), project)}" /> <p:menuitem id="showAnalysis" value="Open in Cockpit" ajax="false" action="#{currentAnalysisCockpitProjectBean.setProject(projectsBean.openProject(project), project)}" /> </p:menu> </p:column> 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 4862796d5c6dc05ec65447799767101b6d7fa318..6c25f06f5efb55a8b7721f2ab17c68dd7249a63d 100644 --- a/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml +++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml @@ -14,24 +14,24 @@ <view-id value="/faces/ProjectOverview.xhtml" /> </url-mapping> - <url-mapping id="projectWorkSpace"> - <pattern value="/Kieker.WebGUI/projectWorkSpace" /> - <view-id value="/faces/ProjectWorkSpace.xhtml" /> + <url-mapping id="analysisEditor"> + <pattern value="/Kieker.WebGUI/analysisEditor" /> + <view-id value="/faces/AnalysisEditor.xhtml" /> </url-mapping> - <url-mapping id="analysisViewWorkSpace"> - <pattern value="/Kieker.WebGUI/analysisViewWorkSpace" /> - <view-id value="/faces/AnalysisViewWorkSpace.xhtml" /> + <url-mapping id="cockpitEditor"> + <pattern value="/Kieker.WebGUI/cockpitEditor" /> + <view-id value="/faces/CockpitEditor.xhtml" /> </url-mapping> - <url-mapping id="analysisController"> - <pattern value="/Kieker.WebGUI/analysisController" /> - <view-id value="/faces/AnalysisController.xhtml" /> + <url-mapping id="controller"> + <pattern value="/Kieker.WebGUI/controller" /> + <view-id value="/faces/Controller.xhtml" /> </url-mapping> - <url-mapping id="analysisCockpit"> - <pattern value="/Kieker.WebGUI/analysisCockpit" /> - <view-id value="/faces/AnalysisCockpit.xhtml" /> + <url-mapping id="cockpit"> + <pattern value="/Kieker.WebGUI/cockpit" /> + <view-id value="/faces/Cockpit.xhtml" /> </url-mapping> </pretty-config> \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/viewDialogs.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/viewDialogs.xhtml index 7a3323ee8868ab57a77fb1dd9d6514cbefd5c895..ac6c1095e30b1f5c4c6b0dddef1e4ca92bd8e656 100644 --- a/Kieker.WebGUI/src/main/webapp/dialogs/viewDialogs.xhtml +++ b/Kieker.WebGUI/src/main/webapp/dialogs/viewDialogs.xhtml @@ -20,7 +20,7 @@ <hr/> <div style="text-align: right"> - <p:commandButton value="Ok" action="#{currentAnalysisViewWorkSpaceProjectBean.addView(stringBean.string)}" update=":messages :viewsForm" oncomplete="newViewDialog.hide()" /> + <p:commandButton value="Ok" action="#{currentCockpitEditorBean.addView(stringBean.string)}" update=":messages :viewsForm" oncomplete="newViewDialog.hide()" /> <p:spacer width="10px" height="10" /> <p:commandButton value="Cancel" onclick="newViewDialog.hide()" /> </div>