Alexander Wels has uploaded a new change for review.

Change subject: webadmin: Host General sub tab
......................................................................

webadmin: Host General sub tab

- The number of fields in the host general sub tab is becoming
  unmanageable so we are breaking the general sub tab out into
  3 sub sub tabs.
  - Info General information that changes relatively often.
  - Software The software running on the host.
  - Hardware This removes the hardware sub tab and moves it under
    the General sub tab.

Change-Id: Ie70cee7d4c5742a51ba6084968cf8617d0e2680e
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1184551
Signed-off-by: Alexander Wels <aw...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/place/WebAdminApplicationPlaces.java
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
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/HostGeneralSubTabPanelPresenter.java
R 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralHardwarePresenter.java
R 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralInfoPresenter.java
C 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralSoftwarePresenter.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/HostGeneralSubTabPanelView.java
R 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralHardwareView.java
R 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralHardwareView.ui.xml
R 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralInfoView.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralInfoView.ui.xml
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralSoftwareView.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralSoftwareView.ui.xml
D 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralView.ui.xml
15 files changed, 390 insertions(+), 146 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/87/37387/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/place/WebAdminApplicationPlaces.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/place/WebAdminApplicationPlaces.java
index ae94b19..12b5b74 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/place/WebAdminApplicationPlaces.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/place/WebAdminApplicationPlaces.java
@@ -196,8 +196,14 @@
     public static final String hostGeneralSubTabPlace = hostMainTabPlace + 
SUB_TAB_PREFIX
             + "general"; //$NON-NLS-1$
 
-    public static final String hostHardwareSubTabPlace = hostMainTabPlace + 
SUB_TAB_PREFIX
-            + "hardware"; //$NON-NLS-1$
+    public static final String hostGeneralSoftwareSubTabPlace = 
hostGeneralSubTabPlace
+            + "_software"; //$NON-NLS-1$
+
+    public static final String hostGeneralHardwareSubTabPlace = 
hostGeneralSubTabPlace
+            + "_hardware"; //$NON-NLS-1$
+
+    public static final String hostGeneralInfoSubTabPlace = 
hostGeneralSubTabPlace
+            + "_info"; //$NON-NLS-1$
 
     public static final String hostVmSubTabPlace = hostMainTabPlace + 
SUB_TAB_PREFIX
             + "virtual_machines"; //$NON-NLS-1$
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 c5bdc1d..1fa3312 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
@@ -509,8 +509,14 @@
     @DefaultStringValue("General")
     String hostGeneralSubTabLabel();
 
-    @DefaultStringValue("Hardware Information")
-    String hostHardwareSubTabLabel();
+    @DefaultStringValue("Info")
+    String hostGeneralInfoSubTabLabel();
+
+    @DefaultStringValue("Software")
+    String hostGeneralSoftwareSubTabLabel();
+
+    @DefaultStringValue("Hardware")
+    String hostGeneralHardwareSubTabLabel();
 
     @DefaultStringValue("Virtual Machines")
     String hostVmSubTabLabel();
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 9b8d952..e980534 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
@@ -171,12 +171,14 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.SubTabVolumeParameterPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.SubTabVolumePermissionPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.VolumeSubTabPanelPresenter;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.HostGeneralSubTabPanelPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.HostSubTabPanelPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostBrickPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostEventPresenter;
-import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralPresenter;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralInfoPresenter;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralSoftwarePresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGlusterSwiftPresenter;
-import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHardwarePresenter;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralHardwarePresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHookPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostInterfacePresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostPermissionPresenter;
@@ -417,12 +419,14 @@
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.gluster.SubTabVolumeParameterView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.gluster.SubTabVolumePermissionView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.gluster.VolumeSubTabPanelView;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.HostGeneralSubTabPanelView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.HostSubTabPanelView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostBrickView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostEventView;
-import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostGeneralView;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostGeneralInfoView;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostGeneralSoftwareView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostGlusterSwiftView;
-import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostHardwareView;
+import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostGeneralHardwareView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostHookView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostInterfaceView;
 import 
org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostPermissionView;
@@ -790,14 +794,22 @@
                 HostSubTabPanelPresenter.ViewDef.class,
                 HostSubTabPanelView.class,
                 HostSubTabPanelPresenter.ProxyDef.class);
