From e6534e3541e6cb8386dbfa355028b73b7d4d789d Mon Sep 17 00:00:00 2001 From: Nils Christian Ehmke <nie@informatik.uni-kiel.de> Date: Sun, 10 Jun 2012 15:01:27 +0200 Subject: [PATCH] Views are now visible and are updated frequently; Modified the way the analysis controllers are instantiated; Removed the deprecated view-directory; Updated the kieker-jar --- Kieker.WebGUI/lib/kieker-1.6-SNAPSHOT_emf.jar | Bin 2036193 -> 2037287 bytes .../CurrentAnalysisCockpitProjectBean.java | 19 ++ .../CurrentAnalysisControllerProjectBean.java | 12 ++ .../java/kieker/webgui/common/ACManager.java | 199 ++++++++++++------ .../java/kieker/webgui/common/FSManager.java | 32 +-- .../java/kieker/webgui/common/Triple.java | 110 ++++++++++ .../src/main/webapp/AnalysisCockpit.xhtml | 22 +- .../src/main/webapp/AnalysisController.xhtml | 6 +- 8 files changed, 292 insertions(+), 108 deletions(-) create mode 100644 Kieker.WebGUI/src/main/java/kieker/webgui/common/Triple.java diff --git a/Kieker.WebGUI/lib/kieker-1.6-SNAPSHOT_emf.jar b/Kieker.WebGUI/lib/kieker-1.6-SNAPSHOT_emf.jar index b16752b1b39943010cae9f23e9153028adba72d8..3e41a675a82fae11b5bf9229cb881a9529b97c50 100644 GIT binary patch delta 59941 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%0Aw&R_7!~eXK4Efz?+^xJI6~KFM!aR+3__ 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 Cc2y?; delta 59507 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≈$|9+{9p<pl>hDZvRkZ*DRC4 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 F{{UV}>Kgz6 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 73c71665..60267795 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 @@ -24,6 +24,8 @@ import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import kieker.analysis.model.analysisMetaModel.MIProject; +import kieker.analysis.model.analysisMetaModel.MIView; +import kieker.webgui.common.ACManager; import org.primefaces.model.DashboardColumn; import org.primefaces.model.DashboardModel; @@ -60,6 +62,7 @@ public class CurrentAnalysisCockpitProjectBean { * This is the actual model instance. It is the in-memory-model of the current (session) user. */ private MIProject project; + private MIView activeView; /** * Creates a new instance of this class. @@ -137,6 +140,14 @@ public class CurrentAnalysisCockpitProjectBean { } } + public String updateDisplay(final String displayName) { + try { + return ACManager.getInstance().getDisplay(this.projectName, this.activeView.getName(), displayName).toString(); + } catch (final NullPointerException ex) { + return "N/A"; + } + } + /** * This method clears the bean. In other words: The stored project is set to null and it will return the page of the project overview for navigation purposes. * @@ -150,4 +161,12 @@ public class CurrentAnalysisCockpitProjectBean { return CurrentAnalysisCockpitProjectBean.PAGE_PROJECT_OVERVIEW; } + + public MIView getActiveView() { + return this.activeView; + } + + public void setActiveView(final MIView activeView) { + this.activeView = activeView; + } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisControllerProjectBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisControllerProjectBean.java index 67a3aaae..2e403f75 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisControllerProjectBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentAnalysisControllerProjectBean.java @@ -142,6 +142,18 @@ public class CurrentAnalysisControllerProjectBean { } } + public void cleanAnalysis() { + try { + ACManager.getInstance().cleanAnalysisController(this.projectName); + } catch (final AnalysisNotInstantiatedException e) { + CurrentAnalysisControllerProjectBean.showMessage(FacesMessage.SEVERITY_WARN, "The analysis has not been instantiated yet."); + } catch (final AnalysisNotRunningException e) { + CurrentAnalysisControllerProjectBean.showMessage(FacesMessage.SEVERITY_WARN, "The analysis has not been started yet."); + } catch (final InterruptedException e) { + CurrentAnalysisControllerProjectBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occurred while cleaning the analysis."); + } + } + /** * Checks whether the analysis is currently running. * 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 c6201800..15fb3c35 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ACManager.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ACManager.java @@ -21,15 +21,26 @@ package kieker.webgui.common; import java.io.IOException; +import java.lang.Thread.State; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import kieker.analysis.AnalysisController; +import kieker.analysis.AnalysisController.AnalysisControllerWithMapping; import kieker.analysis.AnalysisController.STATE; import kieker.analysis.display.AbstractDisplay; +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.MIPlugin; import kieker.analysis.model.analysisMetaModel.MIProject; +import kieker.analysis.model.analysisMetaModel.MIView; +import kieker.analysis.plugin.AbstractPlugin; import kieker.webgui.common.exception.AnalysisNotInstantiatedException; import kieker.webgui.common.exception.AnalysisNotRunningException; import kieker.webgui.common.exception.ProjectAlreadyStartedException; @@ -42,6 +53,7 @@ import kieker.webgui.common.exception.ProjectStillRunningException; * @author Nils Christian Ehmke * @version 1.0 */ +// TODO How to differ between views and displays with same names? public final class ACManager { /** * This is the maximal time the application will wait for an analysis thread to be terminated. @@ -55,7 +67,7 @@ public final class ACManager { * This list contains the current analysis controllers and their corresponding threads. Not every project does have a controller, but every project can have * maximal one. */ - private final ConcurrentHashMap<String, Pair<AnalysisController, Thread>> analysisController = new ConcurrentHashMap<String, Pair<AnalysisController, Thread>>(); + private final ConcurrentHashMap<String, Triple<AnalysisController, Thread, UpdateDisplaysThread>> analysisController = new ConcurrentHashMap<String, Triple<AnalysisController, Thread, UpdateDisplaysThread>>(); /** * Creates a new instance of this class. @@ -84,16 +96,17 @@ public final class ACManager { * If the current thread has somehow been interrupted while waiting for the existing analysis thread. */ public void stopAnalysisController(final String project) throws AnalysisNotRunningException, InterruptedException { - final Pair<AnalysisController, Thread> currController = this.analysisController.get(project); - synchronized (currController) { - // Is there a thread available? - if ((currController.getFst() == null) || (currController.getSnd() == null)) { - throw new AnalysisNotRunningException(); + final Triple<AnalysisController, Thread, UpdateDisplaysThread> currController = this.analysisController.get(project); + try { + synchronized (currController) { + // Try to stop the analysis + currController.getFst().terminate(); + currController.getThd().terminate(); + currController.getSnd().join(ACManager.MAX_THREAD_WAIT_TIME_MS); + currController.getThd().join(ACManager.MAX_THREAD_WAIT_TIME_MS); } - - // Try to stop the analysis - currController.getFst().terminate(); - currController.getSnd().join(ACManager.MAX_THREAD_WAIT_TIME_MS); + } catch (final NullPointerException ex) { + throw new AnalysisNotRunningException(); } } @@ -108,33 +121,35 @@ public final class ACManager { * If the analysis has not yet been initialized. */ public void startAnalysisController(final String project) throws ProjectAlreadyStartedException, AnalysisNotInstantiatedException { - final Pair<AnalysisController, Thread> currController = this.analysisController.get(project); - synchronized (currController) { - // Is there an analysis after all? - if (currController.getFst() == null) { - throw new AnalysisNotInstantiatedException(); + final Triple<AnalysisController, Thread, UpdateDisplaysThread> currController = this.analysisController.get(project); + // Is there an analysis after all? + try { + synchronized (currController) { + // Check whether this analysis has already been started - or is already dead. + if (currController.getSnd().getState() != State.NEW) { + throw new ProjectAlreadyStartedException(); + } + // Otherwise start the analysis + currController.getSnd().start(); + currController.getThd().start(); } - // Check whether this analysis has already been started. - if (currController.getSnd() != null) { - throw new ProjectAlreadyStartedException(); - } else { - // Otherwise start a thread and run the analysis in it. - currController.setSnd(new Thread() { - @Override - public void run() { - try { - currController.getFst().run(); - } catch (final IllegalStateException ex) { - ex.printStackTrace(); - } catch (final AnalysisConfigurationException ex) { - ex.printStackTrace(); - } - } - }); + } catch (final NullPointerException ex) { + throw new AnalysisNotInstantiatedException(); + } + } - currController.getSnd().start(); + public void cleanAnalysisController(final String project) throws AnalysisNotInstantiatedException, AnalysisNotRunningException, InterruptedException { + final Triple<AnalysisController, Thread, UpdateDisplaysThread> currController = this.analysisController.get(project); + // Is there an analysis after all? + try { + synchronized (currController) { + this.stopAnalysisController(project); + this.analysisController.remove(project); } + } catch (final NullPointerException ex) { + throw new AnalysisNotInstantiatedException(); } + } /** @@ -153,29 +168,36 @@ public final class ACManager { */ public void instantiateAnalysisController(final String project) throws NullPointerException, AnalysisConfigurationException, IOException, ProjectStillRunningException { - // Add the potential new project atomically - final MIProject modelProject = FSManager.getInstance().openProject(project); - final ClassLoader classLoader = FSManager.getInstance().getClassLoader(project); - final Pair<AnalysisController, Thread> newController = new Pair<AnalysisController, Thread>(new AnalysisController(modelProject, classLoader), null); - final Pair<AnalysisController, Thread> currController = this.analysisController.putIfAbsent(project, newController); + final Triple<AnalysisController, Thread, UpdateDisplaysThread> newController = new Triple<AnalysisController, Thread, UpdateDisplaysThread>(); + synchronized (newController) { + // Add the potential new project atomically + final Triple<AnalysisController, Thread, UpdateDisplaysThread> currController = this.analysisController.putIfAbsent(project, newController); + // We can just add a new controller if there wasn't an old one. + if (currController != null) { + throw new ProjectStillRunningException("The project with the name '" + project + "' is still running."); + } + final MIProject modelProject = FSManager.getInstance().openProject(project); + final ClassLoader classLoader = FSManager.getInstance().getClassLoader(project); + final AnalysisControllerWithMapping controller = AnalysisController.createAnalysisController(modelProject, classLoader); - if (currController != null) { - // There is currently an analysis controller available. Decide what to do. - synchronized (currController) { - switch (currController.getFst().getState()) { - case FAILED: - case TERMINATED: - case READY: - // No problem in instantiating a new controller - this.analysisController.put(project, newController); - break; - case RUNNING: - throw new ProjectStillRunningException("The project with the name '" + project + "' is still running."); - default: - // No code necessary - break; + // Create the necessary threads for the analysis + final Thread runningThread = new Thread() { + @Override + public void run() { + try { + controller.getController().run(); + } catch (final IllegalStateException ex) { + ex.printStackTrace(); + } catch (final AnalysisConfigurationException ex) { + ex.printStackTrace(); + } } - } + }; + final UpdateDisplaysThread displayThread = new UpdateDisplaysThread(controller.getPluginMap(), modelProject); + // Put everything into our container + newController.setFst(controller.getController()); + newController.setSnd(runningThread); + newController.setThd(displayThread); } } @@ -199,6 +221,11 @@ public final class ACManager { return controllerStateString; } + public AbstractDisplay getDisplay(final String project, final String viewName, final String displayName) { + // TODO Catch exceptions + return this.analysisController.get(project).getThd().getDisplay(viewName, displayName); + } + /** * This method can be used to deliver the state of the analysis controller of the given project as a human readable string. * @@ -211,7 +238,7 @@ public final class ACManager { if (project == null) { return null; } - final Pair<AnalysisController, Thread> controller = this.analysisController.get(project); + final Triple<AnalysisController, Thread, UpdateDisplaysThread> controller = this.analysisController.get(project); final STATE controllerState; if (controller == null) { @@ -249,30 +276,72 @@ public final class ACManager { * @author Nils Christian Ehmke * @version 1.0 */ - @SuppressWarnings("unused") - private static class DisplayUpdateThread extends Thread { + private static class UpdateDisplaysThread extends Thread { /** * This is the time the thread waits between the updates. */ private static final long SLEEP_TIME_MS = 2 * 1000; + private final Map<MIPlugin, AbstractPlugin> myPluginMap; + private final MIProject myProject; + private final Map<String, Map<String, AbstractDisplay>> displayObjects = new ConcurrentHashMap<String, Map<String, AbstractDisplay>>(); + private volatile boolean terminated = false; - /** - * Default constructor. - */ - public DisplayUpdateThread() { - // No code necessary + public UpdateDisplaysThread(final Map<MIPlugin, AbstractPlugin> pluginMap, final MIProject modelProject) { + this.myPluginMap = pluginMap; + this.myProject = modelProject; + + // Initialize the hashmap and the necessary objects + for (final MIView view : this.myProject.getViews()) { + final Map<String, AbstractDisplay> viewMap = new ConcurrentHashMap<String, AbstractDisplay>(); + this.displayObjects.put(view.getName(), viewMap); + for (final MIDisplay display : view.getDisplays()) { + // TODO Use correct display object + viewMap.put(display.getName(), new PlainText()); + } + } + } + + public void terminate() { + this.terminated = true; + } + + public AbstractDisplay getDisplay(final String viewName, final String displayName) { + return this.displayObjects.get(viewName).get(displayName); } @Override public void run() { // Run until we have been interrupted - while (!Thread.interrupted()) { - // TODO Implement + while (!this.terminated) { + for (final MIView view : this.myProject.getViews()) { + final Map<String, AbstractDisplay> viewMap = this.displayObjects.get(view.getName()); + for (final MIDisplay display : view.getDisplays()) { + final AbstractDisplay displayObject = viewMap.get(display.getName()); + final AbstractPlugin pluginObject = this.myPluginMap.get(display.getParent()); + // Update the display object + final Method[] methods = pluginObject.getClass().getMethods(); + for (final Method method : methods) { + final Display displayAnnot = method.getAnnotation(Display.class); + if ((displayAnnot != null) && displayAnnot.name().equals(display.getName())) { + // We found the correct method + try { + method.invoke(pluginObject, displayObject); + } catch (final IllegalAccessException e) { + e.printStackTrace(); + } catch (final IllegalArgumentException e) { + e.printStackTrace(); + } catch (final InvocationTargetException e) { + e.printStackTrace(); + } + } + } + } + } // Wait a little bit. try { - Thread.sleep(DisplayUpdateThread.SLEEP_TIME_MS); + Thread.sleep(UpdateDisplaysThread.SLEEP_TIME_MS); } catch (final InterruptedException ex) { // We have been interrupted. Exit the thread return; 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 248f2f72..38e2a57f 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/FSManager.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/FSManager.java @@ -79,10 +79,6 @@ public final class FSManager { * This is the name of the root-directory. */ private static final String ROOT_DIRECTORY = "data"; - /** - * This is the name of the directory for the views. - */ - private static final String VIEW_DIRECTORY = "view"; /** * This is the buffer (in bytes) used to copy files. */ @@ -146,7 +142,6 @@ public final class FSManager { final File projectDir = new File(FSManager.ROOT_DIRECTORY + File.separator + project); final File projectFile = new File(FSManager.ROOT_DIRECTORY + File.separator + project + File.separator + project + "." + FSManager.KAX_EXTENSION); final File libDir = new File(FSManager.ROOT_DIRECTORY + File.separator + project + File.separator + FSManager.LIB_DIRECTORY); - final File viewDir = new File(FSManager.ROOT_DIRECTORY + File.separator + project + File.separator + FSManager.VIEW_DIRECTORY); // We need an "empty" project in order to save it. @@ -162,17 +157,15 @@ public final class FSManager { // Create the directories final boolean projDirCreated = projectDir.mkdir(); final boolean libDirCreated = libDir.mkdir(); - final boolean viewDirCreated = viewDir.mkdir(); // The following part is only necessary to calm FindBugs... @SuppressWarnings("unused") - final boolean createResults = projDirCreated && libDirCreated && viewDirCreated; + final boolean createResults = projDirCreated && libDirCreated; // Now the empty project file try { AnalysisController.saveToFile(projectFile, emptyProject); } catch (final IOException ex) { // NOPMD (Rethrow to clean the directories) // Something went wrong. Remove the directories and files! - final boolean viewDirDeleted = viewDir.delete(); final boolean libDirDeleted = libDir.delete(); // Keep in mind that the potential remains of the file have to be deleted before the directory. final boolean projectFileDeleted = projectFile.delete(); @@ -180,7 +173,7 @@ public final class FSManager { // The following part is only necessary to calm FindBugs... @SuppressWarnings("unused") - final boolean deleteResults = viewDirDeleted && libDirDeleted && projectFileDeleted && projectDeleted; + final boolean deleteResults = libDirDeleted && projectFileDeleted && projectDeleted; // Rethrow the exception in order to inform the caller of this method throw ex; } @@ -348,27 +341,6 @@ public final class FSManager { } } - /** - * Delivers a list with all available views of the given project. - * - * @param project - * The name of the project. - * @return A list with the names of the available views. - */ - public List<String> getAllViews(final String project) { - final List<String> result = new ArrayList<String>(); - - // Get all files within the view-dir - final File[] files = new File(FSManager.ROOT_DIRECTORY + File.separator + project + File.separator + FSManager.VIEW_DIRECTORY).listFiles(); - for (final File file : files) { - if (file.isFile()) { - result.add(file.getName()); - } - } - - return result; - } - /** * Checks whether a project with the name exists on the file system. * diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/Triple.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/Triple.java new file mode 100644 index 00000000..0ee851c0 --- /dev/null +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/Triple.java @@ -0,0 +1,110 @@ +package kieker.webgui.common; + +/** + * This is a simple helper class which can store three values. + * + * @author Nils Christian Ehmke + * @version 1.0 + * + * @param <F> + * The type of the first element. + * @param <S> + * The type of the second element. + * @param <T> + * The type of the third element. + */ +public class Triple<F, S, T> { + /** + * This is the first element. + */ + private F fst; + /** + * This is the second element. + */ + private S snd; + /** + * This is the third element + */ + private T thd; + + /** + * Creates a new instance of this class with null values stored for the elements. + */ + public Triple() { + // No code necessary + } + + /** + * Creates a new instance of this class using the given values. + * + * @param fst + * The first element to be stored in this object. + * @param snd + * The second element to be stored in this object. + * @param thd + * The third element to be stored in this object. + */ + public Triple(final F fst, final S snd, final T thd) { + this.fst = fst; + this.snd = snd; + this.thd = thd; + } + + /** + * Delivers the first element. + * + * @return The first element. + */ + public F getFst() { + return this.fst; + } + + /** + * Sets the first element to a new value. + * + * @param fst + * The new first element. + */ + public void setFst(final F fst) { + this.fst = fst; + } + + /** + * Delivers the second element. + * + * @return The second element. + */ + public S getSnd() { + return this.snd; + } + + /** + * Sets the second element to a new value. + * + * @param snd + * The new second element. + */ + public void setSnd(final S snd) { + this.snd = snd; + } + + /** + * Delivers the third element. + * + * @return The third element. + */ + public T getThd() { + return this.thd; + } + + /** + * Sets the third element to a new value. + * + * @param thd + * The new third element. + */ + public void setThd(final T thd) { + this.thd = thd; + } + +} diff --git a/Kieker.WebGUI/src/main/webapp/AnalysisCockpit.xhtml b/Kieker.WebGUI/src/main/webapp/AnalysisCockpit.xhtml index 0819d08d..5f703d19 100644 --- a/Kieker.WebGUI/src/main/webapp/AnalysisCockpit.xhtml +++ b/Kieker.WebGUI/src/main/webapp/AnalysisCockpit.xhtml @@ -36,7 +36,7 @@ <p:menuitem value="Controller"/> <p:menuitem value="Cockpit" disabled="true"/> </p:submenu> - + <p:submenu label="Help"> <p:menuitem value="User Guide" ajax="true" disabled="true"/> <p:separator/> @@ -51,24 +51,24 @@ <p:layoutUnit position="center" id="centerLayout"> - <p:dashboard id="board" model="#{currentAnalysisCockpitProjectBean.model}"> - <p:panel id="panel1" header="N/A" toggleable="true"> - <h:outputText value="N/A" /> - </p:panel> - <p:panel id="panel2" header="N/A" toggleable="true"> - <h:outputText value="N/A" /> - </p:panel> - </p:dashboard> + <h:form id="centerForm"> + <ui:repeat value="#{currentAnalysisCockpitProjectBean.activeView.displays}" var="display"> + <p:panel header="#{display.name}"> + <h:outputText value="#{currentAnalysisCockpitProjectBean.updateDisplay(display.name)}"/> + </p:panel> + </ui:repeat> + </h:form> </p:layoutUnit> <p:layoutUnit position="west" size="300" header="Views" resizable="true" collapsible="true"> <h:form id="viewsForm"> + <p:poll interval="1" update=":centerForm"/> <p:accordionPanel multiple="true" activeIndex="" value="#{currentAnalysisCockpitProjectBean.project.views}" var="currView"> <p:tab title="#{currView.name}"> <h:outputText value="#{currView.description}" rendered="#{not empty currView.description}"/> <h:outputText value="No description available." rendered="#{empty currView.description}"/> - <hr/> - Click <h:commandLink value="here"/> to activate this view. + <hr/> + Click <h:commandLink value="here" action="#{currentAnalysisCockpitProjectBean.setActiveView(currView)}"/> to activate this view. </p:tab> </p:accordionPanel> </h:form> diff --git a/Kieker.WebGUI/src/main/webapp/AnalysisController.xhtml b/Kieker.WebGUI/src/main/webapp/AnalysisController.xhtml index 4ee2df74..5635915f 100644 --- a/Kieker.WebGUI/src/main/webapp/AnalysisController.xhtml +++ b/Kieker.WebGUI/src/main/webapp/AnalysisController.xhtml @@ -36,7 +36,7 @@ <p:menuitem value="Controller" disabled="true"/> <p:menuitem value="Cockpit"/> </p:submenu> - + <p:submenu label="Help"> <p:menuitem value="User Guide" ajax="true" disabled="true"/> <p:separator/> @@ -56,8 +56,10 @@ <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:poll interval="1" update=":ledsForm"/> </h:form> <hr/> <h:form id="ledsForm"> @@ -83,8 +85,8 @@ <p:tooltip for="iconLEDGreen_2" value="Indicates that the AnalysisController has been started and is running."/> <p:tooltip for="iconLEDRed2_2" value="Indicates that the AnalysisController has been terminated or has failed."/> </div> - <p:poll interval="1" update="ledsForm"/> </h:form> + </p:layoutUnit> </p:layout> -- GitLab