From 8fa98fecc30eb6ccfe8edf9122d89a7115f2ae44 Mon Sep 17 00:00:00 2001 From: Nils Christian Ehmke <nie@informatik.uni-kiel.de> Date: Sat, 28 Jul 2012 14:12:31 +0200 Subject: [PATCH] Updated the kieker-jar; Made sure that beans are cleared when changing the page; Removed some minor bugs; Activated redirecting; used the new display connectors; Some quality modifications --- Kieker.WebGUI/lib/kieker-1.6-SNAPSHOT_emf.jar | Bin 2053370 -> 2056432 bytes .../kieker/webgui/beans/IProjectBean.java | 11 ++++ .../webgui/beans/application/ForwardBean.java | 43 ++++++++++++ .../session/CurrentAnalysisEditorBean.java | 7 +- .../beans/session/CurrentCockpitBean.java | 6 +- .../session/CurrentCockpitEditorBean.java | 62 +++++++++++++++++- .../beans/session/CurrentControllerBean.java | 6 +- .../java/kieker/webgui/common/ACManager.java | 15 +++-- .../java/kieker/webgui/common/FSManager.java | 5 +- .../java/kieker/webgui/common/Global.java | 10 +-- .../src/main/webapp/AnalysisEditor.xhtml | 25 +++++-- Kieker.WebGUI/src/main/webapp/Cockpit.xhtml | 16 ++--- .../src/main/webapp/CockpitEditor.xhtml | 37 +++++++---- .../src/main/webapp/Controller.xhtml | 8 +-- .../src/main/webapp/ProjectOverview.xhtml | 2 +- .../src/main/webapp/dialogs/aboutDialog.xhtml | 8 +-- .../main/webapp/dialogs/forceSaveDialog.xhtml | 22 ------- 17 files changed, 208 insertions(+), 75 deletions(-) create mode 100644 Kieker.WebGUI/src/main/java/kieker/webgui/beans/IProjectBean.java create mode 100644 Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ForwardBean.java delete mode 100644 Kieker.WebGUI/src/main/webapp/dialogs/forceSaveDialog.xhtml diff --git a/Kieker.WebGUI/lib/kieker-1.6-SNAPSHOT_emf.jar b/Kieker.WebGUI/lib/kieker-1.6-SNAPSHOT_emf.jar index a604ad9d242420b7e6b70965f194bc5df3f95201..bfe34cea23b73ff63b44168505e17fa9f7962db0 100644 GIT binary patch delta 59807 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�VlNK68=@};yBp#!0ffRL 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 z"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 R!F7Y{{)~^Tdu0Sc`+v~{=+yuK delta 55923 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 KC<eFTHTXYYy~<+% diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/IProjectBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/IProjectBean.java new file mode 100644 index 00000000..dfdcc0f1 --- /dev/null +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/IProjectBean.java @@ -0,0 +1,11 @@ +package kieker.webgui.beans; + +public interface IProjectBean { + + public String clearProject(); + + public String getProjectName(); + + public String setProject(final String name); + +} diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ForwardBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ForwardBean.java new file mode 100644 index 00000000..ae88e99b --- /dev/null +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ForwardBean.java @@ -0,0 +1,43 @@ +package kieker.webgui.beans.application; + +import javax.faces.bean.ApplicationScoped; +import javax.faces.bean.ManagedBean; + +import kieker.webgui.beans.IProjectBean; + +/** + * This bean is a helper class to change for example from the analysis editor to the cockpit. It clears the source bean (by using the clear-method) and sets the + * project name of the new destination bean, returning its return value. + * + * @author Nils Christian Ehmke + * @version 1.0 + */ +@ManagedBean +@ApplicationScoped +public class ForwardBean { + + /** + * Default constructor. + */ + public ForwardBean() { + // No code necessary. + } + + /** + * Moves from one page to another. This method clears the source bean (by using the clear-method) and sets the + * project name of the new destination bean, returning its return value. + * + * @param sourceBean + * The source bean. + * @param destinationBean + * The destination bean. + * @return The return value of the destination bean. + */ + public String forward(final IProjectBean sourceBean, final IProjectBean destinationBean) { + final String projectName = sourceBean.getProjectName(); + + sourceBean.clearProject(); + + return destinationBean.setProject(projectName); + } +} diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisEditorBean.java index 17e405a2..21ce6c73 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisEditorBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisEditorBean.java @@ -60,6 +60,7 @@ import kieker.common.configuration.Configuration; import kieker.common.logging.Log; import kieker.common.logging.LogFactory; import kieker.monitoring.core.registry.Registry; +import kieker.webgui.beans.IProjectBean; import kieker.webgui.beans.application.ProjectsBean; import kieker.webgui.common.ConnectionFilterToFilter; import kieker.webgui.common.ConnectionFilterToRepository; @@ -87,7 +88,7 @@ import org.eclipse.emf.ecore.EObject; */ @ManagedBean @SessionScoped -public final class CurrentAnalysisEditorBean { +public final class CurrentAnalysisEditorBean implements IProjectBean { /** * This is the log for errors, exceptions etc. */ @@ -181,6 +182,7 @@ public final class CurrentAnalysisEditorBean { * The name of the project. * @return The name of the page for the project work space, if the project has been accepted, '' if it is null. */ + @Override public String setProject(final String newName) { synchronized (this) { // Remember the given parameters @@ -395,6 +397,7 @@ public final class CurrentAnalysisEditorBean { * * @return The project name for this user. */ + @Override public String getProjectName() { synchronized (this) { return this.projectName; @@ -417,6 +420,7 @@ public final class CurrentAnalysisEditorBean { * * @return The name of the page of the project overview. */ + @Override public String clearProject() { synchronized (this) { this.project = null; // NOPMD @@ -548,7 +552,6 @@ public final class CurrentAnalysisEditorBean { // Update the time stamp! this.resetTimeStamp(); } catch (final IOException ex) { - ex.printStackTrace(); CurrentAnalysisEditorBean.LOG.error("An error occured while saving the project.", ex); CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while saving the project."); } catch (final NewerProjectException ex) { diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentCockpitBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentCockpitBean.java index 56fb1156..666d6de2 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentCockpitBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentCockpitBean.java @@ -29,6 +29,7 @@ import kieker.analysis.display.Image; import kieker.analysis.display.PlainText; import kieker.analysis.model.analysisMetaModel.MIProject; import kieker.analysis.model.analysisMetaModel.MIView; +import kieker.webgui.beans.IProjectBean; import kieker.webgui.beans.application.ProjectsBean; import kieker.webgui.common.ACManager; import kieker.webgui.common.Global; @@ -41,7 +42,7 @@ import kieker.webgui.common.Global; */ @ManagedBean @SessionScoped -public class CurrentCockpitBean { +public class CurrentCockpitBean implements IProjectBean { /** * This is the name of the stored project. It can be used as an identifier within the FS-Manager @@ -81,6 +82,7 @@ public class CurrentCockpitBean { * The name of the project. * @return The name of the page for the cockpit. */ + @Override public String setProject(final String newName) { synchronized (this) { // Remember the given parameters @@ -103,6 +105,7 @@ public class CurrentCockpitBean { * * @return The project name for this user. */ + @Override public String getProjectName() { synchronized (this) { return this.projectName; @@ -220,6 +223,7 @@ public class CurrentCockpitBean { * * @return The name of the page of the project overview. */ + @Override public String clearProject() { synchronized (this) { this.projectName = null; // NOPMD diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentCockpitEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentCockpitEditorBean.java index 0ed7953d..69252c59 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentCockpitEditorBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentCockpitEditorBean.java @@ -24,27 +24,33 @@ import java.io.IOException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; +import java.util.UUID; import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; +import javax.faces.component.UIComponent; +import javax.faces.component.UIInput; import javax.faces.context.FacesContext; import kieker.analysis.display.annotation.Display; import kieker.analysis.model.analysisMetaModel.MIAnalysisMetaModelFactory; import kieker.analysis.model.analysisMetaModel.MIDisplay; +import kieker.analysis.model.analysisMetaModel.MIDisplayConnector; import kieker.analysis.model.analysisMetaModel.MIProject; import kieker.analysis.model.analysisMetaModel.MIView; import kieker.analysis.model.analysisMetaModel.impl.MAnalysisMetaModelFactory; import kieker.analysis.plugin.AbstractPlugin; import kieker.common.logging.Log; import kieker.common.logging.LogFactory; +import kieker.webgui.beans.IProjectBean; import kieker.webgui.beans.application.ProjectsBean; import kieker.webgui.common.FSManager; import kieker.webgui.common.Global; import kieker.webgui.common.exception.NewerProjectException; +import org.primefaces.context.RequestContext; import org.primefaces.event.TabChangeEvent; /** @@ -55,7 +61,7 @@ import org.primefaces.event.TabChangeEvent; */ @ManagedBean @SessionScoped -public class CurrentCockpitEditorBean { +public class CurrentCockpitEditorBean implements IProjectBean { /** * This is the log for errors, exceptions etc. */ @@ -106,6 +112,7 @@ public class CurrentCockpitEditorBean { * The name of the project. * @return The name of the page for the analysis view work space. */ + @Override public String setProject(final String newName) { synchronized (this) { // Remember the given parameters @@ -132,6 +139,7 @@ public class CurrentCockpitEditorBean { * * @return The project name for this user. */ + @Override public String getProjectName() { synchronized (this) { return this.projectName; @@ -143,6 +151,7 @@ public class CurrentCockpitEditorBean { * * @return The name of the page of the project overview. */ + @Override public String clearProject() { synchronized (this) { this.projectName = null; // NOPMD @@ -173,6 +182,8 @@ public class CurrentCockpitEditorBean { } catch (final NewerProjectException ex) { 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."); + // Give the user the possibility to force-save the project + RequestContext.getCurrentInstance().execute("forceSaveDlg.show()"); } } } @@ -275,7 +286,10 @@ public class CurrentCockpitEditorBean { public void addDisplayToView(final MIDisplay display) { synchronized (this) { if (this.activeView != null) { - this.activeView.getDisplays().add(display); + final MIDisplayConnector connector = this.factory.createDisplayConnector(); + connector.setDisplay(display); + connector.setName(UUID.randomUUID().toString()); + this.activeView.getDisplayConnectors().add(connector); } } } @@ -291,4 +305,48 @@ public class CurrentCockpitEditorBean { this.setActiveView((MIView) event.getData()); } } + + /** + * This method checks whether a display connector with the given name exists already. + * + * @param name + * The name to be checked. + * @return true iff the name exists already. + */ + private boolean existsDisplayConnectorName(final String name) { + synchronized (this) { + // Make sure a view is selected + if (this.activeView == null) { + return false; + } + + // Run through all display connectors and check the name against the given one + for (final MIDisplayConnector connector : this.activeView.getDisplayConnectors()) { + if (connector.getName().equals(name)) { + return true; + } + } + + // The name has not been found + return false; + } + } + + /** + * This method is used as a validator for new display connector names. + * + * @param context + * The context of the validation. + * @param toValidate + * The components which has be validated. + * @param value + * The new value. + */ + public void validateDisplayConnectorName(final FacesContext context, final UIComponent toValidate, final Object value) { + synchronized (this) { + final boolean nameExists = this.existsDisplayConnectorName((String) value); + ((UIInput) toValidate).setValid(!nameExists); + } + } + } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentControllerBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentControllerBean.java index 85735c71..8fa3f7f8 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentControllerBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentControllerBean.java @@ -33,6 +33,7 @@ import kieker.analysis.exception.AnalysisConfigurationException; import kieker.analysis.model.analysisMetaModel.MIProject; import kieker.common.logging.Log; import kieker.common.logging.LogFactory; +import kieker.webgui.beans.IProjectBean; import kieker.webgui.beans.application.ProjectsBean; import kieker.webgui.common.ACManager; import kieker.webgui.common.Global; @@ -49,7 +50,7 @@ import kieker.webgui.common.exception.ProjectStillRunningException; */ @ManagedBean @SessionScoped -public class CurrentControllerBean { +public class CurrentControllerBean implements IProjectBean { /** * This is the log for errors, exceptions etc. */ @@ -77,6 +78,7 @@ public class CurrentControllerBean { * The name of the project. * @return The name of the page for the cockpit. */ + @Override public String setProject(final String newName) { synchronized (this) { // Remember the given parameters @@ -110,6 +112,7 @@ public class CurrentControllerBean { * * @return The project name for this user. */ + @Override public String getProjectName() { synchronized (this) { return this.projectName; @@ -121,6 +124,7 @@ public class CurrentControllerBean { * * @return The name of the page of the project overview. */ + @Override public String clearProject() { synchronized (this) { this.projectName = null; // NOPMD diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ACManager.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ACManager.java index 8b12737b..fe136c58 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ACManager.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ACManager.java @@ -38,7 +38,7 @@ import kieker.analysis.display.Image; import kieker.analysis.display.PlainText; import kieker.analysis.display.annotation.Display; import kieker.analysis.exception.AnalysisConfigurationException; -import kieker.analysis.model.analysisMetaModel.MIDisplay; +import kieker.analysis.model.analysisMetaModel.MIDisplayConnector; import kieker.analysis.model.analysisMetaModel.MIPlugin; import kieker.analysis.model.analysisMetaModel.MIProject; import kieker.analysis.model.analysisMetaModel.MIView; @@ -381,8 +381,9 @@ public final class ACManager { // NOCS (Class Data Abstraction Coupling) for (final MIView view : this.myProject.getViews()) { final Map<String, AbstractDisplay> viewMap = new ConcurrentHashMap<String, AbstractDisplay>(); // NOPMD (Use of concurrent hash map) this.displayObjects.put(view.getName(), viewMap); - for (final MIDisplay display : view.getDisplays()) { - final Method displayMethod = UpdateDisplaysThread.getDisplayMethod(this.myPluginMap.get(display.getParent()).getClass(), display.getName()); + for (final MIDisplayConnector displayConnector : view.getDisplayConnectors()) { + final Method displayMethod = UpdateDisplaysThread.getDisplayMethod(this.myPluginMap.get(displayConnector.getDisplay().getParent()).getClass(), + displayConnector.getName()); // Make sure that the method really exists and that is has the correct parameters if ((displayMethod != null) && (displayMethod.getParameterTypes().length == 1)) { @@ -403,7 +404,7 @@ public final class ACManager { // NOCS (Class Data Abstraction Coupling) } } if (displayObject != null) { - viewMap.put(display.getName(), displayObject); + viewMap.put(displayConnector.getName(), displayObject); this.methodMap.put(displayObject, displayMethod); } } @@ -458,9 +459,9 @@ public final class ACManager { // NOCS (Class Data Abstraction Coupling) while (!this.terminated) { for (final MIView view : this.myProject.getViews()) { final Map<String, AbstractDisplay> viewMap = this.displayObjects.get(view.getName()); // NOPMD (Use of concurrent hash map) - for (final MIDisplay display : view.getDisplays()) { - final AbstractDisplay displayObject = viewMap.get(display.getName()); - final AbstractPlugin pluginObject = this.myPluginMap.get(display.getParent()); + for (final MIDisplayConnector displayConnector : view.getDisplayConnectors()) { + final AbstractDisplay displayObject = viewMap.get(displayConnector.getName()); + final AbstractPlugin pluginObject = this.myPluginMap.get(displayConnector.getDisplay().getParent()); // Update the display object try { this.methodMap.get(displayObject).invoke(pluginObject, displayObject); diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/FSManager.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/FSManager.java index 2ac8d3f1..692b5069 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/FSManager.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/FSManager.java @@ -188,6 +188,9 @@ public final class FSManager { // NOCS (Class Data Abstraction Coupling, Class F * If something went wrong during opening the file. */ public MIProject openProject(final String project) throws IOException { + if (project == null) { + throw new IOException("Project is null"); + } // Get the lock for the given project final Object lock = this.getLock(project); @@ -618,7 +621,7 @@ public final class FSManager { // NOCS (Class Data Abstraction Coupling, Class F /** * The list of libraries used to create the class loader. */ - final List<URL> libs; + private final List<URL> libs; /** * Creates a new instance of this class using the given parameters. 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 67d754b3..d221e174 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/Global.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/Global.java @@ -30,23 +30,23 @@ public final class Global { /** * This is the page used for the redirection to the controller page. */ - public static final String PAGE_ANALYSIS_CONTROLLER = "Controller.xhtml"; + public static final String PAGE_ANALYSIS_CONTROLLER = "Controller.xhtml?faces-redirect=true"; /** * This is the page used for the redirection to the overview. */ - public static final String PAGE_PROJECT_OVERVIEW = "ProjectOverview.xhtml"; + public static final String PAGE_PROJECT_OVERVIEW = "ProjectOverview.xhtml?faces-redirect=true"; /** * This is the page used for the redirection to the cockpit. */ - public static final String PAGE_ANALYSIS_COCKPIT = "Cockpit.xhtml"; + public static final String PAGE_ANALYSIS_COCKPIT = "Cockpit.xhtml?faces-redirect=true"; /** * This is the page used for the redirection to the cockpit editor. */ - public static final String PAGE_ANALYSIS_VIEW_WORK_SPACE = "CockpitEditor.xhtml"; + public static final String PAGE_ANALYSIS_VIEW_WORK_SPACE = "CockpitEditor.xhtml?faces-redirect=true"; /** * This is the page used for the redirection to the analysis editor. */ - public static final String PAGE_PROJECT_WORK_SPACE = "AnalysisEditor.xhtml"; + public static final String PAGE_PROJECT_WORK_SPACE = "AnalysisEditor.xhtml?faces-redirect=true"; /** * Default constructor. diff --git a/Kieker.WebGUI/src/main/webapp/AnalysisEditor.xhtml b/Kieker.WebGUI/src/main/webapp/AnalysisEditor.xhtml index df9737f3..bf2d36a3 100644 --- a/Kieker.WebGUI/src/main/webapp/AnalysisEditor.xhtml +++ b/Kieker.WebGUI/src/main/webapp/AnalysisEditor.xhtml @@ -33,13 +33,13 @@ <h:outputText styleClass="kieker-title" value="Kieker » #{stringBean.shortenLongName(currentAnalysisEditorBean.projectName, 30)}"/> </p:toolbarGroup> <p:toolbarGroup align="right"> - <p:commandButton styleClass="perspective-button" icon="ui-icon-home" action="ProjectOverview.xhtml" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-home" action="#{currentAnalysisEditorBean.clearProject()}" /> <p:separator/> <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" disabled="true" ajax="false"/> - <p:commandButton styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" ajax="false" action="#{currentControllerBean.setProject(currentAnalysisEditorBean.projectName)}" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" ajax="false" action="#{forwardBean.forward(currentAnalysisEditorBean, currentControllerBean)}" /> <p:separator/> - <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" ajax="false" action="#{currentCockpitEditorBean.setProject(currentAnalysisEditorBean.projectName)}" /> - <p:commandButton styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" ajax="false" action="#{currentCockpitBean.setProject(currentAnalysisEditorBean.projectName)}" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" ajax="false" action="#{forwardBean.forward(currentAnalysisEditorBean, currentCockpitEditorBean)}" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" ajax="false" action="#{forwardBean.forward(currentAnalysisEditorBean, currentCockpitBean)}" /> </p:toolbarGroup> </p:toolbar> @@ -197,6 +197,20 @@ <!-- ******************************************************************************** --> </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="#{currentAnalysisEditorBean.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. --> @@ -209,7 +223,6 @@ <ui:include src="dialogs/connectionDialog.xhtml" /> <ui:include src="dialogs/manageLibrariesDialog.xhtml" /> - - <ui:include src="dialogs/forceSaveDialog.xhtml" /> + </h:body> </html> \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/Cockpit.xhtml b/Kieker.WebGUI/src/main/webapp/Cockpit.xhtml index 0dc646f9..5c6e0cf4 100644 --- a/Kieker.WebGUI/src/main/webapp/Cockpit.xhtml +++ b/Kieker.WebGUI/src/main/webapp/Cockpit.xhtml @@ -25,13 +25,13 @@ <h:outputText styleClass="kieker-title" value="Kieker » #{stringBean.shortenLongName(currentAnalysisEditorBean.projectName, 30)}"/> </p:toolbarGroup> <p:toolbarGroup align="right"> - <p:commandButton styleClass="perspective-button" icon="ui-icon-home" action="ProjectOverview.xhtml" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-home" action="#{currentCockpitBean.clearProject()}" /> <p:separator/> - <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" ajax="false" action="#{currentAnalysisEditorBean.setProject(currentCockpitBean.projectName)}"/> - <p:commandButton styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" ajax="false" action="#{currentControllerBean.setProject(currentCockpitBean.projectName)}" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" ajax="false" action="#{forwardBean.forward(currentCockpitBean,currentAnalysisEditorBean)}"/> + <p:commandButton styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" ajax="false" action="#{forwardBean.forward(currentCockpitBean,currentControllerBean)}" /> <p:separator/> - <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" ajax="false" action="#{currentCockpitEditorBean.setProject(currentCockpitBean.projectName)}" /> - <p:commandButton styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" ajax="false" disabled="true" action="#{currentCockpitBean.setProject(currentCockpitBean.projectName)}" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" ajax="false" action="#{forwardBean.forward(currentCockpitBean,currentCockpitEditorBean)}" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" ajax="false" disabled="true" /> </p:toolbarGroup> </p:toolbar> <p:menubar> @@ -56,9 +56,9 @@ <p:layoutUnit position="center" id="centerLayout"> <h:form id="centerForm"> - <ui:repeat value="#{currentCockpitBean.activeView.displays}" var="display"> - <p:panel header="#{display.name}"> - <h:outputText value="#{currentCockpitBean.updatePlainTextDisplay(display.name)}"/> + <ui:repeat value="#{currentCockpitBean.activeView.displayConnectors}" var="dispConnector"> + <p:panel header="#{dispConnector.name}"> + <h:outputText value="#{currentCockpitBean.updatePlainTextDisplay(dispConnector.name)}"/> </p:panel> </ui:repeat> </h:form> diff --git a/Kieker.WebGUI/src/main/webapp/CockpitEditor.xhtml b/Kieker.WebGUI/src/main/webapp/CockpitEditor.xhtml index 56b8679c..95bbb331 100644 --- a/Kieker.WebGUI/src/main/webapp/CockpitEditor.xhtml +++ b/Kieker.WebGUI/src/main/webapp/CockpitEditor.xhtml @@ -23,13 +23,13 @@ <h:outputText styleClass="kieker-title" value="Kieker » #{stringBean.shortenLongName(currentAnalysisEditorBean.projectName, 30)}"/> </p:toolbarGroup> <p:toolbarGroup align="right"> - <p:commandButton styleClass="perspective-button" icon="ui-icon-home" action="ProjectOverview.xhtml" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-home" action="#{currentCockpitEditorBean.clearProject()}" /> <p:separator/> - <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" ajax="false" action="#{currentAnalysisEditorBean.setProject(currentCockpitEditorBean.projectName)}"/> - <p:commandButton styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" ajax="false" action="#{currentControllerBean.setProject(currentCockpitEditorBean.projectName)}" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" ajax="false" action="#{forwardBean.forward(currentCockpitEditorBean, currentAnalysisEditorBean)}"/> + <p:commandButton styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" ajax="false" action="#{forwardBean.forward(currentCockpitEditorBean, currentControllerBean)}" /> <p:separator/> - <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" ajax="false" disabled="true" action="#{currentCockpitEditorBean.setProject(currentCockpitEditorBean.projectName)}" /> - <p:commandButton styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" ajax="false" action="#{currentCockpitBean.setProject(currentCockpitEditorBean.projectName)}" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" ajax="false" disabled="true" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" ajax="false" action="#{forwardBean.forward(currentCockpitEditorBean, currentCockpitBean)}" /> </p:toolbarGroup> </p:toolbar> <p:menubar> @@ -38,7 +38,6 @@ <p:separator/> <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-disk" value=" Save Project" update=":messages" ajax="true" action="#{currentCockpitEditorBean.saveProject(false)}" disabled="#{empty currentCockpitEditorBean.project}"/> <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-disk" value=" Save Project As" update=":messages" ajax="true" disabled="#{empty currentAnalysisEditorBean.project}"/> - <p:menuitem styleClass="element-with-whitespace Force-Save-Project-Button" icon="ui-icon-alert" value=" Force Save Project" update=":messages" ajax="true" action="#{currentCockpitEditorBean.saveProject(true)}" disabled="#{empty currentCockpitEditorBean.project}"/> <p:separator/> <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-refresh" value=" Reload Project" ajax="true" disabled="#{empty currentCockpitEditorBean.project or true}"/> <p:separator/> @@ -80,18 +79,20 @@ <p:inputText value="#{viewComp.description}" /> </p:inplace> <hr/> - <p:dataTable value="#{viewComp.displays}" var="disp"> + <p:dataTable value="#{viewComp.displayConnectors}" var="dispConn"> <p:column headerText="Plugin" style="text-align: center"> - #{disp.parent.name} + #{dispConn.display.parent.name} </p:column> <p:column headerText="Display Name" style="text-align: center"> - #{disp.name} + #{dispConn.display.name} </p:column> <p:column headerText="Name" style="text-align: center"> - TODO + <p:inplace id="basic" editor="true"> + <p:inputText value="#{dispConn.name}" validator="#{currentCockpitEditorBean.validateDisplayConnectorName}" /> + </p:inplace> </p:column> <p:column style="text-align: center; width: 50px" > - <p:commandButton icon="ui-icon-trash"/> + <p:commandButton icon="ui-icon-trash" disabled="true"/> </p:column> </p:dataTable> </p:tab> @@ -101,6 +102,20 @@ </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. --> diff --git a/Kieker.WebGUI/src/main/webapp/Controller.xhtml b/Kieker.WebGUI/src/main/webapp/Controller.xhtml index 4e042560..02631cda 100644 --- a/Kieker.WebGUI/src/main/webapp/Controller.xhtml +++ b/Kieker.WebGUI/src/main/webapp/Controller.xhtml @@ -25,13 +25,13 @@ <h:outputText styleClass="kieker-title" value="Kieker » #{stringBean.shortenLongName(currentAnalysisEditorBean.projectName, 30)}"/> </p:toolbarGroup> <p:toolbarGroup align="right"> - <p:commandButton styleClass="perspective-button" icon="ui-icon-home" action="ProjectOverview.xhtml"/> + <p:commandButton styleClass="perspective-button" icon="ui-icon-home" action="#{currentControllerBean.clearProject()}"/> <p:separator/> - <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" ajax="false" action="#{currentAnalysisEditorBean.setProject(currentControllerBean.projectName)}"/> + <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" ajax="false" action="#{forwardBean.forward(currentControllerBean, currentAnalysisEditorBean)}"/> <p:commandButton styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" ajax="false" disabled="true" /> <p:separator/> - <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" ajax="false" action="#{currentCockpitEditorBean.setProject(currentControllerBean.projectName)}" /> - <p:commandButton styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" ajax="false" action="#{currentCockpitBean.setProject(currentControllerBean.projectName)}" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" ajax="false" action="#{forwardBean.forward(currentControllerBean, currentCockpitEditorBean)}" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" ajax="false" action="#{forwardBean.forward(currentControllerBean, currentCockpitBean)}" /> </p:toolbarGroup> </p:toolbar> diff --git a/Kieker.WebGUI/src/main/webapp/ProjectOverview.xhtml b/Kieker.WebGUI/src/main/webapp/ProjectOverview.xhtml index 8542d3cd..11543e6a 100644 --- a/Kieker.WebGUI/src/main/webapp/ProjectOverview.xhtml +++ b/Kieker.WebGUI/src/main/webapp/ProjectOverview.xhtml @@ -22,7 +22,7 @@ <p:toolbarGroup align="right"> <p:commandButton styleClass="perspective-button" icon="ui-icon-home" disabled="true" action="ProjectOverview.xhtml" /> <p:separator/> - <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" ajax="false" action="#{currentAnalysisEditorBean.setProject(currentProjectOverviewBean.projectName)}"/> + <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" ajax="false" action="#{currentAnalysisEditorBean.setProject(currentProjectOverviewBean.projectName)}" /> <p:commandButton styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" ajax="false" action="#{currentControllerBean.setProject(currentProjectOverviewBean.projectName)}" /> <p:separator/> <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" ajax="false" action="#{currentCockpitEditorBean.setProject(currentProjectOverviewBean.projectName)}" /> diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/aboutDialog.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/aboutDialog.xhtml index f2989149..622a4bac 100644 --- a/Kieker.WebGUI/src/main/webapp/dialogs/aboutDialog.xhtml +++ b/Kieker.WebGUI/src/main/webapp/dialogs/aboutDialog.xhtml @@ -1,14 +1,14 @@ +<?xml version='1.0' encoding='UTF-8' ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition 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"> - <p:dialog header="About..." resizable="false" modal="true" - widgetVar="aboutDlg" id="aboutDialog"> + <p:dialog header="About..." resizable="false" modal="true" widgetVar="aboutDlg"> <h:form> - <img src="../img/kieker-logo-transparent.png" /> + <img src="../img/kieker-logo-transparent.png" alt="Kieker-Logo" width="491" height="150" /> <hr/> <h:outputText value="Kieker.WebGUI" /> <br /> diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/forceSaveDialog.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/forceSaveDialog.xhtml deleted file mode 100644 index 678ff5c3..00000000 --- a/Kieker.WebGUI/src/main/webapp/dialogs/forceSaveDialog.xhtml +++ /dev/null @@ -1,22 +0,0 @@ -<ui:composition - 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"> - - <p:dialog header="Save Project" resizable="false" modal="true" - widgetVar="forceSaveDlg" id="forceSaveDialog"> - <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="#{currentAnalysisEditorBean.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 -- GitLab