data-miner-executor/src/main/java/org/gcube/portlets/user/dataminerexecutor/client/experiments/WorkflowPanel.java

115 lines
3.3 KiB
Java
Executable File

/**
*
*/
package org.gcube.portlets.user.dataminerexecutor.client.experiments;
import org.gcube.data.analysis.dataminermanagercl.shared.process.Operator;
import org.gcube.portlets.user.dataminerexecutor.client.DataMinerExecutor;
import org.gcube.portlets.user.dataminerexecutor.client.common.EventBusProvider;
import org.gcube.portlets.user.dataminerexecutor.client.events.ComputationReadyEvent;
import org.gcube.portlets.user.dataminerexecutor.client.events.ResubmitComputationExecutionEvent;
import org.gcube.portlets.user.dataminerexecutor.client.info.ServiceInfoPanel;
import org.gcube.portlets.user.dataminerexecutor.shared.process.InvocationModel;
import com.allen_sauer.gwt.log.client.Log;
import com.sencha.gxt.widget.core.client.TabItemConfig;
import com.sencha.gxt.widget.core.client.TabPanel;
/**
*
* @author Giancarlo Panichi
*
*
*/
public class WorkflowPanel extends TabPanel {
private static final String OPERATOR = "Operator";
private static final String COMPUTATIONS_EXECUTION = "Computations Execution";
private static final String SERVICE_INFO = "Service Profile";
private ComputationExecutionPanel computationExecutionPanel;
private ComputationPanel computationPanel;
private ServiceInfoPanel serviceInfoPanel;
/**
*
*/
public WorkflowPanel() {
super();
init();
create();
bind();
}
private void init() {
setBodyBorder(false);
}
private void create() {
TabItemConfig tabWorkFlowLcItemConf = new TabItemConfig(OPERATOR, false);
tabWorkFlowLcItemConf.setIcon(DataMinerExecutor.resources.folderExplore());
computationPanel = new ComputationPanel();
computationPanel.addComputationReadyEventHandler(new ComputationReadyEvent.ComputationReadyEventHandler() {
@Override
public void onReady(ComputationReadyEvent event) {
Log.debug("StartComputationEvent Received:" + event);
startComputation(event.getOperator());
}
});
add(computationPanel, tabWorkFlowLcItemConf);
TabItemConfig tabComputationPanelItemConf = new TabItemConfig(COMPUTATIONS_EXECUTION, false);
tabComputationPanelItemConf.setIcon(DataMinerExecutor.resources.folderExplore());
computationExecutionPanel = new ComputationExecutionPanel();
add(computationExecutionPanel, tabComputationPanelItemConf);
TabItemConfig tabServiceInfoPanelItemConf = new TabItemConfig(SERVICE_INFO, false);
tabServiceInfoPanelItemConf.setIcon(DataMinerExecutor.resources.folderExplore());
serviceInfoPanel = new ServiceInfoPanel();
add(serviceInfoPanel, tabServiceInfoPanelItemConf);
setActiveWidget(computationPanel);
}
/**
*
*/
private void bind() {
EventBusProvider.INSTANCE.addHandler(ResubmitComputationExecutionEvent.getType(),
new ResubmitComputationExecutionEvent.ResubmitComputationExecutionEventHandler() {
@Override
public void onResubmit(ResubmitComputationExecutionEvent event) {
resubmitComputation();
}
});
}
/**
*
*/
private void resubmitComputation() {
setActiveWidget(computationExecutionPanel);
}
/**
* @param computationTitle
* @param operator
*
*/
private void startComputation(Operator op) {
setActiveWidget(computationExecutionPanel);
computationExecutionPanel.startNewComputation(op);
}
public void addInvocation(InvocationModel invocationModel) {
setActiveWidget(computationPanel);
computationPanel.addInvocation(invocationModel);
}
}