Skip to content
Snippets Groups Projects
Commit 51cb71af authored by Nils Christian Ehmke's avatar Nils Christian Ehmke
Browse files

Localization, Internationalization, New Icons

parent c63f4227
No related branches found
No related tags found
No related merge requests found
Showing
with 1121 additions and 590 deletions
......@@ -17,7 +17,9 @@
package kieker.webgui.beans.application;
import java.io.IOException;
import java.util.Locale;
import java.util.Properties;
import java.util.ResourceBundle;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
......@@ -44,14 +46,16 @@ public final class GlobalPropertiesBean {
private static final String PROPERTY_FACES_CONTEXT_THEME_KEY = "kieker.webgui.config.lookAndFeel.facesContextKey";
private static final String PROPERTY_THEME_COOKIE_NAME = "kieker.webgui.config.lookAndFeel.cookieName";
private static final String PROPERTY_DEFAULT_THEME = "kieker.webgui.config.lookAndFeel.defaultTheme";
private static final String PROPERTY_LANGUAGE_COOKIE_NAME = "kieker.webgui.config.language.cookieName";
private static final String PROPERTY_PROJECT_OVERVIEW_PAGE = "kieker.webgui.page.projectOverview";
private static final String PROPERTY_WELCOME_MESSAGE = "kieker.webgui.common.welcomeMessage";
private static final String PROPERTY_SHORT_WELCOME_MESSAGE = "kieker.webgui.common.shortWelcomeMessage";
private static final String PROPERTY_ANALYSIS_EDITOR_GRID_SIZE_COOKIE_NAME = "kieker.webgui.config.analysisEditor.gridSize.cookieName";
private static final String PROPERTY_ANALYSIS_EDITOR_GRID_COLOR_COOKIE_NAME = "kieker.webgui.config.analysisEditor.gridColor.cookieName";
private static final String PROPERTY_ANALYSIS_EDITOR_DEFAULT_GRID_SIZE = "kieker.webgui.config.analysisEditor.defaultGridSize";
private static final String PROPERTY_ANALYSIS_EDITOR_DEFAULT_GRID_COLOR = "kieker.webgui.config.analysisEditor.defaultGridColor";
private static final String PROPERTY_WELCOME_MESSAGE = "longWelcomeMessage";
private static final String PROPERTY_SHORT_WELCOME_MESSAGE = "shortWelcomeMessage";
private final Properties globalProperties = new Properties();
/**
......@@ -109,8 +113,9 @@ public final class GlobalPropertiesBean {
*
* @return The value of the property.
*/
public String getWelcomeMessage() {
return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_WELCOME_MESSAGE);
public String getWelcomeMessage(final Locale locale) {
// return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_WELCOME_MESSAGE);
return ResourceBundle.getBundle("messages", locale).getString(GlobalPropertiesBean.PROPERTY_WELCOME_MESSAGE);
}
/**
......@@ -118,8 +123,9 @@ public final class GlobalPropertiesBean {
*
* @return The value of the property.
*/
public String getShortWelcomeMessage() {
return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_SHORT_WELCOME_MESSAGE);
public String getShortWelcomeMessage(final Locale locale) {
// return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_SHORT_WELCOME_MESSAGE);
return ResourceBundle.getBundle("messages", locale).getString(GlobalPropertiesBean.PROPERTY_SHORT_WELCOME_MESSAGE);
}
/**
......@@ -157,4 +163,8 @@ public final class GlobalPropertiesBean {
public String getAnalysisEditorDefaultGridColor() {
return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_ANALYSIS_EDITOR_DEFAULT_GRID_COLOR);
}
public String getLanguageCookieName() {
return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_LANGUAGE_COOKIE_NAME);
}
}
......@@ -16,6 +16,7 @@
package kieker.webgui.beans.session;
import java.util.Locale;
import java.util.Map;
import javax.annotation.PostConstruct;
......@@ -39,6 +40,7 @@ import kieker.webgui.beans.application.GlobalPropertiesBean;
@SessionScoped
public final class CurrentConfigurationBean {
private String locale;
private String lookAndFeel;
private String gridColor;
private int gridSize;
......@@ -158,6 +160,26 @@ public final class CurrentConfigurationBean {
}
}
public void setLocale(final String locale) {
synchronized (this) {
this.locale = locale;
CurrentConfigurationBean.saveValueInCookie(this.globalPropertiesBean.getLanguageCookieName(), locale);
}
}
public String getLocale() {
synchronized (this) {
return this.locale;
}
}
public Locale getLocaleObject() {
synchronized (this) {
return new Locale(this.locale);
}
}
/**
* This method tries to load the default values of the properties from the {@link GlobalPropertiesBean} and the faces context.
*/
......@@ -175,6 +197,8 @@ public final class CurrentConfigurationBean {
this.gridColor = this.globalPropertiesBean.getAnalysisEditorDefaultGridColor();
this.gridSize = Integer.parseInt(this.globalPropertiesBean.getAnalysisEditorDefaultGridSize());
this.locale = "en";
}
}
......@@ -196,6 +220,9 @@ public final class CurrentConfigurationBean {
if (cookies.containsKey(this.globalPropertiesBean.getAnalysisEditorGridSizeCookieName())) {
this.gridSize = Integer.parseInt(((Cookie) cookies.get(this.globalPropertiesBean.getAnalysisEditorGridSizeCookieName())).getValue());
}
if (cookies.containsKey(this.globalPropertiesBean.getLanguageCookieName())) {
this.locale = ((Cookie) cookies.get(this.globalPropertiesBean.getLanguageCookieName())).getValue();
}
}
}
......
......@@ -38,10 +38,14 @@ public final class UserBean {
private static final String WELCOME_MSG_TEMPLATE = "growlComp.renderMessage({summary : '%s', detail : '%s', severity: 'info'});";
private String userName;
private String password;
@ManagedProperty(value = "#{globalPropertiesBean}")
private GlobalPropertiesBean globalPropertiesBean;
@ManagedProperty(value = "#{currentConfigurationBean}")
private CurrentConfigurationBean currentConfigurationBean;
/**
* Default constructor. <b>Do not use this constructor. This bean is JSF managed.</b>
*/
......@@ -68,6 +72,14 @@ public final class UserBean {
this.userName = name;
}
public String getPassword() {
return this.password;
}
public void setPassword(final String password) {
this.password = password;
}
/**
* Tries to login. If this has been successful the page of the project overview will be returned.
*
......@@ -100,13 +112,22 @@ public final class UserBean {
this.globalPropertiesBean = globalPropertiesBean;
}
public CurrentConfigurationBean getCurrentConfigurationBean() {
return this.currentConfigurationBean;
}
public void setCurrentConfigurationBean(final CurrentConfigurationBean currentConfigurationBean) {
this.currentConfigurationBean = currentConfigurationBean;
}
/**
* This method shows the welcome message using the growl component and the global properties.
*/
public void showWelcomeMessage() {
if (this.globalPropertiesBean != null) {
final String finalMsg = String.format(UserBean.WELCOME_MSG_TEMPLATE, this.globalPropertiesBean.getShortWelcomeMessage(),
this.globalPropertiesBean.getWelcomeMessage());
final String finalMsg = String.format(UserBean.WELCOME_MSG_TEMPLATE,
this.globalPropertiesBean.getShortWelcomeMessage(this.currentConfigurationBean.getLocaleObject()),
this.globalPropertiesBean.getWelcomeMessage(this.currentConfigurationBean.getLocaleObject()));
RequestContext.getCurrentInstance().execute(finalMsg);
}
......
......@@ -170,9 +170,9 @@ public final class CurrentAnalysisEditorGraphBean {
*/
public void declareGraph() {
RequestContext.getCurrentInstance().execute(CurrentAnalysisEditorGraphBean.JS_CMD_CREATE_GRAPH_VAR);
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');");
RequestContext.getCurrentInstance().execute("graph.setNodeIcon('Filter', '../img/graphIcons/FilterIcon.png');");
RequestContext.getCurrentInstance().execute("graph.setNodeIcon('Reader', '../img/graphIcons/ReaderIcon.png');");
RequestContext.getCurrentInstance().execute("graph.setNodeIcon('Repository', '../img/graphIcons/RepositoryIcon.png');");
}
/**
......
#------------------------------------------------------------------------------
#
# These constants concern common things
#
#------------------------------------------------------------------------------
kieker.webgui.common.shortWelcomeMessage = Welcome to the Kieker.WebGUI
kieker.webgui.common.welcomeMessage = This is an early alpha version of the Kieker Web GUI. Therefore it may contain bugs and some functionality may have not been implemented yet. Just click "Login" to continue.
#------------------------------------------------------------------------------
#
# These constants concern the further (and more specific) configuration of the
......@@ -14,6 +5,8 @@ kieker.webgui.common.welcomeMessage = This is an early alpha version of the Kiek
#
#------------------------------------------------------------------------------
kieker.webgui.config.language.cookieName = language
kieker.webgui.config.lookAndFeel.cookieName = lookAndFeel
kieker.webgui.config.lookAndFeel.defaultTheme = glass-x
kieker.webgui.config.lookAndFeel.facesContextKey = theme
......
#------------------------------------------------------------------------------
#
# These are the messages which are commonly used within all pages.
#
#------------------------------------------------------------------------------
yes=Ja
ok=Ok
cancel=Abbrechen
file=Datei
newProject=Neues Project
importProject=Projekt Importieren
refreshProjectsList=Projektliste Aktualisieren
settings=Einstellungen
help=Hilfe
userGuide=User Guide
about=\u00dcber...
analysisEditor=Analyse Editor
analysis=Analyse
analysisController=Analyse Controller
cockpitEditor=Cockpit Editor
cockpit=Cockpit
#------------------------------------------------------------------------------
#
# These are the messages for the login page.
#
#------------------------------------------------------------------------------
shortWelcomeMessage=Willkommen bei der Kieker.WebGUI
longWelcomeMessage=Dies ist eine fr\u00fche Alpha Version der Kieker Web GUI. Deshalb kann diese noch Bugs enthalten und einige Funktionalit\u00e4ten sind m\u00f6glicherweise noch nicht implementiert. Klicken Sie einfach auf "Anmelden" um fortzufahren.
username=Benutzername
password=Passwort
login=Anmelden
#------------------------------------------------------------------------------
#
# These are the messages for the project overview page.
#
#------------------------------------------------------------------------------
projectName=Projektname
state=Status
lastModification=Letzte \u00c4nderung
owner=Besitzer
copyProject=Projekt Kopieren
renameProject=Projekt Umbenennen
deleteProject=Projekt L\u00f6schen
name=Name
newName=Neuer Name
msgReallyDeleteProject=M\u00f6chten Sie wirklich das ausgew\u00e4hlte Projekt l\u00f6schen?
#------------------------------------------------------------------------------
#
# These are the messages for the analysis editor page.
#
#------------------------------------------------------------------------------
saveProject=Projekt Speichern
saveProjectAs=Projekt Speichern Unter
reloadProject=Projekt Neu Laden
manageLibraries=Bibliotheken Verwalten
closeProject=Projekt schlie\u00dfen
graph=Graph
analysisEditorScaleToFit = An Fenstergr\u00f6\u00dfe Anpassen
grid=Gitter
snap=Einrasten
autoLayout=Auto-Layout
disable=Deaktivieren
enable=Aktivieren
noPropertiesAvailable=Keine Eigenschaften vorhanden
className=ClassName
tooltipClassName=Der Klassenname der Komponente.
tooltipName=Der Name der Komponente.
availablePlugins=Verf\u00fcgbare Plugins
reader=Reader
filter=Filter
repositories=Repositories
configuration=Konfiguration
dependencies=Abh\u00e4ngigkeiten
inputPorts=Eingabeports
outputPorts=Ausgabeports
repositoryPorts=Repositoryports
msgProjectModified=Das Projekt wurde in der Zwischenzeit au\u00dferhalb dieses Editors modifiziert. Wollen Sie die \u00c4nderungen \u00fcberschreiben?
properties=Eigenschaften
property=Eigenschaft
value=Wert
libraries=Bibliotheken
fileName=Dateiname
fileSize=Gr\u00f6\u00dfe
libOptions=Optionen
msgOnlyJar=Zur Zeit k\u00f6nnen lediglich *.jar-Abh\u00e4ngigkeiten hochgeladen werden. Die maximale Dateigr\u00f6\u00dfe ist beschr\u00e4nkt auf 100 [MiByte].
#------------------------------------------------------------------------------
#
# These are the messages for the analysis page.
#
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
#
# These are the messages for the cockpit editor page.
#
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
#
# These are the messages for the cockpit page.
#
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
#
# These are the messages for the settings dialog.
#
#------------------------------------------------------------------------------
common=Allgemein
lookAndFeel=Aussehen
chooseTheme=Motiv Ausw\u00e4hlen
language=Sprache
toolPalette=Werkzeugpalette
lists=Listen
gridSize=Gittergr\u00f6\u00dfe
gridColor=Gitterfarbe
\ No newline at end of file
#------------------------------------------------------------------------------
#
# These are the messages which are commonly used within all pages.
#
#------------------------------------------------------------------------------
yes=Yes
ok=Ok
cancel=Cancel
file=File
newProject=New Project
importProject=Import Project
refreshProjectsList=Refresh Projects List
settings=Settings
help=Help
userGuide=User Guide
about=About...
analysisEditor=Analysis Editor
analysis=Analysis
analysisController=Analysis Controller
cockpitEditor=Cockpit Editor
cockpit=Cockpit
#------------------------------------------------------------------------------
#
# These are the messages for the login page.
#
#------------------------------------------------------------------------------
shortWelcomeMessage=Welcome to the Kieker.WebGUI
longWelcomeMessage=This is an early alpha version of the Kieker Web GUI. Therefore it may contain bugs and some functionality may have not been implemented yet. Just click "Login" to continue.
username=Username
password=Password
login=Login
#------------------------------------------------------------------------------
#
# These are the messages for the project overview page.
#
#------------------------------------------------------------------------------
projectName=Project Name
state=State
lastModification=Last Modification
owner=Owner
copyProject=Copy Project
renameProject=Rename Project
deleteProject=Delete Project
name=Name
newName=New Name
msgReallyDeleteProject=Do you really want to delete the selected project?
#------------------------------------------------------------------------------
#
# These are the messages for the analysis editor page.
#
#------------------------------------------------------------------------------
saveProject=Save Project
saveProjectAs=Save Project As
reloadProject=Reload Project
manageLibraries=Manage Libraries
closeProject=Close Project
graph=Graph
scaleToFit=Scale To Fit
grid=Grid
snap=Snap
autoLayout=Auto-Layout
disable=Disable
enable=Enable
noPropertiesAvailable=No properties available
className=ClassName
tooltipClassName=The class name of this component.
tooltipName=The name of this component.
availablePlugins=Available Plugins
reader=Reader
filter=Filter
repositories=Repositories
configuration=Configuration
dependencies=Dependencies
inputPorts=Input Ports
outputPorts=Output Ports
repositoryPorts=Repository Ports
msgProjectModified=The project has been modified externally in the meanwhile. Do you want to overwrite the changes?
properties=Properties
property=Property
value=Value
libraries=Libraries
fileName=Filename
fileSize=Size
libOptions=Options
msgOnlyJar=Currently only *.jar-Dependencies can be uploaded. The maximal file size is limited to 100 [MiByte].
#------------------------------------------------------------------------------
#
# These are the messages for the analysis page.
#
#------------------------------------------------------------------------------
<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"
<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."/>
<p:tooltip for="iconLEDGreen" value="Indicates that the AnalysisController has been started and is running."/>
<p:tooltip for="iconLEDRed2" value="Indicates that the AnalysisController has been terminated or has failed."/>
<p:tooltip for="iconLEDRed1_2" value="Indicates that the AnalysisController has not been instantiated yet."/>
<p:tooltip for="iconLEDYellow_2" value="Indicates that the AnalysisController has been instantiated, but not yet started."/>
<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."/>
#------------------------------------------------------------------------------
#
# These are the messages for the cockpit editor page.
#
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
#
# These are the messages for the cockpit page.
#
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
#
# These are the messages for the settings dialog.
#
#------------------------------------------------------------------------------
common=Common
lookAndFeel=Look and Feel
chooseTheme=Choose Theme
language=Language
toolPalette=Tool Palette
lists=Lists
gridSize=Grid-Size
gridColor=Grid-Color
\ No newline at end of file
This diff is collapsed.
......@@ -32,31 +32,31 @@
<p:toolbarGroup align="right">
<p:commandButton styleClass="perspective-button" icon="ui-icon-home" action="ProjectOverview.xhtml" />
<p:separator/>
<p:button styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" outcome="AnalysisEditor.xhtml">
<p:button styleClass="perspective-button" icon="ui-icon-wrench" value="#{localizedMessages.analysisEditor}" style="white-space: none" outcome="AnalysisEditor.xhtml">
<f:param name="projectName" value="#{currentCockpitBean.projectName}" />
</p:button>
<p:button styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" style="white-space: none" outcome="Controller.xhtml">
<p:button styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="#{localizedMessages.analysis}" style="white-space: none" outcome="Controller.xhtml">
<f:param name="projectName" value="#{currentCockpitBean.projectName}" />
</p:button>
<p:separator/>
<p:button styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" style="white-space: none" outcome="CockpitEditor.xhtml">
<p:button styleClass="perspective-button" icon="ui-icon-wrench" value="#{localizedMessages.cockpitEditor}" style="white-space: none" outcome="CockpitEditor.xhtml">
<f:param name="projectName" value="#{currentCockpitBean.projectName}" />
</p:button>
<p:button styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" style="white-space: none" disabled="true">
<p:button styleClass="perspective-button" icon="ui-icon-image" value="#{localizedMessages.cockpit}" style="white-space: none" disabled="true">
</p:button>
</p:toolbarGroup>
</p:toolbar>
<p:menubar>
<p:submenu label="File">
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-gear" value=" Settings" onclick="settingsDlg.show()" ajax="true"/>
<p:submenu label="#{localizedMessages.file}">
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-gear" value=" #{localizedMessages.settings}" onclick="settingsDlg.show()" ajax="true"/>
<p:separator/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-circle-close" value=" Close Project" action="ProjectOverview.xhtml?faces-redirect=true" ajax="false"/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-circle-close" value=" #{localizedMessages.closeProject}" action="ProjectOverview.xhtml?faces-redirect=true" ajax="false"/>
</p:submenu>
<p:submenu label="Help">
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-help" value=" User Guide" ajax="true" disabled="true"/>
<p:submenu label="#{localizedMessages.help}">
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-help" value=" #{localizedMessages.userGuide}" ajax="true" disabled="true"/>
<p:separator/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-comment" value=" About..." onclick="aboutDlg.show()" ajax="true"/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-comment" value=" #{localizedMessages.about}" onclick="aboutDlg.show()" ajax="true"/>
</p:submenu>
<p:menuitem styleClass="logOutButton" icon="ui-icon-power" value="#{userBean.userName}" ajax="true" url="login"/>
......
......@@ -11,111 +11,113 @@
<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" />
<link rel="stylesheet" type="text/css" href="../css/Controller.css" />
</h:head>
<h:body>
<!-- This is the layout for the whole page. -->
<p:layout id="layout" fullPage="true">
<p:layoutUnit position="north" collapsible="false">
<h:form>
<p:toolbar>
<p:toolbarGroup align="left">
<h:outputText styleClass="kieker-title" value="Kieker &raquo; #{stringBean.shortenLongName(currentControllerBean.projectName, 30)}"/>
</p:toolbarGroup>
<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">
<f:param name="projectName" value="#{currentControllerBean.projectName}" rendered="#{not empty currentControllerBean.projectName}" />
</p:button>
<p:button styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" style="white-space: none" disabled="true">
</p:button>
<p:separator/>
<p:button styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" disabled="true">
</p:button>
<p:button styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" disabled="true">
</p:button>
</p:toolbarGroup>
</p:toolbar>
<p:menubar>
<p:submenu label="File">
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-gear" value=" Settings" onclick="settingsDlg.show()" ajax="true"/>
<p:separator/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-circle-close" value=" Close Controller" action="ProjectOverview.xhtml?faces-redirect=true" ajax="false"/>
</p:submenu>
<p:submenu label="Help">
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-help" value=" User Guide" ajax="true" disabled="true"/>
<p:separator/>
<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:menubar>
</h:form>
</p:layoutUnit>
<p:layoutUnit position="center" id="centerLayout">
<h:form id="logList">
<ui:repeat value="#{currentControllerBean.log}" var="entry">
<h:outputText value="#{entry}"/><br/><br/>
</ui:repeat>
</h:form>
</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 :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/>
<h:form id="ledsForm">
<div align="center">
<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="#{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="#{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="#{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."/>
<p:tooltip for="iconLEDGreen" value="Indicates that the AnalysisController has been started and is running."/>
<p:tooltip for="iconLEDRed2" value="Indicates that the AnalysisController has been terminated or has failed."/>
<p:tooltip for="iconLEDRed1_2" value="Indicates that the AnalysisController has not been instantiated yet."/>
<p:tooltip for="iconLEDYellow_2" value="Indicates that the AnalysisController has been instantiated, but not yet started."/>
<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>
</h:form>
</p:layoutUnit>
</p:layout>
<p:growl id="messages" life="1500" showDetail="true" autoUpdate="false" sticky="true"/>
<!-- Include the dialog for the configuration. -->
<ui:include src="dialogs/settingsDialog.xhtml" />
<!-- Include the about-dialog. -->
<ui:include src="dialogs/aboutDialog.xhtml" />
</h:body>
<f:view locale="#{currentConfigurationBean.locale}">
<h:head>
<title>Kieker.WebGUI</title>
<link rel="stylesheet" type="text/css" href="../css/Common.css" />
<link rel="stylesheet" type="text/css" href="../css/Controller.css" />
</h:head>
<h:body>
<!-- This is the layout for the whole page. -->
<p:layout id="layout" fullPage="true">
<p:layoutUnit position="north" collapsible="false">
<h:form>
<p:toolbar>
<p:toolbarGroup align="left">
<h:outputText styleClass="kieker-title" value="Kieker &raquo; #{stringBean.shortenLongName(currentControllerBean.projectName, 30)}"/>
</p:toolbarGroup>
<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-analysisEditor" value="#{localizedMessages.analysisEditor}" style="white-space: none" outcome="AnalysisEditor.xhtml?faces-redirect=true">
<f:param name="projectName" value="#{currentControllerBean.projectName}" rendered="#{not empty currentControllerBean.projectName}" />
</p:button>
<p:button styleClass="perspective-button" icon="ui-icon-analysis" value="#{localizedMessages.analysis}" style="white-space: none" disabled="true">
</p:button>
<p:separator/>
<p:button styleClass="perspective-button" icon="ui-icon-cockpitEditor" value="#{localizedMessages.cockpitEditor}" disabled="true">
</p:button>
<p:button styleClass="perspective-button" icon="ui-icon-cockpit" value="#{localizedMessages.cockpit}" disabled="true">
</p:button>
</p:toolbarGroup>
</p:toolbar>
<p:menubar>
<p:submenu label="#{localizedMessages.file}">
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-settings" value=" #{localizedMessages.settings}" onclick="settingsDlg.show()" ajax="true"/>
<p:separator/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-close" value=" #{localizedMessages.closeProject}" action="ProjectOverview.xhtml?faces-redirect=true" ajax="false"/>
</p:submenu>
<p:submenu label="#{localizedMessages.help}">
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-userGuide" value=" #{localizedMessages.userGuide}" ajax="true" disabled="true"/>
<p:separator/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-about" value=" #{localizedMessages.about}" onclick="aboutDlg.show()" ajax="true"/>
</p:submenu>
<p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.userName}" ajax="true" url="login"/>
</p:menubar>
</h:form>
</p:layoutUnit>
<p:layoutUnit position="center" id="centerLayout">
<h:form id="logList">
<ui:repeat value="#{currentControllerBean.log}" var="entry">
<h:outputText value="#{entry}"/><br/><br/>
</ui:repeat>
</h:form>
</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 :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/>
<h:form id="ledsForm">
<div align="center">
<h:graphicImage id="iconLEDRed1" url="../img/LEDs/Icon_LED_Red.png" height="50px" rendered="#{currentControllerBean.isAnalysisNotAvailable()}"/>
<h:graphicImage id="iconLEDRed1_2" url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisNotAvailable()}"/>
<p:spacer height="0" width="15px"/>
<h:graphicImage id="iconLEDYellow" url="../img/LEDs/Icon_LED_Yellow.png" height="50px" rendered="#{currentControllerBean.isAnalysisReady()}"/>
<h:graphicImage id="iconLEDYellow_2" url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisReady()}"/>
<p:spacer height="0" width="15px"/>
<h:graphicImage id="iconLEDGreen" url="../img/LEDs/Icon_LED_Green.png" height="50px" rendered="#{currentControllerBean.isAnalysisRunning()}"/>
<h:graphicImage id="iconLEDGreen_2" url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisRunning()}"/>
<p:spacer height="0" width="15px"/>
<h:graphicImage id="iconLEDRed2" url="../img/LEDs/Icon_LED_Red.png" height="50px" rendered="#{currentControllerBean.isAnalysisTerminated() or currentControllerBean.isAnalysisFailed()}"/>
<h:graphicImage id="iconLEDRed2_2" url="../img/LEDs/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."/>
<p:tooltip for="iconLEDGreen" value="Indicates that the AnalysisController has been started and is running."/>
<p:tooltip for="iconLEDRed2" value="Indicates that the AnalysisController has been terminated or has failed."/>
<p:tooltip for="iconLEDRed1_2" value="Indicates that the AnalysisController has not been instantiated yet."/>
<p:tooltip for="iconLEDYellow_2" value="Indicates that the AnalysisController has been instantiated, but not yet started."/>
<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>
</h:form>
</p:layoutUnit>
</p:layout>
<p:growl id="messages" life="1500" showDetail="true" autoUpdate="false" sticky="true"/>
<!-- Include the dialog for the configuration. -->
<ui:include src="dialogs/settingsDialog.xhtml" />
<!-- Include the about-dialog. -->
<ui:include src="dialogs/aboutDialog.xhtml" />
</h:body>
</f:view>
</html>
\ No newline at end of file
......@@ -2,47 +2,50 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Kieker.WebGUI</title>
<link rel="stylesheet" type="text/css" href="../css/Common.css" />
<link rel="stylesheet" type="text/css" href="../css/Login.css" />
</h:head>
<f:view locale="#{currentConfigurationBean.locale}">
<h:head>
<title>Kieker.WebGUI</title>
<link rel="stylesheet" type="text/css" href="../css/Common.css" />
<link rel="stylesheet" type="text/css" href="../css/Login.css" />
</h:head>
<h:body onload="showWelcomeMessage();">
<h:form>
<p:remoteCommand action="#{userBean.showWelcomeMessage()}" name="showWelcomeMessage"/>
</h:form>
<div align="center" >
<img src="../img/kieker-header.jpg"/>
</div>
<div align="center" class="stretch">
<div class="custom-background">
<br/>
<p:spacer width="0" height="100"/>
<!-- The following is the login form -->
<h:form>
<div class="stretch" align="center">
<p:panel header="Welcome to the Kieker.WebGUI" styleClass="login-panel">
<h:panelGrid columnClasses="col1 , col2" styleClass="grid" columns="2" cellpadding="5">
<h:outputLabel for="username" value="Username:" />
<p:inputText styleClass="input" id="username" required="true" value="#{userBean.userName}" label="username"/>
<h:body onload="showWelcomeMessage();">
<h:form>
<p:remoteCommand action="#{userBean.showWelcomeMessage()}" name="showWelcomeMessage"/>
</h:form>
<div align="center" >
<img src="../img/kieker-header.jpg"/>
</div>
<div align="center" class="stretch">
<div class="custom-background">
<br/>
<p:spacer width="0" height="100"/>
<!-- The following is the login form -->
<h:form>
<div class="stretch" align="center">
<p:panel header="#{localizedMessages.shortWelcomeMessage}" styleClass="login-panel">
<h:panelGrid columnClasses="col1 , col2" styleClass="grid" columns="2" cellpadding="5" >
<h:outputLabel for="username" value="#{localizedMessages.username}:" />
<p:inputText styleClass="input" id="username" required="true" value="#{userBean.userName}" label="username"/>
<h:outputLabel for="password" value="Password:" />
<p:password styleClass="input" id="password" required="false" label="password" />
</h:panelGrid>
<hr/>
<div align="right">
<p:commandButton value="Login" ajax="false" action="#{userBean.login}" />
</div>
</p:panel>
<p:growl sticky="true" autoUpdate="true" widgetVar="growlComp"/>
</div>
</h:form>
<h:outputLabel for="password" value="#{localizedMessages.password}:" />
<p:password styleClass="input" id="password" required="false" value="#{userBean.password}" label="password" />
</h:panelGrid>
<hr/>
<div align="right">
<p:commandButton value="#{localizedMessages.login}" ajax="false" action="#{userBean.login}" />
</div>
</p:panel>
<p:growl sticky="true" autoUpdate="true" widgetVar="growlComp"/>
</div>
</h:form>
</div>
</div>
</div>
</h:body>
</h:body>
</f:view>
</html>
\ No newline at end of file
......@@ -6,107 +6,109 @@
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Kieker.WebGUI</title>
<link rel="stylesheet" type="text/css" href="../css/Common.css" />
<link rel="stylesheet" type="text/css" href="../css/ProjectOverview.css" />
</h:head>
<h:body>
<p:layout fullPage="true">
<p:layoutUnit position="north">
<h:form id="menuForm">
<p:toolbar>
<p:toolbarGroup align="left">
<h:outputText styleClass="kieker-title" value="Kieker"/>
</p:toolbarGroup>
<p:toolbarGroup align="right">
<p:commandButton styleClass="perspective-button" icon="ui-icon-home" disabled="true" action="ProjectOverview.xhtml" />
<p:separator/>
<p:button styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" outcome="AnalysisEditor.xhtml?faces-redirect=true">
<f:param name="projectName" value="#{currentProjectOverviewBean.projectName}" rendered="#{not empty currentProjectOverviewBean.projectName}"/>
</p:button>
<p:button styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" style="white-space: none" outcome="Controller.xhtml?faces-redirect=true">
<f:param name="projectName" value="#{currentProjectOverviewBean.projectName}" rendered="#{not empty currentProjectOverviewBean.projectName}"/>
</p:button>
<p:separator/>
<p:button styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" disabled="true">
</p:button>
<p:button styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" disabled="true">
</p:button>
</p:toolbarGroup>
</p:toolbar>
<p:menubar>
<p:submenu label="File">
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-document" value=" New Project" onclick="newProjectDialog.show()" ajax="true"/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-folder-open" value=" Import Project" ajax="true" disabled="true"/>
<p:separator/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-refresh" value=" Refresh Projects List" update=":projectsListForm" action="#{currentProjectOverviewBean.updateLists()}" ajax="true"/>
<p:separator/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-gear" value=" Settings" onclick="settingsDlg.show()" ajax="true"/>
</p:submenu>
<p:submenu label="Help">
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-help" value=" User Guide" ajax="true" disabled="true"/>
<p:separator/>
<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:menubar>
</h:form>
</p:layoutUnit>
<!-- Abstand zu Icons -->
<p:layoutUnit position="center">
<h:form id="projectsListForm">
<p:dataTable rows="15" paginator="true" paginatorPosition="both" var="project" rowsPerPageTemplate="5,10,15,25,50" value="#{currentProjectOverviewBean.projects}" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" selection="#{currentProjectOverviewBean.projectName}" rowKey="#{project}" selectionMode="single">
<!-- Makes sure that rows are selected instantaneously. -->
<p:ajax event="rowSelect" listener="#{currentProjectOverviewBean.onRowSelect}" update=":menuForm" />
<p:column headerText="Project Name" id="modelHeader" sortBy="#{project}">
<p:commandLink id="dynaButton" value="#{project}"/>
<p:menu overlay="true" trigger="dynaButton" my="left top" at="left bottom" style="width:210px">
<p:menuitem icon="ui-icon-wrench" id="openButton" value=" Analysis Editor" styleClass="element-with-whitespace" ajax="false" url="analysisEditor?projectName=#{project}"/>
<p:menuitem icon="ui-icon-circle-triangle-e" id="controlAnalysis" styleClass="element-with-whitespace" value=" Analysis" ajax="false" url="controller?projectName=#{project}" />
<f:view locale="#{currentConfigurationBean.locale}">
<h:head>
<title>Kieker.WebGUI</title>
<link rel="stylesheet" type="text/css" href="../css/Common.css" />
<link rel="stylesheet" type="text/css" href="../css/ProjectOverview.css" />
</h:head>
<h:body>
<p:layout fullPage="true">
<p:layoutUnit position="north">
<h:form id="menuForm">
<p:toolbar>
<p:toolbarGroup align="left">
<h:outputText styleClass="kieker-title" value="Kieker"/>
</p:toolbarGroup>
<p:toolbarGroup align="right">
<p:commandButton styleClass="perspective-button" icon="ui-icon-home" disabled="true" action="ProjectOverview.xhtml" />
<p:separator/>
<p:button styleClass="perspective-button" icon="ui-icon-analysisEditor" value="#{localizedMessages.analysisEditor}" style="white-space: none" outcome="AnalysisEditor.xhtml?faces-redirect=true">
<f:param name="projectName" value="#{currentProjectOverviewBean.projectName}" rendered="#{not empty currentProjectOverviewBean.projectName}"/>
</p:button>
<p:button styleClass="perspective-button" icon="ui-icon-analysis" value="#{localizedMessages.analysis}" style="white-space: none" outcome="Controller.xhtml?faces-redirect=true">
<f:param name="projectName" value="#{currentProjectOverviewBean.projectName}" rendered="#{not empty currentProjectOverviewBean.projectName}"/>
</p:button>
<p:separator/>
<p:button styleClass="perspective-button" icon="ui-icon-cockpitEditor" value="#{localizedMessages.cockpitEditor}" disabled="true">
</p:button>
<p:button styleClass="perspective-button" icon="ui-icon-cockpit" value="#{localizedMessages.cockpit}" disabled="true">
</p:button>
</p:toolbarGroup>
</p:toolbar>
<p:menubar>
<p:submenu label="#{localizedMessages.file}">
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-newProject" value=" #{localizedMessages.newProject}" onclick="newProjectDialog.show()" ajax="true"/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-importProject" value=" #{localizedMessages.importProject}" ajax="true" disabled="true"/>
<p:separator/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-reload" value=" #{localizedMessages.refreshProjectsList}" update=":projectsListForm" action="#{currentProjectOverviewBean.updateLists()}" ajax="true"/>
<p:separator/>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-settings" value=" #{localizedMessages.settings}" onclick="settingsDlg.show()" ajax="true"/>
</p:submenu>
<p:menuitem icon="ui-icon-wrench" id="editAnalysisViews" styleClass="element-with-whitespace" value=" Cockpit Editor" ajax="false" disabled="true" />
<p:menuitem icon="ui-icon-image" id="showAnalysis" styleClass="element-with-whitespace" value=" Cockpit" ajax="false" disabled="true" />
<p:submenu label="#{localizedMessages.help}">
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-userGuide" value=" #{localizedMessages.userGuide}" ajax="true" disabled="true"/>
<p:separator/>
<p:menuitem id="copyButton" icon="ui-icon-copy" styleClass="element-with-whitespace" value=" Copy Project" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="copyProjectDialog.show()"/>
<p:menuitem id="renameButton" icon="ui-icon-pencil" styleClass="element-with-whitespace" value=" Rename Project" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="renameProjectDialog.show()" disabled="true"/>
<p:menuitem id="deleteButton" icon="ui-icon-trash" styleClass="element-with-whitespace" value=" Delete Project" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="deleteProjectDialog.show()" disabled="true"/>
</p:menu>
</p:column>
<p:column headerText="State" style="text-align: center" sortBy="#{projectsBean.getAnalysisControllerState(project)}">
<h:outputText value="#{projectsBean.getAnalysisControllerState(project)}"/>
</p:column>
<p:column headerText="Last Modification" sortBy="#{projectsBean.getCurrTimeStamp(project)}" style="text-align: center">
<h:outputText value="#{projectsBean.getCurrTimeStamp(project)}" />
</p:column>
<p:column headerText="Owner" style="text-align: center" rendered="false">
<h:outputText value="N/A" />
</p:column>
</p:dataTable>
</h:form>
</p:layoutUnit>
</p:layout>
<p:growl id="messages" life="1500" showDetail="true" autoUpdate="false" sticky="true"/>
<!-- Include the about-dialog. -->
<ui:include src="dialogs/aboutDialog.xhtml" />
<!-- Include the dialogs for the project managment. -->
<ui:include src="dialogs/projectDialogs.xhtml" />
<!-- Include the dialog for the configuration. -->
<ui:include src="dialogs/settingsDialog.xhtml" />
</h:body>
<p:menuitem styleClass="element-with-whitespace" icon="ui-icon-about" value=" #{localizedMessages.about}" onclick="aboutDlg.show()" ajax="true"/>
</p:submenu>
<p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.userName}" ajax="true" url="login"/>
</p:menubar>
</h:form>
</p:layoutUnit>
<!-- Abstand zu Icons -->
<p:layoutUnit position="center">
<h:form id="projectsListForm">
<p:dataTable rows="15" paginator="true" paginatorPosition="both" var="project" rowsPerPageTemplate="5,10,15,25,50" value="#{currentProjectOverviewBean.projects}" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" selection="#{currentProjectOverviewBean.projectName}" rowKey="#{project}" selectionMode="single">
<!-- Makes sure that rows are selected instantaneously. -->
<p:ajax event="rowSelect" listener="#{currentProjectOverviewBean.onRowSelect}" update=":menuForm" />
<p:column headerText="#{localizedMessages.projectName}" id="modelHeader" sortBy="#{project}">
<p:commandLink id="dynaButton" value="#{project}"/>
<p:menu overlay="true" trigger="dynaButton" my="left top" at="left bottom" style="width:210px">
<p:menuitem icon="ui-icon-wrench" id="openButton" value=" #{localizedMessages.analysisEditor}" styleClass="element-with-whitespace" ajax="false" url="analysisEditor?projectName=#{project}"/>
<p:menuitem icon="ui-icon-circle-triangle-e" id="controlAnalysis" styleClass="element-with-whitespace" value=" #{localizedMessages.analysis}" ajax="false" url="controller?projectName=#{project}" />
<p:separator/>
<p:menuitem icon="ui-icon-wrench" id="editAnalysisViews" styleClass="element-with-whitespace" value=" #{localizedMessages.cockpitEditor}" ajax="false" disabled="true" />
<p:menuitem icon="ui-icon-image" id="showAnalysis" styleClass="element-with-whitespace" value=" #{localizedMessages.cockpit}" ajax="false" disabled="true" />
<p:separator/>
<p:menuitem id="copyButton" icon="ui-icon-copy" styleClass="element-with-whitespace" value=" #{localizedMessages.copyProject}" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="copyProjectDialog.show()"/>
<p:menuitem id="renameButton" icon="ui-icon-pencil" styleClass="element-with-whitespace" value=" #{localizedMessages.renameProject}" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="renameProjectDialog.show()" disabled="true"/>
<p:menuitem id="deleteButton" icon="ui-icon-trash" styleClass="element-with-whitespace" value=" #{localizedMessages.deleteProject}" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="deleteProjectDialog.show()" disabled="true"/>
</p:menu>
</p:column>
<p:column headerText="#{localizedMessages.state}" style="text-align: center" sortBy="#{projectsBean.getAnalysisControllerState(project)}">
<h:outputText value="#{projectsBean.getAnalysisControllerState(project)}"/>
</p:column>
<p:column headerText="#{localizedMessages.lastModification}" sortBy="#{projectsBean.getCurrTimeStamp(project)}" style="text-align: center">
<h:outputText value="#{projectsBean.getCurrTimeStamp(project)}" />
</p:column>
<p:column headerText="#{localizedMessages.owner}" style="text-align: center" rendered="false">
<h:outputText value="N/A" />
</p:column>
</p:dataTable>
</h:form>
</p:layoutUnit>
</p:layout>
<p:growl id="messages" life="1500" showDetail="true" autoUpdate="false" sticky="true"/>
<!-- Include the about-dialog. -->
<ui:include src="dialogs/aboutDialog.xhtml" />
<!-- Include the dialogs for the project managment. -->
<ui:include src="dialogs/projectDialogs.xhtml" />
<!-- Include the dialog for the configuration. -->
<ui:include src="dialogs/settingsDialog.xhtml" />
</h:body>
</f:view>
</html>
\ No newline at end of file
<?xml version='1.0' encoding='UTF-8'?>
<!-- =========== FULL CONFIGURATION FILE ================================== -->
<faces-config version="2.1"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd">
<application>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>de</supported-locale>
</locale-config>
<resource-bundle>
<base-name>messages</base-name>
<var>localizedMessages</var>
</resource-bundle>
</application>
</faces-config>
\ No newline at end of file
......@@ -11,4 +11,35 @@
/* This is necessary to remove the border from the datalist */
.ui-datalist * {
border : 0px !important;
}
#center-container {
height:100%;
}
#center-container {
width:100%;
}
#infovis {
width:100%;
height:100%;
margin:auto;
overflow:hidden;
}
.tip {
color: #111;
width: 139px;
background-color: white;
border:1px solid #ccc;
-moz-box-shadow:#555 2px 2px 8px;
-webkit-box-shadow:#555 2px 2px 8px;
-o-box-shadow:#555 2px 2px 8px;
box-shadow:#555 2px 2px 8px;
opacity:0.9;
filter:alpha(opacity=90);
font-size:10px;
font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;
padding:7px;
}
\ No newline at end of file
......@@ -73,4 +73,172 @@
.kieker-title {
font-size: 25px !important;
}
.ui-icon-close {
background: url('../img/icons/Close.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-reload {
background: url('../img/icons/Reload.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-settings {
background: url('../img/icons/Settings.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-logout {
background: url('../img/icons/Logout.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-scaleToFitSmall {
background: url('../img/icons/ScaleToFitSmall.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-scaleToFit {
background: url('../img/icons/ScaleToFit.png') no-repeat !important;
height:32px;
width:32px;
}
.ui-icon-snapEnabled {
background: url('../img/icons/SnapEnabled.png') no-repeat !important;
height:32px;
width:32px;
}
.ui-icon-snapDisabled {
background: url('../img/icons/SnapDisabled.png') no-repeat !important;
height:32px;
width:32px;
}
.ui-icon-snapEnabledSmall {
background: url('../img/icons/SnapEnabledSmall.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-snapDisabledSmall {
background: url('../img/icons/SnapDisabledSmall.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-gridEnabled {
background: url('../img/icons/GridEnabled.png') no-repeat !important;
height:32px;
width:32px;
}
.ui-icon-gridDisabled {
background: url('../img/icons/GridDisabled.png') no-repeat !important;
height:32px;
width:32px;
}
.ui-icon-gridEnabledSmall {
background: url('../img/icons/GridEnabledSmall.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-gridDisabledSmall {
background: url('../img/icons/GridDisabledSmall.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-autoLayoutSmall {
background: url('../img/icons/AutoLayoutSmall.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-autoLayout {
background: url('../img/icons/AutoLayout.png') no-repeat !important;
height:32px;
width:32px;
}
.ui-icon-home {
background: url('../img/icons/Home.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-analysisEditor {
background: url('../img/icons/AnalysisEditor.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-analysis {
background: url('../img/icons/Analysis.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-cockpitEditor {
background: url('../img/icons/CockpitEditor.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-cockpit {
background: url('../img/icons/Cockpit.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-save {
background: url('../img/icons/Save.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-saveAs {
background: url('../img/icons/SaveAs.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-newProject {
background: url('../img/icons/NewProject.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-importProject {
background: url('../img/icons/ImportProject.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-userGuide {
background: url('../img/icons/UserGuide.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-about {
background: url('../img/icons/About.png') no-repeat !important;
height:16px;
width:16px;
}
.ui-icon-manageLibraries {
background: url('../img/icons/ManageLibraries.png') no-repeat !important;
height:16px;
width:16px;
}
\ No newline at end of file
......@@ -6,6 +6,7 @@
.col1 {
width: fit-content !important;
text-align: right;
}
.col2 {
......
#center-container {
height:100%;
}
#center-container {
width:100%;
}
#infovis {
width:100%;
height:100%;
margin:auto;
overflow:hidden;
}
.tip {
color: #111;
width: 139px;
background-color: white;
border:1px solid #ccc;
-moz-box-shadow:#555 2px 2px 8px;
-webkit-box-shadow:#555 2px 2px 8px;
-o-box-shadow:#555 2px 2px 8px;
box-shadow:#555 2px 2px 8px;
opacity:0.9;
filter:alpha(opacity=90);
font-size:10px;
font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;
padding:7px;
}
\ No newline at end of file
.draggable
{
position: absolute;
cursor: move;
z-index: 1;
}
.connector
{
background-color: black;
}
.dock_point
{
height: 1px;
width: 1px;
overflow: hidden;
padding: 0px !important;
border: none !important;
margin: 0px !important;
position: absolute;
font-size: 1px;
visibility: hidden;
}
\ No newline at end of file
......@@ -6,7 +6,7 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<p:dialog header="About..." resizable="false" modal="true" widgetVar="aboutDlg">
<p:dialog header="#{localizedMessages.about}" resizable="false" modal="true" widgetVar="aboutDlg">
<h:form>
<img src="../img/kieker-logo-transparent.png" alt="Kieker-Logo" width="491" height="150" />
<hr/>
......
......@@ -5,21 +5,21 @@
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<p:dialog id="manageLibrariesDlg" header="Libraries" resizable="false"
<p:dialog id="manageLibrariesDlg" header="#{localizedMessages.libraries}" resizable="false"
modal="true" widgetVar="manageLibrariesDialog">
<h:form id="dependenciesForm">
<p:dataTable id="currentDependencies" value="#{currentAnalysisEditorBean.libraries}" var="dependency" paginator="true" rows="10" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" >
<p:column headerText="Filename">
<p:column headerText="#{localizedMessages.fileName}">
<h:outputText value="#{dependency}"/>
</p:column>
<p:column headerText="Size" style="text-align: center">
<p:column headerText="#{localizedMessages.fileSize}" style="text-align: center">
<h:outputText value="N/A [MiByte]"/>
</p:column>
<p:column headerText="Options" style="text-align: center; width:40px">
<p:column headerText="#{localizedMessages.libOptions}" style="text-align: center; width:40px">
<p:commandButton id="deleteButton" icon="ui-icon-trash" disabled="true"/>
<p:tooltip for="deleteButton" value="Delete Library"/>
</p:column>
......@@ -29,7 +29,7 @@
<p:spacer width="0" height="5"/>
<div>
<!-- This is the form for the uploading. -->
<h:outputText value="Currently only *.jar-Dependencies can be uploaded. The maximal file size is limited to 100 [MiByte]." />
<h:outputText value="#{localizedMessages.msgOnlyJar}" />
<br />
<br />
<h:form enctype="multipart/form-data">
......@@ -39,7 +39,7 @@
<hr/>
<div style="text-align: right">
<h:form>
<p:commandButton value="Ok" ajax="true" onclick="manageLibrariesDialog.hide()" />
<p:commandButton value="#{localizedMessages.ok}" ajax="true" onclick="manageLibrariesDialog.hide()" />
</h:form>
</div>
</p:dialog>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment