Opened 13 years ago

Closed 13 years ago

Last modified 12 years ago

#717 closed (fixed)

Move some of the hit table buttons to an Extensions button

Reported by: Gregory Vincic Owned by: olle
Milestone: Proteios SE 2.14.0 Keywords:
Cc:

Description

The toolbar is far to long and wraps over two lines. Move some of the buttons into an Extension popup.

Change History (8)

comment:1 Changed 13 years ago by Gregory Vincic

Owner: changed from Gregory Vincic to olle

comment:2 Changed 13 years ago by olle

Status: newassigned

Ticket accepted.

comment:3 Changed 13 years ago by olle

Design discussion.

The hits report table is generated/managed by class ConfigureTableFactory2, and table tool bar buttons are either added directly by that class, or implicitly by the button action class implementing an appropriate context interface.

Currently the hits report table tool bar contains the following buttons:

Number Button Name Action Type Addition Condition
1 Update General Added by class ConfigureTableFactory2
2 Export to File General Added by class ConfigureTableFactory2
3 Show Gels Hits specific, gel view Added by class ShowHitsOnGelScanImage which implements ContextEnabled through class TableToolbarContext for tables of class Hit
4 Clear Hits Table Hits specific, clearance Added by class ClearHits which implements ContextEnabled through class TableToolbarContext for tables of class Hit
5 Clear combinations Hits specific, clearance Added by class ClearCombinedHits which implements ContextEnabled through class TableToolbarContext for tables of class Hit
6 Combined Hits Report Hits specific, report creation Added by class CombineHitsStep1 which implements ContextEnabled through class TableToolbarContext for tables of class Hit
7 Protein Assembly Hits specific, report creation Added by class ProteinAssembly1 which implements ContextEnabled through class TableToolbarContext for tables of class Hit
8 PRIDE XML Export Hits specific, report creation Added by class PrideExport which implements ContextEnabled through class TableToolbarContext for tables of class Hit
9 Hits Comparison Report Hits specific, report creation Added by class HitsComparisonReportStep1 which implements ContextEnabled through class TableToolbarContext for tables of class Hit
10 Exclusion/inclusion list Hits specific, report creation Added by class ExclusionList which implements ContextEnabled through class TableToolbarContext for tables of class Hit

Initial design update:

  • Buttons 6-10 logically falls into a group of its own, as they all concern hits specific report creation. The corresponding actions will therefore be moved to be accessible from a new "Extensions" pop-up button instead.
  • The design of the new "Extensions" pop-up button will be based on that of the corresponding buttons for the Directory and File tables in the form managed by class ViewActiveDirectory. These buttons are coupled to action classes implementing interface ContextEnabled through classes DirectoryContext and FileContext, respectively.
  • A new class HitContext will be created, based on class DirectoryContext.
  • Action classes for current Hits table buttons 6-10, concerned with hits report creation, will be update to implement ContextEnabled through the new class HitContext, instead of TableToolbarContext for tables of class Hit. The old code will be commented out, in case one decides to return to the original design in the future.

comment:4 Changed 13 years ago by olle

Design discussion.

Currently the hits report table can be accessed from the GUI in two ways:

  • From menu item "Report->Hits" in the drop-down menu for the active project. The menu is managed by class MainMenu, which calls public method Node createHitsReportN(), which calls private method Node newListNode(Class<?> wrapper, Class<?> data, String dictionaryKey), which in turn calls private method Node listNode(Class<?> wrapper, Class<?> data, String dictionaryKey, Boolean inproject) with argument inproject set to false, which calls class ConfigureTableFactory2 to create/manage the table, with parameter VFORWARDTO set to class ShowTable.
  • From button "Hits Report" in the "Report Tools" tab on the overview form for the active project, managed by class ViewProjectHome. The button is coupled to an action link created by the latter calling public method ActionLink getListLink(Class<?> wrapper, Class<?> data, String dictionaryKey, Boolean inproject) in class GUIFactory, with argument inproject set to true, which calls class ConfigureTableFactory2 to create/manage the table, with parameter VFORWARDTO set to class ShowTable.

In both cases the hits table is created/managed by class ConfigureTableFactory2, with parameter VFORWARDTO set to class ShowTable. The latter class is much simpler than ConfigureTableFactory2, but still has access to the created table, from which one can access the tool bar to add new buttons, if desired.

