Ticket #442 (closed: fixed)
Menu changes related to Project navigation
| Reported by: | olle | Owned by: | olle |
|---|---|---|---|
| Milestone: | Proteios SE 2.4 | Keywords: | |
| Cc: |
Description
Here are described some changes to the drop down menu system related to project navigation. The goal is to keep the best features from the previous system using a single pane menu, such as always knowing what (if any) project was active, while adding enhancements to further simplify project selection to the drop down menu system introduced in Ticket #356 (Redesign menu using a drop menus).
The BASE project has a "project item" concept closely related to that in Proteios. For general guidelines concerning selection of an active project, comparison with the BASE menu system may therefore be helpful. However, while the basic concept of a project item may be similar in Proteios and BASE, the differences in the project contents of an item are greater, that might require a different menu design in Proteios, after an active project has been selected.
The changes described here should be regarded as experimental initially, and may be modified/retracted before the official release.
Change History
comment:2 Changed 4 years ago by olle
Design comparison and discussion:
Comparison of previous Proteios single pane menu with current Proteios drop down menu system.
| Feature | Previous single pane menu | Current drop down menu system |
| Showing active project | Shown as first menu item | - (shown on certain pages) |
| Selecting active project | - (done on Home or My Projects page) | - (done on Home or My Projects page) |
| De-selecting active project | - (requires logging out) | Close item in new Project menu |
| Selecting item for active project | Under first menu item | In Project menu |
Comparison of BASE 2.7.2 menu system with current Proteios drop down menu system.
| Feature | Previous single pane menu | Current drop down menu system |
| Showing active project | Name of "project" menu and shown as selected item in Select project hierarchical menu under File menu (also shown on certain pages) | - (shown on certain pages) |
| Selecting active project | "Project" menu and in Select project hierarchical menu under File menu (also on Home or My Projects page) | - (done on Home or My Projects page) |
| De-selecting active project | "Project" menu and in Select project hierarchical menu under File menu | Close item in new Project menu |
| Selecting item for active project | Item tab on project page | In Project menu |
Design discussion.
The BASE 2.7.2 menu system consists of a single row of drop down menus divided into a left side and right side part. The left side part consists of menus File, View, Array LIMS, Administrate, Extensions, and Help. The right side part consists of buttons/menus for "Update", "Recently viewed", "Project", and "BASE 2", some of which are only identified by an icon, or in case of the "Project" menu, by the name of the active project (if any).
While the BASE 2.7.2 "Project" menu has the same functionality as that available in the Select project hierarchical menu under the File menu, Proteios Project menu differs by giving access to items for the active project. The latter use is practical for proteomics, and also resembles the way items for a project were selected in the previous single pane menu. However, changing the name of the Project menu to the active project, after one has been selected, has the benefit of always showing the user what, if any, project is active. Moving the Project menu from being the first item to after the File, Edit, and View menus would increase similarity not only with BASE 2.7.2, but also with the drop down menus of many other programs. Adopting the way you can select/de-select an active project in BASE 2.7.2 in a Select project hierarchical menu under the File menu would make change of active project even simpler. Some of these changes require updates in the menu system functionality; if a project name should be used as the name of a menu, localization of the text string is undesired, and display of a selected item in a menu requires the possibility of adding an icon image to the menu item.
Suggested changes to the current Proteios drop down menu system related to project navigation:
- The Project menu is moved to the right of the File, Edit, and View menus.
- The name of the Project menu is changed to that of the active project, after one has been selected.
- A new Select project hierarchical menu is added to the top of the File menu, where you can select/de-select an active project (current selection is marked with an icon).
comment:4 Changed 4 years ago by olle
(In [2750]) Refs #442. Refs #356. The name of the "Project" menu is changed to that of the active project, after one has been selected:
- Class/file gui/Node.java in client/servlet/ updated by addition
of new private boolean instance variable localizationUsed with public accessor methods. The default value of localizationUsed is true.
- Class/file gui/web/GUIConverter.java in client/servlet/ updated
in public method Tag convert(Node node) by only using localization for menu name if the value of boolean instance variable localizationUsed for the menu node is true.
- Class/file gui/MainMenu.java in client/servlet/ updated in
private method Node createProjectMenu() by setting name of "Project" menu to that of the active project, if one has been selected. In case the name of the menu is set to the name of the active project, the value of boolean instance variable localizationUsed for the menu node is set to false, in order to avoid trying to localize the name.
comment:5 Changed 4 years ago by olle
(In [2751]) Refs #442. Refs #356. Refs #287. The "File" menu is extended with a new "Select project" hierarchical menu at the top, where one can select/de-select an active project. The currently selected menu item is marked with a bullet icon:
- Class/file gui/Node.java in client/servlet/ updated by addition
of new private String instance variable iconPath with public accessor methods. The default value of iconPath is null.
- Class/file gui/web/GUIConverter.java in client/servlet/ updated
in public method Tag convert(Node node) by adding an icon image on the left side of a menu item if the value of String instance variable iconPath for the menu node is different from null. In this case the image corresponding to the iconPath value is used. As a special case, if the icon path corresponds to the "blankbutton.gif" 1x16 pixels spacer image, the image attributes will be set to 10x14 pixels, to be used as spacer for bullet image "checkedmenu.gif", which has the latter dimensions.
- Class/file gui/MainMenu.java in client/servlet/ updated:
- Private method Node createFileNode() by adding a project
selection hierarchical menu node at the top. The project selection menu node is created by new private convenience method createSelectProjectNode().
- New private convenience method Node createSelectProjectNode()
for creating the hierarchical project selection menu. The first menu item is reserved for the case when no active project is selected, and is coupled to an action link to action DeactivateProject?.class for de-selecting an active project. Menu items for projects are coupled to action links to new action SelectActiveProject?.class for making the selected project active. An initial icon image to the left of a menu item for marking what item is selected is obtained by calling new private convenience method String fetchSelectionIconPath(boolean selected).
- New private convenience method
String fetchSelectionIconPath(boolean selected) for obtaining the path to an icon image indicating if the current menu item is selected or not. A bullet icon is used to indicate that a menu item is selected.
- New class/file action/project/SelectActiveProject.java in
client/servlet/ that retrieves the value of valid parameter VInteger FormFactory?.VID and makes the project with this id value to the active project, and then forwards the action to ViewHome?.class.
- English dictionary file locale/en/dictionary in client/servlet/
updated with new entries for various string keys.
comment:7 Changed 4 years ago by olle
(In [2752]) Refs #442. Refs #356. Cascading Style Sheets file for drop down menus www/static/css/menuh.css in client/servlet/ updated by increasing the width of menus from 9em to 11em, in order to allow longer menu text to fit inside the menu. Note that you normally have to clear the cache in the web browser for the new settings to apply.
comment:8 Changed 4 years ago by olle
(In [2753]) Refs #442. Refs #356. Code related to menu icons moved from classes/files gui/Node.java and gui/MainMenu.java in client/servlet/ to class/file gui/web/GUIConverter.java in client/servlet/:
- Class/file gui/Node.java in client/servlet/ updated by exchanging
private String instance variable iconPath with accessor methods for new private Boolean instance variable selected with accessor methods. The default value of selected is null.
- Class/file gui/web/GUIConverter.java in client/servlet/ updated
in public method Tag convert(Node node) by adding an icon image on the left side of a menu item if the value of Boolean instance variable selected for the menu node is different from null. In this case the image returned by new convenience method String fetchSelectionIconPath(boolean selected) is used. As a special case, if the icon path corresponds to the "blankbutton.gif" 1x16 pixels spacer image, the image attributes will be set to 10x14 pixels, to be used as spacer for bullet image "checkedmenu.gif", which has the latter dimensions.
- Class/file gui/MainMenu.java in client/servlet/ updated:
- Private convenience method Node createSelectProjectNode()
for creating the hierarchical project selection menu updated by setting the Node selected flag instead of an icon path.
- Private convenience method
String fetchSelectionIconPath(boolean selected) for obtaining the path to an icon image is removed, as it is no longer used (a modified version has been added to class/file gui/web/GUIConverter.java in client/servlet/ instead).
comment:9 Changed 4 years ago by olle
(In [2754]) Refs #442. Refs #356. Menu icons are now chosen depending on the value of Boolean instance variable selected for the ActionLink? connected to a menu node, if any. If no action link exists, or the selected flag equals null, no icon will be added. If the value equals true a marker icon will be added, while if the value equals false a spacer icon will be added. Since the default value of selected for an ActionLink? is false, the value has to be explicitly set to null to avoid a spacer icon being added.
- Class/file gui/Node.java in client/servlet/ updated by removing
private Boolean instance variable selected with accessor methods.
- Class/file gui/web/GUIConverter.java in client/servlet/ updated
in public method Tag convert(Node node) by adding an icon image on the left side of a menu item if the value of Boolean instance variable selected for the action link connected to the menu node is different from null.
- Class/file gui/MainMenu.java in client/servlet/ updated:
- Private convenience method Node createSelectProjectNode()
for creating the hierarchical project selection menu updated by setting the selected flag for the ActionLink? connected to a menu node, instead of a selected flag for the node itself.
- Other node-creating methods updated to set the selected
flag of the ActionLink? connected to the node to null.
comment:10 Changed 4 years ago by olle
comment:11 Changed 4 years ago by olle
comment:12 Changed 3 years ago by olle
Information correction:
In the design comparison and discussion added 2008-07-23 12:03:21, the second table showing a comparison of the BASE 2.7.2 menu system with Proteios initial drop down menu system, the column showing data for BASE 2.7.2 menus is erroneously named "Previous single pane menu" instead of "BASE 2.7.2 menu system". To clarify, both tables in that entry are repeated below with correct column headers, and with "current drop down menu system" exchanged for "Proteios initial drop down menu system", since the menu system has been modified since the original entry.
Comparison of Proteios previous single pane menu with Proteios initial drop down menu system.
| Feature | Previous single pane menu | Proteios initial drop down menu system |
| Showing active project | Shown as first menu item | - (shown on certain pages) |
| Selecting active project | - (done on Home or My Projects page) | - (done on Home or My Projects page) |
| De-selecting active project | - (requires logging out) | Close item in new Project menu |
| Selecting item for active project | Under first menu item | In Project menu |
Comparison of BASE 2.7.2 menu system with Proteios initial drop down menu system.
| Feature | BASE 2.7.2 menu system | Proteios initial drop down menu system |
| Showing active project | Name of "project" menu and shown as selected item in Select project hierarchical menu under File menu (also shown on certain pages) | - (shown on certain pages) |
| Selecting active project | "Project" menu and in Select project hierarchical menu under File menu (also on Home or My Projects page) | - (done on Home or My Projects page) |
| De-selecting active project | "Project" menu and in Select project hierarchical menu under File menu | Close item in new Project menu |
| Selecting item for active project | Item tab on project page | In Project menu |
comment:13 Changed 3 years ago by olle
Features of Proteios drop down menu system 2008-08-12.
| Feature | Proteios drop down menu system 2008-08-12 |
| Showing active project | Name of project menu and shown as selected item in Select project hierarchical menu under File menu (also shown on certain pages) |
| Selecting active project | In Select project hierarchical menu under File menu (also on Home or My Projects page) |
| De-selecting active project | In Select project hierarchical menu under File menu and Close item in project menu |
| Selecting item for active project | In project menu |
comment:14 Changed 3 years ago by olle
- Status changed from assigned to closed
- Resolution set to fixed
Ticket closed as the desired feature has been implemented.

Reassigned to olle.