Hello Alexey Chub,

I'd like you to do a code review.  Please visit

    http://gerrit.ovirt.org/10325

to review the following change.

Change subject: webadmin:[RFE]: Support proxy management in GUI
......................................................................

webadmin:[RFE]: Support proxy management in GUI

This patch adds the origin and custom_event_id fields to the Events
TAB display (both on general events & for an entity instance)

Change-Id: I59e2ecfafe3c20b0c3925780b6bf8051fe7bfa3f
Signed-off-by: Alexey Chub <ac...@redhat.com>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.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/section/main/view/popup/host/HostPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
7 files changed, 340 insertions(+), 34 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/25/10325/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java
index d859e96..4e323dd 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java
@@ -37,6 +37,7 @@
     AsyncTaskPollingRate,
     VdsFenceType,
     VdsFenceOptionMapping,
+    FenceProxyDefaultPreferences,
     VcpuConsumptionPercentage(ConfigAuthType.User),
     SearchResultsLimit(ConfigAuthType.User),
     MaxBlockDiskSize(ConfigAuthType.User),
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
index 656ceca..fc25ece 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
@@ -1674,6 +1674,13 @@
         aQuery.asyncCallback.OnSuccess(aQuery.getModel(), 5);
     }
 
+    public static void GetDefaultPmProxyPreferences(AsyncQuery query) {
+        GetConfigFromCache(
+            new 
GetConfigurationValueParameters(ConfigurationValues.FenceProxyDefaultPreferences,
+                Config.DefaultConfigurationVersion),
+            query);
+    }
+
     public static void GetRootTag(AsyncQuery aQuery) {
         aQuery.converterCallback = new IAsyncConverter() {
             @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
index a238d0f..579c67f 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
@@ -531,6 +531,14 @@
         hostModel.getOverrideIpTables().setIsAvailable(false);
         hostModel.setSpmPriorityValue(null);
 
+        AsyncDataProvider.GetDefaultPmProxyPreferences(new AsyncQuery(null, 
new INewAsyncCallback() {
+            @Override
+            public void OnSuccess(Object model, Object returnValue) {
+
+                hostModel.setPmProxyPreferences((String) returnValue);
+            }
+        }));
+
         // Make sure not to set override IP tables flag back true when it was 
set false once.
         
hostModel.getOverrideIpTables().getEntityChangedEvent().addListener(new 
IEventListener() {
             @Override
@@ -661,21 +669,37 @@
             {
                 HostListModel hostListModel = (HostListModel) model;
                 ArrayList<storage_pool> dataCenters = 
(ArrayList<storage_pool>) result;
-                HostModel hostModel = new HostModel();
-                hostListModel.setWindow(hostModel);
                 VDS host = (VDS) hostListModel.getSelectedItem();
+
+                final HostModel hostModel = new HostModel();
+                hostListModel.setWindow(hostModel);
                 PrepareModelForApproveEdit(host, hostModel, dataCenters, 
isEditWithPMemphasis);
                 
hostModel.setTitle(ConstantsManager.getInstance().getConstants().editHostTitle());
                 hostModel.setHashName("edit_host"); //$NON-NLS-1$
 
-                UICommand tempVar = new UICommand("OnSaveFalse", 
hostListModel); //$NON-NLS-1$
-                
tempVar.setTitle(ConstantsManager.getInstance().getConstants().ok());
-                tempVar.setIsDefault(true);
-                hostModel.getCommands().add(tempVar);
-                UICommand tempVar2 = new UICommand("Cancel", hostListModel); 
//$NON-NLS-1$
-                
tempVar2.setTitle(ConstantsManager.getInstance().getConstants().cancel());
-                tempVar2.setIsCancel(true);
-                hostModel.getCommands().add(tempVar2);
+                if (host.getPmProxyPreferences() != null) {
+                    
hostModel.setPmProxyPreferences(host.getPmProxyPreferences());
+                } else {
+                    AsyncDataProvider.GetDefaultPmProxyPreferences(new 
AsyncQuery(null, new INewAsyncCallback() {
+                        @Override
+                        public void OnSuccess(Object model, Object 
returnValue) {
+
+                            hostModel.setPmProxyPreferences((String) 
returnValue);
+                        }
+                    }));
+                }
+
+
+                UICommand command;
+                command = new UICommand("OnSaveFalse", hostListModel); 
//$NON-NLS-1$
+                
command.setTitle(ConstantsManager.getInstance().getConstants().ok());
+                command.setIsDefault(true);
+                hostModel.getCommands().add(command);
+
+                command = new UICommand("Cancel", hostListModel); //$NON-NLS-1$
+                
command.setTitle(ConstantsManager.getInstance().getConstants().cancel());
+                command.setIsCancel(true);
+                hostModel.getCommands().add(command);
             }
         };
         AsyncDataProvider.GetDataCenterList(_asyncQuery);
@@ -781,6 +805,7 @@
         host.setpm_type((String) model.getPmType().getSelectedItem());
         host.setPmOptionsMap(new ValueObjectMap(model.getPmOptionsMap(), 
false));
         host.setVdsSpmPriority(model.getSpmPriorityValue());
+        host.setPmProxyPreferences(model.getPmProxyPreferences());
 
         CancelConfirm();
         model.StartProgress(null);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
index 78b42c7..10609ce 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
@@ -14,6 +14,7 @@
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Event;
 import org.ovirt.engine.core.compat.EventArgs;
+import org.ovirt.engine.core.compat.IEventListener;
 import org.ovirt.engine.core.compat.NGuid;
 import org.ovirt.engine.core.compat.PropertyChangedEventArgs;
 import org.ovirt.engine.core.compat.StringFormat;
@@ -21,6 +22,7 @@
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
+import org.ovirt.engine.ui.uicommonweb.ICommandTarget;
 import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
@@ -417,6 +419,72 @@
         }
     }
 
+    public String getPmProxyPreferences() {
+        // Return null if power management is not enabled.
+        if (!(Boolean) getIsPm().getEntity()) {
+            return null;
+        }
+
+        // Pack back proxy items to the comma delimited string.
+        StringBuilder builder = new StringBuilder();
+
+        if (getPmProxyPreferencesList().getItems() != null) {
+            List items = (List) getPmProxyPreferencesList().getItems();
+            for (Object item : items) {
+
+                builder.append(item);
+
+                if (items.indexOf(item) < items.size() - 1) {
+                    builder.append(",");    //$NON-NLS-1$
+                }
+            }
+        }
+
+        return builder.toString();
+    }
+
+    public void setPmProxyPreferences(String value) {
+        // Create list from the provided comma delimited string.
+        String[] array = value.split(",");    //$NON-NLS-1$
+        List<String> list = new ArrayList<String>();
+
+        for (String item : array) {
+            list.add(item);
+        }
+
+        getPmProxyPreferencesList().setItems(list);
+    }
+
+    private ListModel pmProxyPreferencesList;
+
+    public ListModel getPmProxyPreferencesList() {
+        return pmProxyPreferencesList;
+    }
+
+    private void setPmProxyPreferencesList(ListModel value) {
+        pmProxyPreferencesList = value;
+    }
+
+    private UICommand proxyUpCommand;
+
+    public UICommand getProxyUpCommand() {
+        return proxyUpCommand;
+    }
+
+    private void setProxyUpCommand(UICommand value) {
+        proxyUpCommand = value;
+    }
+
+    private UICommand proxyDownCommand;
+
+    public UICommand getProxyDownCommand() {
+        return proxyDownCommand;
+    }
+
+    private void setProxyDownCommand(UICommand value) {
+        proxyDownCommand = value;
+    }
+
     private Integer postponedSpmPriority;
 
     public void setSpmPriorityValue(Integer value) {
@@ -449,7 +517,39 @@
 
     public HostModel()
     {
-        setTestCommand(new UICommand("Test", this)); //$NON-NLS-1$
+        setTestCommand(new UICommand("Test", new ICommandTarget() { 
//$NON-NLS-1$
+            @Override
+            public void ExecuteCommand(UICommand command) {
+                Test();
+            }
+
+            @Override
+            public void ExecuteCommand(UICommand uiCommand, Object... 
parameters) {
+                Test();
+            }
+        }));
+        setProxyUpCommand(new UICommand("Up", new ICommandTarget() {    
//$NON-NLS-1$
+            @Override
+            public void ExecuteCommand(UICommand command) {
+                ProxyUp();
+            }
+
+            @Override
+            public void ExecuteCommand(UICommand uiCommand, Object... 
parameters) {
+                ProxyUp();
+            }
+        }));
+        setProxyDownCommand(new UICommand("Down", new ICommandTarget() {    
//$NON-NLS-1$
+            @Override
+            public void ExecuteCommand(UICommand command) {
+                ProxyDown();
+            }
+
+            @Override
+            public void ExecuteCommand(UICommand uiCommand, Object... 
parameters) {
+                ProxyDown();
+            }
+        }));
 
         setName(new EntityModel());
         setHost(new EntityModel());
@@ -477,6 +577,14 @@
         getPmSlot().setIsAvailable(false);
         setPmOptions(new EntityModel());
 
+        setPmProxyPreferencesList(new ListModel());
+        
getPmProxyPreferencesList().getSelectedItemChangedEvent().addListener(new 
IEventListener() {
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                UpdatePmCommandAvailability();
+            }
+        });
+
         setIsPm(new EntityModel());
         getIsPm().getEntityChangedEvent().addListener(this);
         getIsPm().setEntity(false);
@@ -487,6 +595,44 @@
         setSpmPriority(new ListModel());
 
         InitSpmPriorities();
+    }
+
+    private void ProxyUp() {
+        if (getPmProxyPreferencesList().getItems() == null) {
+            return;
+        }
+
+        List list = new ArrayList((List) 
getPmProxyPreferencesList().getItems());
+        Object selectedItem = getPmProxyPreferencesList().getSelectedItem();
+        int selectedItemIndex = list.indexOf(selectedItem);
+
+        // Check whether the selected item is first in the list.
+        if (selectedItemIndex > 0) {
+            list.remove(selectedItemIndex);
+            list.add(selectedItemIndex - 1, selectedItem);
+
+            getPmProxyPreferencesList().setItems(list);
+            getPmProxyPreferencesList().setSelectedItem(selectedItem);
+        }
+    }
+
+    private void ProxyDown() {
+        if (getPmProxyPreferencesList().getItems() == null) {
+            return;
+        }
+
+        List list = new ArrayList((List) 
getPmProxyPreferencesList().getItems());
+        Object selectedItem = getPmProxyPreferencesList().getSelectedItem();
+        int selectedItemIndex = list.indexOf(selectedItem);
+
+        // Check whether the selected item is first in the list.
+        if (selectedItemIndex < list.size()) {
+            list.remove(selectedItemIndex);
+            list.add(selectedItemIndex + 1, selectedItem);
+
+            getPmProxyPreferencesList().setItems(list);
+            getPmProxyPreferencesList().setSelectedItem(selectedItem);
+        }
     }
 
     boolean spmInitialized;
@@ -718,10 +864,6 @@
         getPmSlot().setIsAvailable(pmOptions.contains(PmSlotKey));
         getPmSecure().setIsAvailable(pmOptions.contains(PmSecureKey));
 
-        boolean isPm = (Boolean) getIsPm().getEntity();
-
-        getTestCommand().setIsExecutionAllowed(isPm);
-
         getManagementIp().setIsChangable((Boolean) getIsPm().getEntity());
         getManagementIp().setIsValid(true);
         getPmUserName().setIsChangable((Boolean) getIsPm().getEntity());
@@ -735,6 +877,18 @@
         getPmPort().setIsChangable((Boolean) getIsPm().getEntity());
         getPmPort().setIsValid(true);
         getPmSlot().setIsChangable((Boolean) getIsPm().getEntity());
+        getPmProxyPreferencesList().setIsChangable((Boolean) 
getIsPm().getEntity());
+
+        UpdatePmCommandAvailability();
+    }
+
+    private void UpdatePmCommandAvailability() {
+        boolean isPm = (Boolean) getIsPm().getEntity();
+        Object proxySelectedItem = 
getPmProxyPreferencesList().getSelectedItem();
+
+        getTestCommand().setIsExecutionAllowed(isPm);
+        getProxyUpCommand().setIsExecutionAllowed(isPm && proxySelectedItem != 
null);
+        getProxyDownCommand().setIsExecutionAllowed(isPm && proxySelectedItem 
!= null);
     }
 
     public void Test()
@@ -771,6 +925,7 @@
                 .getValue()
                 .getValue() : NGuid.Empty);
         param.setFencingOptions(new ValueObjectMap(getPmOptionsMap(), false));
+        param.setPmProxyPreferences(getPmProxyPreferences());
 
         Frontend.RunQuery(VdcQueryType.GetNewVdsFenceStatus, param, new 
IFrontendQueryAsyncCallback() {
 
@@ -882,16 +1037,5 @@
                 && getPmType().getIsValid()
                 && getPmPort().getIsValid()
                 && getPmOptions().getIsValid();
-    }
-
-    @Override
-    public void ExecuteCommand(UICommand command)
-    {
-        super.ExecuteCommand(command);
-
-        if (command == getTestCommand())
-        {
-            Test();
-        }
     }
 }
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 c9befd5..550f546 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
@@ -412,6 +412,15 @@
     @DefaultStringValue("Test")
     String hostPopupTestButtonLabel();
 
+    @DefaultStringValue("Up")
+    String hostPopupUpButtonLabel();
+
+    @DefaultStringValue("Down")
+    String hostPopupDownButtonLabel();
+
+    @DefaultStringValue("Source")
+    String hostPopupSourceText();
+
     @DefaultStringValue("SPM")
     String spmTestButtonLabel();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