Design update:

  • In order not to upset other tables managed by ConfigureTableFactory2 and ShowTable, it was decided to make the hits report table created/managed by ConfigureTableFactory2, but with parameter VFORWARDTO set to new class ListHits, which will be based on ShowTable, but will add a new "Extensions" button for classes implementing interface ContextEnabled through new class HitContext.

comment:5 Changed 13 years ago by olle

Design update:

  • As it is desirable for the order of hits extensions to be the same in the pop-up list as previously when available from tool bar buttons, class HitContext will have an attribute int order, in analogy with class TableToolbarContext, and class ListHits will sort the extensions in the same way TableToolbarContext classes are sorted in protected method void runMe() in class ConfigureTableFactory2.

comment:6 Changed 13 years ago by olle

(In [4016]) Refs #717. Refs #287. Refs #290. First version of extensions button for hits report table:

  1. New class/file HitContext?.java in client/servlet added.

It is based on class DirectoryContext, but has an attribute int order, in analogy with class TableToolbarContext.

  1. Class/file gui/MainMenu.java in client/servlet/ updated;
  2. New private method

Node listNode(Class<?> wrapper, Class<?> data, String dictionaryKey, Boolean inproject, Class<?> forwardClass) added.

  1. Private method

Node listNode(Class<?> wrapper, Class<?> data, String dictionaryKey, Boolean inproject) updated by callinig new method Node listNode(Class<?> wrapper, Class<?> data, String dictionaryKey, Boolean inproject, Class<?> forwardClass) with argument forwardClass set to ShowTable.class, which results in the same behavior as previously.

  1. Public method Node createHitsReportN() updated by creating

the node by calling new method Node listNode(Class<?> wrapper, Class<?> data, String dictionaryKey, Boolean inproject, Class<?> forwardClass) with argument forwardClass set to new class ListHits.class.

  1. Class/file gui/GUIFactory.java in client/servlet/ updated:
  2. New public method

ActionLink getListLink(Class<?> wrapper, Class<?> data, String dictionaryKey, Boolean inproject, Class<?> forwardClass) added.

  1. Public method

ActionLink getListLink(Class<?> wrapper, Class<?> data, String dictionaryKey, Boolean inproject) updated by calling new method ActionLink getListLink(Class<?> wrapper, Class<?> data, String dictionaryKey, Boolean inproject, Class<?> forwardClass) with argument forwardClass set to ShowTable.class, which results in the same behavior as previously.

  1. Class/file action/project/ViewProjectHome.java in client/servlet/

updated:

  1. Public method void runMe() updated by creating

the hits resport link by calling new GUIFactory method ActionLink getListLink(Class<?> wrapper, Class<?> data, String dictionaryKey, Boolean inproject, Class<?> forwardClass) with argument forwardClass set to new class ListHits.class.

  1. New class/file action/hit/ListHits.java in client/servlet/

added. It is based on class ShowTable, but adds a hits extensions button to the toolbar. Extension classes are sorted depending on the values of their HitContext order attribute before being added to the extensions list.

  1. Following classes/files in client/servlet/ were updated to

implement ContextEnabled through the new class HitContext, instead of TableToolbarContext for tables of class Hit:

  1. action/hit/CombineHitsStep1.java
  2. action/hit/ProteinAssembly1.java
  3. action/hit/PrideExport.java
  4. action/hit/HitsComparisonReportStep1.java
  5. action/hit/ExclusionList.java
  1. English dictionary file locale/en/dictionary in client/servlet/

updated with new string keys.

  1. Default icon settings file "default" in icons/ in client/servlet/

updated with new icon assignments.

comment:7 Changed 13 years ago by olle

Resolution: fixed
Status: assignedclosed

The ticket is closed, as the desired functionality has been added. Should problems with the current solution appear, this ticket may be reopened, or a new ticket created.

comment:8 Changed 12 years ago by olle

(In [4049]) Refs #706. Refs #717. Class/file action/hit/ListHits.java in client/servlet/ updated to create the hits table if not existing:

  1. Protected method void runMe() updated to call class ConfigureTableFactory2 to create the hits table with standard settings, in case not table exist.
Note: See TracTickets for help on using tickets.