Spenser Shumaker has uploaded a new change for review. Change subject: Allow plugins to specify if they want their dynamic tabs and sub tabs right or left justified. ......................................................................
Allow plugins to specify if they want their dynamic tabs and sub tabs right or left justified. Signed-off-by: Spenser Shumaker <sshum...@redhat.com> Change-Id: Icd6929538fd106d0c54d162dfd21f8946254ce5f --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/DynamicTabProxy.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/Align.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/DynamicTab.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/DynamicTabData.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginManager.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/api/PluginUiFunctions.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/DynamicUrlContentTabProxy.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/DynamicUrlContentTabProxyFactory.java 8 files changed, 71 insertions(+), 25 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/11273/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/DynamicTabProxy.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/DynamicTabProxy.java index f514a9c..b633586 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/DynamicTabProxy.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/DynamicTabProxy.java @@ -1,6 +1,7 @@ package org.ovirt.engine.ui.common.presenter; import org.ovirt.engine.ui.common.gin.BaseClientGinjector; +import org.ovirt.engine.ui.common.widget.Align; import org.ovirt.engine.ui.common.widget.tab.DynamicTabData; import com.google.gwt.core.client.Scheduler; @@ -30,10 +31,10 @@ public WrappedProxy(PlaceManager placeManager, EventBus eventBus, Provider<T> presenterProvider, Type<RequestTabsHandler> requestTabsEventType, - String label, float priority, String historyToken) { + String label, float priority, String historyToken, Align align) { bind(placeManager, eventBus); this.requestTabsEventType = requestTabsEventType; - this.tabData = new DynamicTabData(label, priority, historyToken); + this.tabData = new DynamicTabData(label, priority, historyToken, align); this.targetHistoryToken = historyToken; addRequestTabsHandler(); this.presenter = new StandardProvider<T>(presenterProvider); @@ -45,10 +46,10 @@ public DynamicTabProxy(BaseClientGinjector ginjector, Type<RequestTabsHandler> requestTabsEventType, - String label, float priority, String historyToken) { + String label, float priority, String historyToken, Align align) { bind(ginjector.getPlaceManager(), ginjector.getEventBus()); this.proxy = new WrappedProxy<T>(ginjector.getPlaceManager(), ginjector.getEventBus(), - this, requestTabsEventType, label, priority, historyToken); + this, requestTabsEventType, label, priority, historyToken, align); this.place = new PlaceWithGatekeeper(historyToken, ginjector.getDefaultGatekeeper()); // Create and bind presenter eagerly diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/Align.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/Align.java index ecab685..edca4ac 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/Align.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/Align.java @@ -5,4 +5,16 @@ LEFT, RIGHT; + public static Align from(String name) { + Align result = Align.LEFT; + if(name != null){ + try { + result = Align.valueOf(name); + } catch (IllegalArgumentException e) { + // Do nothing + } + } + return result; + } + } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/DynamicTab.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/DynamicTab.java index 8c1440c..7f95234 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/DynamicTab.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/DynamicTab.java @@ -9,6 +9,7 @@ public DynamicTab(final DynamicTabData tabData, AbstractTabPanel tabPanel, EventBus eventBus) { super(tabData, tabPanel); + setAlign(tabData.getAlign()); eventBus.addHandler(SetDynamicTabAccessibleEvent.getType(), new SetDynamicTabAccessibleHandler() { @Override diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/DynamicTabData.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/DynamicTabData.java index 51ba4d9..86f9d2e 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/DynamicTabData.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/DynamicTabData.java @@ -1,5 +1,6 @@ package org.ovirt.engine.ui.common.widget.tab; +import org.ovirt.engine.ui.common.widget.Align; import com.gwtplatform.mvp.client.TabDataBasic; /** @@ -8,14 +9,28 @@ public class DynamicTabData extends TabDataBasic { private final String historyToken; + private final Align align; public DynamicTabData(String label, float priority, String historyToken) { + this(label, priority, historyToken, Align.LEFT); + } + + public DynamicTabData(String label, float priority, String historyToken, Align align) { super(label, priority); this.historyToken = historyToken; + if(align == null){ + this.align = Align.LEFT; + }else{ + this.align = align; + } } public String getHistoryToken() { return historyToken; } + public Align getAlign() { + return align; + } + } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginManager.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginManager.java index 15decd8..50815cc 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginManager.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginManager.java @@ -366,6 +366,10 @@ return @org.ovirt.engine.ui.webadmin.plugin.entity.EntityType::from(Ljava/lang/String;)(entityTypeName); }; + var getAlign = function(stringAlign) { + return @org.ovirt.engine.ui.common.widget.Align::from(Ljava/lang/String;)(stringAlign); + }; + // Define pluginApi function used to construct specific Plugin API instances var pluginApi = function(pluginName) { return new pluginApi.fn.init(pluginName); @@ -396,16 +400,26 @@ configObject: function() { return c...@org.ovirt.engine.ui.webadmin.plugin.PluginManager::getConfigObject(Ljava/lang/String;)(this.pluginName); }, - // TODO(vszocs) inject API functions into "pluginApi.fn" dynamically using EventBus addMainTab: function(label, historyToken, contentUrl) { if (canDoPluginAction(this.pluginName)) { - uifunctio...@org.ovirt.engine.ui.webadmin.plugin.api.PluginUiFunctions::addMainTab(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)(label,historyToken,contentUrl); + uifunctio...@org.ovirt.engine.ui.webadmin.plugin.api.PluginUiFunctions::addMainTab(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/ovirt/engine/ui/common/widget/Align;)(label,historyToken,contentUrl,null); + } + }, + // TODO(vszocs) inject API functions into "pluginApi.fn" dynamically using EventBus + addMainTab: function(label, historyToken, contentUrl, stringAlign) { + if (canDoPluginAction(this.pluginName)) { + uifunctio...@org.ovirt.engine.ui.webadmin.plugin.api.PluginUiFunctions::addMainTab(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/ovirt/engine/ui/common/widget/Align;)(label,historyToken,contentUrl,getAlign(stringAlign)); } }, addSubTab: function(entityTypeName, label, historyToken, contentUrl) { if (canDoPluginAction(this.pluginName)) { - uifunctio...@org.ovirt.engine.ui.webadmin.plugin.api.PluginUiFunctions::addSubTab(Lorg/ovirt/engine/ui/webadmin/plugin/entity/EntityType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)(getEntityType(entityTypeName),label,historyToken,contentUrl); + uifunctio...@org.ovirt.engine.ui.webadmin.plugin.api.PluginUiFunctions::addSubTab(Lorg/ovirt/engine/ui/webadmin/plugin/entity/EntityType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/ovirt/engine/ui/common/widget/Align;)(getEntityType(entityTypeName),label,historyToken,contentUrl,null); + } + }, + addSubTab: function(entityTypeName, label, historyToken, contentUrl, stringAlign) { + if (canDoPluginAction(this.pluginName)) { + uifunctio...@org.ovirt.engine.ui.webadmin.plugin.api.PluginUiFunctions::addSubTab(Lorg/ovirt/engine/ui/webadmin/plugin/entity/EntityType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/ovirt/engine/ui/common/widget/Align;)(getEntityType(entityTypeName),label,historyToken,contentUrl,getAlign(stringAlign)); } }, setTabContentUrl: function(historyToken, contentUrl) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/api/PluginUiFunctions.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/api/PluginUiFunctions.java index 8ceb183..09d4df4 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/api/PluginUiFunctions.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/api/PluginUiFunctions.java @@ -6,6 +6,7 @@ import org.ovirt.engine.core.compat.NGuid; import org.ovirt.engine.ui.common.presenter.RedrawDynamicTabContainerEvent; import org.ovirt.engine.ui.common.presenter.SetDynamicTabAccessibleEvent; +import org.ovirt.engine.ui.common.widget.Align; import org.ovirt.engine.ui.common.widget.table.ActionTable; import org.ovirt.engine.ui.common.widget.table.HasActionTable; import org.ovirt.engine.ui.uicommonweb.BaseCommandTarget; @@ -88,53 +89,53 @@ } /** - * Adds new dynamic main tab that shows contents of the given URL. + * Adds new dynamic left or right aligned main tab that shows contents of the given URL. */ - public void addMainTab(String label, String historyToken, String contentUrl) { + public void addMainTab(String label, String historyToken, String contentUrl, Align align) { addTab(MainTabPanelPresenter.TYPE_RequestTabs, MainTabPanelPresenter.TYPE_SetTabContent, - label, historyToken, true, contentUrl); + label, historyToken, true, contentUrl, align); } /** - * Adds new dynamic sub tab that shows contents of the given URL. + * Adds new dynamic left or right aligned sub tab that shows contents of the given URL. */ - public void addSubTab(EntityType entityType, String label, String historyToken, String contentUrl) { + public void addSubTab(EntityType entityType, String label, String historyToken, String contentUrl, Align align) { switch (entityType) { case DataCenter: addTab(DataCenterSubTabPanelPresenter.TYPE_RequestTabs, DataCenterSubTabPanelPresenter.TYPE_SetTabContent, - label, historyToken, false, contentUrl); + label, historyToken, false, contentUrl, align); break; case Cluster: addTab(ClusterSubTabPanelPresenter.TYPE_RequestTabs, ClusterSubTabPanelPresenter.TYPE_SetTabContent, - label, historyToken, false, contentUrl); + label, historyToken, false, contentUrl, align); break; case Host: addTab(HostSubTabPanelPresenter.TYPE_RequestTabs, HostSubTabPanelPresenter.TYPE_SetTabContent, - label, historyToken, false, contentUrl); + label, historyToken, false, contentUrl, align); break; case Storage: addTab(StorageSubTabPanelPresenter.TYPE_RequestTabs, StorageSubTabPanelPresenter.TYPE_SetTabContent, - label, historyToken, false, contentUrl); + label, historyToken, false, contentUrl, align); break; case Disk: addTab(DiskSubTabPanelPresenter.TYPE_RequestTabs, DiskSubTabPanelPresenter.TYPE_SetTabContent, - label, historyToken, false, contentUrl); + label, historyToken, false, contentUrl, align); break; case VirtualMachine: addTab(VirtualMachineSubTabPanelPresenter.TYPE_RequestTabs, VirtualMachineSubTabPanelPresenter.TYPE_SetTabContent, - label, historyToken, false, contentUrl); + label, historyToken, false, contentUrl, align); break; case Template: addTab(TemplateSubTabPanelPresenter.TYPE_RequestTabs, TemplateSubTabPanelPresenter.TYPE_SetTabContent, - label, historyToken, false, contentUrl); + label, historyToken, false, contentUrl, align); break; } } @@ -142,11 +143,11 @@ void addTab(Type<RequestTabsHandler> requestTabsEventType, Type<RevealContentHandler<?>> revealContentEventType, String label, String historyToken, - boolean isMainTab, String contentUrl) { + boolean isMainTab, String contentUrl, Align align) { // Create and bind tab presenter proxy dynamicUrlContentTabProxyFactory.create( requestTabsEventType, revealContentEventType, - label, historyToken, isMainTab, contentUrl); + label, historyToken, isMainTab, contentUrl, align); // Redraw the corresponding tab container RedrawDynamicTabContainerEvent.fire(this, requestTabsEventType); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/DynamicUrlContentTabProxy.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/DynamicUrlContentTabProxy.java index 8ccd0c4..cd3df02 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/DynamicUrlContentTabProxy.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/DynamicUrlContentTabProxy.java @@ -1,6 +1,7 @@ package org.ovirt.engine.ui.webadmin.section.main.presenter; import org.ovirt.engine.ui.common.presenter.DynamicTabProxy; +import org.ovirt.engine.ui.common.widget.Align; import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; import com.google.gwt.event.shared.GwtEvent.Type; @@ -20,8 +21,8 @@ Type<RevealContentHandler<?>> revealContentEventType, Provider<DynamicUrlContentTabPresenter.ViewDef> viewProvider, String label, float priority, String historyToken, - boolean isMainTab, String contentUrl) { - super(ginjector, requestTabsEventType, label, priority, historyToken); + boolean isMainTab, String contentUrl, Align align) { + super(ginjector, requestTabsEventType, label, priority, historyToken, align); this.revealContentEventType = revealContentEventType; this.viewProvider = viewProvider; this.isMainTab = isMainTab; diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/DynamicUrlContentTabProxyFactory.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/DynamicUrlContentTabProxyFactory.java index d9b5e20..3db7f5b 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/DynamicUrlContentTabProxyFactory.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/DynamicUrlContentTabProxyFactory.java @@ -1,5 +1,6 @@ package org.ovirt.engine.ui.webadmin.section.main.presenter; +import org.ovirt.engine.ui.common.widget.Align; import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; import com.google.gwt.event.shared.GwtEvent.Type; @@ -24,10 +25,10 @@ Type<RequestTabsHandler> requestTabsEventType, Type<RevealContentHandler<?>> revealContentEventType, String label, String historyToken, - boolean isMainTab, String contentUrl) { + boolean isMainTab, String contentUrl, Align align) { return new DynamicUrlContentTabProxy(ginjector, requestTabsEventType, revealContentEventType, viewProvider, - label, Float.MAX_VALUE, historyToken, isMainTab, contentUrl); + label, Float.MAX_VALUE, historyToken, isMainTab, contentUrl, align); } } -- To view, visit http://gerrit.ovirt.org/11273 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icd6929538fd106d0c54d162dfd21f8946254ce5f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Spenser Shumaker <sshum...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches