diff --git a/Kieker.WebGUI/src/main/resources/lang/CockpitEditorPage_de.properties b/Kieker.WebGUI/src/main/resources/lang/CockpitEditorPage_de.properties index 870ad76d39c513189c616565f1d905186f7c3777..7d08e8762bbcf3a5ddd85fb9e59e446e84a291b3 100644 --- a/Kieker.WebGUI/src/main/resources/lang/CockpitEditorPage_de.properties +++ b/Kieker.WebGUI/src/main/resources/lang/CockpitEditorPage_de.properties @@ -10,4 +10,6 @@ copyView = Ansicht Kopieren renameView = Ansicht Umbenennen deleteView = Ansicht L�schen -name = Name \ No newline at end of file +name = Name + +edit = Bearbeiten \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/resources/lang/CockpitEditorPage_en.properties b/Kieker.WebGUI/src/main/resources/lang/CockpitEditorPage_en.properties index 71f62abfbd817358cd99d65b3c419f8bf7e69f67..dc0e4a85703af363b7e4edd4c778c3d6e9e2fdf2 100644 --- a/Kieker.WebGUI/src/main/resources/lang/CockpitEditorPage_en.properties +++ b/Kieker.WebGUI/src/main/resources/lang/CockpitEditorPage_en.properties @@ -10,4 +10,6 @@ copyView = Copy View renameView = Rename View deleteView = Delete View -name = Name \ No newline at end of file +name = Name + +edit = Edit \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/css/CockpitEditorPage.css b/Kieker.WebGUI/src/main/webapp/css/CockpitEditorPage.css index 62e66bd9e0a61104fd383ef39cafa72eeb71c3d5..6b4de3c57f8219e0fdaf8871f087f1aaf1361374 100644 --- a/Kieker.WebGUI/src/main/webapp/css/CockpitEditorPage.css +++ b/Kieker.WebGUI/src/main/webapp/css/CockpitEditorPage.css @@ -12,4 +12,18 @@ .ui-panel { cursor: pointer; +} + +/* The following code is for icon definition. */ + +.ui-icon-newView { + background: url('../img/icons/NewView.png') no-repeat !important; + height:32px; + width:32px; +} + +.ui-icon-newViewSmall { + background: url('../img/icons/NewViewSmall.png') no-repeat !important; + height:16px; + width:16px; } \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/img/icons/NewView.png b/Kieker.WebGUI/src/main/webapp/img/icons/NewView.png new file mode 100644 index 0000000000000000000000000000000000000000..c39a62f447089f3c7c95bce9a1d69152d7c95cc3 Binary files /dev/null and b/Kieker.WebGUI/src/main/webapp/img/icons/NewView.png differ diff --git a/Kieker.WebGUI/src/main/webapp/img/icons/NewViewSmall.png b/Kieker.WebGUI/src/main/webapp/img/icons/NewViewSmall.png new file mode 100644 index 0000000000000000000000000000000000000000..2ddf3bf9c96c5e53d5531866cfef0766fbb5b39f Binary files /dev/null and b/Kieker.WebGUI/src/main/webapp/img/icons/NewViewSmall.png differ diff --git a/Kieker.WebGUI/src/main/webapp/pages/AnalysisEditorPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/AnalysisEditorPage.xhtml index 85a28a7855a5ccd78b113c6471c12387adc46092..2e1ed97e3c92d461a5a8452ea68a0d95981b2143 100644 --- a/Kieker.WebGUI/src/main/webapp/pages/AnalysisEditorPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/pages/AnalysisEditorPage.xhtml @@ -113,46 +113,50 @@ </p:submenu> <p:submenu label="Graph"> - <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-undoSmall" value=" #{localizedMessages.undo}" ajax="true" disabled="true" /> - <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-redoSmall" value=" #{localizedMessages.redo}" ajax="true" disabled="true" /> - <p:separator/> - <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-scaleToFitSmall" value=" #{localizedAnalysisEditorPageMessages.analysisEditorScaleToFit}" ajax="true" action="#{currentAnalysisEditorGraphBean.scaleToFit()}" /> + <c:if test="#{sec:areAnyGranted('User, Administrator')}"> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-undoSmall" value=" #{localizedMessages.undo}" ajax="true" disabled="true" /> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-redoSmall" value=" #{localizedMessages.redo}" ajax="true" disabled="true" /> + <p:separator/> + </c:if> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-scaleToFitSmall" value=" #{localizedAnalysisEditorPageMessages.analysisEditorScaleToFit}" ajax="true" action="#{currentAnalysisEditorGraphBean.scaleToFit()}" disabled="#{empty currentAnalysisEditorBean.project}" /> <p:separator/> - <p:menuitem styleClass="element-with-whitespace" icon="#{currentAnalysisEditorGraphBean.gridEnabled ? 'ui-icon-gridEnabledSmall' : 'ui-icon-gridDisabledSmall'}" value=" #{localizedAnalysisEditorPageMessages.grid} #{currentAnalysisEditorGraphBean.gridEnabled ? localizedAnalysisEditorPageMessages.disable : localizedAnalysisEditorPageMessages.enable}" ajax="true" action="#{currentAnalysisEditorGraphBean.switchGrid()}" update=":menuForm"/> - <p:menuitem styleClass="element-with-whitespace" icon="#{currentAnalysisEditorGraphBean.snapEnabled ? 'ui-icon-snapEnabledSmall' : 'ui-icon-snapDisabledSmall'}" value=" #{localizedAnalysisEditorPageMessages.snap} #{currentAnalysisEditorGraphBean.snapEnabled ? localizedAnalysisEditorPageMessages.disable: localizedAnalysisEditorPageMessages.enable}" ajax="true" action="#{currentAnalysisEditorGraphBean.switchSnap()}" update=":menuForm"/> + <p:menuitem styleClass="element-with-whitespace" icon="#{currentAnalysisEditorGraphBean.gridEnabled ? 'ui-icon-gridEnabledSmall' : 'ui-icon-gridDisabledSmall'}" value=" #{localizedAnalysisEditorPageMessages.grid} #{currentAnalysisEditorGraphBean.gridEnabled ? localizedAnalysisEditorPageMessages.disable : localizedAnalysisEditorPageMessages.enable}" ajax="true" action="#{currentAnalysisEditorGraphBean.switchGrid()}" update=":menuForm" disabled="#{empty currentAnalysisEditorBean.project}"/> + <p:menuitem styleClass="element-with-whitespace" icon="#{currentAnalysisEditorGraphBean.snapEnabled ? 'ui-icon-snapEnabledSmall' : 'ui-icon-snapDisabledSmall'}" value=" #{localizedAnalysisEditorPageMessages.snap} #{currentAnalysisEditorGraphBean.snapEnabled ? localizedAnalysisEditorPageMessages.disable: localizedAnalysisEditorPageMessages.enable}" ajax="true" action="#{currentAnalysisEditorGraphBean.switchSnap()}" update=":menuForm" disabled="#{empty currentAnalysisEditorBean.project}"/> <p:separator/> - <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-autoLayoutSmall" value=" #{localizedAnalysisEditorPageMessages.autoLayout}" ajax="true" action="#{currentAnalysisEditorGraphBean.startAutoLayout()}" /> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-autoLayoutSmall" value=" #{localizedAnalysisEditorPageMessages.autoLayout}" ajax="true" action="#{currentAnalysisEditorGraphBean.startAutoLayout()}" disabled="#{empty currentAnalysisEditorBean.project}" /> </p:submenu> </ui:define> <ui:define name="furtherMenuBar"> <p:spacer height="5"/> <p:menubar> - <p:menuitem id="btnSaveProject" styleClass="element-with-whitespace" icon="ui-icon-save" ajax="true" onstart="preSaveProject(false)" disabled="#{empty currentAnalysisEditorBean.project}"/> - <!-- A dummy item as a separator between the items. --> - <p:menuitem style="width: 15px" disabled="true"/> - - <p:menuitem id="btnManageLibraries" styleClass="element-with-whitespace" icon="ui-icon-manageLibraries" onclick="manageLibrariesDialog.show()" ajax="true" disabled="#{empty currentAnalysisEditorBean.project}"/> - <!-- A dummy item as a separator between the items. --> - <p:menuitem style="width: 15px" disabled="true"/> - - <p:menuitem id="btnUndo" styleClass="element-with-whitespace" icon="ui-icon-undo" ajax="true" disabled="true"/> - <p:menuitem id="btnRedo" styleClass="element-with-whitespace" icon="ui-icon-redo" ajax="true" disabled="true"/> - <!-- A dummy item as a separator between the items. --> - <p:menuitem style="width: 15px" disabled="true"/> - - <p:menuitem id="btnScaleToFit" styleClass="element-with-whitespace" icon="ui-icon-scaleToFit" ajax="true" action="#{currentAnalysisEditorGraphBean.scaleToFit()}"/> - <p:menuitem id="btnGrid" styleClass="element-with-whitespace" icon="#{currentAnalysisEditorGraphBean.gridEnabled ? 'ui-icon-gridEnabled' : 'ui-icon-gridDisabled'}" ajax="true" action="#{currentAnalysisEditorGraphBean.switchGrid()}" update=":menuForm"/> - <p:menuitem id="btnSnap" styleClass="element-with-whitespace" icon="#{currentAnalysisEditorGraphBean.snapEnabled ? 'ui-icon-snapEnabled' : 'ui-icon-snapDisabled'}" ajax="true" action="#{currentAnalysisEditorGraphBean.switchSnap()}" update=":menuForm"/> - <p:menuitem id="btnAutoLayout" styleClass="element-with-whitespace" icon="ui-icon-autoLayout" ajax="true" action="#{currentAnalysisEditorGraphBean.startAutoLayout()}" /> - </p:menubar> - - <p:tooltip for="btnSaveProject" value="#{localizedAnalysisEditorPageMessages.tooltipSaveProject}"/> - <p:tooltip for="btnManageLibraries" value="#{localizedAnalysisEditorPageMessages.tooltipManageLibraries}"/> + <c:if test="#{sec:areAnyGranted('User, Administrator')}"> + <p:menuitem id="btnSaveProject" styleClass="element-with-whitespace" icon="ui-icon-save" ajax="true" onstart="preSaveProject(false)" disabled="#{empty currentAnalysisEditorBean.project}"/> + <!-- A dummy item as a separator between the items. --> + <p:menuitem style="width: 15px" disabled="true"/> + + <p:menuitem id="btnManageLibraries" styleClass="element-with-whitespace" icon="ui-icon-manageLibraries" onclick="manageLibrariesDialog.show()" ajax="true" disabled="#{empty currentAnalysisEditorBean.project}"/> + <!-- A dummy item as a separator between the items. --> + <p:menuitem style="width: 15px" disabled="true"/> + + <p:menuitem id="btnUndo" styleClass="element-with-whitespace" icon="ui-icon-undo" ajax="true" disabled="true"/> + <p:menuitem id="btnRedo" styleClass="element-with-whitespace" icon="ui-icon-redo" ajax="true" disabled="true"/> + <!-- A dummy item as a separator between the items. --> + <p:menuitem style="width: 15px" disabled="true"/> + </c:if> - <p:tooltip for="btnUndo" value="#{localizedMessages.tooltipUndo}"/> - <p:tooltip for="btnRedo" value="#{localizedMessages.tooltipRedo}"/> + <p:menuitem id="btnScaleToFit" styleClass="element-with-whitespace" icon="ui-icon-scaleToFit" ajax="true" action="#{currentAnalysisEditorGraphBean.scaleToFit()}" disabled="#{empty currentAnalysisEditorBean.project}"/> + <p:menuitem id="btnGrid" styleClass="element-with-whitespace" icon="#{currentAnalysisEditorGraphBean.gridEnabled ? 'ui-icon-gridEnabled' : 'ui-icon-gridDisabled'}" ajax="true" action="#{currentAnalysisEditorGraphBean.switchGrid()}" update=":menuForm" disabled="#{empty currentAnalysisEditorBean.project}"/> + <p:menuitem id="btnSnap" styleClass="element-with-whitespace" icon="#{currentAnalysisEditorGraphBean.snapEnabled ? 'ui-icon-snapEnabled' : 'ui-icon-snapDisabled'}" ajax="true" action="#{currentAnalysisEditorGraphBean.switchSnap()}" update=":menuForm" disabled="#{empty currentAnalysisEditorBean.project}"/> + <p:menuitem id="btnAutoLayout" styleClass="element-with-whitespace" icon="ui-icon-autoLayout" ajax="true" action="#{currentAnalysisEditorGraphBean.startAutoLayout()}" disabled="#{empty currentAnalysisEditorBean.project}" /> + </p:menubar> + <c:if test="#{sec:areAnyGranted('User, Administrator')}"> + <p:tooltip for="btnSaveProject" value="#{localizedAnalysisEditorPageMessages.tooltipSaveProject}"/> + <p:tooltip for="btnManageLibraries" value="#{localizedAnalysisEditorPageMessages.tooltipManageLibraries}"/> + <p:tooltip for="btnUndo" value="#{localizedMessages.tooltipUndo}"/> + <p:tooltip for="btnRedo" value="#{localizedMessages.tooltipRedo}"/> + </c:if> <p:tooltip for="btnScaleToFit" value="#{localizedAnalysisEditorPageMessages.tooltipScaleToFit}"/> <p:tooltip for="btnGrid" value="#{localizedAnalysisEditorPageMessages.tooltipGrid}"/> <p:tooltip for="btnSnap" value="#{localizedAnalysisEditorPageMessages.tooltipSnap}"/> diff --git a/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml index aac97ce40a724b1fb1ec8a3c585cddd57debf619..7c8b35c4f0c694b5f86892ec6d33a2c0619b2362 100644 --- a/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml @@ -40,12 +40,12 @@ <!-- Those are the menu bar entries left from the help-submenu. --> <ui:define name="furtherMenuBarEntries"> <p:submenu label="#{localizedMessages.file}"> - <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-newProject" value=" Neues View" update=":messages" ajax="true" onclick="newViewDialog.show();" disabled="#{empty currentCockpitEditorBean.project}"/> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-newViewSmall" value=" Neues View" update=":messages" ajax="true" onclick="newViewDialog.show();" disabled="#{empty currentCockpitEditorBean.project}"/> <p:separator /> - <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-save" value=" #{localizedMessages.saveProject}" update=":messages" ajax="true" action="#{currentCockpitEditorBean.saveProject(false)}" disabled="#{empty currentCockpitEditorBean.project}"/> - <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-saveAs" value=" #{localizedMessages.saveProjectAs}" update=":messages" ajax="true" disabled="#{true or empty currentCockpitEditorBean.project}"/> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-saveSmall" value=" #{localizedMessages.saveProject}" update=":messages" ajax="true" action="#{currentCockpitEditorBean.saveProject(false)}" disabled="#{empty currentCockpitEditorBean.project}"/> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-saveAsSmall" value=" #{localizedMessages.saveProjectAs}" update=":messages" ajax="true" disabled="#{true or empty currentCockpitEditorBean.project}"/> <p:separator /> - <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-reload" value=" #{localizedMessages.reloadProject}" ajax="false" url="cockpitEditor?projectName=#{currentCockpitEditorBean.projectName}" disabled="#{empty currentCockpitEditorBean.project}" /> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-reloadSmall" value=" #{localizedMessages.reloadProject}" ajax="false" url="cockpitEditor?projectName=#{currentCockpitEditorBean.projectName}" disabled="#{empty currentCockpitEditorBean.project}" /> <p:separator/> <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-settings" value=" #{localizedMessages.settings}" onclick="settingsDlg.show()" ajax="true"/> <p:separator /> @@ -53,12 +53,30 @@ <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-close" value=" #{localizedMessages.closeProject}" action="ProjectOverviewPage.xhtml?faces-redirect=true" ajax="false" rendered="#{not currentCockpitEditorBean.unsavedModification}"/> </p:submenu> - <p:submenu label="Edit"> - <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-arrowreturnthick-1-w" value=" Undo" ajax="true" /> - <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-arrowreturnthick-1-e" value=" Redo" ajax="true" /> + <p:submenu label="#{localizedCockpitEditorPageMessages.edit}"> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-undoSmall" value=" #{localizedMessages.undo}" ajax="true" disabled="true" /> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-redoSmall" value=" #{localizedMessages.redo}" ajax="true" disabled="true" /> </p:submenu> </ui:define> + <ui:define name="furtherMenuBar"> + <p:spacer height="5"/> + <p:menubar> + <p:menuitem id="btnNewView" styleClass="element-with-whitespace" icon="ui-icon-newView" update=":messages" ajax="true" onclick="newViewDialog.show();" disabled="#{empty currentCockpitEditorBean.project}"/> + <!-- A dummy item as a separator between the items. --> + <p:menuitem style="width: 15px" disabled="true"/> + + <p:menuitem id="btnSaveProject" styleClass="element-with-whitespace" icon="ui-icon-save" update=":messages" ajax="true" action="#{currentCockpitEditorBean.saveProject(false)}" disabled="#{empty currentCockpitEditorBean.project}"/> + <!-- A dummy item as a separator between the items. --> + <p:menuitem style="width: 15px" disabled="true"/> + + <p:menuitem id="btnUndo" styleClass="element-with-whitespace" icon="ui-icon-undo" ajax="true" disabled="true"/> + <p:menuitem id="btnRedo" styleClass="element-with-whitespace" icon="ui-icon-redo" ajax="true" disabled="true"/> + </p:menubar> + + <p:tooltip for="btnUndo" value="#{localizedMessages.tooltipUndo}"/> + <p:tooltip for="btnRedo" value="#{localizedMessages.tooltipRedo}"/> + </ui:define> <ui:define name="centerLayout"> <p:layoutUnit position="center"> diff --git a/Kieker.WebGUI/src/main/webapp/pages/CockpitPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/CockpitPage.xhtml index fb5e34bade6cdc3f70641080774a85f53144843b..a82251cd3c32cea4aad9362ce8922ab88752aeee 100644 --- a/Kieker.WebGUI/src/main/webapp/pages/CockpitPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/pages/CockpitPage.xhtml @@ -34,7 +34,7 @@ <!-- Those are the menu bar entries left from the help-submenu. --> <ui:define name="furtherMenuBarEntries"> <p:submenu label="#{localizedMessages.file}"> - <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-reload" value=" #{localizedMessages.reloadProject}" ajax="false" url="cockpit?projectName=#{currentCockpitBean.projectName}" disabled="#{empty currentCockpitBean.project}" /> + <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-reloadSmall" value=" #{localizedMessages.reloadProject}" ajax="false" url="cockpit?projectName=#{currentCockpitBean.projectName}" disabled="#{empty currentCockpitBean.project}" /> <p:separator/> <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-settings" value=" #{localizedMessages.settings}" onclick="settingsDlg.show()" ajax="true"/> <p:separator /> diff --git a/Kieker.WebGUI/src/main/webapp/pages/ProjectOverviewPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/ProjectOverviewPage.xhtml index 46e04bdd331ac3812626fb69c8dba7f3dfe17416..e4b5614035b278ffdf224ba7ef9d9a1ef3f534b0 100644 --- a/Kieker.WebGUI/src/main/webapp/pages/ProjectOverviewPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/pages/ProjectOverviewPage.xhtml @@ -45,14 +45,18 @@ <ui:define name="furtherMenuBar"> <p:spacer height="5"/> <p:menubar> - <p:menuitem id="btnNewProject" styleClass="element-with-whitespace" icon="ui-icon-newProject" onclick="newProjectDialog.show()" ajax="true" /> - <p:menuitem id="btnImportProject" styleClass="element-with-whitespace" icon="ui-icon-importProject" onclick="importProjectDialog.show()" ajax="true" /> - <!-- A dummy item as a separator between the items. --> - <p:menuitem style="width: 15px" disabled="true"/> + <c:if test="#{sec:areAnyGranted('User, Administrator')}"> + <p:menuitem id="btnNewProject" styleClass="element-with-whitespace" icon="ui-icon-newProject" onclick="newProjectDialog.show()" ajax="true" /> + <p:menuitem id="btnImportProject" styleClass="element-with-whitespace" icon="ui-icon-importProject" onclick="importProjectDialog.show()" ajax="true" /> + <!-- A dummy item as a separator between the items. --> + <p:menuitem style="width: 15px" disabled="true"/> + </c:if> <p:menuitem id="btnReloadProjectList" styleClass="element-with-whitespace" icon="ui-icon-reload" update=":projectsListForm" action="#{currentProjectOverviewBean.updateAvailableProjects()}" ajax="true" /> </p:menubar> - <p:tooltip for="btnNewProject" value="#{localizedProjectOverviewMessages.tooltipNewProject}"/> - <p:tooltip for="btnImportProject" value="#{localizedProjectOverviewMessages.tooltipImportProject}"/> + <c:if test="#{sec:areAnyGranted('User, Administrator')}"> + <p:tooltip for="btnNewProject" value="#{localizedProjectOverviewMessages.tooltipNewProject}"/> + <p:tooltip for="btnImportProject" value="#{localizedProjectOverviewMessages.tooltipImportProject}"/> + </c:if> <p:tooltip for="btnReloadProjectList" value="#{localizedProjectOverviewMessages.tooltipReloadProjectsList}"/> </ui:define>