95 lines
2.3 KiB
Java
95 lines
2.3 KiB
Java
package org.gcube.portlets.admin.vredeployer.client.view.panels.builders;
|
|
|
|
import java.util.List;
|
|
|
|
import org.gcube.portlets.admin.vredeployer.client.charts.CloudChart;
|
|
import org.gcube.portlets.admin.vredeployer.client.util.DelayedOperation;
|
|
import org.gcube.portlets.admin.vredeployer.shared.deployreport.ClientCloudReport;
|
|
import org.gcube.portlets.admin.vredeployer.shared.deployreport.DeployStatus;
|
|
|
|
import com.extjs.gxt.charts.client.Chart;
|
|
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
|
import com.extjs.gxt.ui.client.widget.Html;
|
|
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
|
|
|
/**
|
|
*
|
|
* @author massi
|
|
*
|
|
*/
|
|
public class CloudDeployStatus {
|
|
|
|
private ContentPanel cp;
|
|
boolean chartAdded = false;
|
|
CloudChart cloudChart;
|
|
Chart myChart;
|
|
|
|
public CloudDeployStatus() {
|
|
cp = new ContentPanel(new FitLayout());
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public void createReport() {
|
|
cp.removeAll();
|
|
cloudChart = new CloudChart();
|
|
|
|
}
|
|
|
|
public void updateReport(ClientCloudReport report) {
|
|
cp.unmask();
|
|
final DeployStatus cloudStatus = report.getStatus();
|
|
if (cloudStatus == DeployStatus.SKIP) {
|
|
cp.setHeading("Cloud machines setup was skipped");
|
|
cp.add(new Html("Cloud deploy was not selected for this VRE"));
|
|
cp.layout();
|
|
}
|
|
else {
|
|
final List<DeployStatus> singleMachines = report.getItemsStatuses();
|
|
if (! chartAdded) {
|
|
createReport();
|
|
chartAdded = true;
|
|
myChart = cloudChart.getChart();
|
|
myChart.setChartModel(cloudChart.getChartModel(cloudStatus, singleMachines));
|
|
cp.add(myChart);
|
|
|
|
cp.layout();
|
|
}
|
|
else {
|
|
if (report.getStatus() != DeployStatus.FINISH) {
|
|
cp.mask("Retrieving data", "loading-indicator");
|
|
DelayedOperation delay = new DelayedOperation() {
|
|
@Override
|
|
public void doJob() {
|
|
cp.unmask();
|
|
myChart.setChartModel(cloudChart.getChartModel(cloudStatus, singleMachines));
|
|
myChart.refresh();
|
|
}
|
|
};
|
|
delay.start(1500);
|
|
}
|
|
else {
|
|
cp.unmask();
|
|
myChart.setChartModel(cloudChart.getChartModel(cloudStatus, singleMachines));
|
|
myChart.refresh();
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
*
|
|
* @return
|
|
*/
|
|
public ContentPanel getCloudDeployStatusPanel() {
|
|
cp.setHeaderVisible(true);
|
|
cp.setHeading("Cloud machines setup");
|
|
cp.setHeight(250);
|
|
cp.setBorders(true);
|
|
cp.mask("Retrieving data", "loading-indicator");
|
|
|
|
return cp;
|
|
}
|
|
}
|