diff --git a/Kieker.WebGUI/nb-configuration.xml b/Kieker.WebGUI/nb-configuration.xml index 3486bc9d74f184e12a04205c09d8b864a0a310cd..b8e9f2780636cfaf4e0b80d113250ca731ed0b40 100644 --- a/Kieker.WebGUI/nb-configuration.xml +++ b/Kieker.WebGUI/nb-configuration.xml @@ -15,4 +15,7 @@ Any value defined here will override the pom.xml file value but is only applicab --> <netbeans.compile.on.save>all</netbeans.compile.on.save> </properties> + <spellchecker-wordlist xmlns="http://www.netbeans.org/ns/spellchecker-wordlist/1"> + <word>xml</word> + </spellchecker-wordlist> </project-shared-configuration> diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java index 9ea9910fd783a17a12dee1949bb5e9744f76af75..307e1cb4cde04564f0352fa089c369c5ef95eb9e 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java @@ -87,4 +87,22 @@ public class StringBean { public String stringToID(final String str) { return str.replace(" ", ""); } + + /** + * Shortens a given name. If the name is longer than the given number of characters, only the first maxChar - 3 characters of the string will be used and the + * last three will be replaced with dots. + * + * @param name + * The name to be shortened. + * @param maxChar + * The maximal number of characters. + * @return The shortened name. + */ + public String shortenLongName(final String name, final int maxChar) { + if (name.length() > maxChar) { + return name.substring(0, maxChar - 3) + "..."; + } else { + return name; + } + } } diff --git a/Kieker.WebGUI/src/main/webapp/AnalysisEditor.xhtml b/Kieker.WebGUI/src/main/webapp/AnalysisEditor.xhtml index 5dd9c8f7968801795e9c08e2c006a29f78e8682b..3603add55de5ccc7de673c9e20bdfe815ea284cc 100644 --- a/Kieker.WebGUI/src/main/webapp/AnalysisEditor.xhtml +++ b/Kieker.WebGUI/src/main/webapp/AnalysisEditor.xhtml @@ -4,8 +4,7 @@ xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" - xmlns:p="http://primefaces.org/ui" - xmlns:c="http://java.sun.com/jsp/jstl/core"> + xmlns:p="http://primefaces.org/ui"> <h:head> <title>Kieker.WebGUI</title> @@ -20,60 +19,57 @@ .block { position: absolute; } - .connector { - background-color: #FF9900; - } - .source-label, .middle-label, .destination-label { - padding: 5px; - } </style> </h:head> <h:body onload="initPageObjects();"> <p:layout id="layout" fullPage="true"> - <p:layoutUnit position="north" collapsible="false" header="Kieker.WebGUI - Analysis Editor (#{currentWorkSpaceProjectBean.projectName})"> + <p:layoutUnit position="north"> <h:form> - <p:menubar> - <p:submenu label="File"> - <p:menuitem value="Save Project" update=":messages" ajax="true" action="#{currentWorkSpaceProjectBean.saveProject(false)}" disabled="#{empty currentWorkSpaceProjectBean.project}"/> - <p:menuitem value="Save Project As" update=":messages" ajax="true" disabled="#{empty currentWorkSpaceProjectBean.project}"/> - <p:menuitem styleClass="Force-Save-Project-Button" value="Force Save Project" update=":messages" ajax="true" action="#{currentWorkSpaceProjectBean.saveProject(true)}" disabled="#{empty currentWorkSpaceProjectBean.project}"/> - <p:separator/> - <p:menuitem value="Reload Project" ajax="true" disabled="#{empty currentWorkSpaceProjectBean.project or true}" /> - <p:separator/> - <p:menuitem value="Manage Libraries" onclick="manageLibrariesDialog.show()" ajax="true" disabled="#{empty currentWorkSpaceProjectBean.project}"/> - <p:menuitem ajax="true" value="Edit Connections" update=":connectionDialogForm" onclick="connectionDialog.show();" disabled="#{empty currentWorkSpaceProjectBean.project}"/> - <p:separator/> - <p:menuitem value="Close Project" action="#{currentWorkSpaceProjectBean.clearProject()}" ajax="false"/> + <p:toolbar> + <p:toolbarGroup align="left"> + <h:outputText styleClass="kieker-title" value="Kieker » #{stringBean.shortenLongName(currentWorkSpaceProjectBean.projectName, 30)}"/> + </p:toolbarGroup> + <p:toolbarGroup align="right"> + <p:commandButton styleClass="perspective-button" icon="ui-icon-home" disabled="true" /> <p:separator/> - <p:menuitem value="Settings" onclick="settingsDlg.show()" ajax="true"/> - </p:submenu> - - <p:submenu label="View"> - <p:menuitem value="Project Overview"/> + <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" ajax="false" action="#{currentWorkSpaceProjectBean.setProject(projectsBean.openProject(project), project)}"/> + <p:commandButton styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" ajax="false" action="#{currentControllerBean.setProject(projectsBean.openProject(project), project)}" /> <p:separator/> - <p:menuitem value="Analysis Editor" disabled="true"/> - <p:menuitem value="Cockpit Editor"/> + <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" ajax="false" action="#{currentCockpitEditorBean.setProject(projectsBean.openProject(project), project)}" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" ajax="false" action="#{currentAnalysisCockpitProjectBean.setProject(projectsBean.openProject(project), project)}" /> + </p:toolbarGroup> + </p:toolbar> + + <p:menubar> + <p:submenu label="File"> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-disk" value=" Save Project" update=":messages" ajax="true" action="#{currentWorkSpaceProjectBean.saveProject(false)}" disabled="#{empty currentWorkSpaceProjectBean.project}"/> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-disk" value=" Save Project As" update=":messages" ajax="true" disabled="#{empty currentWorkSpaceProjectBean.project}"/> + <p:menuitem styleClass="element-with-whitespace Force-Save-Project-Button" icon="ui-icon-alert" value=" Force Save Project" update=":messages" ajax="true" action="#{currentWorkSpaceProjectBean.saveProject(true)}" disabled="#{empty currentWorkSpaceProjectBean.project}"/> + <p:separator /> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-refresh" value=" Reload Project" ajax="true" disabled="#{empty currentWorkSpaceProjectBean.project or true}" /> <p:separator/> - <p:menuitem value="Controller"/> - <p:menuitem value="Cockpit"/> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-bookmark" value=" Manage Libraries" onclick="manageLibrariesDialog.show()" ajax="true" disabled="#{empty currentWorkSpaceProjectBean.project}"/> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-shuffle" ajax="true" value=" Edit Connections" update=":connectionDialogForm" onclick="connectionDialog.show();" disabled="#{empty currentWorkSpaceProjectBean.project}"/> + <p:separator /> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-circle-close" value=" Close Project" action="#{currentWorkSpaceProjectBean.clearProject()}" ajax="false"/> + <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 value="User Guide" ajax="true" disabled="true"/> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-help" value=" User Guide" ajax="true" disabled="true"/> <p:separator/> - <p:menuitem value="About..." onclick="aboutDlg.show()" ajax="true"/> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-comment" value=" About..." onclick="aboutDlg.show()" ajax="true"/> </p:submenu> - <p:menuitem styleClass="logOutButton" disabled="true" value="#{userBean.userName} [Log Out]" ajax="true"/> + <p:menuitem styleClass="logOutButton" icon="ui-icon-power" value="#{userBean.userName}" ajax="true" disabled="true"/> </p:menubar> - </h:form> </p:layoutUnit> - - <p:layoutUnit position="center" id="centerLayout"> + <p:layoutUnit style="font-size: 12px" position="center" id="centerLayout"> <h:form id="centerForm" style="height: 100%" rendered="#{not empty currentWorkSpaceProjectBean.project}"> <div class="canvas" id="mainCanvas" style="width : 100%;height: 100%"> <ui:repeat value="#{currentWorkSpaceProjectBean.project.plugins}" var="plugin" varStatus="counter"> @@ -100,7 +96,7 @@ </h:form> </p:layoutUnit> - <p:layoutUnit position="south" size="150" header="Properties" resizable="true" collapsible="true"> + <p:layoutUnit style="font-size: 12px" position="south" size="150" header="Properties" resizable="true" collapsible="true"> <h:form id="propertiesForm" > <p:dataTable editable="true" value="#{currentWorkSpaceProjectBean.advancedPluginProperties}" var="property" emptyMessage="No properties available" rendered="#{not empty currentWorkSpaceProjectBean.selectedPlugin}"> <p:column headerText="Key" style="width:125px"> @@ -130,10 +126,12 @@ </h:form> </p:layoutUnit> - <p:layoutUnit position="east" size="300" header="Tool Palette" + <!-- tree fuer toolpalette, packages --> + + <p:layoutUnit style="font-size: 12px" position="east" size="300" header="Available Plugins" resizable="true" collapsible="true"> <h:form id="toolpalette"> - <p:accordionPanel multiple="true" activeIndex=""> + <p:accordionPanel style="font-size: 12px" multiple="true" activeIndex=""> <p:tab title="Reader"> <ui:repeat value="#{currentWorkSpaceProjectBean.availableReaders}" var="reader"> <p:commandLink id="readerLink" value="#{reader.simpleName}" action="#{currentWorkSpaceProjectBean.addPlugin(reader)}" update=":centerForm :messages" /><br/> diff --git a/Kieker.WebGUI/src/main/webapp/ProjectOverview.xhtml b/Kieker.WebGUI/src/main/webapp/ProjectOverview.xhtml index e7f811a6fca92bf99ed80bbc769b22a4c1409fef..1b8ba6a791cae247367396ad2e1f0477b1b48aca 100644 --- a/Kieker.WebGUI/src/main/webapp/ProjectOverview.xhtml +++ b/Kieker.WebGUI/src/main/webapp/ProjectOverview.xhtml @@ -3,9 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" - xmlns:f="http://java.sun.com/jsf/core" - xmlns:p="http://primefaces.org/ui" - xmlns:c="http://java.sun.com/jsp/jstl/core"> + xmlns:p="http://primefaces.org/ui"> <h:head> <title>Kieker.WebGUI</title> @@ -14,52 +12,63 @@ </h:head> <h:body> - <p:layout fullPage="true"> - <p:layoutUnit position="north" header="Kieker.WebGUI - Overview"> - <h:form id="menubarForm"> + <p:layout fullPage="true"> + <p:layoutUnit position="north"> + <h:form> + <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" /> + <p:separator/> + <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Analysis Editor" style="white-space: none" ajax="false" action="#{currentWorkSpaceProjectBean.setProject(projectsBean.openProject(project), project)}"/> + <p:commandButton styleClass="perspective-button" icon="ui-icon-circle-triangle-e" value="Analysis" ajax="false" action="#{currentControllerBean.setProject(projectsBean.openProject(project), project)}" /> + <p:separator/> + <p:commandButton styleClass="perspective-button" icon="ui-icon-wrench" value="Cockpit Editor" ajax="false" action="#{currentCockpitEditorBean.setProject(projectsBean.openProject(project), project)}" /> + <p:commandButton styleClass="perspective-button" icon="ui-icon-image" value="Cockpit" ajax="false" action="#{currentAnalysisCockpitProjectBean.setProject(projectsBean.openProject(project), project)}" /> + </p:toolbarGroup> + </p:toolbar> + <p:menubar> <p:submenu label="File"> - <p:menuitem value="New Project" onclick="newProjectDialog.show()" ajax="true"/> - <p:menuitem value="Import Project" ajax="true" disabled="true"/> + <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 value="Refresh Projects List" update=":projectsListForm" action="#{currentProjectOverviewBean.updateLists()}" ajax="true"/> + <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 value="Settings" onclick="settingsDlg.show()" ajax="true"/> + <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 value="User Guide" ajax="true" disabled="true"/> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-help" value=" User Guide" ajax="true" disabled="true"/> <p:separator/> - <p:menuitem value="About..." onclick="aboutDlg.show()" ajax="true"/> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-comment" value=" About..." onclick="aboutDlg.show()" ajax="true"/> </p:submenu> - <p:menuitem styleClass="logOutButton" disabled="true" value="#{userBean.userName} [Log Out]" ajax="true"/> + <p:menuitem styleClass="logOutButton" icon="ui-icon-power" value="#{userBean.userName}" ajax="true" disabled="true"/> </p:menubar> - </h:form> </p:layoutUnit> + <!-- Abstand zu Icons --> <p:layoutUnit position="center"> <h:form id="projectsListForm"> - <p:toolbar> - <p:toolbarGroup style="font-size: 15px" align="left"> - <p:commandButton icon="ui-icon-plus" value="Project" onclick="newProjectDialog.show()" ajax="true"/> - </p:toolbarGroup> - </p:toolbar> - <p:dataTable rows="15" paginator="true" paginatorPosition="bottom" var="project" rowsPerPageTemplate="5,10,15,25,50" value="#{currentProjectOverviewBean.projects}" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"> + <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}"> <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 id="openButton" value="Open in Analysis Editor" style="white-space: none" ajax="false" action="#{currentWorkSpaceProjectBean.setProject(projectsBean.openProject(project), project)}"/> - <p:menuitem id="editAnalysisViews" value="Open in Cockpit Editor" ajax="false" action="#{currentCockpitEditorBean.setProject(projectsBean.openProject(project), project)}" /> + <p:menuitem icon="ui-icon-wrench" id="openButton" value=" Analysis Editor" styleClass="element-with-whitespace" ajax="false" action="#{currentWorkSpaceProjectBean.setProject(projectsBean.openProject(project), project)}"/> + <p:menuitem icon="ui-icon-circle-triangle-e" id="controlAnalysis" styleClass="element-with-whitespace" value=" Analysis" ajax="false" action="#{currentControllerBean.setProject(projectsBean.openProject(project), project)}" /> <p:separator/> - <p:menuitem id="copyButton" value="Copy Project" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="copyProjectDialog.show()" disabled="true"/> - <p:menuitem id="renameButton" value="Rename Project" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="renameProjectDialog.show()" disabled="true"/> - <p:menuitem id="deleteButton" value="Delete Project" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="deleteProjectDialog.show()" disabled="true"/> + + <p:menuitem icon="ui-icon-wrench" id="editAnalysisViews" styleClass="element-with-whitespace" value=" Cockpit Editor" ajax="false" action="#{currentCockpitEditorBean.setProject(projectsBean.openProject(project), project)}" /> + <p:menuitem icon="ui-icon-image" id="showAnalysis" styleClass="element-with-whitespace" value=" Cockpit" ajax="false" action="#{currentAnalysisCockpitProjectBean.setProject(projectsBean.openProject(project), project)}" /> <p:separator/> - <p:menuitem id="controlAnalysis" value="Open in Controller" ajax="false" action="#{currentControllerBean.setProject(projectsBean.openProject(project), project)}" /> - <p:menuitem id="showAnalysis" value="Open in Cockpit" ajax="false" action="#{currentAnalysisCockpitProjectBean.setProject(projectsBean.openProject(project), project)}" /> + <p:menuitem id="copyButton" icon="ui-icon-copy" styleClass="element-with-whitespace" value=" Copy Project" action="#{currentProjectOverviewBean.setProjectName(project)}" onclick="copyProjectDialog.show()" disabled="true"/> + <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)}"> @@ -70,7 +79,7 @@ <h:outputText value="#{projectsBean.getCurrTimeStamp(project)}" /> </p:column> - <p:column headerText="Owner" style="text-align: center"> + <p:column headerText="Owner" style="text-align: center" rendered="false"> <h:outputText value="N/A" /> </p:column> diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml index b34b9846d2dfc1097d9bb346d6a8d26489d93078..e19427b230dd43eabecdff4d83bb7ead25e1e5a4 100644 --- a/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml +++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml @@ -49,7 +49,7 @@ </session-config> <welcome-file-list> - <welcome-file>faces/ProjectWorkSpace.xhtml</welcome-file> + <welcome-file>faces/ProjectOverview.xhtml</welcome-file> </welcome-file-list> <listener> diff --git a/Kieker.WebGUI/src/main/webapp/css/Common.css b/Kieker.WebGUI/src/main/webapp/css/Common.css index d5c8f41d6297516dc6881c6081cf1a1fef49a1de..690ce0ef65c35fce498e7884635697c30357b7b0 100644 --- a/Kieker.WebGUI/src/main/webapp/css/Common.css +++ b/Kieker.WebGUI/src/main/webapp/css/Common.css @@ -13,51 +13,64 @@ } .ui-layout-center { - font-size: 15px; + font-size: 12px !important; } .ui-layout-east { - font-size: 15px; + font-size: 12px !important; } .ui-layout-south { - font-size: 15px; + font-size: 12px !important; } .ui-layout-west { - font-size: 15px; + font-size: 12px !important; } .ui-menubar .ui-menuitem { - font-size: 15px; + font-size: 12px !important; } .ui-menu { - font-size: 15px; -} - -.ui-toolbar { - font-size: 15px; + font-size: 12px !important; } .ui-dialog { - font-size: 15px; + font-size: 12px !important; width: auto; } .ui-selectonemenu-items { - font-size: 15px; + font-size: 12px !important; } .ui-tooltip { - font-size: 15px; + font-size: 12px !important; } .logOutButton { - position: absolute; - right: 5px; + position: absolute !important; + right: 5px !important; + font-size: 12px !important; } .ui-menu .ui-menu-parent .ui-menu-child { - width: 250px; + width: 250px !important; +} + +.ui-toolbar .ui-toolbar-group-left .ui-toolbar-group-right { + font-size: 11px !important; +} + +.perspective-button { + font-size: 11px !important; +} + +.element-with-whitespace { + white-space: pre !important; +} + +.kieker-title { + font-size: 25px !important; } \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/css/ProjectOverview.css b/Kieker.WebGUI/src/main/webapp/css/ProjectOverview.css index 9f0c53b1da8fce88c8011317bd7b353b38eb677c..21590a5e6bd10f44862cb28fca0bec6a9964ef11 100644 --- a/Kieker.WebGUI/src/main/webapp/css/ProjectOverview.css +++ b/Kieker.WebGUI/src/main/webapp/css/ProjectOverview.css @@ -2,4 +2,12 @@ .ui-datatable-odd { background: none repeat scroll 0 0 #F2F5F9; +} + +.ui-datatable-header { + font-size: 12px; +} + +.ui-datatable-footer { + font-size: 12px; } \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/aboutDialog.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/aboutDialog.xhtml index 80c7ca07f8bb7720e1952a5d1fc380aef34b7658..f29891490faf6736b3e11feb0c39d08853ca3e4c 100644 --- a/Kieker.WebGUI/src/main/webapp/dialogs/aboutDialog.xhtml +++ b/Kieker.WebGUI/src/main/webapp/dialogs/aboutDialog.xhtml @@ -8,7 +8,7 @@ <p:dialog header="About..." resizable="false" modal="true" widgetVar="aboutDlg" id="aboutDialog"> <h:form> - <img src="../img/kieker-logo-transparent.png" style="opacity: 0.25" /> + <img src="../img/kieker-logo-transparent.png" /> <hr/> <h:outputText value="Kieker.WebGUI" /> <br />