Gilad Chaplik has uploaded a new change for review.

Change subject: webadmin: qos parent sub tab
......................................................................

webadmin: qos parent sub tab

Adding a QoS container sub tab to hold all qos entity
subtabs (storage and network), without changing the model layer.

Change-Id: I6d5e2de2d979bdaab498922acd6a580bc89dc19a
Signed-off-by: Gilad Chaplik <gchap...@redhat.com>
---
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/HyperlinkTab.java
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/HyperlinkTab.ui.xml
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractSubTabPanelPresenter.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/DataCenterQosSubTabPanelPresenter.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterNetworkQoSPresenter.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterStorageQosPresenter.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/DataCenterQosSubTabPanelView.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/HyperlinkTabPanel.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/HyperlinkTabPanel.ui.xml
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/SimpleTabPanel.java
13 files changed, 276 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/35/31835/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/HyperlinkTab.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/HyperlinkTab.java
new file mode 100644
index 0000000..46c458d
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/HyperlinkTab.java
@@ -0,0 +1,51 @@
+package org.ovirt.engine.ui.common.widget.tab;
+
+import org.ovirt.engine.ui.common.widget.Align;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.Style.FontWeight;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Widget;
+import com.gwtplatform.mvp.client.TabData;
+
+public class HyperlinkTab extends AbstractTab {
+
+    @UiField
+    Label label;
+
+    interface WidgetUiBinder extends UiBinder<Widget, HyperlinkTab> {
+        WidgetUiBinder uiBinder = GWT.create(WidgetUiBinder.class);
+    }
+
+    public HyperlinkTab(TabData tabData, AbstractTabPanel tabPanel) {
+        super(tabData, tabPanel);
+        initWidget(WidgetUiBinder.uiBinder.createAndBindUi(this));
+    }
+
+    @Override
+    public void setAlign(Align align) {
+    }
+
+    @Override
+    public void activate() {
+        label.getElement().getStyle().setFontWeight(FontWeight.BOLD);
+    }
+
+    @Override
+    public void deactivate() {
+        label.getElement().getStyle().setFontWeight(FontWeight.NORMAL);
+    }
+
+    @Override
+    public String getText() {
+        return label.getText();
+    }
+
+    @Override
+    public void setText(String text) {
+        label.setText(text);
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/HyperlinkTab.ui.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/HyperlinkTab.ui.xml
new file mode 100644
index 0000000..b9cb5c3
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/tab/HyperlinkTab.ui.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent";>
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+       xmlns:g="urn:import:com.google.gwt.user.client.ui">
+
+    <ui:style>
+        .tab {
+            height: 28px;
+            min-width: 80px;
+            text-align: center;
+            overflow: visible;
+            font-family: Arial,sans-serif;
+            line-height: 30px;
+        }
+
+        .alignLeft {
+            float: left;
+        }
+
+        .anchor {
+            text-decoration: none;
+            border-style: none;
+        }
+    </ui:style>
+
+       <g:HTMLPanel ui:field="tabContainer" addStyleNames="{style.tab} 
{style.alignLeft}">
+               <a href="" ui:field="hyperlink" addStyleNames="{style.anchor}">
+                       <div>
+                               <g:Label ui:field="label" />
+                       </div>
+                       <div style="clear: both;" />
+               </a>
+       </g:HTMLPanel>
+
+</ui:UiBinder>
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
index ee06ea6..754205c 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
@@ -178,12 +178,15 @@
     @DefaultStringValue("Quota")
     String dataCenterQuotaSubTabLabel();
 
-    @DefaultStringValue("Network QoS")
+    @DefaultStringValue("Network")
     String dataCenterNetworkQoSSubTabLabel();
 
-    @DefaultStringValue("Storage QoS")
+    @DefaultStringValue("Storage")
     String dataCenterStorageQosSubTabLabel();
 
+    @DefaultStringValue("QoS")
+    String dataCenterQosSubTabLabel();
+
     @DefaultStringValue("Permissions")
     String dataCenterPermissionSubTabLabel();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
index 28317c5..a8d135d 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java
@@ -137,6 +137,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterPermissionPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterServicePresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterVmPresenter;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.DataCenterQosSubTabPanelPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.DataCenterSubTabPanelPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.SubTabDataCenterClusterPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.SubTabDataCenterEventPresenter;
@@ -371,6 +372,7 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.cluster.SubTabClusterPermissionView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.cluster.SubTabClusterServiceView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.cluster.SubTabClusterVmView;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter.DataCenterQosSubTabPanelView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter.DataCenterSubTabPanelView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter.SubTabDataCenterClusterView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter.SubTabDataCenterEventView;
@@ -602,6 +604,10 @@
                 DataCenterSubTabPanelPresenter.ViewDef.class,
                 DataCenterSubTabPanelView.class,
                 DataCenterSubTabPanelPresenter.ProxyDef.class);
+        bindPresenter(DataCenterQosSubTabPanelPresenter.class,
+                DataCenterQosSubTabPanelPresenter.ViewDef.class,
+                DataCenterQosSubTabPanelView.class,
+                DataCenterQosSubTabPanelPresenter.ProxyDef.class);
         bindPresenter(SubTabDataCenterStoragePresenter.class,
                 SubTabDataCenterStoragePresenter.ViewDef.class,
                 SubTabDataCenterStorageView.class,
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java
index 17af961..60ecb07 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java
@@ -78,6 +78,9 @@
     public static final String dataCenterEventSubTabPlace = 
dataCenterMainTabPlace + SUB_TAB_PREFIX
             + "events"; //$NON-NLS-1$
 
+    public static final String dataCenterQosSubTabPlace = 
dataCenterMainTabPlace + SUB_TAB_PREFIX
+            + "qos"; //$NON-NLS-1$
+
     // Storage
 
     public static final String storageGeneralSubTabPlace = storageMainTabPlace 
+ SUB_TAB_PREFIX
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractSubTabPanelPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractSubTabPanelPresenter.java
index 4ed80be..7aea268 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractSubTabPanelPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/AbstractSubTabPanelPresenter.java
@@ -40,8 +40,18 @@
             Type<RequestTabsHandler> requestTabsEventType,
             Type<ChangeTabHandler> changeTabEventType,
             ScrollableTabBarPresenterWidget tabBar) {
+        this(eventBus, view, proxy, tabContentSlot, requestTabsEventType, 
changeTabEventType,
+                tabBar, MainContentPresenter.TYPE_SetSubTabPanelContent);
+    }
+
+    public AbstractSubTabPanelPresenter(EventBus eventBus, V view, P proxy,
+            Object tabContentSlot,
+            Type<RequestTabsHandler> requestTabsEventType,
+            Type<ChangeTabHandler> changeTabEventType,
+            ScrollableTabBarPresenterWidget tabBar,
+            Type<RevealContentHandler<?>> slot) {
         super(eventBus, view, proxy, tabContentSlot, requestTabsEventType, 
changeTabEventType,
-                MainContentPresenter.TYPE_SetSubTabPanelContent);
+                slot);
         getView().setUiHandlers(tabBar);
         this.tabBar = tabBar;
         this.tabBar.setWantsOffset(false);
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/DataCenterQosSubTabPanelPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/DataCenterQosSubTabPanelPresenter.java
new file mode 100644
index 0000000..2038525
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/DataCenterQosSubTabPanelPresenter.java
@@ -0,0 +1,77 @@
+package org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter;
+
+import 
org.ovirt.engine.ui.common.presenter.DynamicTabContainerPresenter.DynamicTabPanel;
+import org.ovirt.engine.ui.common.presenter.ScrollableTabBarPresenterWidget;
+import org.ovirt.engine.ui.common.uicommon.model.ModelProvider;
+import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData;
+import org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterListModel;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.place.ApplicationPlaces;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.AbstractSubTabPanelPresenter;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.event.shared.GwtEvent.Type;
+import com.google.inject.Inject;
+import com.gwtplatform.mvp.client.ChangeTabHandler;
+import com.gwtplatform.mvp.client.Presenter;
+import com.gwtplatform.mvp.client.PresenterWidget;
+import com.gwtplatform.mvp.client.RequestTabsHandler;
+import com.gwtplatform.mvp.client.TabData;
+import com.gwtplatform.mvp.client.annotations.ChangeTab;
+import com.gwtplatform.mvp.client.annotations.ContentSlot;
+import com.gwtplatform.mvp.client.annotations.NameToken;
+import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit;
+import com.gwtplatform.mvp.client.annotations.RequestTabs;
+import com.gwtplatform.mvp.client.annotations.TabInfo;
+import com.gwtplatform.mvp.client.proxy.RevealContentHandler;
+import com.gwtplatform.mvp.client.proxy.TabContentProxy;
+import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace;
+
+public class DataCenterQosSubTabPanelPresenter extends
+    AbstractSubTabPanelPresenter<DataCenterQosSubTabPanelPresenter.ViewDef, 
DataCenterQosSubTabPanelPresenter.ProxyDef> {
+
+    @ProxyCodeSplit
+    @NameToken(ApplicationPlaces.dataCenterQosSubTabPlace)
+    public interface ProxyDef extends 
TabContentProxyPlace<DataCenterQosSubTabPanelPresenter> {
+    }
+
+    public interface ViewDef extends AbstractSubTabPanelPresenter.ViewDef, 
DynamicTabPanel {
+    }
+
+    @RequestTabs
+    public static final Type<RequestTabsHandler> TYPE_RequestTabs = new 
Type<RequestTabsHandler>();
+
+    @ChangeTab
+    public static final Type<ChangeTabHandler> TYPE_ChangeTab = new 
Type<ChangeTabHandler>();
+
+    @ContentSlot
+    public static final Type<RevealContentHandler<?>> TYPE_SetTabContent = new 
Type<RevealContentHandler<?>>();
+
+    private Presenter<?, ?> lastPresenter;
+
+    @Inject
+    public DataCenterQosSubTabPanelPresenter(EventBus eventBus, ViewDef view, 
ProxyDef proxy,
+            ScrollableTabBarPresenterWidget tabBar, 
SubTabDataCenterStorageQosPresenter dataCenterStorageQosPresenter) {
+        super(eventBus, view, proxy, TYPE_SetTabContent, TYPE_RequestTabs, 
TYPE_ChangeTab, tabBar, DataCenterSubTabPanelPresenter.TYPE_SetTabContent);
+        this.lastPresenter = dataCenterStorageQosPresenter;
+    }
+
+    @TabInfo(container = DataCenterSubTabPanelPresenter.class)
+    static TabData getTabData(ApplicationConstants applicationConstants,
+            ModelProvider<DataCenterListModel> modelProvider) {
+        return new 
ModelBoundTabData(applicationConstants.dataCenterQosSubTabLabel(), 2, 
modelProvider);
+    }
+
+    @Override
+    public void setInSlot(Object slot, PresenterWidget<?> content) {
+        super.setInSlot(slot, content);
+        if (content instanceof SubTabDataCenterStorageQosPresenter
+                || content instanceof SubTabDataCenterNetworkQoSPresenter) {
+            lastPresenter = (Presenter<?, ?>) content;
+        }
+        TabContentProxy<?> proxy = (TabContentProxy<?>) 
lastPresenter.getProxy();
+        super.setInSlot(TYPE_SetTabContent, lastPresenter);
+        getView().setActiveTab(proxy.getTab());
+        getView().setActiveTabHistoryToken(proxy.getTargetHistoryToken());
+    }
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterNetworkQoSPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterNetworkQoSPresenter.java
index 28578d2..9e72c36 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterNetworkQoSPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterNetworkQoSPresenter.java
@@ -35,10 +35,10 @@
     public interface ViewDef extends 
AbstractSubTabPresenter.ViewDef<StoragePool> {
     }
 
-    @TabInfo(container = DataCenterSubTabPanelPresenter.class)
+    @TabInfo(container = DataCenterQosSubTabPanelPresenter.class)
     static TabData getTabData(ApplicationConstants applicationConstants,
             SearchableDetailModelProvider<NetworkQoS, DataCenterListModel, 
DataCenterNetworkQoSListModel> modelProvider) {
-        return new 
ModelBoundTabData(applicationConstants.dataCenterNetworkQoSSubTabLabel(), 2, 
modelProvider);
+        return new 
ModelBoundTabData(applicationConstants.dataCenterNetworkQoSSubTabLabel(), 1, 
modelProvider);
     }
 
     @Inject
@@ -46,7 +46,7 @@
             PlaceManager placeManager,
             SearchableDetailModelProvider<NetworkQoS, DataCenterListModel, 
DataCenterNetworkQoSListModel> modelProvider) {
         super(eventBus, view, proxy, placeManager, modelProvider,
-                DataCenterSubTabPanelPresenter.TYPE_SetTabContent);
+                DataCenterQosSubTabPanelPresenter.TYPE_SetTabContent);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterStorageQosPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterStorageQosPresenter.java
index 563fb7a..7cdffa6 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterStorageQosPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/datacenter/SubTabDataCenterStorageQosPresenter.java
@@ -35,10 +35,10 @@
     public interface ViewDef extends 
AbstractSubTabPresenter.ViewDef<StoragePool> {
     }
 
-    @TabInfo(container = DataCenterSubTabPanelPresenter.class)
+    @TabInfo(container = DataCenterQosSubTabPanelPresenter.class)
     static TabData getTabData(ApplicationConstants applicationConstants,
             SearchableDetailModelProvider<StorageQos, DataCenterListModel, 
DataCenterStorageQosListModel> modelProvider) {
-        return new 
ModelBoundTabData(applicationConstants.dataCenterStorageQosSubTabLabel(), 10, 
modelProvider);
+        return new 
ModelBoundTabData(applicationConstants.dataCenterStorageQosSubTabLabel(), 0, 
modelProvider);
     }
 
     @Inject
@@ -46,7 +46,7 @@
             PlaceManager placeManager,
             SearchableDetailModelProvider<StorageQos, DataCenterListModel, 
DataCenterStorageQosListModel> modelProvider) {
         super(eventBus, view, proxy, placeManager, modelProvider,
-                DataCenterSubTabPanelPresenter.TYPE_SetTabContent);
+                DataCenterQosSubTabPanelPresenter.TYPE_SetTabContent);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/DataCenterQosSubTabPanelView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/DataCenterQosSubTabPanelView.java
new file mode 100644
index 0000000..9982f3c
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/DataCenterQosSubTabPanelView.java
@@ -0,0 +1,25 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.tab.datacenter;
+
+import org.ovirt.engine.ui.common.widget.tab.AbstractTabPanel;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.datacenter.DataCenterQosSubTabPanelPresenter;
+import org.ovirt.engine.ui.webadmin.section.main.view.AbstractSubTabPanelView;
+import org.ovirt.engine.ui.webadmin.widget.tab.HyperlinkTabPanel;
+
+public class DataCenterQosSubTabPanelView extends AbstractSubTabPanelView 
implements DataCenterQosSubTabPanelPresenter.ViewDef {
+
+    private final HyperlinkTabPanel tabPanel = new HyperlinkTabPanel();
+
+    public DataCenterQosSubTabPanelView() {
+        initWidget(getTabPanel());
+    }
+
+    @Override
+    protected Object getContentSlot() {
+        return DataCenterQosSubTabPanelPresenter.TYPE_SetTabContent;
+    }
+
+    @Override
+    protected AbstractTabPanel getTabPanel() {
+        return tabPanel;
+    }
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/HyperlinkTabPanel.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/HyperlinkTabPanel.java
new file mode 100644
index 0000000..ce9ff66
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/HyperlinkTabPanel.java
@@ -0,0 +1,25 @@
+package org.ovirt.engine.ui.webadmin.widget.tab;
+
+import org.ovirt.engine.ui.common.widget.tab.HyperlinkTab;
+import org.ovirt.engine.ui.common.widget.tab.TabDefinition;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.user.client.ui.Widget;
+import com.gwtplatform.mvp.client.TabData;
+
+public class HyperlinkTabPanel extends SimpleTabPanel {
+    interface WidgetUiBinder extends UiBinder<Widget, HyperlinkTabPanel> {
+        WidgetUiBinder uiBinder = GWT.create(WidgetUiBinder.class);
+    }
+
+    @Override
+    protected void initWidget() {
+        initWidget(WidgetUiBinder.uiBinder.createAndBindUi(this));
+    }
+
+    @Override
+    protected TabDefinition createNewTab(TabData tabData) {
+        return new HyperlinkTab(tabData, this);
+    }
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/HyperlinkTabPanel.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/HyperlinkTabPanel.ui.xml
new file mode 100644
index 0000000..9e0efb7
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/HyperlinkTabPanel.ui.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent";>
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 
xmlns:g="urn:import:com.google.gwt.user.client.ui">
+
+    <ui:style>
+        .bar {
+            border-bottom: 1px solid #7B7B7B;
+        }
+
+        .content {
+            overflow-x: hidden;
+            position: absolute;
+            top: 34px;
+            bottom: 0px;
+            left: 0px;
+            right: 0px;
+        }
+    </ui:style>
+
+    <g:FlowPanel>
+        <g:HTMLPanel addStyleNames="{style.bar}">
+            <g:FlowPanel ui:field="tabContainer" />
+            <div style="clear: both;" />
+        </g:HTMLPanel>
+        <g:SimplePanel ui:field="tabContentContainer" 
addStyleNames="{style.content}" />
+    </g:FlowPanel>
+
+</ui:UiBinder>
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/SimpleTabPanel.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/SimpleTabPanel.java
index d334f86..1730627 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/SimpleTabPanel.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/tab/SimpleTabPanel.java
@@ -27,6 +27,10 @@
     TabWidgetHandler uiHandlers;
 
     public SimpleTabPanel() {
+        initWidget();
+    }
+
+    protected void initWidget() {
         initWidget(WidgetUiBinder.uiBinder.createAndBindUi(this));
     }
 


-- 
To view, visit http://gerrit.ovirt.org/31835
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6d5e2de2d979bdaab498922acd6a580bc89dc19a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Gilad Chaplik <gchap...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to