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

Reply via email to