index e7727e4..4ae2e22 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
@@ -1,5 +1,10 @@
 package org.ovirt.engine.ui.webadmin.section.main.view.popup.host;
 
+import com.google.gwt.event.dom.client.ChangeEvent;
+import com.google.gwt.event.dom.client.ChangeHandler;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.user.client.ui.ListBox;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
 import org.ovirt.engine.core.common.mode.ApplicationMode;
@@ -40,6 +45,8 @@
 import com.google.gwt.user.client.ui.RadioButton;
 import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.inject.Inject;
+
+import java.util.List;
 
 public class HostPopupView extends AbstractModelBoundPopupView<HostModel> 
implements HostPopupPresenterWidget.ViewDef {
 
@@ -155,8 +162,21 @@
     UiCommandButton testButton;
 
     @UiField
+    UiCommandButton upButton;
+
+    @UiField
+    UiCommandButton downButton;
+
+    @UiField
     @Ignore
     Label testMessage;
+
+    @UiField
+    @Ignore
+    Label sourceLabel;
+
+    @UiField
+    ListBox proxyListBox;
 
     @UiField
     @Ignore
@@ -234,6 +254,9 @@
         
pmOptionsExplanationLabel.setText(constants.hostPopupPmOptionsExplanationLabel());
         pmSecureEditor.setLabel(constants.hostPopupPmSecureLabel());
         testButton.setLabel(constants.hostPopupTestButtonLabel());
+        upButton.setLabel(constants.hostPopupUpButtonLabel());
+        downButton.setLabel(constants.hostPopupDownButtonLabel());
+        sourceLabel.setText(constants.hostPopupSourceText());
 
         // SPM tab
         spmTab.setLabel(constants.spmTestButtonLabel());
@@ -280,6 +303,70 @@
 
         testButton.setCommand(object.getTestCommand());
 
+        // Bind proxy commands.
+        upButton.setCommand(object.getProxyUpCommand());
+        upButton.addClickHandler(new ClickHandler() {
+            @Override
+            public void onClick(ClickEvent event) {
+                object.getProxyUpCommand().Execute();
+            }
+        });
+
+        downButton.setCommand(object.getProxyDownCommand());
+        downButton.addClickHandler(new ClickHandler() {
+            @Override
+            public void onClick(ClickEvent event) {
+                object.getProxyDownCommand().Execute();
+            }
+        });
+
+        // Bind proxy list.
+        
object.getPmProxyPreferencesList().getItemsChangedEvent().addListener(new 
IEventListener() {
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                proxyListBox.clear();
+
+                for (Object item : 
object.getPmProxyPreferencesList().getItems()) {
+                    proxyListBox.addItem((String) item);
+                }
+            }
+        });
+
+        
object.getPmProxyPreferencesList().getSelectedItemChangedEvent().addListener(new
 IEventListener() {
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+
+                List items = (List) 
object.getPmProxyPreferencesList().getItems();
+                int selectedItemIndex = 
items.indexOf(object.getPmProxyPreferencesList().getSelectedItem());
+
+                proxyListBox.setSelectedIndex(selectedItemIndex);
+            }
+        });
+
+        
object.getPmProxyPreferencesList().getPropertyChangedEvent().addListener(new 
IEventListener() {
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                PropertyChangedEventArgs e = (PropertyChangedEventArgs) args;
+                if (e.PropertyName == "IsChangable") {  //$NON-NLS-1$
+                    
proxyListBox.setEnabled(object.getPmProxyPreferencesList().getIsChangable());
+                }
+            }
+        });
+        
proxyListBox.setEnabled(object.getPmProxyPreferencesList().getIsChangable());
+
+        proxyListBox.addChangeHandler(new ChangeHandler() {
+            @Override
+            public void onChange(ChangeEvent event) {
+                List items = (List) 
object.getPmProxyPreferencesList().getItems();
+
+                Object selectedItem = proxyListBox.getSelectedIndex() >= 0
+                    ? items.get(proxyListBox.getSelectedIndex())
+                    : null;
+
+                
object.getPmProxyPreferencesList().setSelectedItem(selectedItem);
+            }
+        });
+
         // Create SPM related controls.
         IEventListener spmListener = new IEventListener() {
             @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
index efa9c49..8b00792 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
@@ -33,13 +33,39 @@
             margin-bottom: 10px;
         }
 
