use of org.talend.repository.ui.dialog.UseDynamicJobSelectionDialog in project tdi-studio-se by Talend.
the class ProcessController method createButtonCommand.
/**
* DOC nrousseau Comment method "createButtonCommand".
*
* @param source
* @return
*/
protected Command createButtonCommand(Button button) {
String procssId = null;
if (elem != null && elem instanceof Node) {
Node runJobNode = (Node) elem;
procssId = runJobNode.getProcess().getId();
}
// feature 19312
boolean isSelectUseDynamic = false;
IElementParameter useDynamicJobParameter = elem.getElementParameter(EParameterName.USE_DYNAMIC_JOB.getName());
if (useDynamicJobParameter != null && useDynamicJobParameter instanceof IElementParameter) {
Object useDynamicJobValue = useDynamicJobParameter.getValue();
if (useDynamicJobValue != null && useDynamicJobValue instanceof Boolean) {
isSelectUseDynamic = (Boolean) useDynamicJobValue;
}
}
if (isSelectUseDynamic) {
UseDynamicJobSelectionDialog usedialog = new UseDynamicJobSelectionDialog((button).getShell(), ERepositoryObjectType.PROCESS, procssId, isSelectUseDynamic);
// open the tree dialog and selected job if Checked
selectJobNodeIfChecked(button, usedialog);
if (usedialog.open() == UseDynamicJobSelectionDialog.OK) {
List<RepositoryNode> repositoryNodeList = usedialog.getRepositoryNodes();
StringBuffer ids = new StringBuffer();
String paramName = (String) button.getData(PARAMETER_NAME);
if (repositoryNodeList != null && repositoryNodeList.size() > 0) {
for (int i = 0; i < repositoryNodeList.size(); i++) {
RepositoryNode node = repositoryNodeList.get(i);
IRepositoryViewObject repositoryViewObject = node.getObject();
final Item item = repositoryViewObject.getProperty().getItem();
String id = item.getProperty().getId();
if (i > 0) {
ids.append(ProcessController.COMMA);
}
ids.append(id);
}
}
if (repositoryNodeList.size() > 1) {
MessageDialog.openInformation(button.getShell(), "Message", Messages.getString("ProcessController.UseDynamicJobSelectionDialog.message", repositoryNodeList.get(0).getLabel()));
}
return new PropertyChangeCommand(elem, paramName, ids.toString());
}
return null;
} else {
List<ERepositoryObjectType> repObjectTypes = new ArrayList<ERepositoryObjectType>();
repObjectTypes.add(ERepositoryObjectType.PROCESS);
repObjectTypes.add(ERepositoryObjectType.PROCESS_STORM);
repObjectTypes.add(ERepositoryObjectType.PROCESS_MR);
RepositoryReviewDialog dialog = new RepositoryReviewDialog((button).getShell(), repObjectTypes, procssId);
// see feature 0003664: tRunJob: When opening the tree dialog to select the job target, it could be useful
// to
// open it on previous selected job if exists
selectJobNodeIfExists(button, dialog);
if (dialog.open() == RepositoryReviewDialog.OK) {
IRepositoryViewObject repositoryObject = dialog.getResult().getObject();
final Item item = repositoryObject.getProperty().getItem();
String id = item.getProperty().getId();
String paramName = (String) button.getData(PARAMETER_NAME);
return new PropertyChangeCommand(elem, paramName, id);
}
return null;
}
}
Aggregations