From 341191d373d8c9bdc896414928ad165b91823331 Mon Sep 17 00:00:00 2001 From: Nils Christian Ehmke <nie@informatik.uni-kiel.de> Date: Sat, 15 Sep 2012 00:17:42 +0200 Subject: [PATCH] Removed some unnecessary filed; Added the icons for the plugins and repositories; Started with a log for the current controller --- .../view/CurrentAnalysisEditorGraphBean.java | 9 +- .../beans/view/CurrentControllerBean.java | 130 ++++++++---------- .../webgui/common/IProjectManagerFacade.java | 4 +- .../webgui/common/ProjectManagerFacade.java | 4 +- .../AnalysisInitializationException.java | 66 +++++++++ .../kieker/webgui/common/util/ACManager.java | 4 +- .../kieker/webgui/common/util/Analysis.java | 7 +- .../src/main/webapp/Controller.xhtml | 22 +-- .../src/main/webapp/img/FilterIcon.png | Bin 0 -> 13483 bytes .../src/main/webapp/img/ReaderIcon.png | Bin 0 -> 9831 bytes .../src/main/webapp/img/RepositoryIcon.png | Bin 0 -> 10719 bytes Kieker.WebGUI/src/main/webapp/img/arrow.gif | Bin 53 -> 0 bytes Kieker.WebGUI/src/main/webapp/img/arrow_d.gif | Bin 828 -> 0 bytes Kieker.WebGUI/src/main/webapp/img/arrow_l.gif | Bin 828 -> 0 bytes Kieker.WebGUI/src/main/webapp/img/arrow_r.gif | Bin 53 -> 0 bytes Kieker.WebGUI/src/main/webapp/img/arrow_u.gif | Bin 827 -> 0 bytes 16 files changed, 151 insertions(+), 95 deletions(-) create mode 100644 Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisInitializationException.java create mode 100644 Kieker.WebGUI/src/main/webapp/img/FilterIcon.png create mode 100644 Kieker.WebGUI/src/main/webapp/img/ReaderIcon.png create mode 100644 Kieker.WebGUI/src/main/webapp/img/RepositoryIcon.png delete mode 100644 Kieker.WebGUI/src/main/webapp/img/arrow.gif delete mode 100644 Kieker.WebGUI/src/main/webapp/img/arrow_d.gif delete mode 100644 Kieker.WebGUI/src/main/webapp/img/arrow_l.gif delete mode 100644 Kieker.WebGUI/src/main/webapp/img/arrow_r.gif delete mode 100644 Kieker.WebGUI/src/main/webapp/img/arrow_u.gif diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java index 4e2db8f3..79fca9af 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java @@ -140,12 +140,9 @@ public class CurrentAnalysisEditorGraphBean { */ public void declareGraph() { RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_CREATE_GRAPH_VAR); - RequestContext.getCurrentInstance().execute( - "graph.setNodeIcon('Filter', 'http://icons.iconarchive.com/icons/everaldo/crystal-clear/96/Action-run-icon.png');"); - RequestContext.getCurrentInstance().execute( - "graph.setNodeIcon('Reader', 'http://icons.iconarchive.com/icons/everaldo/crystal-clear/96/Filesystem-folder-yellow-icon.png');"); - RequestContext.getCurrentInstance().execute( - "graph.setNodeIcon('Repository', 'http://icons.iconarchive.com/icons/everaldo/crystal-clear/96/App-ark-2-icon.png');"); + RequestContext.getCurrentInstance().execute("graph.setNodeIcon('Filter', '../img/FilterIcon.png');"); + RequestContext.getCurrentInstance().execute("graph.setNodeIcon('Reader', '../img/ReaderIcon.png');"); + RequestContext.getCurrentInstance().execute("graph.setNodeIcon('Repository', '../img/RepositoryIcon.png');"); } /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java index 4a11223e..fbe331c6 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java @@ -21,23 +21,25 @@ package kieker.webgui.beans.view; import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; -import javax.faces.application.FacesMessage; -import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; -import javax.faces.context.FacesContext; import kieker.analysis.AnalysisController; -import kieker.analysis.model.analysisMetaModel.MIProject; import kieker.common.logging.Log; import kieker.common.logging.LogFactory; import kieker.webgui.beans.application.ProjectsBean; import kieker.webgui.common.IProjectManagerFacade; import kieker.webgui.common.ProjectManagerFacade; +import kieker.webgui.common.exception.AnalysisInitializationException; import kieker.webgui.common.exception.AnalysisStateException; -import kieker.webgui.common.exception.ProjectLoadException; import kieker.webgui.common.exception.ProjectNotExistingException; /** @@ -54,8 +56,8 @@ public class CurrentControllerBean { private static final Log LOG = LogFactory.getLog(CurrentControllerBean.class); private final IProjectManagerFacade projectManagerFacade = ProjectManagerFacade.getInstance(); + private final ArrayList<String> logEntries = new ArrayList<String>(); private String projectName; - private MIProject project; @ManagedProperty(value = "#{projectsBean}") private ProjectsBean projectsBean; @@ -98,40 +100,6 @@ public class CurrentControllerBean { } } - /** - * This method initializes the bean by using the current project name to load the project. <b>Do not call this method manually. It will only be accessed by - * JSF.</b> - */ - public void initalize() { - synchronized (this) { - try { - // Make sure that the initialization will only be done for the init request. - if (!FacesContext.getCurrentInstance().isPostback()) { - // Remember the given parameters - this.project = this.projectsBean.openProject(this.projectName); - } - } catch (final ProjectLoadException ex) { - CurrentControllerBean.LOG.error("An error occured while loading the project.", ex); - CurrentControllerBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while loading the project."); - } catch (final NullPointerException ex) { - // This exception can occur, when the projectsBean has not been initialized - CurrentControllerBean.LOG.error("An error occured while loading the project.", ex); - CurrentControllerBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while loading the project."); - } - } - } - - /** - * This method delivers the project stored in this bean. - * - * @return The project for this user. - */ - public MIProject getProject() { - synchronized (this) { - return this.project; - } - } - /** * This method delivers the project name stored in this bean. * @@ -147,16 +115,17 @@ public class CurrentControllerBean { * This method starts the current analysis and informs the user about a fail. */ public void startAnalysis() { - try { - synchronized (this) { + synchronized (this) { + this.addLogEntry("Starting Analysis for project '" + this.projectName + "'"); + try { this.projectManagerFacade.startAnalysis(this.projectName); + } catch (final AnalysisStateException ex) { + CurrentControllerBean.LOG.info("The analysis has already been started.", ex); + this.addLogEntry(ex); + } catch (final ProjectNotExistingException ex) { + CurrentControllerBean.LOG.info("The project does not exist.", ex); + this.addLogEntry(ex); } - } catch (final AnalysisStateException ex) { - CurrentControllerBean.LOG.info("The analysis has already been started.", ex); - CurrentControllerBean.showMessage(FacesMessage.SEVERITY_WARN, "The analysis has already been started."); - } catch (final ProjectNotExistingException ex) { - CurrentControllerBean.LOG.info("The project does not exist.", ex); - CurrentControllerBean.showMessage(FacesMessage.SEVERITY_WARN, "The project does not exist."); } } @@ -165,15 +134,16 @@ public class CurrentControllerBean { */ public void stopAnalysis() { try { + this.addLogEntry("Stopping Analysis for project '" + this.projectName + "'"); synchronized (this) { this.projectManagerFacade.stopAnalysis(this.projectName); } } catch (final AnalysisStateException ex) { CurrentControllerBean.LOG.info("The analysis has not been started yet.", ex); - CurrentControllerBean.showMessage(FacesMessage.SEVERITY_WARN, "The analysis has not been started yet."); + this.addLogEntry(ex); } catch (final ProjectNotExistingException ex) { CurrentControllerBean.LOG.info("The project does not exist.", ex); - CurrentControllerBean.showMessage(FacesMessage.SEVERITY_WARN, "The project does not exist."); + this.addLogEntry(ex); } } @@ -181,19 +151,23 @@ public class CurrentControllerBean { * This method initializes the current analysis and informs the user about a fail. */ public void instantiateAnalysis() { - try { - synchronized (this) { + synchronized (this) { + this.addLogEntry("Instantiating Analysis for project '" + this.projectName + "'"); + try { this.projectManagerFacade.initializeAnalysis(this.projectName, this.projectManagerFacade.getClassLoader(this.projectName)); // NOPMD (ClassLoader) + } catch (final AnalysisStateException ex) { + CurrentControllerBean.LOG.error("The analysis has already been instantiated.", ex); + this.addLogEntry(ex); + } catch (final ProjectNotExistingException ex) { + CurrentControllerBean.LOG.info("The project does not exist.", ex); + this.addLogEntry(ex); + } catch (final IOException ex) { + CurrentControllerBean.LOG.info("An error occured during the initialization.", ex); + this.addLogEntry(ex); + } catch (final AnalysisInitializationException ex) { + CurrentControllerBean.LOG.info("An error occured during the initialization.", ex); + this.addLogEntry(ex); } - } catch (final AnalysisStateException ex) { - CurrentControllerBean.LOG.error("The analysis has already been instantiated.", ex); - CurrentControllerBean.showMessage(FacesMessage.SEVERITY_ERROR, "The analysis has already been instantiated."); - } catch (final ProjectNotExistingException ex) { - CurrentControllerBean.LOG.info("The project does not exist.", ex); - CurrentControllerBean.showMessage(FacesMessage.SEVERITY_WARN, "The project does not exist."); - } catch (final IOException ex) { - CurrentControllerBean.LOG.info("An error occured during the initialization.", ex); - CurrentControllerBean.showMessage(FacesMessage.SEVERITY_WARN, "An error occured during the initialization."); } } @@ -202,14 +176,15 @@ public class CurrentControllerBean { */ public void cleanAnalysis() { synchronized (this) { + this.addLogEntry("Cleaning Analysis for project '" + this.projectName + "'"); try { this.projectManagerFacade.cleanAnalysis(this.projectName); } catch (final ProjectNotExistingException ex) { CurrentControllerBean.LOG.info("The project does not exist.", ex); - CurrentControllerBean.showMessage(FacesMessage.SEVERITY_WARN, "The project does not exist."); + this.addLogEntry(ex); } catch (final AnalysisStateException ex) { CurrentControllerBean.LOG.error("The analysis has not been instantiated yet.", ex); - CurrentControllerBean.showMessage(FacesMessage.SEVERITY_ERROR, "The analysis has not been instantiated yet."); + this.addLogEntry(ex); } } } @@ -314,15 +289,24 @@ public class CurrentControllerBean { } } - /** - * This method shows the current user a message by using the growl-component of PrimeFaces. - * - * @param severity - * The severity of the message. - * @param msg - * The message itself. - */ - private static void showMessage(final Severity severity, final String msg) { - FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, "", msg)); + public Collection<String> getLog() { + return this.logEntries; + } + + private void addLogEntry(final Throwable cause) { + final Writer result = new StringWriter(); + final PrintWriter printWriter = new PrintWriter(result); + cause.printStackTrace(printWriter); + this.addLogEntry(result.toString()); + } + + private void addLogEntry(final String msg) { + final String finalMsg = new Date().toString() + " : " + msg; + synchronized (this) { + if (this.logEntries.size() > 50) { + this.logEntries.remove(0); + } + this.logEntries.add(finalMsg); + } } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/IProjectManagerFacade.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/IProjectManagerFacade.java index 309dd3ed..87a27faa 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/IProjectManagerFacade.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/IProjectManagerFacade.java @@ -29,6 +29,7 @@ import kieker.analysis.model.analysisMetaModel.MIDependency; import kieker.analysis.model.analysisMetaModel.MIProject; import kieker.analysis.plugin.AbstractPlugin; import kieker.analysis.repository.AbstractRepository; +import kieker.webgui.common.exception.AnalysisInitializationException; import kieker.webgui.common.exception.AnalysisStateException; import kieker.webgui.common.exception.DisplayNotFoundException; import kieker.webgui.common.exception.LibraryAlreadyExistingException; @@ -269,7 +270,8 @@ public interface IProjectManagerFacade { * @throws AnalysisStateException * If the analysis of the given project is in the wrong state to be initialized. This means that it has not been cleaned yet. */ - public void initializeAnalysis(final String projectName, final ClassLoader classLoader) throws ProjectNotExistingException, AnalysisStateException; + public void initializeAnalysis(final String projectName, final ClassLoader classLoader) throws ProjectNotExistingException, AnalysisStateException, + AnalysisInitializationException; /** * This method cleans the analysis of the given project. diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ProjectManagerFacade.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ProjectManagerFacade.java index 1d181dcd..f53e8a7d 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ProjectManagerFacade.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ProjectManagerFacade.java @@ -31,6 +31,7 @@ import kieker.analysis.model.analysisMetaModel.MIDependency; import kieker.analysis.model.analysisMetaModel.MIProject; import kieker.analysis.plugin.AbstractPlugin; import kieker.analysis.repository.AbstractRepository; +import kieker.webgui.common.exception.AnalysisInitializationException; import kieker.webgui.common.exception.AnalysisStateException; import kieker.webgui.common.exception.DisplayNotFoundException; import kieker.webgui.common.exception.LibraryAlreadyExistingException; @@ -229,7 +230,8 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { } @Override - public void initializeAnalysis(final String projectName, final ClassLoader classLoader) throws ProjectNotExistingException, AnalysisStateException { + public void initializeAnalysis(final String projectName, final ClassLoader classLoader) throws ProjectNotExistingException, AnalysisStateException, + AnalysisInitializationException { // We have to lock both - the project and the analysis, as a file has to be loaded final Object projectLock = this.getLock(projectName, this.fileSystemLocks); final Object analysisLock = this.getLock(projectName, this.analysesLocks); diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisInitializationException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisInitializationException.java new file mode 100644 index 00000000..87260a11 --- /dev/null +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisInitializationException.java @@ -0,0 +1,66 @@ +/*************************************************************************** + * Copyright 2012 by + * + Christian-Albrechts-University of Kiel + * + Department of Computer Science + * + Software Engineering Group + * and others. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ***************************************************************************/ + +package kieker.webgui.common.exception; + +/** + * This class represents an exception occurring when the analysis is instantiated. + * + * @author Nils Christian Ehmke + * @version 1.0 + */ +public class AnalysisInitializationException extends AbstractKiekerWebGUIException { + /** + * The UID. + */ + private static final long serialVersionUID = 1L; + + /** + * private static final long serialVersionUID = 1L; + * + * /** + * Creates a new instance of this class. + */ + public AnalysisInitializationException() { + super(); + } + + /** + * Creates a new instance of this class using the given parameters. + * + * @param msg + * The message used for the exception. + */ + public AnalysisInitializationException(final String msg) { + super(msg); + } + + /** + * Creates a new instance of this class using the given parameters. + * + * @param msg + * The message used for the exception. + * @param cause + * The cause for the exception. + */ + public AnalysisInitializationException(final String msg, final Throwable cause) { + super(msg, cause); + } +} diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java index 8d2ad4dc..8ac06888 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java @@ -23,6 +23,7 @@ package kieker.webgui.common.util; import java.util.concurrent.ConcurrentHashMap; import kieker.analysis.AnalysisController.STATE; +import kieker.webgui.common.exception.AnalysisInitializationException; import kieker.webgui.common.exception.AnalysisStateException; import kieker.webgui.common.exception.DisplayNotFoundException; import kieker.webgui.common.exception.ProjectNotExistingException; @@ -64,7 +65,8 @@ public final class ACManager { * @throws AnalysisStateException * If the analysis is in an invalid state to be initialized. */ - public void initializeAnalysis(final String projectName, final ClassLoader classLoader) throws ProjectNotExistingException, AnalysisStateException { + public void initializeAnalysis(final String projectName, final ClassLoader classLoader) throws ProjectNotExistingException, AnalysisStateException, + AnalysisInitializationException { // The analysis for the given project must not exist! if (this.analyses.containsKey(projectName)) { throw new AnalysisStateException("The analysis has not been cleaned yet."); diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/Analysis.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/Analysis.java index edc6d09b..a8e314c6 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/Analysis.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/Analysis.java @@ -31,6 +31,7 @@ import javax.annotation.PostConstruct; import kieker.common.logging.Log; import kieker.common.logging.LogFactory; import kieker.webgui.common.ClassAndMethodContainer; +import kieker.webgui.common.exception.AnalysisInitializationException; import kieker.webgui.common.exception.AnalysisStateException; import kieker.webgui.common.exception.ProjectLoadException; @@ -58,7 +59,7 @@ public class Analysis { * @throws AnalysisStateException * If something went wrong during the loading of the analysis. */ - public Analysis(final ClassLoader classLoader, final File projectFile) throws AnalysisStateException { + public Analysis(final ClassLoader classLoader, final File projectFile) throws AnalysisStateException, AnalysisInitializationException { try { this.classAndMethodContainer = new ClassAndMethodContainer(classLoader); @@ -76,9 +77,9 @@ public class Analysis { throw new AnalysisStateException("An error occured while instantiating the analysis."); } } catch (final ProjectLoadException ex) { - throw new AnalysisStateException("An error occured while instantiating the analysis.", ex); + throw new AnalysisInitializationException("An error occured while instantiating the analysis.", ex); } catch (final NullPointerException ex) { - throw new AnalysisStateException("An error occured while instantiating the analysis.", ex); + throw new AnalysisInitializationException("An error occured while instantiating the analysis.", ex); } } diff --git a/Kieker.WebGUI/src/main/webapp/Controller.xhtml b/Kieker.WebGUI/src/main/webapp/Controller.xhtml index 72715891..0442f4ee 100644 --- a/Kieker.WebGUI/src/main/webapp/Controller.xhtml +++ b/Kieker.WebGUI/src/main/webapp/Controller.xhtml @@ -7,11 +7,10 @@ xmlns:p="http://primefaces.org/ui" xmlns:c="http://java.sun.com/jsp/jstl/core"> - <f:metadata> - <f:viewParam name="projectName" value="#{currentControllerBean.projectName}"/> - <f:event type="preRenderView" listener="#{currentControllerBean.initalize()}" /> + <f:metadata> + <f:viewParam name="projectName" value="#{currentControllerBean.projectName}"/> </f:metadata> - + <h:head> <title>Kieker.WebGUI</title> <link rel="stylesheet" type="text/css" href="../css/Common.css" /> @@ -29,7 +28,7 @@ <p:toolbarGroup align="left"> <h:outputText styleClass="kieker-title" value="Kieker » #{stringBean.shortenLongName(currentControllerBean.projectName, 30)}"/> </p:toolbarGroup> - <p:toolbarGroup align="right"> + <p:toolbarGroup align="right"> <p:commandButton styleClass="perspective-button" icon="ui-icon-home" action="ProjectOverview.xhtml?faces-redirect=true" /> <p:separator/> <p:button styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" outcome="AnalysisEditor.xhtml?faces-redirect=true"> @@ -58,7 +57,7 @@ <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-comment" value=" About..." onclick="aboutDlg.show()" ajax="true"/> </p:submenu> - <p:menuitem styleClass="logOutButton" icon="ui-icon-power" value="#{userBean.userName}" ajax="true" url="login"/> + <p:menuitem styleClass="logOutButton" icon="ui-icon-power" value="#{userBean.userName}" ajax="true" url="login"/> </p:menubar> </h:form> @@ -66,14 +65,17 @@ <p:layoutUnit position="center" id="centerLayout"> + <p:dataList style="height: 100%" id="logList" value="#{currentControllerBean.log}" var="entry" itemType="disc"> + #{entry} + </p:dataList> </p:layoutUnit> <p:layoutUnit position="south" header="Control" resizable="true" collapsible="true"> <h:form id="controllerForm"> - <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:commandButton value="Instantiate Analysis Controller" action="#{currentControllerBean.instantiateAnalysis()}" update=":messages :logList" disabled="#{empty currentControllerBean.projectName}"/> + <p:commandButton value="Clean Analysis" action="#{currentControllerBean.cleanAnalysis()}" update=":messages :logList" disabled="#{empty currentControllerBean.projectName}"/> + <p:commandButton value="Start Analysis" action="#{currentControllerBean.startAnalysis()}" update=":messages :logList" disabled="#{empty currentControllerBean.projectName}"/> + <p:commandButton value="Stop Analysis" action="#{currentControllerBean.stopAnalysis()}" update=":messages :logList" disabled="#{empty currentControllerBean.projectName}"/> <p:poll interval="1" update=":ledsForm"/> </h:form> <hr/> diff --git a/Kieker.WebGUI/src/main/webapp/img/FilterIcon.png b/Kieker.WebGUI/src/main/webapp/img/FilterIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..203f88308a7399448403f54a6b790b1157bcab82 GIT binary patch literal 13483 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 Z_J4PhnG`x|L%IL}002ovPDHLkV1k~EFS7su literal 0 HcmV?d00001 diff --git a/Kieker.WebGUI/src/main/webapp/img/ReaderIcon.png b/Kieker.WebGUI/src/main/webapp/img/ReaderIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..edc3e77837261a986b430e52e1b59c0e2da75584 GIT binary patch literal 9831 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 N002ovPDHLkV1gf>u?heH literal 0 HcmV?d00001 diff --git a/Kieker.WebGUI/src/main/webapp/img/RepositoryIcon.png b/Kieker.WebGUI/src/main/webapp/img/RepositoryIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd7f6994e3a6a01213f4e5db6bd2ae35e93bc16 GIT binary patch literal 10719 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%0ACLd{g)j)bhpTB`l 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 Rad7|u002ovPDHLkV1ls3ZrA_- literal 0 HcmV?d00001 diff --git a/Kieker.WebGUI/src/main/webapp/img/arrow.gif b/Kieker.WebGUI/src/main/webapp/img/arrow.gif deleted file mode 100644 index e59288f31e1ff06c5e496099161024e94df6027c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53 zcmZ?wbhEHbWM^P!XkcXcKa=6inKOz%Sr{1@7#VaJfB+=Jz{KOjux$G2o<~lbC9}8~ FtN~k^4I2Oe diff --git a/Kieker.WebGUI/src/main/webapp/img/arrow_d.gif b/Kieker.WebGUI/src/main/webapp/img/arrow_d.gif deleted file mode 100644 index 6dd0addefafcf9b0330ce5a71e7db0edc23b6a60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmb`Gu}wo^41^DXl$1ymhz600hRzL$5{ZbO1!z1014I<;;F1j(Ap>|HL}kAFXTVbQ z;@CdlonQ7Z&-V{+8*TI>$6<XA>v14EIF85T@cU@igD2kze*3=&DW#Iyo5&&*sVGG& z#>EU}DofeQac_kxRi$dxc(g;E>QcAbOf{iNO=%k11~xQU4AVW{<H(4L=!o%JvdqYe z?8q?-ij`3n)lp+o^may9bVm;y8I8%9is=}(!WuA0!xCE5SPVAMU@<%v<eaF?&K&Dw zEm>7oXN~2;f?`*8XAkNjMQ={!bPn?H1DZ@@2l^p_LRbR^X;{(<4;F(BG+1NjTqY;F zYHTF>SWDJjJ@|@TSWv9#8hpfQ41gEy7>!!2#1CjPjU8}8FbZJ}7^Inm7CcxCHqhe} zxtlUMF<cBI(Z^b{UN4z_UH5izozOO~tGIU=ZP%A~9$j|$2uq=n7HQvP@i6d$=5^po vn1?1-?S9Wrq;uW*t@eLH+biw1@3-GKXCJ2**YEr9ucy!L<@4)yccaHYTr**p diff --git a/Kieker.WebGUI/src/main/webapp/img/arrow_l.gif b/Kieker.WebGUI/src/main/webapp/img/arrow_l.gif deleted file mode 100644 index 0f7c1e3d931f90eebe48503b5c99df2e2bfbd304..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmb`Gv29yn41~`>5GiouR;i-YX$&?t(ikpcr11o9+;D;nAQ<)#EWLq8cmr^VbQvK? zMSu6t5CXyzMe=xee7gJj<Ldfxr=9-Faay0#dYs5kj&0k9-$%0^Jo!fO+y9G@QYxvv zi7Y~qic+*<T+C3WvXreH_g1J<RjO8vM?2K1E_JKTR1=!il%}C=U_*n&Fx}%lj*O^? zju@{c%Z#kZjvTX~SQ%AO9W^FJZ)bExcl5xK(U^>>n2up9tO0{GETKh>#b5&s7Q<sf z&WXzG%&|V!l2v7O)>tkqD0XFc_Mje8^yXAf=O7P1pvg3LpdS(_gf(E0h9#}=U@_Q0 zgEe-}Wpbjc#zvx#wPfAZgRjVi1;v`K!AG3N0C>@k(Wu2r{D3CY*a0U5qY&1BL7GWu z!GpzM13f;GyD5_s!^JQXeXJ$x^^)1wb#E8f32pPbihGyQc71v0(Pf8^uoN0;k@ig% z4+Ae~UI(s(d1zwQ@!y9t=|bQ9R{KAp{Xxh5uRr&{x2KPvK0n{Qz23f@AHF{9FTd#f EJA&I|W&i*H diff --git a/Kieker.WebGUI/src/main/webapp/img/arrow_r.gif b/Kieker.WebGUI/src/main/webapp/img/arrow_r.gif deleted file mode 100644 index e59288f31e1ff06c5e496099161024e94df6027c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53 zcmZ?wbhEHbWM^P!XkcXcKa=6inKOz%Sr{1@7#VaJfB+=Jz{KOjux$G2o<~lbC9}8~ FtN~k^4I2Oe diff --git a/Kieker.WebGUI/src/main/webapp/img/arrow_u.gif b/Kieker.WebGUI/src/main/webapp/img/arrow_u.gif deleted file mode 100644 index 2d3dfdcccd98e099fbc08a1d3843709491363ca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 827 zcmb`Gu}wo^41^B}K_m)N(n3Q+X9<C*Xh7^hL*oe;AQA;LxMKu*nhfA2m;zCm@BSIE z6umgM&v)mS$ESyz+m~Y<>qm~=`s~(YN49h9_xs`Z(X0ngz7hQPe-TnjCABw^MJQ5H zidKw^8Ol_avX$fB3RS8~)vEDmhdR}zZnc?eLX(=(G_(zDXs{Tjd%VYy5f#x9<F#a& zkrmmIV-^%EqbjPS#-!-&jIQX89yl@@lQ9+3F>Hl3V339-w5YKdY@oqncr3^{QJI}N z*2h}1s;tf$%Y_BSuI$bp)I*BioXY7O<lzT2nZ^$ELjr}c1`N`$q!k`41{-Lw#?HA+ zPIT4SNc6Fmth;*f6}hmWSkpE5h|?GVFWNC0wOENC&}14r;Dlfl!WuA0GYKttuo!Hh z$0u?(WpZM;7)GLxwPd|sGW)vj?czG2ZC+P#?=sr1FYi3M?C=qmLL)8GzRBWY;04X= xz?Co$O{_ZqJv@-My7F7?|AaPYI^Voretvwt9i3i0Z|=YM@7t5>tFx`{{s0dbVr&2a -- GitLab