+        .sourceLabel {
+            font-size: 13px;
+            font-family: Verdana,sans-serif;
+            padding: 0 5px;
+        }
+
         .testPanel {
             margin-top: 20px;
         }
 
-        .testMessagePanel {
-            margin-left: 70px;
-            height: 100px;
+        .testButton {
+            margin-top: 40px;
+            margin-right: 10px;
+            padding: 0 5px;
+        }
+
+        .proxyListBox {
+            width: 300px;
+            border: 1px solid gray;
+        }
+
+        .upButton {
+            margin-top: 10px;
+            margin-left: 10px;
+        }
+
+        .downButton {
+            margin-top: 10px;
+            margin-left: 10px;
+        }
+
+        .testMessage {
+            margin-top: 10px;
         }
 
         .radioButton {
@@ -86,11 +112,18 @@
                                     <g:Label 
ui:field="pmOptionsExplanationLabel" addStyleNames="{style.explanationLabel}"/>
                                     <e:EntityModelCheckBoxEditor 
ui:field="pmSecureEditor"/>
                                     <g:HTMLPanel 
addStyleNames="{style.testPanel}">
-                                        <w:UiCommandButton 
ui:field="testButton"/>
-                                        <g:ScrollPanel 
addStyleNames="{style.testMessagePanel}">
-                                            <g:Label ui:field="testMessage"/>
-                                        </g:ScrollPanel>
-                                        <div style="clear: both;"/>
+                                        <div style="display:table-cell; 
vertical-align: top">
+                                            <g:Label ui:field="sourceLabel" 
addStyleNames="{style.sourceLabel}"/>
+                                            <w:UiCommandButton 
ui:field="testButton" addStyleNames="{style.testButton}"/>
+                                        </div>
+                                        <div style="display:table-cell">
+                                            <g:ListBox ui:field="proxyListBox" 
visibleItemCount="4" addStyleNames="{style.proxyListBox}"/>
+                                        </div>
+                                        <div style="display:table-cell; 
vertical-align: top">
+                                            <w:UiCommandButton 
ui:field="upButton" addStyleNames="{style.upButton}"/>
+                                            <w:UiCommandButton 
ui:field="downButton" addStyleNames="{style.downButton}"/>
+                                        </div>
+                                        <g:Label ui:field="testMessage" 
addStyleNames="{style.testMessage}"/>
                                     </g:HTMLPanel>
                                 </g:FlowPanel>
                             </g:FlowPanel>


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I59e2ecfafe3c20b0c3925780b6bf8051fe7bfa3f
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Eli Mesika <emes...@redhat.com>
Gerrit-Reviewer: Alexey Chub <ac...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to