-        bindPresenter(SubTabHostGeneralPresenter.class,
-                SubTabHostGeneralPresenter.ViewDef.class,
-                SubTabHostGeneralView.class,
-                SubTabHostGeneralPresenter.ProxyDef.class);
-        bindPresenter(SubTabHostHardwarePresenter.class,
-                SubTabHostHardwarePresenter.ViewDef.class,
-                SubTabHostHardwareView.class,
-                SubTabHostHardwarePresenter.ProxyDef.class);
+        bindPresenter(HostGeneralSubTabPanelPresenter.class,
+                HostGeneralSubTabPanelPresenter.ViewDef.class,
+                HostGeneralSubTabPanelView.class,
+                HostGeneralSubTabPanelPresenter.ProxyDef.class);
+        bindPresenter(SubTabHostGeneralSoftwarePresenter.class,
+                SubTabHostGeneralSoftwarePresenter.ViewDef.class,
+                SubTabHostGeneralSoftwareView.class,
+                SubTabHostGeneralSoftwarePresenter.ProxyDef.class);
+        bindPresenter(SubTabHostGeneralInfoPresenter.class,
+                SubTabHostGeneralInfoPresenter.ViewDef.class,
+                SubTabHostGeneralInfoView.class,
+                SubTabHostGeneralInfoPresenter.ProxyDef.class);
+        bindPresenter(SubTabHostGeneralHardwarePresenter.class,
+                SubTabHostGeneralHardwarePresenter.ViewDef.class,
+                SubTabHostGeneralHardwareView.class,
+                SubTabHostGeneralHardwarePresenter.ProxyDef.class);
         bindPresenter(SubTabHostVmPresenter.class,
                 SubTabHostVmPresenter.ViewDef.class,
                 SubTabHostVmView.class,
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/HostGeneralSubTabPanelPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/HostGeneralSubTabPanelPresenter.java
new file mode 100644
index 0000000..3ab9164
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/HostGeneralSubTabPanelPresenter.java
@@ -0,0 +1,84 @@
+package org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host;
+
+import org.ovirt.engine.core.common.businessentities.VDS;
+import 
org.ovirt.engine.ui.common.presenter.DynamicTabContainerPresenter.DynamicTabPanel;
+import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter;
+import org.ovirt.engine.ui.common.presenter.ScrollableTabBarPresenterWidget;
+import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider;
+import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData;
+import org.ovirt.engine.ui.uicommonweb.models.hosts.HostGeneralModel;
+import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel;
+import org.ovirt.engine.ui.uicommonweb.place.WebAdminApplicationPlaces;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+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.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 HostGeneralSubTabPanelPresenter extends 
AbstractSubTabPanelPresenter<
+    HostGeneralSubTabPanelPresenter.ViewDef, 
HostGeneralSubTabPanelPresenter.ProxyDef> {
+
+    @ProxyCodeSplit
+    @NameToken(WebAdminApplicationPlaces.hostGeneralSubTabPlace)
+    public interface ProxyDef extends 
TabContentProxyPlace<HostGeneralSubTabPanelPresenter> {
+    }
+
+    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 AbstractSubTabPresenter<VDS, HostListModel, HostGeneralModel,
+        ? extends AbstractSubTabPresenter.ViewDef<VDS>, ? extends 
TabContentProxyPlace<?>> lastPresenter;
+
+    @Inject
+    public HostGeneralSubTabPanelPresenter(EventBus eventBus, ViewDef view, 
ProxyDef proxy,
+            ScrollableTabBarPresenterWidget tabBar, 
SubTabHostGeneralInfoPresenter infoPresenter) {
+        super(eventBus, view, proxy, TYPE_SetTabContent, TYPE_RequestTabs, 
TYPE_ChangeTab, tabBar,
+                HostSubTabPanelPresenter.TYPE_SetTabContent);
+        lastPresenter = infoPresenter;
+    }
+
+    @TabInfo(container = HostSubTabPanelPresenter.class)
+    static TabData getTabData(ApplicationConstants applicationConstants,
+            DetailModelProvider<HostListModel, HostGeneralModel> 
modelProvider) {
+        return new 
ModelBoundTabData(applicationConstants.hostGeneralSubTabLabel(), 0, 
modelProvider);
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public void setInSlot(Object slot, PresenterWidget<?> content) {
+        super.setInSlot(slot, content);
+        if (content instanceof SubTabHostGeneralInfoPresenter
+                || content instanceof SubTabHostGeneralSoftwarePresenter
+                || content instanceof SubTabHostGeneralHardwarePresenter) {
+            lastPresenter = (AbstractSubTabPresenter<VDS, HostListModel, 
HostGeneralModel,
+                    ? extends AbstractSubTabPresenter.ViewDef<VDS>, ? extends 
TabContentProxyPlace<?>>) 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/host/SubTabHostHardwarePresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralHardwarePresenter.java
similarity index 76%
rename from 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostHardwarePresenter.java
rename to 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralHardwarePresenter.java
index 2d90ffa..2e7d13c 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostHardwarePresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralHardwarePresenter.java
@@ -22,27 +22,27 @@
 import com.gwtplatform.mvp.shared.proxy.PlaceRequest;
 import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace;
 
-public class SubTabHostHardwarePresenter extends AbstractSubTabPresenter<VDS, 
HostListModel, HostHardwareGeneralModel, SubTabHostHardwarePresenter.ViewDef, 
SubTabHostHardwarePresenter.ProxyDef> {
+public class SubTabHostGeneralHardwarePresenter extends 
AbstractSubTabPresenter<VDS, HostListModel, HostHardwareGeneralModel, 
SubTabHostGeneralHardwarePresenter.ViewDef, 
SubTabHostGeneralHardwarePresenter.ProxyDef> {
 
     @ProxyCodeSplit
-    @NameToken(WebAdminApplicationPlaces.hostHardwareSubTabPlace)
-    public interface ProxyDef extends 
TabContentProxyPlace<SubTabHostHardwarePresenter> {
+    @NameToken(WebAdminApplicationPlaces.hostGeneralHardwareSubTabPlace)
+    public interface ProxyDef extends 
TabContentProxyPlace<SubTabHostGeneralHardwarePresenter> {
     }
 
     public interface ViewDef extends AbstractSubTabPresenter.ViewDef<VDS> {
     }
 
-    @TabInfo(container = HostSubTabPanelPresenter.class)
+    @TabInfo(container = HostGeneralSubTabPanelPresenter.class)
     static TabData getTabData(ApplicationConstants applicationConstants,
             DetailModelProvider<HostListModel, HostHardwareGeneralModel> 
modelProvider) {
-        return new 
ModelBoundTabData(applicationConstants.hostHardwareSubTabLabel(), 6, 
modelProvider);
+        return new 
ModelBoundTabData(applicationConstants.hostGeneralHardwareSubTabLabel(), 6, 
modelProvider);
     }
 
     @Inject
-    public SubTabHostHardwarePresenter(EventBus eventBus, ViewDef view, 
ProxyDef proxy,
+    public SubTabHostGeneralHardwarePresenter(EventBus eventBus, ViewDef view, 
ProxyDef proxy,
             PlaceManager placeManager, DetailModelProvider<HostListModel, 
HostHardwareGeneralModel> modelProvider) {
         super(eventBus, view, proxy, placeManager, modelProvider,
-                HostSubTabPanelPresenter.TYPE_SetTabContent);
+                HostGeneralSubTabPanelPresenter.TYPE_SetTabContent);
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralPresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralInfoPresenter.java
similarity index 91%
rename from 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralPresenter.java
rename to 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralInfoPresenter.java
index b7918e3..59c8f48 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralPresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralInfoPresenter.java
@@ -16,7 +16,6 @@
 import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
 import org.ovirt.engine.ui.webadmin.ApplicationMessages;
-import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider;
 import org.ovirt.engine.ui.uicommonweb.place.WebAdminApplicationPlaces;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.HostSelectionChangeEvent;
 
@@ -37,11 +36,12 @@
 import com.gwtplatform.mvp.shared.proxy.PlaceRequest;
 import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace;
 
-public class SubTabHostGeneralPresenter extends AbstractSubTabPresenter<VDS, 
HostListModel, HostGeneralModel, SubTabHostGeneralPresenter.ViewDef, 
SubTabHostGeneralPresenter.ProxyDef> {
+public class SubTabHostGeneralInfoPresenter extends 
AbstractSubTabPresenter<VDS, HostListModel, HostGeneralModel,
+    SubTabHostGeneralInfoPresenter.ViewDef, 
SubTabHostGeneralInfoPresenter.ProxyDef> {
 
     @ProxyCodeSplit
-    @NameToken(WebAdminApplicationPlaces.hostGeneralSubTabPlace)
-    public interface ProxyDef extends 
TabContentProxyPlace<SubTabHostGeneralPresenter> {
+    @NameToken(WebAdminApplicationPlaces.hostGeneralInfoSubTabPlace)
+    public interface ProxyDef extends 
TabContentProxyPlace<SubTabHostGeneralInfoPresenter> {
     }
 
     public interface ViewDef extends AbstractSubTabPresenter.ViewDef<VDS> {
@@ -63,20 +63,19 @@
     // We need this to get the text of the alert messages:
     private final ApplicationMessages messages;
 
-    @TabInfo(container = HostSubTabPanelPresenter.class)
+    @TabInfo(container = HostGeneralSubTabPanelPresenter.class)
     static TabData getTabData(ApplicationConstants applicationConstants,
             DetailModelProvider<HostListModel, HostGeneralModel> 
modelProvider) {
-        return new 
ModelBoundTabData(applicationConstants.hostGeneralSubTabLabel(), 0, 
modelProvider);
+        return new 
ModelBoundTabData(applicationConstants.hostGeneralInfoSubTabLabel(), 0, 
modelProvider);
     }
 
     @Inject
-    public SubTabHostGeneralPresenter(EventBus eventBus, ViewDef view, 
ProxyDef proxy,
-            PlaceManager placeManager, DetailModelProvider<HostListModel, 
HostGeneralModel> modelProvider) {
-        super(eventBus, view, proxy, placeManager, modelProvider,
-                HostSubTabPanelPresenter.TYPE_SetTabContent);
+    public SubTabHostGeneralInfoPresenter(EventBus eventBus, ViewDef view, 
ProxyDef proxy,
+            PlaceManager placeManager, DetailModelProvider<HostListModel, 
HostGeneralModel> modelProvider,
+            ApplicationMessages messages) {
+        super(eventBus, view, proxy, placeManager, modelProvider, 
HostGeneralSubTabPanelPresenter.TYPE_SetTabContent);
 
-        // Inject a reference to the messages:
-        messages = ClientGinjectorProvider.getApplicationMessages();
+        this.messages = messages;
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostHardwarePresenter.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralSoftwarePresenter.java
similarity index 66%
copy from 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostHardwarePresenter.java
copy to 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralSoftwarePresenter.java
index 2d90ffa..c18162ce 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostHardwarePresenter.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/host/SubTabHostGeneralSoftwarePresenter.java
@@ -5,7 +5,7 @@
 import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter;
 import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider;
 import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData;
-import org.ovirt.engine.ui.uicommonweb.models.hosts.HostHardwareGeneralModel;
+import org.ovirt.engine.ui.uicommonweb.models.hosts.HostGeneralModel;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel;
 import org.ovirt.engine.ui.uicommonweb.place.WebAdminApplicationPlaces;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
@@ -19,30 +19,33 @@
 import com.gwtplatform.mvp.client.annotations.ProxyEvent;
 import com.gwtplatform.mvp.client.annotations.TabInfo;
 import com.gwtplatform.mvp.client.proxy.PlaceManager;
-import com.gwtplatform.mvp.shared.proxy.PlaceRequest;
 import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace;
+import com.gwtplatform.mvp.shared.proxy.PlaceRequest;
 
-public class SubTabHostHardwarePresenter extends AbstractSubTabPresenter<VDS, 
HostListModel, HostHardwareGeneralModel, SubTabHostHardwarePresenter.ViewDef, 
SubTabHostHardwarePresenter.ProxyDef> {
+public class SubTabHostGeneralSoftwarePresenter extends 
AbstractSubTabPresenter<VDS, HostListModel, HostGeneralModel,
+    SubTabHostGeneralSoftwarePresenter.ViewDef, 
SubTabHostGeneralSoftwarePresenter.ProxyDef> {
 
     @ProxyCodeSplit
-    @NameToken(WebAdminApplicationPlaces.hostHardwareSubTabPlace)
-    public interface ProxyDef extends 
TabContentProxyPlace<SubTabHostHardwarePresenter> {
+    @NameToken(WebAdminApplicationPlaces.hostGeneralSoftwareSubTabPlace)
+    public interface ProxyDef extends 
TabContentProxyPlace<SubTabHostGeneralSoftwarePresenter> {
     }
 
     public interface ViewDef extends AbstractSubTabPresenter.ViewDef<VDS> {
     }
 
-    @TabInfo(container = HostSubTabPanelPresenter.class)
+    @TabInfo(container = HostGeneralSubTabPanelPresenter.class)
     static TabData getTabData(ApplicationConstants applicationConstants,
-            DetailModelProvider<HostListModel, HostHardwareGeneralModel> 
modelProvider) {
-        return new 
ModelBoundTabData(applicationConstants.hostHardwareSubTabLabel(), 6, 
modelProvider);
+            DetailModelProvider<HostListModel, HostGeneralModel> 
modelProvider) {
+        return new 
ModelBoundTabData(applicationConstants.hostGeneralSoftwareSubTabLabel(), 0, 
modelProvider);
     }
 
     @Inject
-    public SubTabHostHardwarePresenter(EventBus eventBus, ViewDef view, 
ProxyDef proxy,
-            PlaceManager placeManager, DetailModelProvider<HostListModel, 
HostHardwareGeneralModel> modelProvider) {
-        super(eventBus, view, proxy, placeManager, modelProvider,
-                HostSubTabPanelPresenter.TYPE_SetTabContent);
+    public SubTabHostGeneralSoftwarePresenter(EventBus eventBus,
+            ViewDef view,
+            ProxyDef proxy,
+            PlaceManager placeManager,
+            DetailModelProvider<HostListModel, HostGeneralModel> 
modelProvider) {
+        super(eventBus, view, proxy, placeManager, modelProvider, 
HostGeneralSubTabPanelPresenter.TYPE_SetTabContent);
     }
 
     @Override
@@ -54,5 +57,4 @@
     public void onHostSelectionChange(HostSelectionChangeEvent event) {
         updateMainTabSelection(event.getSelectedItems());
     }
-
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/HostGeneralSubTabPanelView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/HostGeneralSubTabPanelView.java
new file mode 100644
index 0000000..bb582bf
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/HostGeneralSubTabPanelView.java
@@ -0,0 +1,39 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.tab.host;
+
+import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
+import org.ovirt.engine.ui.common.widget.tab.AbstractTabPanel;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.HostGeneralSubTabPanelPresenter;
+import org.ovirt.engine.ui.webadmin.section.main.view.AbstractSubTabPanelView;
+import org.ovirt.engine.ui.webadmin.widget.tab.HyperlinkTabPanel;
+
+import com.google.gwt.core.client.GWT;
+
+public class HostGeneralSubTabPanelView extends AbstractSubTabPanelView
+    implements HostGeneralSubTabPanelPresenter.ViewDef {
+
+    interface ViewIdHandler extends 
ElementIdHandler<HostGeneralSubTabPanelView> {
+        ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
+    }
+
+    private final HyperlinkTabPanel tabPanel = new HyperlinkTabPanel();
+
+    public HostGeneralSubTabPanelView() {
+        initWidget(getTabPanel());
+    }
+
+    @Override
+    protected void generateIds() {
+        ViewIdHandler.idHandler.generateAndSetIds(this);
+    }
+
+    @Override
+    protected AbstractTabPanel getTabPanel() {
+        return tabPanel;
+    }
+
+    @Override
+    protected Object getContentSlot() {
+        return HostGeneralSubTabPanelPresenter.TYPE_SetTabContent;
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostHardwareView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralHardwareView.java
similarity index 91%
rename from 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostHardwareView.java
rename to 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralHardwareView.java
index ea39283..1ecb784 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostHardwareView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralHardwareView.java
@@ -17,7 +17,7 @@
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
-import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHardwarePresenter;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralHardwarePresenter;
 import org.ovirt.engine.ui.webadmin.widget.label.NullableNumberTextBoxLabel;
 
 import com.google.gwt.core.client.GWT;
@@ -31,12 +31,12 @@
 import com.google.gwt.user.client.ui.FlowPanel;
 import com.google.gwt.user.client.ui.Widget;
 
-public class SubTabHostHardwareView extends AbstractSubTabFormView<VDS, 
HostListModel, HostHardwareGeneralModel> implements 
SubTabHostHardwarePresenter.ViewDef, Editor<HostHardwareGeneralModel> {
+public class SubTabHostGeneralHardwareView extends AbstractSubTabFormView<VDS, 
HostListModel, HostHardwareGeneralModel> implements 
SubTabHostGeneralHardwarePresenter.ViewDef, Editor<HostHardwareGeneralModel> {
 
-    interface Driver extends SimpleBeanEditorDriver<HostHardwareGeneralModel, 
SubTabHostHardwareView> {
+    interface Driver extends SimpleBeanEditorDriver<HostHardwareGeneralModel, 
SubTabHostGeneralHardwareView> {
     }
 
-    interface ViewIdHandler extends ElementIdHandler<SubTabHostHardwareView> {
+    interface ViewIdHandler extends 
ElementIdHandler<SubTabHostGeneralHardwareView> {
         ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
     }
 
@@ -64,12 +64,12 @@
 
     private final Driver driver = GWT.create(Driver.class);
 
-    interface ViewUiBinder extends UiBinder<Widget, SubTabHostHardwareView> {
+    interface ViewUiBinder extends UiBinder<Widget, 
SubTabHostGeneralHardwareView> {
         ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
     }
 
     @Inject
-    public SubTabHostHardwareView(DetailModelProvider<HostListModel, 
HostHardwareGeneralModel> modelProvider,
+    public SubTabHostGeneralHardwareView(DetailModelProvider<HostListModel, 
HostHardwareGeneralModel> modelProvider,
             ApplicationResources resources, ApplicationConstants constants) {
         super(modelProvider);
         this.constants = constants;
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostHardwareView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralHardwareView.ui.xml
similarity index 100%
rename from 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostHardwareView.ui.xml
rename to 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralHardwareView.ui.xml
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralInfoView.java
similarity index 70%
rename from 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralView.java
rename to 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralInfoView.java
index ce31cbe..5d7cfd8 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralInfoView.java
@@ -25,13 +25,12 @@
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
-import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralPresenter;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralInfoPresenter;
 import org.ovirt.engine.ui.webadmin.widget.alert.InLineAlertWidget;
 import org.ovirt.engine.ui.webadmin.widget.label.DetailsTextBoxLabel;
 import org.ovirt.engine.ui.webadmin.widget.label.FullDateTimeLabel;
 import org.ovirt.engine.ui.webadmin.widget.label.NullableNumberTextBoxLabel;
 import org.ovirt.engine.ui.webadmin.widget.label.PercentTextBoxLabel;
-import org.ovirt.engine.ui.webadmin.widget.label.VersionTextBoxLabel;
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.editor.client.Editor;
@@ -42,12 +41,13 @@
 import com.google.gwt.user.client.ui.HTMLPanel;
 import com.google.gwt.user.client.ui.Widget;
 
-public class SubTabHostGeneralView extends AbstractSubTabFormView<VDS, 
HostListModel, HostGeneralModel> implements SubTabHostGeneralPresenter.ViewDef, 
Editor<HostGeneralModel> {
+public class SubTabHostGeneralInfoView extends AbstractSubTabFormView<VDS, 
HostListModel, HostGeneralModel>
+    implements SubTabHostGeneralInfoPresenter.ViewDef, 
Editor<HostGeneralModel> {
 
-    interface Driver extends SimpleBeanEditorDriver<HostGeneralModel, 
SubTabHostGeneralView> {
+    interface Driver extends SimpleBeanEditorDriver<HostGeneralModel, 
SubTabHostGeneralInfoView> {
     }
 
-    interface ViewIdHandler extends ElementIdHandler<SubTabHostGeneralView> {
+    interface ViewIdHandler extends 
ElementIdHandler<SubTabHostGeneralInfoView> {
         ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
     }
 
@@ -55,16 +55,8 @@
     private final ApplicationResources resources;
     private final ApplicationConstants constants = 
GWT.create(ApplicationConstants.class);
 
-    @Path("OS")
-    TextBoxLabel oS = new TextBoxLabel();
-    TextBoxLabel kvmVersion = new TextBoxLabel();
-    VersionTextBoxLabel libvirtVersion = new VersionTextBoxLabel();
-    TextBoxLabel spiceVersion = new TextBoxLabel();
-    TextBoxLabel kernelVersion = new TextBoxLabel();
-    VersionTextBoxLabel glusterVersion = new VersionTextBoxLabel();
     @Path("IScsiInitiatorName")
     TextBoxLabel iScsiInitiatorName = new TextBoxLabel();
-    VersionTextBoxLabel vdsmVersion = new VersionTextBoxLabel();
     PercentTextBoxLabel<Integer> sharedMemory = new 
PercentTextBoxLabel<Integer>();
     BooleanTextBoxLabel memoryPageSharing = new 
BooleanTextBoxLabel(constants.active(), constants.inactive());
     NullableNumberTextBoxLabel<Integer> activeVms = new 
NullableNumberTextBoxLabel<Integer>();
@@ -76,14 +68,14 @@
     TextBoxLabel kdumpStatus = new TextBoxLabel();
     TextBoxLabel selinuxEnforceMode = new TextBoxLabel();
 
-    MemorySizeTextBoxLabel<Integer> physicalMemory;
-    MemorySizeTextBoxLabel<Integer> usedMemory;
-    MemorySizeTextBoxLabel<Integer> freeMemory;
+    MemorySizeTextBoxLabel<Integer> physicalMemory = new 
MemorySizeTextBoxLabel<Integer>(constants);
+    MemorySizeTextBoxLabel<Integer> usedMemory = new 
MemorySizeTextBoxLabel<Integer>(constants);
+    MemorySizeTextBoxLabel<Integer> freeMemory = new 
MemorySizeTextBoxLabel<Integer>(constants);
 
-    MemorySizeTextBoxLabel<Long> swapTotal;
-    MemorySizeTextBoxLabel<Long> usedSwap;
-    MemorySizeTextBoxLabel<Long> swapFree;
-    MemorySizeTextBoxLabel<Float> maxSchedulingMemory;
+    MemorySizeTextBoxLabel<Long> swapTotal = new 
MemorySizeTextBoxLabel<Long>(constants);
+    MemorySizeTextBoxLabel<Long> usedSwap = new 
MemorySizeTextBoxLabel<Long>(constants);
+    MemorySizeTextBoxLabel<Long> swapFree = new 
MemorySizeTextBoxLabel<Long>(constants);
+    MemorySizeTextBoxLabel<Float> maxSchedulingMemory = new 
MemorySizeTextBoxLabel<Float>(constants);
 
     BooleanTextBoxLabel liveSnapshotSupport = new 
BooleanTextBoxLabel(constants.active(), constants.inactive());
 
@@ -122,18 +114,17 @@
 
     private final Driver driver = GWT.create(Driver.class);
 
-    interface ViewUiBinder extends UiBinder<Widget, SubTabHostGeneralView> {
+    interface ViewUiBinder extends UiBinder<Widget, SubTabHostGeneralInfoView> 
{
         ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
     }
 
     @Inject
-    public SubTabHostGeneralView(DetailModelProvider<HostListModel, 
HostGeneralModel> modelProvider,
+    public SubTabHostGeneralInfoView(DetailModelProvider<HostListModel, 
HostGeneralModel> modelProvider,
             ApplicationResources resources) {
         super(modelProvider);
 
         // Inject a reference to the resources:
         this.resources = resources;
-        initMemorySizeLabels();
 
         // Init form panel:
         formPanel = new GeneralFormPanel();
@@ -144,32 +135,26 @@
         generateIds();
 
         boolean virtSupported = 
ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly);
-        boolean glusterSupported = 
ApplicationModeHelper.isModeSupported(ApplicationMode.GlusterOnly);
 
         // Build a form using the FormBuilder
-        formBuilder = new FormBuilder(formPanel, 3, 9);
+        formBuilder = new FormBuilder(formPanel, 3, 6);
 
-        formBuilder.addFormItem(new FormItem(constants.osVersionHostGeneral(), 
oS, 0).withAutoPlacement());
-        formBuilder.addFormItem(new 
FormItem(constants.kernelVersionHostGeneral(), kernelVersion, 
0).withAutoPlacement());
-        formBuilder.addFormItem(new 
FormItem(constants.kvmVersionHostGeneral(), kvmVersion, 0, 
virtSupported).withAutoPlacement());
-        formBuilder.addFormItem(new 
FormItem(constants.libvirtVersionHostGeneral(), libvirtVersion, 0, 
virtSupported).withAutoPlacement());
-        formBuilder.addFormItem(new 
FormItem(constants.vdsmVersionHostGeneral(), vdsmVersion, 
0).withAutoPlacement());
-        formBuilder.addFormItem(new 
FormItem(constants.spiceVersionHostGeneral(), spiceVersion, 0, 
virtSupported).withAutoPlacement());
-        formBuilder.addFormItem(new 
FormItem(constants.glusterVersionHostGeneral(), glusterVersion, 0, 
glusterSupported).withAutoPlacement());
+        formBuilder.addFormItem(new FormItem(constants.spmPriority(), 
spmPriority, 0, 0, virtSupported).withAutoPlacement());
+        formBuilder.addFormItem(new FormItem(constants.activeVmsHostGeneral(), 
activeVms, 0, virtSupported).withAutoPlacement());
+        formBuilder.addFormItem(new FormItem(constants.logicalCores(), 
logicalCores, 0).withAutoPlacement());
+        formBuilder.addFormItem(new FormItem(constants.onlineCores(), 
onlineCores, 0).withAutoPlacement());
+        formBuilder.addFormItem(new FormItem(constants.bootTimeHostGeneral(), 
bootTime, 0).withAutoPlacement());
+        formBuilder.addFormItem(new 
FormItem(constants.hostedEngineHaHostGeneral(), hostedEngineHa, 0,
+                virtSupported).withAutoPlacement());
 
-        formBuilder.addFormItem(new FormItem(constants.spmPriority(), 
spmPriority, 0, 1, virtSupported).withAutoPlacement());
-        formBuilder.addFormItem(new FormItem(constants.activeVmsHostGeneral(), 
activeVms, 1, virtSupported).withAutoPlacement());
-        formBuilder.addFormItem(new FormItem(constants.logicalCores(), 
logicalCores, 1).withAutoPlacement());
-        formBuilder.addFormItem(new FormItem(constants.onlineCores(), 
onlineCores, 1).withAutoPlacement());
-        formBuilder.addFormItem(new FormItem(constants.bootTimeHostGeneral(), 
bootTime, 1).withAutoPlacement());
-        formBuilder.addFormItem(new 
FormItem(constants.hostedEngineHaHostGeneral(), hostedEngineHa, 1, 
virtSupported).withAutoPlacement());
-        formBuilder.addFormItem(new 
FormItem(constants.isciInitNameHostGeneral(), iScsiInitiatorName, 1, 
virtSupported).withAutoPlacement());
+        formBuilder.addFormItem(new 
FormItem(constants.isciInitNameHostGeneral(), iScsiInitiatorName, 0, 1,
+                virtSupported).withAutoPlacement());
         formBuilder.addFormItem(new FormItem(constants.kdumpStatus(), 
kdumpStatus, 1).withAutoPlacement());
+        formBuilder.addFormItem(new FormItem(constants.physMemHostGeneral(), 
physicalMemoryDetails, 1).withAutoPlacement());
+        formBuilder.addFormItem(new FormItem(constants.swapSizeHostGeneral(), 
swapSizeDetails, 1).withAutoPlacement());
+        formBuilder.addFormItem(new FormItem(constants.sharedMemHostGeneral(), 
sharedMemory, 1).withAutoPlacement());
 
-        formBuilder.addFormItem(new FormItem(constants.physMemHostGeneral(), 
physicalMemoryDetails, 2).withAutoPlacement());
-        formBuilder.addFormItem(new FormItem(constants.swapSizeHostGeneral(), 
swapSizeDetails, 2).withAutoPlacement());
-        formBuilder.addFormItem(new FormItem(constants.sharedMemHostGeneral(), 
sharedMemory, 2).withAutoPlacement());
-        formBuilder.addFormItem(new FormItem(constants.maxSchedulingMemory(), 
maxSchedulingMemory, 2, virtSupported).withAutoPlacement());
+        formBuilder.addFormItem(new FormItem(constants.maxSchedulingMemory(), 
maxSchedulingMemory, 0, 2, virtSupported).withAutoPlacement());
         formBuilder.addFormItem(new 
FormItem(constants.memPageSharingHostGeneral(), memoryPageSharing, 
2).withAutoPlacement());
         formBuilder.addFormItem(new 
FormItem(constants.autoLargePagesHostGeneral(), automaticLargePage, 
2).withAutoPlacement());
         formBuilder.addFormItem(new FormItem(constants.selinuxModeGeneral(), 
selinuxEnforceMode, 2).withAutoPlacement());
@@ -182,19 +167,6 @@
         ViewIdHandler.idHandler.generateAndSetIds(this);
     }
 
-    void initMemorySizeLabels() {
-        this.physicalMemory = new MemorySizeTextBoxLabel<Integer>(constants);
-        this.usedMemory = new MemorySizeTextBoxLabel<Integer>(constants);
-        this.freeMemory = new MemorySizeTextBoxLabel<Integer>(constants);
-
-        this.swapTotal = new MemorySizeTextBoxLabel<Long>(constants);
-        this.usedSwap = new MemorySizeTextBoxLabel<Long>(constants);
-        this.swapFree = new MemorySizeTextBoxLabel<Long>(constants);
-
-        this.maxSchedulingMemory = new 
MemorySizeTextBoxLabel<Float>(constants);
-    }
-
-    @SuppressWarnings("unchecked")
     @Override
     public void setMainTabSelectedItem(VDS selectedItem) {
         driver.edit(getDetailModel());
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralInfoView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralInfoView.ui.xml
new file mode 100644
index 0000000..505b1cd
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralInfoView.ui.xml
@@ -0,0 +1,41 @@
+<?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" 
xmlns:e="urn:import:com.google.gwt.editor.ui.client"
+    xmlns:f="urn:import:org.ovirt.engine.ui.common.widget.form">
+
+    <ui:with field='constants' 
type='org.ovirt.engine.ui.webadmin.ApplicationConstants' />
+
+    <ui:style>
+        .formPanel {
+            padding-top: 10px;
+        }
+
+        @external alertsPanel;
+        .alertsPanel {
+            padding-top: 5px;
+            padding-right: 16px;
+            padding-left: 16px;
+        }
+
+        .alertsPanel a {
+            color: black;
+            text-decoration: underline;
+        }
+
+        .actionItemsLabel {
+            font-weight: bold;
+        }
+    </ui:style>
+
+    <g:FlowPanel>
+        <f:GeneralFormPanel ui:field="formPanel" 
addStyleNames="{style.formPanel}"/>
+        <g:HTMLPanel ui:field="alertsPanel" 
addStyleNames="{style.alertsPanel}">
+            <div>
+                <g:Label text="{constants.actionItemsHostGeneral}" 
addStyleNames="{style.actionItemsLabel}" />
+            </div>
+            <g:FlowPanel ui:field="alertsList"/>
+        </g:HTMLPanel>
+    </g:FlowPanel>
+
+</ui:UiBinder>
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralSoftwareView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralSoftwareView.java
new file mode 100644
index 0000000..9d93ad6
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralSoftwareView.java
@@ -0,0 +1,100 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.tab.host;
+
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.mode.ApplicationMode;
+import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
+import org.ovirt.engine.ui.common.idhandler.WithElementId;
+import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider;
+import org.ovirt.engine.ui.common.view.AbstractSubTabFormView;
+import org.ovirt.engine.ui.common.widget.form.FormBuilder;
+import org.ovirt.engine.ui.common.widget.form.FormItem;
+import org.ovirt.engine.ui.common.widget.form.GeneralFormPanel;
+import org.ovirt.engine.ui.common.widget.label.TextBoxLabel;
+import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper;
+import org.ovirt.engine.ui.uicommonweb.models.hosts.HostGeneralModel;
+import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralSoftwarePresenter;
+import org.ovirt.engine.ui.webadmin.widget.label.VersionTextBoxLabel;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.editor.client.Editor;
+import com.google.gwt.editor.client.SimpleBeanEditorDriver;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.inject.Inject;
+
+public class SubTabHostGeneralSoftwareView extends AbstractSubTabFormView<VDS, 
HostListModel, HostGeneralModel>
+    implements SubTabHostGeneralSoftwarePresenter.ViewDef, 
Editor<HostGeneralModel> {
+
+    interface Driver extends SimpleBeanEditorDriver<HostGeneralModel, 
SubTabHostGeneralSoftwareView> {
+    }
+
+    interface ViewIdHandler extends 
ElementIdHandler<SubTabHostGeneralSoftwareView> {
+        ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
+    }
+
+    interface ViewUiBinder extends UiBinder<Widget, 
SubTabHostGeneralSoftwareView> {
+        ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
+    }
+
+    private final ApplicationConstants constants = 
GWT.create(ApplicationConstants.class);
+
+    private final Driver driver = GWT.create(Driver.class);
+
+    FormBuilder formBuilder;
+
+    @Path("OS")
+    TextBoxLabel oS = new TextBoxLabel();
+    TextBoxLabel kvmVersion = new TextBoxLabel();
+    VersionTextBoxLabel libvirtVersion = new VersionTextBoxLabel();
+    TextBoxLabel spiceVersion = new TextBoxLabel();
+    TextBoxLabel kernelVersion = new TextBoxLabel();
+    VersionTextBoxLabel glusterVersion = new VersionTextBoxLabel();
+    VersionTextBoxLabel vdsmVersion = new VersionTextBoxLabel();
+
+    @UiField(provided = true)
+    @WithElementId
+    GeneralFormPanel formPanel;
+
+    @Inject
+    public SubTabHostGeneralSoftwareView(DetailModelProvider<HostListModel, 
HostGeneralModel> modelProvider) {
+        super(modelProvider);
+
+        // Init form panel:
+        formPanel = new GeneralFormPanel();
+        initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
+        driver.initialize(this);
+        buildForm();
+    }
+
+    private void buildForm() {
+        generateIds();
+
+        boolean virtSupported = 
ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly);
+        boolean glusterSupported = 
ApplicationModeHelper.isModeSupported(ApplicationMode.GlusterOnly);
+
+        // Build a form using the FormBuilder
+        formBuilder = new FormBuilder(formPanel, 3, 9);
+        formBuilder.addFormItem(new FormItem(constants.osVersionHostGeneral(), 
oS, 0).withAutoPlacement());
+        formBuilder.addFormItem(new 
FormItem(constants.kernelVersionHostGeneral(), kernelVersion, 
0).withAutoPlacement());
+        formBuilder.addFormItem(new 
FormItem(constants.kvmVersionHostGeneral(), kvmVersion, 0, 
virtSupported).withAutoPlacement());
+        formBuilder.addFormItem(new 
FormItem(constants.libvirtVersionHostGeneral(), libvirtVersion, 0, 
virtSupported).withAutoPlacement());
+        formBuilder.addFormItem(new 
FormItem(constants.vdsmVersionHostGeneral(), vdsmVersion, 
0).withAutoPlacement());
+        formBuilder.addFormItem(new 
FormItem(constants.spiceVersionHostGeneral(), spiceVersion, 0, 
virtSupported).withAutoPlacement());
+        formBuilder.addFormItem(new 
FormItem(constants.glusterVersionHostGeneral(), glusterVersion, 0, 
glusterSupported).withAutoPlacement());
+    }
+
+    @Override
+    public void setMainTabSelectedItem(VDS selectedItem) {
+        driver.edit(getDetailModel());
+        formBuilder.update(getDetailModel());
+    }
+
+    @Override
+    protected void generateIds() {
+        ViewIdHandler.idHandler.generateAndSetIds(this);
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralSoftwareView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralSoftwareView.ui.xml
new file mode 100644
index 0000000..558df29
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralSoftwareView.ui.xml
@@ -0,0 +1,19 @@
+<?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" 
xmlns:e="urn:import:com.google.gwt.editor.ui.client"
+    xmlns:f="urn:import:org.ovirt.engine.ui.common.widget.form">
+
+    <ui:with field='constants' 
type='org.ovirt.engine.ui.webadmin.ApplicationConstants' />
+
+    <ui:style>
+        .formPanel {
+            padding-top: 10px;
+        }
+    </ui:style>
+
+    <g:FlowPanel>
+        <f:GeneralFormPanel ui:field="formPanel" 
addStyleNames="{style.formPanel}"/>
+    </g:FlowPanel>
+
+</ui:UiBinder>
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralView.ui.xml
deleted file mode 100644
index c0f7386..0000000
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/host/SubTabHostGeneralView.ui.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?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" 
xmlns:e="urn:import:com.google.gwt.editor.ui.client"
-       xmlns:f="urn:import:org.ovirt.engine.ui.common.widget.form">
-
-       <ui:with field='constants' 
type='org.ovirt.engine.ui.webadmin.ApplicationConstants' />
-
-       <ui:style>                      
-               .formPanel {
-                       padding-top: 10px;
-               }
-               @external alertsPanel;
-               .alertsPanel {
-                       padding-top: 5px;
-                       padding-right: 16px;
-                       padding-left: 16px;
-               }
-               .alertsPanel a {
-                       color: black;
-                       text-decoration: underline;
-               }
-       </ui:style>
-       
-       <g:FlowPanel>
-               <f:GeneralFormPanel ui:field="formPanel" 
addStyleNames="{style.formPanel}"/>
-               <g:HTMLPanel ui:field="alertsPanel" 
addStyleNames="{style.alertsPanel}">
-                       <div>
-                               <b><g:Label 
text="{constants.actionItemsHostGeneral}"></g:Label></b>
-                       </div>
-                       <g:FlowPanel ui:field="alertsList"/>
-               </g:HTMLPanel>
-       </g:FlowPanel>
-
-</ui:UiBinder>
-       
\ No newline at end of file


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie70cee7d4c5742a51ba6084968cf8617d0e2680e
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alexander Wels <aw...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to