anmolbabu has uploaded a new change for review.

Change subject: [WIP]webadmin : geo-rep status detail pop up
......................................................................

[WIP]webadmin : geo-rep status detail pop up

This patch adds geo-rep status detail pop up

Change-Id: I0cc6151fb71a4aa67dc76ec8dd8c93b76796f165
Signed-off-by: Anmol Babu <anb...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepSessionDetailsModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeGeoRepSessionDetailsPopUpPresenterWidget.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.ui.xml
6 files changed, 441 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/00/32100/1

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 2ef2b40..808c5f7 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
@@ -70,6 +70,7 @@
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterClusterService;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSession;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSessionDetails;
 import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterServerService;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
@@ -133,6 +134,7 @@
 import 
org.ovirt.engine.core.common.queries.gluster.GlusterServersQueryParameters;
 import 
org.ovirt.engine.core.common.queries.gluster.GlusterServiceQueryParameters;
 import 
org.ovirt.engine.core.common.queries.gluster.GlusterVolumeAdvancedDetailsParameters;
+import 
org.ovirt.engine.core.common.queries.gluster.GlusterVolumeGeoRepStatusDetailsPrameters;
 import 
org.ovirt.engine.core.common.queries.gluster.GlusterVolumeProfileParameters;
 import 
org.ovirt.engine.core.common.queries.gluster.GlusterVolumeQueriesParameters;
 import org.ovirt.engine.core.common.utils.ObjectUtils;
@@ -1489,6 +1491,16 @@
                 aQuery);
     }
 
+    public void getGlusterVolumeBrickById(AsyncQuery callback, Guid brickId) {
+        callback.converterCallback = new IAsyncConverter() {
+            @Override
+            public Object Convert(Object returnValue, AsyncQuery asyncQuery) {
+                return (returnValue != null) ? returnValue : new 
GlusterBrickEntity();
+            }
+        };
+        Frontend.getInstance().runQuery(VdcQueryType.GetGlusterBrickById, new 
IdQueryParameters(brickId), callback);
+    }
+
     public void getGlusterHostsNewlyAdded(AsyncQuery aQuery, Guid clusterId, 
boolean isFingerprintRequired) {
         aQuery.converterCallback = new IAsyncConverter() {
             @Override
@@ -1548,6 +1560,16 @@
         
//Frontend.getInstance().runQuery(VdcQueryType.GetGlusterVolumeGeoRepStatus, 
new GlusterVolumeQueriesParameters(masterVolumeClusterId, masterVolumeId), 
aQuery);
     }
 
