data-miner-manager/src/main/java/org/gcube/portlets/user/dataminermanager/client/experimentArea/WorkflowPanel.java

128 lines
3.5 KiB
Java
Raw Normal View History

/**
*
*/
package org.gcube.portlets.user.dataminermanager.client.experimentArea;
import org.gcube.portlets.user.dataminermanager.client.DataMinerManager;
import org.gcube.portlets.user.dataminermanager.client.bean.Operator;
import org.gcube.portlets.user.dataminermanager.client.common.EventBusProvider;
import org.gcube.portlets.user.dataminermanager.client.events.EmptyComputationPanelEvent;
import org.gcube.portlets.user.dataminermanager.client.events.ResubmitComputationEvent;
import org.gcube.portlets.user.dataminermanager.client.experimentArea.WorkflowOperatorPanel.WorkflowOperatorPanelHandler;
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 email: <a
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
*
*/
public class WorkflowPanel extends TabPanel {
public static final String DEFAULT_OPERATOR = "AQUAMAPS_SUITABLE";
private WorkflowOperatorPanel workflowOperatorPanel;
private ComputationExecutionPanel computationExecutionPanel;
private ComputationPanel computationPanel;
/**
*
*/
public WorkflowPanel() {
super();
init();
create();
bind();
}
private void init() {
setBodyBorder(false);
}
private void create() {
workflowOperatorPanel = null;
TabItemConfig tabWorkFlowLcItemConf = new TabItemConfig(
".: Computation", false);
tabWorkFlowLcItemConf.setIcon(DataMinerManager.resources
.folderExplore());
computationPanel = new ComputationPanel();
computationPanel
.addEmptyComputationPanelEventHandler(new EmptyComputationPanelEvent.EmptyComputationPanelEventHandler() {
@Override
public void onEmpty(EmptyComputationPanelEvent event) {
Log.debug("EmptyComputationPanelEvent Received");
workflowOperatorPanel = null;
}
});
add(computationPanel, tabWorkFlowLcItemConf);
TabItemConfig tabComputationPanelItemConf = new TabItemConfig(
".: Computations Execution", false);
tabComputationPanelItemConf.setIcon(DataMinerManager.resources
.folderExplore());
computationExecutionPanel = new ComputationExecutionPanel();
add(computationExecutionPanel, tabComputationPanelItemConf);
setActiveWidget(computationPanel);
}
/**
*
*/
private void bind() {
EventBusProvider.INSTANCE.addHandler(
ResubmitComputationEvent.getType(),
new ResubmitComputationEvent.ResubmitComputationHandler() {
@Override
public void onResubmitComputation(
ResubmitComputationEvent event) {
setActiveWidget(computationExecutionPanel);
}
});
}
/**
* @param computationTitle
* @param operator
*
*/
private void startComputation(String computationTitle,
String computationDescription) {
if (workflowOperatorPanel != null) {
forceLayout();
workflowOperatorPanel.updateOperatorParametersValues();
Operator op = workflowOperatorPanel.getOperator();
computationExecutionPanel.startNewComputation(op, computationTitle,
computationDescription);
}
}
public void addOperator(Operator op) {
setActiveWidget(computationPanel);
workflowOperatorPanel = new WorkflowOperatorPanel(op);
workflowOperatorPanel.setHandler(new WorkflowOperatorPanelHandler() {
@Override
public void startComputation(String computationTitle,
String computationDescription) {
WorkflowPanel.this.startComputation(computationTitle,
computationDescription);
setActiveWidget(computationExecutionPanel);
}
});
computationPanel.addWorkflowOperatorPanel(workflowOperatorPanel);
}
}