From cc3c8a094eb0f3f150dba108cb3de8dee536d58d Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Tue, 16 Feb 2010 09:05:08 +0000 Subject: [PATCH] [LMS-1364] top menu extension for modules SVN: 14751 --- .../client/web/client/application/Dict.java | 4 +- .../web/client/application/menu/TopMenu.java | 53 +++++++++++++++++-- .../DefaultClientPluginFactoryProvider.java | 13 +++-- .../client/application/plugin/IModule.java | 33 ++++-------- .../application/ClientPluginFactory.java | 13 +++-- .../client/application/module/DemoModule.java | 29 +++------- .../module/TopMenuItemDemoModuleMenu.java | 6 +-- .../client/web/client/application/Dict.java | 33 ++++++++++++ .../web/client/application/QueryModule.java | 34 ++++-------- .../client/web/public/query-dictionary.js | 7 +++ .../cisd/openbis/public/common-dictionary.js | 4 +- .../client/application/PhosphoNetXModule.java | 32 +++-------- .../web/client/application/QueryMenu.java | 23 ++++---- 13 files changed, 165 insertions(+), 119 deletions(-) create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/Dict.java diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java index 8a7b1109b4e..5161a0dc730 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java @@ -500,6 +500,8 @@ public abstract class Dict public static final String MENU_SAMPLE = "menu_sample"; + public static final String MENU_MODULES = "menu_modules"; + public static final String MENU_COMPUTE = "menu_compute"; // @@ -742,7 +744,7 @@ public abstract class Dict public static final String RESET_USER_SETTINGS_CONFIRMATION_MSG = "reset_user_settings_confirmation_msg"; - + public static final String REAL_NUMBER_FORMATING_FIELDS = "real_number_formating_fields"; public static final String SCIENTIFIC_FORMATING = "scientific_formating"; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java index ea3e1c4e877..3efc2220bd9 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java @@ -16,9 +16,12 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.menu; +import java.util.List; + import com.extjs.gxt.ui.client.widget.LayoutContainer; -import com.extjs.gxt.ui.client.widget.WidgetComponent; import com.extjs.gxt.ui.client.widget.layout.FlowLayout; +import com.extjs.gxt.ui.client.widget.menu.Menu; +import com.extjs.gxt.ui.client.widget.menu.MenuItem; import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem; import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem; import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; @@ -113,10 +116,14 @@ public class TopMenu extends LayoutContainer toolBar.add(new DataSetMenu(viewContext, componentProvider)); toolBar.add(new MaterialMenu(viewContext, componentProvider)); toolBar.add(new AdministrationMenu(viewContext, componentProvider)); + // toolBar.add(new ModulesMenu(viewContext, viewContext.getClientPluginFactoryProvider())); - for (IModule m : viewContext.getClientPluginFactoryProvider().getModules()) + TopMenuItem modulesMenuOrNull = + tryCreateModulesMenu(viewContext.getClientPluginFactoryProvider().getModules()); + if (modulesMenuOrNull != null) { - toolBar.add(new WidgetComponent(m.getMenu())); + simplifyMenuIfNecessary(modulesMenuOrNull); + toolBar.add(modulesMenuOrNull); } toolBar.add(new FillToolItem()); @@ -126,6 +133,46 @@ public class TopMenu extends LayoutContainer toolBar.add(new LoggedUserMenu(viewContext, componentProvider)); } + private TopMenuItem tryCreateModulesMenu(List<IModule> modules) + { + TopMenuItem modulesMenu = new TopMenuItem("Utilities"); + + Menu submenu = new Menu(); + for (IModule module : modules) + { + for (MenuItem menuItem : module.getMenuItems()) + { + submenu.add(menuItem); + } + } + if (submenu.getItems().size() == 0) + { + return null; + } + modulesMenu.setMenu(submenu); + return modulesMenu; + } + + /** + * If there is only one item in the specified <var>topMenu</var> and that item has a sub menu + * than 'pull up' this one item into top menu. + */ + private void simplifyMenuIfNecessary(TopMenuItem topMenu) + { + if (topMenu.getMenu().getItemCount() == 1) + { + MenuItem menuItem = (MenuItem) topMenu.getMenu().getItem(0); + if (menuItem.getSubMenu() != null) + { + topMenu.setText(menuItem.getText()); + topMenu.setMenu(menuItem.getSubMenu()); + } + } else + { + return; // nothing to simplify + } + } + @Override protected void onRender(final Element parent, final int pos) { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/DefaultClientPluginFactoryProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/DefaultClientPluginFactoryProvider.java index b85bfabd15a..f47aed73818 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/DefaultClientPluginFactoryProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/DefaultClientPluginFactoryProvider.java @@ -18,8 +18,10 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; @@ -35,6 +37,8 @@ import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.Cli */ public class DefaultClientPluginFactoryProvider implements IClientPluginFactoryProvider { + private final Set<IClientPluginFactory> pluginFactories = new HashSet<IClientPluginFactory>(); + private final Map<EntityKindAndTypeCode, IClientPluginFactory> pluginFactoryByEntityKindAndTypeCode = new HashMap<EntityKindAndTypeCode, IClientPluginFactory>(); @@ -51,14 +55,17 @@ public class DefaultClientPluginFactoryProvider implements IClientPluginFactoryP final IViewContext<ICommonClientServiceAsync> originalViewContext) { // Automatically generated part - START - registerPluginFactory(new ch.systemsx.cisd.openbis.plugin.demo.client.web.client.application.ClientPluginFactory(originalViewContext)); - registerPluginFactory(new ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.ClientPluginFactory(originalViewContext)); + registerPluginFactory(new ch.systemsx.cisd.openbis.plugin.demo.client.web.client.application.ClientPluginFactory( + originalViewContext)); + registerPluginFactory(new ch.systemsx.cisd.openbis.plugin.query.client.web.client.application.ClientPluginFactory( + originalViewContext)); // Automatically generated part - END } protected final void registerPluginFactory(final IClientPluginFactory pluginFactory) { assert pluginFactory != null : "Unspecified client plugin factory."; + pluginFactories.add(pluginFactory); for (final EntityKind entityKind : EntityKind.values()) { for (final String entityType : pluginFactory.getEntityTypeCodes(entityKind)) @@ -100,7 +107,7 @@ public class DefaultClientPluginFactoryProvider implements IClientPluginFactoryP public final List<IModule> getModules() { ArrayList<IModule> modules = new ArrayList<IModule>(); - for (IClientPluginFactory factory : pluginFactoryByEntityKindAndTypeCode.values()) + for (IClientPluginFactory factory : pluginFactories) { IModule m = factory.tryGetModule(); if (m != null) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/IModule.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/IModule.java index 7fb20e77dd6..cea18e85e01 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/IModule.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/IModule.java @@ -18,15 +18,12 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin; import java.util.List; -import com.extjs.gxt.ui.client.widget.Component; +import com.extjs.gxt.ui.client.widget.menu.MenuItem; import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.ui.Widget; - -import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TopMenuItem; /** * Plugin that does not depend on entity kind and type. All methods except - * {@link #initialize(AsyncCallback)} is invoked after invocation of the call back of the + * {@link #initialize(AsyncCallback)} are invoked after invocation of the call back of the * initialization method. * * @author Izabela Adamczyk @@ -39,25 +36,15 @@ public interface IModule * {@link AsyncCallback#onFailure(Throwable)} is invoked. */ void initialize(AsyncCallback<Void> callback); - - /** - * Returns a widget that will be used as a top menu element. - * <p> - * Note that although any widget may be returned by the method, the height of the top menu will - * not be adjusted automatically, so make sure that your widget is not too high. - * </p> - * <p> - * {@link TopMenuItem} should be used for standard menus. - * </p> - */ - Widget getMenu(); - - String getModuleName(); - - String getModuleDescription(); + + /** + * Returns user friendly name of the module. + */ + String getName(); /** - * Returns a list with menu items. The list empty if this module isn't applicable. + * Returns a list with menu items (they can be complex submenus or single menu items). The list + * should be empty if this module isn't applicable. */ - List<Component> getMenuItems(); + List<? extends MenuItem> getMenuItems(); } 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 0126cfc31e4..de4de73face 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 @@ -36,12 +36,14 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpP 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; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IModule; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifiable; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; +import ch.systemsx.cisd.openbis.plugin.demo.client.web.client.application.module.DemoModule; import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.GenericViewContext; import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.sample.GenericSampleRegistrationForm; @@ -216,9 +218,10 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<DemoV return DefaultTabItem.createUnaware(identifier, component, false); } - // @Override - // public IModule tryGetModule() - // { - // return new DemoModule(getViewContext()); - // } + // FIXME + @Override + public IModule tryGetModule() + { + return new DemoModule(getViewContext()); + } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/DemoModule.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/DemoModule.java index 5bba0a7335b..775abbc30ed 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/DemoModule.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/DemoModule.java @@ -16,15 +16,16 @@ package ch.systemsx.cisd.openbis.plugin.demo.client.web.client.application.module; +import java.util.Collections; import java.util.List; -import com.extjs.gxt.ui.client.widget.Component; +import com.extjs.gxt.ui.client.widget.menu.MenuItem; import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.ui.Widget; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IModule; import ch.systemsx.cisd.openbis.plugin.demo.client.web.client.IDemoClientServiceAsync; +import ch.systemsx.cisd.openbis.plugin.demo.client.web.client.application.Dict; /** * Simple demo module. @@ -46,34 +47,20 @@ public class DemoModule implements IModule return viewContext; } - public Widget getMenu() + public List<? extends MenuItem> getMenuItems() { - return new TopMenuItemDemoModuleMenu(getViewContext()); + return Collections.singletonList(new TopMenuItemDemoModuleMenu(getViewContext())); // Uncomment to see customized top menu . // return new CustomizedWidgetDemoModuleMenu(getViewContext()); } - public List<Component> getMenuItems() + public String getName() { - // TODO Auto-generated method stub - return null; - } - - public String getModuleDescription() - { - // TODO Auto-generated method stub - return null; - } - - public String getModuleName() - { - // TODO Auto-generated method stub - return null; + return viewContext.getMessage(Dict.MODULE_MENU_TITLE); } public void initialize(AsyncCallback<Void> callback) { - // TODO Auto-generated method stub - + callback.onSuccess(null); } } 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 f9249f3608b..4e118449f35 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 @@ -17,6 +17,7 @@ package ch.systemsx.cisd.openbis.plugin.demo.client.web.client.application.module; import com.extjs.gxt.ui.client.widget.menu.Menu; +import com.extjs.gxt.ui.client.widget.menu.MenuItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; @@ -26,7 +27,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. 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; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider; import ch.systemsx.cisd.openbis.plugin.demo.client.web.client.IDemoClientServiceAsync; import ch.systemsx.cisd.openbis.plugin.demo.client.web.client.application.Dict; @@ -36,7 +36,7 @@ import ch.systemsx.cisd.openbis.plugin.demo.client.web.client.application.Dict; * * @author Izabela Adamczyk */ -public class TopMenuItemDemoModuleMenu extends TopMenuItem +public class TopMenuItemDemoModuleMenu extends MenuItem { public static final String ID = GenericConstants.ID_PREFIX; @@ -89,6 +89,6 @@ public class TopMenuItemDemoModuleMenu extends TopMenuItem Menu submenu = new Menu(); submenu.add(new ActionMenu(ActionMenuKind.STATISTICS, viewContext, new ExperimentStatisticsTabItemFactory(viewContext))); - setMenu(submenu); + setSubMenu(submenu); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/Dict.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/Dict.java new file mode 100644 index 00000000000..18a98c71ac6 --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/Dict.java @@ -0,0 +1,33 @@ +/* + * Copyright 2008 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.query.client.web.client.application; + +/** + * An {@link ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict} extension for + * <i>query</i> specific message keys. + * + * @author Christian Ribeaud + */ +public final class Dict extends ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict +{ + public static final String MODULE_MENU_TITLE = "module_menu_title"; + + private Dict() + { + // Can not be instantiated. + } +} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QueryModule.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QueryModule.java index 7b764037d25..81db342044a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QueryModule.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QueryModule.java @@ -16,20 +16,17 @@ package ch.systemsx.cisd.openbis.plugin.query.client.web.client.application; +import java.util.Collections; import java.util.List; -import com.extjs.gxt.ui.client.widget.Component; -import com.extjs.gxt.ui.client.widget.button.Button; +import com.extjs.gxt.ui.client.widget.menu.MenuItem; import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.ui.Widget; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IModule; import ch.systemsx.cisd.openbis.plugin.query.client.web.client.IQueryClientServiceAsync; /** - * - * * @author Franz-Josef Elmer */ public class QueryModule implements IModule @@ -40,34 +37,23 @@ public class QueryModule implements IModule { this.viewContext = viewContext; } - - public Widget getMenu() - { - return new Button("hello"); - } - - public List<Component> getMenuItems() - { - // TODO Auto-generated method stub - return null; - } - public String getModuleDescription() + public List<? extends MenuItem> getMenuItems() { - // TODO Auto-generated method stub - return null; + // return Collections.emptyList(); + // FIXME + return Collections.singletonList(new MenuItem("hello")); } - public String getModuleName() + public String getName() { - // TODO Auto-generated method stub - return null; + return viewContext.getMessage(Dict.MODULE_MENU_TITLE); } public void initialize(AsyncCallback<Void> callback) { - // TODO Auto-generated method stub - + // FIXME + callback.onSuccess(null); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js index a702491d85e..06d55e9743e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js @@ -1,6 +1,13 @@ // Query dictionary var query = { + + // + // Module + // + + module_menu_title: "Queries", + // LAST LINE: KEEP IT AT THE END lastline: "" // we need a line without a comma }; \ No newline at end of file diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js index cfc990986f1..8ec1de3961e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js +++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js @@ -321,7 +321,9 @@ var common = { menu_compute: "Perform", COMPUTE_MENU_QUERIES: "Query", - COMPUTE_MENU_PROCESSING: "Processing", + COMPUTE_MENU_PROCESSING: "Processing", + + menu_modules: "Utilities", // // Tab Titles diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/PhosphoNetXModule.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/PhosphoNetXModule.java index b74192cacee..6c8f0c5c251 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/PhosphoNetXModule.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/PhosphoNetXModule.java @@ -16,57 +16,41 @@ package ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.application; +import java.util.Collections; import java.util.List; -import com.extjs.gxt.ui.client.widget.Component; +import com.extjs.gxt.ui.client.widget.menu.MenuItem; import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.ui.Widget; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IModule; import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.IPhosphoNetXClientServiceAsync; /** - * - * * @author Franz-Josef Elmer */ public class PhosphoNetXModule implements IModule { private final IViewContext<IPhosphoNetXClientServiceAsync> viewContext; - + public PhosphoNetXModule(IViewContext<IPhosphoNetXClientServiceAsync> viewContext) { this.viewContext = viewContext; } - - public Widget getMenu() - { - return new QueryMenu(viewContext); - } - - public List<Component> getMenuItems() - { - // TODO Auto-generated method stub - return null; - } - public String getModuleDescription() + public List<? extends MenuItem> getMenuItems() { - // TODO Auto-generated method stub - return null; + return Collections.singletonList(new QueryMenu(viewContext)); } - public String getModuleName() + public String getName() { - // TODO Auto-generated method stub - return null; + return viewContext.getMessage(Dict.QUERY_MENU_TITLE); } public void initialize(AsyncCallback<Void> callback) { - // TODO Auto-generated method stub - + callback.onSuccess(null); } } 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 2d3ccbd44d6..c7f3df38b92 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 @@ -17,6 +17,7 @@ package ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.application; import com.extjs.gxt.ui.client.widget.menu.Menu; +import com.extjs.gxt.ui.client.widget.menu.MenuItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; @@ -34,21 +35,21 @@ import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.IPhosphoNet /** * @author Franz-Josef Elmer */ -public class QueryMenu extends TopMenuItem +public class QueryMenu extends MenuItem { public static final String ID = GenericConstants.ID_PREFIX + "-phosphonetx-"; private static enum ActionMenuKind implements IActionMenuItem { -// ALL_PROTEINS_OF_AN_EXPERIMENT() -// { -// @Override -// IDisposableComponent createComponent( -// IViewContext<IPhosphoNetXClientServiceAsync> viewContext) -// { -// return ProteinByExperimentBrowserGrid.create(viewContext); -// } -// }, + // ALL_PROTEINS_OF_AN_EXPERIMENT() + // { + // @Override + // IDisposableComponent createComponent( + // IViewContext<IPhosphoNetXClientServiceAsync> viewContext) + // { + // return ProteinByExperimentBrowserGrid.create(viewContext); + // } + // }, ALL_RAW_DATA_SAMPLES() { @Override @@ -111,6 +112,6 @@ public class QueryMenu extends TopMenuItem { submenu.add(actionMenuKind.createActionMenu(viewContext)); } - setMenu(submenu); + setSubMenu(submenu); } } -- GitLab