use of org.apache.airavata.workflow.model.component.Component in project airavata by apache.
the class ComponentSelector method expandTreeLeaf.
private void expandTreeLeaf(ComponentTreeNode selectedNode, List<? extends Component> components) {
ComponentReference componentReference = selectedNode.getComponentReference();
ComponentTreeNode newNode = new ComponentTreeNode(componentReference.getName());
ComponentTreeNode parent = (ComponentTreeNode) selectedNode.getParent();
int index = this.treeModel.getIndexOfChild(parent, selectedNode);
this.treeModel.removeNodeFromParent(selectedNode);
this.treeModel.insertNodeInto(newNode, parent, index);
for (Component component : components) {
WSComponent wsComponent = (WSComponent) component;
String operationName = wsComponent.getOperationName();
ComponentOperationReference reference = new ComponentOperationReference(operationName, wsComponent);
ComponentTreeNode child = new ComponentTreeNode(reference);
this.treeModel.addNodeInto(child, newNode);
}
// expand
TreeNode[] path = newNode.getPath();
this.tree.expandPath(new TreePath(path));
}
use of org.apache.airavata.workflow.model.component.Component in project airavata by apache.
the class ComponentSelector method select.
/**
* This method is called when a component is selected. It reads the component information from the server and set
* the selectedComponent.
*
* @param treePath
* The path of the selected selectedComponent.
*/
private void select(TreePath treePath) {
final ComponentTreeNode selectedNode = (ComponentTreeNode) treePath.getLastPathComponent();
final ComponentReference componentReference = selectedNode.getComponentReference();
selectComponent(null);
this.selectedComponentReference = null;
if (componentReference != null) {
this.selectedComponentReference = componentReference;
new Thread() {
@Override
public void run() {
try {
// get all components and check the number of
// components. If there are multiple, expand the tree.
final List<? extends Component> components = componentReference.getComponents();
if (components.size() == 1) {
selectComponent(components.get(0));
} else {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
expandTreeLeaf(selectedNode, components);
}
});
}
} catch (ComponentException e) {
selectComponent(null);
ComponentSelector.this.engine.getGUI().getErrorWindow().error(ErrorMessages.COMPONENT_FORMAT_ERROR, e);
} catch (ComponentRegistryException e) {
selectComponent(null);
ComponentSelector.this.engine.getGUI().getErrorWindow().error(ErrorMessages.COMPONENT_LOAD_ERROR, e);
} catch (RuntimeException e) {
selectComponent(null);
ComponentSelector.this.engine.getGUI().getErrorWindow().error(ErrorMessages.COMPONENT_LOAD_ERROR, e);
} catch (Exception e) {
selectComponent(null);
ComponentSelector.this.engine.getGUI().getErrorWindow().error(ErrorMessages.COMPONENT_LOAD_ERROR, e);
}
}
}.start();
}
}
use of org.apache.airavata.workflow.model.component.Component in project airavata by apache.
the class InstanceNode method getComponent.
/**
* @see org.apache.airavata.workflow.model.graph.impl.NodeImpl#getComponent()
*/
@Override
public Component getComponent() {
Component component = super.getComponent();
if (component == null) {
// The component is null when read from the graph XML.
component = new InstanceComponent();
setComponent(component);
}
return component;
}
use of org.apache.airavata.workflow.model.component.Component in project airavata by apache.
the class GraphCanvas method drop.
private void drop(final DropTargetDropEvent event) {
logger.debug("Event:" + event);
Transferable transferable = event.getTransferable();
try {
// Cannot cast transferable.
final ComponentReference componentReference = (ComponentReference) transferable.getTransferData(ComponentSourceTransferable.FLAVOR);
final Point location = event.getLocation();
// The component might not have loaded if the network is slow.
new Thread() {
@Override
public void run() {
try {
Component component = componentReference.getComponent();
addNode(component, location);
// To be able to delete the added node by the keyboard.
GraphCanvas.this.panel.requestFocusInWindow();
// XXX this sometimes throws exception.
event.dropComplete(true);
} catch (ComponentException e) {
// If there is any error, the component tree viewer
// shows the error dialog.
logger.error(e.getMessage(), e);
event.dropComplete(false);
} catch (ComponentRegistryException e) {
logger.error(e.getMessage(), e);
event.dropComplete(false);
}
}
}.start();
} catch (UnsupportedFlavorException e) {
// Should not happen.
logger.error(e.getMessage(), e);
} catch (IOException e) {
// Should not happen.
logger.error(e.getMessage(), e);
}
}
use of org.apache.airavata.workflow.model.component.Component in project airavata by apache.
the class ComponentViewer method componentSelectorChanged.
/**
* @see org.apache.airavata.xbaya.ui.widgets.component.ComponentSelectorListener#componentSelectorChanged(org.apache.airavata.xbaya.ui.widgets.component.ComponentSelectorEvent)
*/
public void componentSelectorChanged(ComponentSelectorEvent event) {
ComponentSelectorEventType type = event.getType();
switch(type) {
case COMPONENT_SELECTED:
Component component = event.getComponent();
setComponent(component);
break;
}
}
Aggregations