vre-deploy/src/main/java/org/gcube/portlets/admin/vredeployer/client/view/panels/builders/ServicesDeployStatus.java

108 lines
2.4 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.ClientResourceManagerDeployingReport;
import org.gcube.portlets.admin.vredeployer.shared.deployreport.DeployStatus;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.ProgressBar;
import com.extjs.gxt.ui.client.widget.layout.CenterLayout;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.google.gwt.user.client.Window;
public class ServicesDeployStatus {
private ContentPanel cp;
boolean barAdded = false;
ProgressBar bar;
public ServicesDeployStatus() {
cp = new ContentPanel(new FitLayout());
cp.setLayout(new CenterLayout());
}
public void updateReport(ClientResourceManagerDeployingReport report) {
cp.unmask();
DeployStatus managerStatus = report.getStatus();
int i = 0;
String label = "% Complete";
switch (managerStatus) {
case FAIL:
label = "% Failure, see textual report";
i = 0;
break;
case RUN:
i = 50;
break;
case WAIT:
label = "% not started yet";
i = 0;
break;
case FINISH:
label = "% Complete";
i = 100;
break;
default:
break;
}
if (! barAdded) {
createReport();
barAdded = true;
bar.updateProgress(0, " not started yet");
cp.add(bar);
bar.setWidth("90%");
cp.layout();
}
else {
if (report.getStatus() != DeployStatus.FINISH) {
cp.mask("Retrieving data", "loading-indicator");
DelayedOperation delay = new DelayedOperation() {
@Override
public void doJob() {
cp.unmask();
}
};
delay.start(1500);
}
bar.setWidth("90%");
bar.updateProgress((i/100), (int )i +label);
cp.layout();
}
if (report.getStatus() == DeployStatus.FAIL || report.getStatus() == DeployStatus.FINISH) {
bar.setWidth("90%");
i = 100;
bar.updateProgress((i/100), (int )i +label);
cp.layout();
}
}
/**
*
*/
public void createReport() {
cp.removeAll();
bar = new ProgressBar();
}
/**
*
* @return
*/
public ContentPanel getServicesDeployStatusPanel() {
cp.setHeaderVisible(true);
cp.setHeading("Services dynamic deploying");
cp.setHeight(250);
cp.setBorders(true);
cp.mask("Retrieving data", "loading-indicator");
return cp;
}
}