+    public void getGlusterVolumeGeoRepSessionDetails(AsyncQuery aQuery, Guid 
sessionId) {
+        aQuery.converterCallback = new IAsyncConverter() {
+            @Override
+            public Object Convert(Object source, AsyncQuery asyncQuery) {
+                return source != null ? source : new 
ArrayList<GlusterGeoRepSessionDetails>();
+            }
+        };
+        
Frontend.getInstance().runQuery(VdcQueryType.GetGlusterVolumeGeoRepSessionStatusDetail,
 new GlusterVolumeGeoRepStatusDetailsPrameters(sessionId), aQuery);
+    }
+
     public void getGlusterHook(AsyncQuery aQuery, Guid hookId, boolean 
includeServerHooks) {
         aQuery.converterCallback = new IAsyncConverter() {
             @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepSessionDetailsModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepSessionDetailsModel.java
new file mode 100644
index 0000000..9ff5184
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepSessionDetailsModel.java
@@ -0,0 +1,154 @@
+package org.ovirt.engine.ui.uicommonweb.models.gluster;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ovirt.engine.core.common.businessentities.gluster.GeoRepCrawlStatus;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GeoRepSessionStatus;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSession;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSessionDetails;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeTaskStatusForHost;
+import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.ui.frontend.AsyncQuery;
+import org.ovirt.engine.ui.frontend.INewAsyncCallback;
+import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
+import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
+import org.ovirt.engine.ui.uicommonweb.models.ListModel;
+import org.ovirt.engine.ui.uicommonweb.models.Model;
+import org.ovirt.engine.ui.uicompat.FrontendMultipleQueryAsyncResult;
+import org.ovirt.engine.ui.uicompat.IFrontendMultipleQueryAsyncCallback;
+
+public class VolumeGeoRepSessionDetailsModel extends Model{
+    public static class GeoRepSessionDetailsTableRow {
+        private String masterHostName;
+        private String masterBrick;
+        private String slaveHostName;
+        private GeoRepSessionStatus status;
+        private String checkPointStatus;
+        private GeoRepCrawlStatus crawlStatus;
+        private Long filesSynced;
+        private Long filesPending;
+        private Long filesSkipped;
+        private Long deletesPending;
+        private Long bytesPending;
+        public String getMasterHostName() {
+            return masterHostName;
+        }
+        public void setMasterHostName(String masterHostName) {
+            this.masterHostName = masterHostName;
+        }
+        public String getMasterBrick() {
+            return masterBrick;
+        }
+        public void setMasterBrick(String masterBrick) {
+            this.masterBrick = masterBrick;
+        }
+        public String getSlaveHostName() {
+            return slaveHostName;
+        }
+        public void setSlaveHostName(String slaveHostName) {
+            this.slaveHostName = slaveHostName;
+        }
+        public GeoRepSessionStatus getStatus() {
+            return status;
+        }
+        public void setStatus(GeoRepSessionStatus status) {
+            this.status = status;
+        }
+        public String getCheckPointStatus() {
+            return checkPointStatus;
+        }
+        public void setCheckPointStatus(String checkPointStatus) {
+            this.checkPointStatus = checkPointStatus;
+        }
+        public GeoRepCrawlStatus getCrawlStatus() {
+            return crawlStatus;
+        }
+        public void setCrawlStatus(GeoRepCrawlStatus crawlStatus) {
+            this.crawlStatus = crawlStatus;
+        }
+        public Long getFilesSynced() {
+            return filesSynced;
+        }
+        public void setFilesSynced(Long filesSynced) {
+            this.filesSynced = filesSynced;
+        }
+        public Long getFilesPending() {
+            return filesPending;
+        }
+        public void setFilesPending(Long filesPending) {
+            this.filesPending = filesPending;
+        }
+        public Long getFilesSkipped() {
+            return filesSkipped;
+        }
+        public void setFilesSkipped(Long filesSkipped) {
+            this.filesSkipped = filesSkipped;
+        }
+        public Long getDeletesPending() {
+            return deletesPending;
+        }
+        public void setDeletesPending(Long deletesPending) {
+            this.deletesPending = deletesPending;
+        }
+        public Long getBytesPending() {
+            return bytesPending;
+        }
+        public void setBytesPending(Long bytesPending) {
+            this.bytesPending = bytesPending;
+        }
+        public GeoRepSessionDetailsTableRow(String masterHostName, String 
masterBrick, String slaveHostName, GeoRepSessionStatus status, String 
checkPointStatus, GeoRepCrawlStatus crawlStatus, Long filesSynced, Long 
filesPending, Long filesSkipped, Long deletesPending, Long bytesPending) {
+            super();
+            this.masterHostName = masterHostName;
+            this.masterBrick = masterBrick;
+            this.slaveHostName = slaveHostName;
+            this.status = status;
+            this.checkPointStatus = checkPointStatus;
+            this.crawlStatus = crawlStatus;
+            this.filesSynced = filesSynced;
+            this.filesPending = filesPending;
+            this.filesSkipped = filesSkipped;
+            this.deletesPending = deletesPending;
+            this.bytesPending = bytesPending;
+        }
+        
+    }
+
+    private ListModel<EntityModel<GlusterGeoRepSession>> geoRepSessionSummary;
+    private ListModel<EntityModel<GeoRepSessionDetailsTableRow>> 
geoRepSessionDetails;
+
+    public ListModel<EntityModel<GlusterGeoRepSession>> 
getGeoRepSessionSummary() {
+        return geoRepSessionSummary;
+    }
+
+    public void 
setGeoRepSessionSummary(ListModel<EntityModel<GlusterGeoRepSession>> 
geoRepSessionSummary) {
+        this.geoRepSessionSummary = geoRepSessionSummary;
+    }
+
+    public ListModel<EntityModel<GeoRepSessionDetailsTableRow>> 
getGeoRepSessionDetails() {
+        return geoRepSessionDetails;
+    }
+
+    public void 
setGeoRepSessionDetails(ListModel<EntityModel<GeoRepSessionDetailsTableRow>> 
geoRepSessionDetails) {
+        this.geoRepSessionDetails = geoRepSessionDetails;
+    }
+
+    private void populateStatus(GlusterGeoRepSession session) {
+        final List<GlusterGeoRepSessionDetails> details = 
session.getSessionDetails();
+        final List<EntityModel<GeoRepSessionDetailsTableRow>> detailRows = new 
ArrayList<EntityModel<GeoRepSessionDetailsTableRow>>();
+        for(final GlusterGeoRepSessionDetails detail : details) {
+            AsyncDataProvider.getInstance().getGlusterVolumeBrickById(new 
AsyncQuery(new INewAsyncCallback() {
+                @Override
+                public void onSuccess(Object model, Object returnValue) {
+                    GlusterBrickEntity brick = ((VdcQueryReturnValue) 
returnValue).getReturnValue();
+                    detailRows.add(new 
EntityModel<VolumeGeoRepSessionDetailsModel.GeoRepSessionDetailsTableRow>(new 
GeoRepSessionDetailsTableRow(brick.getServerName(), brick.getBrickDirectory(), 
detail.getSlaveHostName(), detail.getStatus(), detail.getCheckPointStatus(), 
detail.getCrawlStatus(), detail.getFilesSynced(), detail.getFilesPending(), 
detail.getFilesSkipped(), detail.getDeletesPending(), 
detail.getBytesPending())));
+                    if(details.indexOf(detail) == details.size() - 1) {
+                        getGeoRepSessionDetails().setItems(detailRows);
+                    }
+                }
+            }), detail.getMasterBrickId());
+        }
+    }
+}
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 ccf4def..35e0ccb 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
@@ -3656,6 +3656,49 @@
     @DefaultStringValue("Rebalance NOT STARTED")
     String rebalanceNotStarted();
 
+    //Volume Geo Rep Status Detail Column Headers
+    @DefaultStringValue("Host")
+    String geoRepSessionHostName();
+
+    @DefaultStringValue("Status")
+    String geoRepSessionStatus();
+
+    @DefaultStringValue("Up Time")
+    String geoRepSessionUpTime();
+
+    @DefaultStringValue("Master Node")
+    String geoRepMasterNode();
+
+    @DefaultStringValue("Master Brick")
+    String geoRepMasterBrick();
+
+    @DefaultStringValue("Slave host")
+    String geoRepSlaveHostName();
+
+    @DefaultStringValue("Status")
+    String geoRepPairStatus();
+
+    @DefaultStringValue("Checkpoint Status")
+    String geoRepCheckPointStatus();
+
+    @DefaultStringValue("Crawl Status")
+    String georepCrawlStatus();
+
+    @DefaultStringValue("Files synced")
+    String geoRepFilesSynced();
+
+    @DefaultStringValue("Files Pending")
+    String geoRepFilesPending();
+
+    @DefaultStringValue("Bytes Pending")
+    String geoRepBytesPending();
+
+    @DefaultStringValue("Deletes Pending")
+    String geoRepDeletesPending();
+
+    @DefaultStringValue("Files Skipped")
+    String geoRepFilesSkipped();
+
     @DefaultStringValue("Manage Policy Units")
     String managePolicyUnits();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeGeoRepSessionDetailsPopUpPresenterWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeGeoRepSessionDetailsPopUpPresenterWidget.java
new file mode 100644
index 0000000..9cb368f
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/VolumeGeoRepSessionDetailsPopUpPresenterWidget.java
@@ -0,0 +1,19 @@
+package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster;
+
+import 
org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
+import 
org.ovirt.engine.ui.common.presenter.popup.DefaultConfirmationPopupPresenterWidget;
+import 
org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeGeoRepSessionDetailsModel;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class VolumeGeoRepSessionDetailsPopUpPresenterWidget extends 
AbstractModelBoundPopupPresenterWidget<VolumeGeoRepSessionDetailsModel, 
VolumeGeoRepSessionDetailsPopUpPresenterWidget.ViewDef>{
+    public interface ViewDef extends 
AbstractModelBoundPopupPresenterWidget.ViewDef<VolumeGeoRepSessionDetailsModel> 
{
+    }
+
+    @Inject
+    public VolumeGeoRepSessionDetailsPopUpPresenterWidget(EventBus eventBus, 
ViewDef view, Provider<DefaultConfirmationPopupPresenterWidget> 
defaultConfirmPopupProvider) {
+        super(eventBus, view);
+    }
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.java
new file mode 100644
index 0000000..3a9e6e5
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.java
@@ -0,0 +1,169 @@
+package org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster;
+
+import java.util.Date;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSession;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSessionDetails;
+import org.ovirt.engine.ui.common.idhandler.ElementIdHandler;
+import org.ovirt.engine.ui.common.idhandler.WithElementId;
+import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView;
+import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel;
+import org.ovirt.engine.ui.common.widget.editor.EntityModelCellTable;
+import org.ovirt.engine.ui.common.widget.table.column.EntityModelTextColumn;
+import org.ovirt.engine.ui.common.widget.table.column.FullDateTimeColumn;
+import org.ovirt.engine.ui.uicommonweb.models.ListModel;
+import 
org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeGeoRepSessionDetailsModel;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationMessages;
+import org.ovirt.engine.ui.webadmin.ApplicationResources;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.VolumeGeoRepSessionDetailsPopUpPresenterWidget;
+import 
org.ovirt.engine.ui.webadmin.widget.table.column.RebalanceFileSizeColumn;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.editor.client.SimpleBeanEditorDriver;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.inject.Inject;
+
+public class VolumeGeoRepSessionDetailsPopUpView extends 
AbstractModelBoundPopupView<VolumeGeoRepSessionDetailsModel> implements 
VolumeGeoRepSessionDetailsPopUpPresenterWidget.ViewDef{
+
+    interface Driver extends 
SimpleBeanEditorDriver<VolumeGeoRepSessionDetailsModel, 
VolumeGeoRepSessionDetailsPopUpView> {
+    }
+
+    interface ViewUiBinder extends UiBinder<SimpleDialogPanel, 
VolumeGeoRepSessionDetailsPopUpView> {
+        ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
+    }
+
+    interface ViewIdHandler extends 
ElementIdHandler<VolumeGeoRepSessionDetailsPopUpView> {
+        ViewIdHandler idHandler = GWT.create(ViewIdHandler.class);
+    }
+
+    @UiField(provided = true)
+    @Ignore
+    @WithElementId
+    EntityModelCellTable<ListModel> geoRepSessionSummaryTable;
+
+    @UiField(provided = true)
+    @Ignore
+    @WithElementId
+    EntityModelCellTable<ListModel> geoRepSessionDetailsTable;
+
+    ApplicationResources resources;
+    ApplicationConstants constants;
+    ApplicationMessages messages;
+
+    @Inject
+    public VolumeGeoRepSessionDetailsPopUpView(EventBus eventBus, 
ApplicationResources resources, ApplicationConstants constants, 
ApplicationMessages messages) {
+        super(eventBus, resources);
+        this.resources = resources;
+        this.constants = constants;
+        this.messages = messages;
+        intiEditors();
+    }
+
+    private void intiEditors() {
+        geoRepSessionSummaryTable = new EntityModelCellTable<ListModel>(false, 
true);
+
+        geoRepSessionSummaryTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterGeoRepSession>() {
+            @Override
+            protected String getText(GlusterGeoRepSession entity) {
+                return entity.getSlaveHostName();
+            }
+        }, constants.geoRepSessionHostName());
+        geoRepSessionSummaryTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterGeoRepSession>() {
+            @Override
+            protected String getText(GlusterGeoRepSession entity) {
+                return entity.getStatus().toString();
+            }
+        }, constants.geoRepSessionStatus());
+        geoRepSessionSummaryTable.addColumn(new 
FullDateTimeColumn<GlusterGeoRepSession>() {
+            @Override
+            protected Date getRawValue(GlusterGeoRepSession object) {
+                return object.getSessionDetails().get(0).getUpdatedAt();
+            }
+        }, constants.geoRepSessionUpTime());
+
+
+        geoRepSessionDetailsTable = new EntityModelCellTable<ListModel>(false, 
true);
+
+        geoRepSessionDetailsTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterBrickEntity>() {
+            @Override
+            protected String getText(GlusterBrickEntity entity) {
+                return entity.getServerName();
+            }
+        }, constants.geoRepMasterNode());
+        geoRepSessionDetailsTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterBrickEntity>() {
+            @Override
+            protected String getText(GlusterBrickEntity entity) {
+                return entity.getBrickDirectory();
+            }
+        }, constants.geoRepMasterBrick());
+        geoRepSessionDetailsTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterGeoRepSessionDetails>() {
+            @Override
+            protected String getText(GlusterGeoRepSessionDetails entity) {
+                return entity.getSlaveHostName();
+            }
+        }, constants.geoRepSlaveHostName());
+        geoRepSessionDetailsTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterGeoRepSessionDetails>() {
+            @Override
+            protected String getText(GlusterGeoRepSessionDetails entity) {
+                return entity.getStatus().toString();
+            }
+        }, constants.geoRepSessionStatus());
+        geoRepSessionDetailsTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterGeoRepSessionDetails>() {
+            @Override
+            protected String getText(GlusterGeoRepSessionDetails entity) {
+                return entity.getCheckPointStatus();
+            }
+        }, constants.geoRepSlaveHostName());
+        geoRepSessionDetailsTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterGeoRepSessionDetails>() {
+            @Override
+            protected String getText(GlusterGeoRepSessionDetails entity) {
+                return entity.getCrawlStatus().toString();
+            }
+        }, constants.georepCrawlStatus());
+        geoRepSessionDetailsTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterGeoRepSessionDetails>() {
+            @Override
+            protected String getText(GlusterGeoRepSessionDetails entity) {
+                return entity.getFilesSynced().toString();
+            }
+        }, constants.geoRepFilesSynced());
+        geoRepSessionDetailsTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterGeoRepSessionDetails>() {
+            @Override
+            protected String getText(GlusterGeoRepSessionDetails entity) {
+                return entity.getFilesPending().toString();
+            }
+        }, constants.geoRepFilesPending());
+        geoRepSessionDetailsTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterGeoRepSessionDetails>() {
+            @Override
+            protected String getText(GlusterGeoRepSessionDetails entity) {
+                return entity.getDeletesPending().toString();
+            }
+        }, constants.geoRepDeletesPending());
+        geoRepSessionDetailsTable.addColumn(new 
RebalanceFileSizeColumn<GlusterGeoRepSessionDetails>(messages) {
+            @Override
+            protected Long getRawValue(GlusterGeoRepSessionDetails object) {
+                return object.getBytesPending();
+            }
+        }, constants.geoRepBytesPending());
+        geoRepSessionDetailsTable.addEntityModelColumn(new 
EntityModelTextColumn<GlusterGeoRepSessionDetails>() {
+            @Override
+            protected String getText(GlusterGeoRepSessionDetails entity) {
+                return entity.getFilesSkipped().toString();
+            }
+        }, constants.geoRepFilesSkipped());
+    }
+
+    @Override
+    public void edit(VolumeGeoRepSessionDetailsModel object) {
+        
+    }
+
+    @Override
+    public VolumeGeoRepSessionDetailsModel flush() {
+        return null;
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.ui.xml
new file mode 100644
index 0000000..43fab80
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumeGeoRepSessionDetailsPopUpView.ui.xml
@@ -0,0 +1,34 @@
+<?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:d="urn:import:org.ovirt.engine.ui.common.widget.dialog"
+       xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic"
+       xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor"
+       xmlns:w="urn:import:org.ovirt.engine.ui.common.widget">
+       <ui:style>
+               .tablePanel {
+               height: 215px;
+               width: 981px;
+               padding: 1px;
+               border: 1px solid #CED8DF;
+               }
+
+        .button table{
+                       width: 100%;
+               }
+       </ui:style>
+
+    <d:SimpleDialogPanel width="480px" height="350px">
+        <g:VerticalPanel>
+               <d:content>
+                   <g:ScrollPanel addStyleNames="{style.tablePanel}">
+                                   <e:EntityModelCellTable 
ui:field="geoRepSessionSummaryTable" />
+                           </g:ScrollPanel>
+
+                           <g:ScrollPanel addStyleNames="{style.tablePanel}">
+                                   <e:EntityModelCellTable 
ui:field="geoRepSessionDetailsTable" />
+                           </g:ScrollPanel>                        
+                   </d:content>
+               </g:VerticalPanel>
+       </d:SimpleDialogPanel>
+</ui:UiBinder>
\ No newline at end of file


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

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

Reply via email to