diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/SearchWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/SearchWidget.java index 78b86368cc40d641f66644b599e5b019e7b155a7..60bf60fcb99a4e7025087aa84bd932be5da0859b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/SearchWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/SearchWidget.java @@ -26,6 +26,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.EnterKeyListener; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.ButtonWithLoadingMask; @@ -211,6 +214,11 @@ public final class SearchWidget extends LayoutContainer { return matchingEntitiesPanel.getId(); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.SEARCH, HelpPageAction.ACTION); + } }; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ShowRelatedDatasetsDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ShowRelatedDatasetsDialog.java index 6b23d6b4bfda7c00f693935389baeffae997868e..cb2fb7dfadfa0f5db6bfd443b0bb366fe2625f59 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ShowRelatedDatasetsDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ShowRelatedDatasetsDialog.java @@ -27,6 +27,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.RelatedDataSetGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataConfirmationDialog; @@ -65,6 +68,12 @@ public final class ShowRelatedDatasetsDialog extends { return "Related Data Sets"; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.RELATED_DATA_SETS, + HelpPageAction.BROWSE); + } }; DispatcherHelper.dispatchNaviEvent(tabFactory); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java index 5e057251e94a0db78486822c8cf75a935f872722..2ac7ed7562cc13bcab4f08b5a80477e85f54c1bf 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java @@ -21,6 +21,9 @@ import com.extjs.gxt.ui.client.widget.Component; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AuthorizationGroupGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.GroupGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.PersonGrid; @@ -113,6 +116,11 @@ public final class ComponentProvider { return SampleBrowserGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.SAMPLE, HelpPageAction.BROWSE); + } }; } @@ -131,6 +139,11 @@ public final class ComponentProvider { return MaterialBrowserGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.MATERIAL, HelpPageAction.BROWSE); + } }; } @@ -148,6 +161,11 @@ public final class ComponentProvider { return GroupGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.GROUP, HelpPageAction.BROWSE); + } }; } @@ -165,6 +183,12 @@ public final class ComponentProvider { return AuthorizationGroupGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.AUTHORIZATION_GROUPS, + HelpPageAction.BROWSE); + } }; } @@ -182,6 +206,11 @@ public final class ComponentProvider { return RoleAssignmentGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.ROLES, HelpPageAction.BROWSE); + } }; } @@ -199,6 +228,11 @@ public final class ComponentProvider { return PersonGrid.createBrowserId(); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.USERS, HelpPageAction.BROWSE); + } }; } @@ -217,6 +251,11 @@ public final class ComponentProvider { return SampleRegistrationPanel.ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.SAMPLE, HelpPageAction.REGISTER); + } }; } @@ -235,6 +274,12 @@ public final class ComponentProvider { return ExperimentRegistrationPanel.ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.EXPERIMENT, + HelpPageAction.REGISTER); + } }; } @@ -254,6 +299,11 @@ public final class ComponentProvider { return SampleBatchRegisterUpdatePanel.getId(update); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.SAMPLE, HelpPageAction.IMPORT); + } }; } @@ -274,6 +324,12 @@ public final class ComponentProvider { return SampleBatchRegisterUpdatePanel.getId(update); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.SAMPLE, + HelpPageAction.BATCH_UPDATE); + } }; } @@ -292,6 +348,11 @@ public final class ComponentProvider { return MaterialBatchRegistrationPanel.ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.MATERIAL, HelpPageAction.IMPORT); + } }; } @@ -309,6 +370,12 @@ public final class ComponentProvider { return VocabularyRegistrationForm.ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.VOCABULARY, + HelpPageAction.REGISTER); + } }; } @@ -327,6 +394,11 @@ public final class ComponentProvider { return ProjectRegistrationForm.createId(); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.PROJECT, HelpPageAction.REGISTER); + } }; } @@ -344,6 +416,11 @@ public final class ComponentProvider { return VocabularyGrid.GRID_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.VOCABULARY, HelpPageAction.BROWSE); + } }; } @@ -361,6 +438,11 @@ public final class ComponentProvider { return ProjectGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.PROJECT, HelpPageAction.BROWSE); + } }; } @@ -378,6 +460,11 @@ public final class ComponentProvider { return ExperimentBrowserGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.EXPERIMENT, HelpPageAction.BROWSE); + } }; } @@ -395,6 +482,12 @@ public final class ComponentProvider { return PropertyTypeGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.PROPERTY_TYPE, + HelpPageAction.BROWSE); + } }; } @@ -413,6 +506,12 @@ public final class ComponentProvider { return PropertyTypeRegistrationForm.ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.PROPERTY_TYPE, + HelpPageAction.REGISTER); + } }; } @@ -430,6 +529,11 @@ public final class ComponentProvider { return PropertyTypeAssignmentGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.ASSIGNMENT, HelpPageAction.BROWSE); + } }; } @@ -472,6 +576,12 @@ public final class ComponentProvider { return PropertyTypeAssignmentForm.createId(entityKind); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.ASSIGNMENT, + HelpPageAction.REGISTER); + } }; } @@ -489,6 +599,11 @@ public final class ComponentProvider { return DataSetSearchHitGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.DATA_SET, HelpPageAction.SEARCH); + } }; } @@ -506,6 +621,11 @@ public final class ComponentProvider { return SampleSearchHitGrid.SEARCH_BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.SAMPLE, HelpPageAction.SEARCH); + } }; } @@ -523,6 +643,12 @@ public final class ComponentProvider { return SampleTypeGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.SAMPLE_TYPE, HelpPageAction.BROWSE); + } + }; } @@ -540,6 +666,12 @@ public final class ComponentProvider { return MaterialTypeGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.MATERIAL_TYPE, + HelpPageAction.BROWSE); + } }; } @@ -557,6 +689,12 @@ public final class ComponentProvider { return ExperimentTypeGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.EXPERIMENT_TYPE, + HelpPageAction.BROWSE); + } }; } @@ -574,6 +712,12 @@ public final class ComponentProvider { return DataSetTypeGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.DATA_SET_TYPE, + HelpPageAction.BROWSE); + } }; } @@ -592,6 +736,11 @@ public final class ComponentProvider { return DataSetUploadForm.ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.DATA_SET, HelpPageAction.REGISTER); + } }; } @@ -609,6 +758,11 @@ public final class ComponentProvider { return FileFormatTypeGrid.BROWSER_ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.FILE_FORMAT, HelpPageAction.BROWSE); + } }; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DefaultTabItem.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DefaultTabItem.java index 85e7546329b40980037d1e84777a0d0f10f981cc..e9742b9e71a9fa713f9353387831e07ab4536fc7 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DefaultTabItem.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DefaultTabItem.java @@ -21,7 +21,6 @@ import com.extjs.gxt.ui.client.widget.ContentPanel; import com.extjs.gxt.ui.client.widget.Header; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction; @@ -42,8 +41,6 @@ public class DefaultTabItem implements ITabItem private final LastModificationStateUpdater lastModificationStateUpdaterOrNull; - private final HelpPageIdentifier helpPageIdentifier; - /** * Creates a tab with the specified {@link Component}. The tab is unaware of database * modifications and will not be automatically refreshed if changes occur. @@ -51,8 +48,7 @@ public class DefaultTabItem implements ITabItem public static ITabItem createUnaware(final String title, final Component component, boolean isCloseConfirmationNeeded) { - return new DefaultTabItem(title, component, null, null, isCloseConfirmationNeeded, - defaultHelpPageIdentifierForTitle(title)); + return new DefaultTabItem(title, component, null, null, isCloseConfirmationNeeded); } /** @@ -63,8 +59,7 @@ public class DefaultTabItem implements ITabItem boolean isCloseConfirmationNeeded) { String title = getTabTitle(component); - return new DefaultTabItem(title, component, null, null, isCloseConfirmationNeeded, - defaultHelpPageIdentifierForTitle(title)); + return new DefaultTabItem(title, component, null, null, isCloseConfirmationNeeded); } private static String getTabTitle(ContentPanel contentPanel) @@ -101,67 +96,7 @@ public class DefaultTabItem implements ITabItem LastModificationStateUpdater updater = new LastModificationStateUpdater(viewContext, modificationObserver); return new DefaultTabItem(title, component, updater, disposerActionOrNull, - isCloseConfirmationNeeded, defaultHelpPageIdentifierForTitle(title)); - } - - /** - * Compute a help page identifier based on the title. This should work in many cases. - */ - private static HelpPageIdentifier defaultHelpPageIdentifierForTitle(String title) - { - String titleCapitalized = title.toUpperCase(); - String domainPrefixes[] = - { "DATA SET", "PROPERTY TYPE", "PROPERTY TYPES", "SAMPLE", "EXPERIMENT", - "MATERIAL", "GROUP", "PROJECT", "VOCABULARY", "FILE TYPE", - "AUTHORIZATION" }; - String actionPrefixes[] = - { "BROWSE", "REGISTR", "IMPORT", "UPLOAD" }; - - String domainString = null; - String actionString = null; - HelpPageIdentifier.HelpPageDomain domain = null; - HelpPageIdentifier.HelpPageAction action = null; - - // Try to recognize the domain from the title - for (String prefix : domainPrefixes) - { - if (titleCapitalized.startsWith(prefix)) - { - domainString = prefix; - break; - } - } - - if (domainString != null) - { - domainString = domainString.replace(' ', '_'); - // correct this small anomaly - if ("PROPERTY_TYPES".equals(domainString)) - domainString = "PROPERTY_TYPE"; - domain = HelpPageIdentifier.HelpPageDomain.valueOf(domainString); - - String remaining = titleCapitalized.substring(domainString.length() + 1); - // Try to recognize the action from the title - for (String prefix : actionPrefixes) - { - if (remaining.startsWith(prefix)) - { - actionString = prefix; - break; - } - } - } - - if (actionString != null) - { - actionString = actionString.replace(' ', '_'); - // correct this small anomaly - if ("REGISTR".equals(actionString)) - actionString = "REGISTER"; - action = HelpPageIdentifier.HelpPageAction.valueOf(actionString); - } - - return new HelpPageIdentifier(domain, action); + isCloseConfirmationNeeded); } private static IDelegatedAction createDisposer(final IDisposableComponent disposableComponent) @@ -177,8 +112,7 @@ public class DefaultTabItem implements ITabItem private DefaultTabItem(final String initialTitle, final Component component, LastModificationStateUpdater lastModificationStateUpdaterOrNull, - IDelegatedAction disposerActionOrNull, boolean isCloseConfirmationNeeded, - HelpPageIdentifier helpPageIdentifier) + IDelegatedAction disposerActionOrNull, boolean isCloseConfirmationNeeded) { assert initialTitle != null : "Unspecified title."; assert component != null : "Unspecified component."; @@ -190,7 +124,6 @@ public class DefaultTabItem implements ITabItem // relevant moments. // this.isCloseConfirmationNeeded = isCloseConfirmationNeeded; this.isCloseConfirmationNeeded = false; - this.helpPageIdentifier = helpPageIdentifier; } // @@ -211,14 +144,6 @@ public class DefaultTabItem implements ITabItem return isCloseConfirmationNeeded; } - /** - * @return The unique identifier for the help page for this tab. - */ - public HelpPageIdentifier getHelpPageIdentifier() - { - return helpPageIdentifier; - } - public void onActivate() { if (lastModificationStateUpdaterOrNull != null) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ITabItem.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ITabItem.java index 60a3ca9fee6551fce7d79909b6e75b67594433c7..91c29083bc1773fcda8503f69ce4787af76e123a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ITabItem.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ITabItem.java @@ -19,8 +19,6 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.framework import com.extjs.gxt.ui.client.widget.Component; import com.extjs.gxt.ui.client.widget.TabItem; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; - /** * An interface which contains everything to create a {@link TabItem}. * @@ -33,11 +31,6 @@ public interface ITabItem */ public TabTitleUpdater getTabTitleUpdater(); - /** - * Returns the identifier the help page for this tab item. - */ - public HelpPageIdentifier getHelpPageIdentifier(); - /** * Returns the {@link Component} which composes this tab item. */ diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ITabItemFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ITabItemFactory.java index ef2ec126613f1db2cdce901f833548766df61f6a..60f40b7955d7138a4b5a1310b7f2a6a53f138d55 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ITabItemFactory.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ITabItemFactory.java @@ -16,6 +16,8 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.framework; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; + /** * Creates {@link ITabItem} which consist of a description and a content of the tab.<br> * Allows to create a tab in a moment when it is needed. @@ -36,4 +38,10 @@ public interface ITabItemFactory * </p> */ public String getId(); + + /** + * Returns the identifier of the help page for this tab item. + */ + public HelpPageIdentifier getHelpPageIdentifier(); + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/MainTabPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/MainTabPanel.java index bb95db6ce7c036fe496c1bcadb6ed33964d3f302..03b8841de90b5f3971b796d2ffc33f402145f111 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/MainTabPanel.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/MainTabPanel.java @@ -82,7 +82,7 @@ public class MainTabPanel extends TabPanel layoutContainer.addText(createWelcomeText()); final MainTabItem intro = new MainTabItem(DefaultTabItem.createUnaware(" ", layoutContainer, false), - layoutContainerId); + layoutContainerId, null); intro.setClosable(false); return intro; } @@ -115,11 +115,13 @@ public class MainTabPanel extends TabPanel setSelection(tab); } else { - String tabId = tabItemFactory.getId(); + final String tabId = tabItemFactory.getId(); // Note that if not set, is then automatically generated. So this is why we test for // 'ID_PREFIX'. We want the user to set an unique id. assert tabId.startsWith(GenericConstants.ID_PREFIX) : "Unspecified component id."; - final MainTabItem newTab = new MainTabItem(tabItemFactory.create(), tabId); + final HelpPageIdentifier helpId = tabItemFactory.getHelpPageIdentifier(); + assert helpId != null : "Unspecified help identifier"; + final MainTabItem newTab = new MainTabItem(tabItemFactory.create(), tabId, helpId); add(newTab); openTabs.put(tabId, newTab); setSelection(newTab); @@ -163,6 +165,8 @@ public class MainTabPanel extends TabPanel HelpPageIdentifier helpPageId = selectedTab.getHelpPageIdentifier(); url.addParameter(GenericConstants.HELP_REDIRECT_PAGE_TITLE_KEY, helpPageId .getHelpPageTitle(viewContext)); + url.addParameter(GenericConstants.HELP_REDIRECT_SPECIFIC_KEY, Boolean + .toString(helpPageId.isSpecific())); WindowUtils.openWindow(URL.encode(url.toString())); } }); @@ -181,10 +185,14 @@ public class MainTabPanel extends TabPanel private final String idPrefix; - public MainTabItem(final ITabItem tabItem, final String idPrefix) + private final HelpPageIdentifier helpPageIdentifier; + + public MainTabItem(final ITabItem tabItem, final String idPrefix, + final HelpPageIdentifier helpPageIdentifier) { this.tabItem = tabItem; this.idPrefix = idPrefix; + this.helpPageIdentifier = helpPageIdentifier; setId(idPrefix + TAB_SUFFIX); setClosable(true); setLayout(new FitLayout()); @@ -202,7 +210,7 @@ public class MainTabPanel extends TabPanel public HelpPageIdentifier getHelpPageIdentifier() { - return tabItem.getHelpPageIdentifier(); + return helpPageIdentifier; } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/help/HelpPageIdentifier.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/help/HelpPageIdentifier.java index 871e5dc10f558fd6b61d4b63ec0836e98007d73d..cf3c443b3ae0f6ecd84ad1f89a5f9844bfbd2231 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/help/HelpPageIdentifier.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/help/HelpPageIdentifier.java @@ -39,7 +39,11 @@ public class HelpPageIdentifier public static enum HelpPageDomain { // base domains (as in menu) - EXPERIMENT, SAMPLE, DATA_SET, MATERIAL, ADMINISTRATION, + EXPERIMENT, SAMPLE, DATA_SET, MATERIAL, ADMINISTRATION, SEARCH, + + // entity types + EXPERIMENT_TYPE(EXPERIMENT), SAMPLE_TYPE(SAMPLE), DATA_SET_TYPE(DATA_SET), MATERIAL_TYPE( + MATERIAL), // administration subdomains GROUP(ADMINISTRATION), @@ -59,7 +63,7 @@ public class HelpPageIdentifier USERS(AUTHORIZATION), ROLES(AUTHORIZATION), AUTHORIZATION_GROUPS(AUTHORIZATION), // other base domains - CHANGE_USER_SETTINGS; + RELATED_DATA_SETS, ATTACHMENTS, CHANGE_USER_SETTINGS, EXPERIMENT_STATISTICS; // could be used to create a hierarchy of help pages private HelpPageDomain superDomainOrNull; @@ -107,18 +111,27 @@ public class HelpPageIdentifier */ public static enum HelpPageAction { - BROWSE, REGISTER, IMPORT, UPLOAD, EDIT, SEARCH, ACTION + BROWSE, VIEW, REGISTER, IMPORT, EDIT, BATCH_UPDATE, REPORT, SEARCH, ACTION } private HelpPageDomain domain; private HelpPageAction action; + private boolean specific; + + private String specificPageTitle; + /** - * Create a new help page identifier for the given domain and action. - * - * @param domain - * @param action + * Create a specific help page identifier with the given page title. + */ + public static HelpPageIdentifier createSpecific(String pageTitle) + { + return new HelpPageIdentifier(pageTitle); + } + + /** + * Creates a generic help page identifier for the given domain and action. */ public HelpPageIdentifier(HelpPageDomain domain, HelpPageAction action) { @@ -126,27 +139,47 @@ public class HelpPageIdentifier assert action != null; this.domain = domain; this.action = action; + this.specific = false; } - public HelpPageDomain getHelpPageDomain() + private HelpPageIdentifier(String pageTitle) { + this.specific = true; + this.specificPageTitle = pageTitle; + } + + private HelpPageDomain getHelpPageDomain() + { + assert domain != null; return domain; } - public HelpPageAction getHelpPageAction() + private HelpPageAction getHelpPageAction() { + assert action != null; return action; } + public boolean isSpecific() + { + return specific; + } + private static char PAGE_NAME_KEY_SEPARATOR = '.'; public String getHelpPageTitle(IMessageProvider messageProvider) { - final String messageKey = getHelpPageTitleKey(); - // If there is no message for the key return the key as the title, - // otherwise return the message. - return messageProvider.containsKey(messageKey) ? messageProvider.getMessage(messageKey) - : messageKey; // TODO 2010-01-12, Piotr Buczek: is it better to return null? + if (specific) + { + return specificPageTitle; + } else + { + final String messageKey = getHelpPageTitleKey(); + // If there is no message for the key return the key as the title, + // otherwise return the message. + return messageProvider.containsKey(messageKey) ? messageProvider.getMessage(messageKey) + : messageKey; // TODO 2010-01-12, Piotr Buczek: is it better to return null? + } } @Private @@ -162,4 +195,5 @@ public class HelpPageIdentifier return messageKeyBuilder.toString(); } + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AuthorizationGroupGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AuthorizationGroupGrid.java index 21e1876374e4f295c8be068725f1db8579960794..14af138e3cf04e56509aec6d67f266e81cae103c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AuthorizationGroupGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AuthorizationGroupGrid.java @@ -35,6 +35,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind; @@ -212,6 +215,12 @@ public class AuthorizationGroupGrid extends AbstractSimpleBrowserGrid<Authorizat { return PersonGrid.createBrowserId(group); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.AUTHORIZATION_GROUPS, + HelpPageAction.VIEW); + } }; DispatcherHelper.dispatchNaviEvent(tabFactory); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/attachment/AttachmentBrowser.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/attachment/AttachmentBrowser.java index bb7ee8f66f397eb02e6a295de6fb5aa2b7729b44..295e66fe0e974d7a601e5e904bc9c1be775915b3 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/attachment/AttachmentBrowser.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/attachment/AttachmentBrowser.java @@ -50,6 +50,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.AttachmentVersionModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames; @@ -307,6 +310,11 @@ public class AttachmentBrowser extends AbstractSimpleBrowserGrid<AttachmentVersi { return helper.createTabId(); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.ATTACHMENTS, HelpPageAction.VIEW); + } }; DispatcherHelper.dispatchNaviEvent(tabFactory); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetReportGenerator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetReportGenerator.java index 4d1255831e49d556be7b058b3d65be250f35988d..47a210d2eea614af9de80a4dd85aae9c63a6bdee 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetReportGenerator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetReportGenerator.java @@ -26,6 +26,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DisplayedOrSelectedDatasetCriteria; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableModelReference; @@ -82,6 +85,12 @@ public class DataSetReportGenerator { return DataSetReporterGrid.createId(tableModelReference.getResultSetKey()); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.DATA_SET, + HelpPageAction.REPORT); + } }; DispatcherHelper.dispatchNaviEvent(tabFactory); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ProjectSelectionTreeGridContainer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ProjectSelectionTreeGridContainer.java index 0b34faef21a8a4367c096f46b0623cc79df6ce55..0a2bddc0dd736ac4d17925715dc313e1154c310d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ProjectSelectionTreeGridContainer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ProjectSelectionTreeGridContainer.java @@ -59,6 +59,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDatabaseModificationObserver; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.NonHierarchicalBaseModelData; import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer; @@ -317,6 +320,11 @@ public final class ProjectSelectionTreeGridContainer extends LayoutContainer imp { return AbstractViewer.getTitle(viewContext, Dict.PROJECT, project); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.PROJECT, HelpPageAction.VIEW); + } }; DispatcherHelper.dispatchNaviEvent(tabFactory); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/project/ProjectGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/project/ProjectGrid.java index 0b7f67a6125929ad2d6293bc4a98627a33a608dd..ced4ead7882846c6a189c392f5c3882bb798c35c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/project/ProjectGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/project/ProjectGrid.java @@ -36,6 +36,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractRegistrationForm; @@ -212,6 +215,11 @@ public class ProjectGrid extends AbstractSimpleBrowserGrid<Project> { return AbstractViewer.getTitle(viewContext, Dict.PROJECT, project); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.PROJECT, HelpPageAction.VIEW); + } }; } else { @@ -234,6 +242,11 @@ public class ProjectGrid extends AbstractSimpleBrowserGrid<Project> return AbstractRegistrationForm.getEditTitle(viewContext, Dict.PROJECT, project); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.PROJECT, HelpPageAction.EDIT); + } }; } DispatcherHelper.dispatchNaviEvent(tabFactory); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyGrid.java index a65c601b700b4be8f56d1455ff6f6ee4debf85ec..09a45204d0ba0825b15de5b5a47274ac49deae54 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyGrid.java @@ -39,6 +39,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind; @@ -228,6 +231,11 @@ public class VocabularyGrid extends AbstractSimpleBrowserGrid<Vocabulary> { return VocabularyTermGrid.createBrowserId(vocabulary); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.VOCABULARY, HelpPageAction.VIEW); + } }; DispatcherHelper.dispatchNaviEvent(tabFactory); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/HelpRedirectServlet.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/HelpRedirectServlet.java index 8b0cd6de038f3ea3d048cee6029088b21d676cd0..03e41e88022260d5b4e1f46c5a6c5564ef16de85 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/HelpRedirectServlet.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/HelpRedirectServlet.java @@ -70,7 +70,6 @@ public class HelpRedirectServlet extends AbstractController protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - System.err.println("got: " + getHelpPageAbsoluteURLForRequest(request)); response.sendRedirect(getHelpPageAbsoluteURLForRequest(request)); return null; } @@ -79,12 +78,7 @@ public class HelpRedirectServlet extends AbstractController { final String isSpecificString = request.getParameter(GenericConstants.HELP_REDIRECT_SPECIFIC_KEY); - boolean isSpecific = false; - if (isSpecificString != null) - { - final String isSpecificCompareString = isSpecificString.toUpperCase(); - isSpecific = "TRUE".equals(isSpecificCompareString); - } + boolean isSpecific = new Boolean(isSpecificString); return isSpecific; } @@ -142,7 +136,6 @@ public class HelpRedirectServlet extends AbstractController { final String helpPageTitle = request.getParameter(GenericConstants.HELP_REDIRECT_PAGE_TITLE_KEY); - // helpPageTitle = helpPageTitle.replace("_", "+"); return helpPageTitle; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/ClientPluginFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/ClientPluginFactory.java index caf810f297976f689b610a149558351f9948274f..560d6832f5b3407a23a6d6a089bc5203fe9eeac7 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/ClientPluginFactory.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/ClientPluginFactory.java @@ -30,6 +30,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DummyComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.ClientPluginAdapter; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPlugin; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPluginFactory; @@ -126,6 +129,11 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<IDemo { return DemoSampleViewer.createId(sampleId); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.SAMPLE, HelpPageAction.VIEW); + } }; } @@ -161,6 +169,11 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<IDemo { return DummyComponent.ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.SAMPLE, HelpPageAction.EDIT); + } }; } @@ -188,6 +201,12 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<IDemo { return DummyComponent.ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.EXPERIMENT, + HelpPageAction.VIEW); + } }; } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/TopMenuItemDemoModuleMenu.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/TopMenuItemDemoModuleMenu.java index 28e3fe60bcab739d168e7dfa033a94a8a616c05e..f9249f3608bd0f2a2fe85321399a8014e4fada4d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/TopMenuItemDemoModuleMenu.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/TopMenuItemDemoModuleMenu.java @@ -23,6 +23,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DefaultTabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.ActionMenu; import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.IActionMenuItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TopMenuItem; @@ -58,6 +59,11 @@ public class TopMenuItemDemoModuleMenu extends TopMenuItem { return StatisticsWidget.ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return HelpPageIdentifier.createSpecific("Experiment Statistics"); + } } public static enum ActionMenuKind implements IActionMenuItem diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java index 0c109c8b6e7a3de90f3b6da51314e8bc45a4d669..21e58bf5158cbfd7972ab1f5471ef4aeed0c0a42 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java @@ -29,6 +29,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DefaultTabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.ClientPluginAdapter; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPlugin; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPluginFactory; @@ -154,6 +157,11 @@ public final class ClientPluginFactory extends { return GenericSampleViewer.createId(identifiable); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.SAMPLE, HelpPageAction.VIEW); + } }; } @@ -191,6 +199,11 @@ public final class ClientPluginFactory extends { return GenericSampleEditForm.createId(identifiable, EntityKind.SAMPLE); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.SAMPLE, HelpPageAction.EDIT); + } }; } @@ -224,6 +237,11 @@ public final class ClientPluginFactory extends { return GenericMaterialViewer.createId(techId); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.MATERIAL, HelpPageAction.VIEW); + } }; } @@ -245,6 +263,11 @@ public final class ClientPluginFactory extends { return GenericMaterialEditForm.createId(identifiable, EntityKind.MATERIAL); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.MATERIAL, HelpPageAction.EDIT); + } }; } } @@ -274,6 +297,12 @@ public final class ClientPluginFactory extends { return GenericExperimentViewer.createId(identifiable); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.EXPERIMENT, + HelpPageAction.VIEW); + } }; } @@ -301,7 +330,14 @@ public final class ClientPluginFactory extends public String getId() { - return GenericDataSetEditForm.createId(identifiable, EntityKind.EXPERIMENT); + return GenericExperimentEditForm.createId(identifiable, + EntityKind.EXPERIMENT); + } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.EXPERIMENT, + HelpPageAction.EDIT); } }; } @@ -327,6 +363,11 @@ public final class ClientPluginFactory extends { return GenericDataSetViewer.createId(identifiable); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.DATA_SET, HelpPageAction.VIEW); + } }; } @@ -347,6 +388,11 @@ public final class ClientPluginFactory extends { return GenericDataSetEditForm.createId(identifiable, EntityKind.DATA_SET); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return new HelpPageIdentifier(HelpPageDomain.DATA_SET, HelpPageAction.EDIT); + } }; } } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ClientPluginFactory.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ClientPluginFactory.java index 24b596658eb929e821895d86df94eb52735466a5..316a52d8ab6aafd3f441da7182de6f087ce08fef 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ClientPluginFactory.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ClientPluginFactory.java @@ -29,6 +29,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DummyComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPlugin; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IModule; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifiable; @@ -110,6 +111,11 @@ public class ClientPluginFactory extends { return "phosphonetx-viewer-" + sampleId; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return HelpPageIdentifier.createSpecific("PhosphoNetX Sample Viewer"); + } }; } @@ -144,6 +150,11 @@ public class ClientPluginFactory extends { return DummyComponent.ID; } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return HelpPageIdentifier.createSpecific("PhosphoNetX Sample Edition"); + } }; } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ProteinViewer.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ProteinViewer.java index edbdfcf35728791fc1dad1924eefd70020561b81..9396c0dd122a78c97e42ec931927b1fb81bfc9d1 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ProteinViewer.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ProteinViewer.java @@ -38,6 +38,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDatabaseModificationObserver; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractViewer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.property.PropertyGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.StringUtils; @@ -92,6 +93,11 @@ public class ProteinViewer extends AbstractViewer<IEntityInformationHolder> impl Dict.PROTEIN_IN_EXPERIMENT_TAB_LABEL, description, identifier), c, viewContext, false); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return HelpPageIdentifier.createSpecific("Protein Viewer"); + } }; } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/QueryMenu.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/QueryMenu.java index 8c32c533cfe5e17ddda8d1c40e6f4e83fec36a16..19ad724e358eed5b151493f91712647e55263a95 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/QueryMenu.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/QueryMenu.java @@ -23,6 +23,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DefaultTabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.ActionMenu; import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.IActionMenuItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TopMenuItem; @@ -31,14 +32,12 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMess import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.IPhosphoNetXClientServiceAsync; /** - * - * * @author Franz-Josef Elmer */ public class QueryMenu extends TopMenuItem { public static final String ID = GenericConstants.ID_PREFIX + "-phosphonetx-"; - + private static enum ActionMenuKind implements IActionMenuItem { ALL_PROTEINS_OF_AN_EXPERIMENT() @@ -58,8 +57,7 @@ public class QueryMenu extends TopMenuItem { return RawDataSampleGrid.create(viewContext); } - } - ; + }; public String getMenuId() { @@ -70,12 +68,12 @@ public class QueryMenu extends TopMenuItem { return messageProvider.getMessage(this.name() + "_menu_item"); } - + String getTabLabelKey() { return this.name() + "_tab_label"; } - + ActionMenu createActionMenu(final IViewContext<IPhosphoNetXClientServiceAsync> viewContext) { return new ActionMenu(this, viewContext, new ITabItemFactory() @@ -91,17 +89,23 @@ public class QueryMenu extends TopMenuItem return DefaultTabItem.create(menuItemText, createComponent(viewContext), viewContext); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return HelpPageIdentifier.createSpecific(getMenuText(viewContext)); + } }); } - - abstract IDisposableComponent createComponent(IViewContext<IPhosphoNetXClientServiceAsync> viewContext); + + abstract IDisposableComponent createComponent( + IViewContext<IPhosphoNetXClientServiceAsync> viewContext); } - + public QueryMenu(IViewContext<IPhosphoNetXClientServiceAsync> viewContext) { super(viewContext.getMessage(Dict.QUERY_MENU_TITLE)); setIconStyle(TopMenuItem.ICON_STYLE); - + Menu submenu = new Menu(); for (ActionMenuKind actionMenuKind : ActionMenuKind.values()) { diff --git a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/DropboxProcessingPluginYeastX.java b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/DropboxProcessingPluginYeastX.java index 723c350b0a643f2978a4b471a73ef90e7dfa4111..abafb0f0733af3765692062dc53504a6f0a13efa 100644 --- a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/DropboxProcessingPluginYeastX.java +++ b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/DropboxProcessingPluginYeastX.java @@ -24,7 +24,7 @@ import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.AbstractDrop import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; /** - * A dropbox processing plugin that gets its dropbox directory from properties. + * A dropbox processing plugin that gets its dropbox directory from properties. * * @author Tomasz Pylak */ @@ -34,8 +34,6 @@ public class DropboxProcessingPluginYeastX extends AbstractDropboxProcessingPlug private static final long serialVersionUID = 1L; - private final String description; - public DropboxProcessingPluginYeastX() { this(null, null); @@ -44,12 +42,6 @@ public class DropboxProcessingPluginYeastX extends AbstractDropboxProcessingPlug public DropboxProcessingPluginYeastX(Properties properties, File storeRoot) { super(properties, storeRoot, new DatasetDropboxHandler(properties)); - if (properties != null && properties.get(DROPBOX_INCOMING_DIRECTORY_PROPERTY) != null) - { - description = "COPYTO " + properties.get(DROPBOX_INCOMING_DIRECTORY_PROPERTY); - } else { - description = "COPYTO <unknown location>"; - } } private static final class DatasetDropboxHandler extends AbstractDatasetDropboxHandlerYeastX @@ -82,8 +74,4 @@ public class DropboxProcessingPluginYeastX extends AbstractDropboxProcessingPlug } } - public String getDescription() - { - return description; - } } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java index 0cff7e845cf0a345be0d3068f22896c117c6d61a..d9794f6a26d3b59646ddab63d872acbb6a11e153 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java @@ -29,6 +29,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DefaultTabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPlugin; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPluginFactory; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractViewer; @@ -133,6 +134,11 @@ public final class ClientPluginFactory extends { return GeneMaterialViewer.createId(materialId); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return HelpPageIdentifier.createSpecific("Gene Material Viewer"); + } }; } } @@ -161,6 +167,11 @@ public final class ClientPluginFactory extends final TechId sampleId = TechId.create(identifiable); return PlateSampleViewer.createId(sampleId); } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return HelpPageIdentifier.createSpecific("Plate Sample Viewer"); + } }; } }