use of org.talend.designer.core.ui.editor.process.Process in project tdi-studio-se by Talend.
the class JobletContainerLayoutEditPolicy method getCreateCommand.
@Override
protected Command getCreateCommand(CreateRequest request) {
Rectangle constraint = (Rectangle) getConstraintFor(request);
Process linkedProcess = (Process) ((JobletContainer) getHost().getModel()).getNode().getProcess();
Command command = null;
if (Note.class.equals(request.getNewObjectType())) {
command = new CreateNoteCommand(linkedProcess, (Note) request.getNewObject(), constraint.getLocation());
} else if (request.getNewObject() instanceof Node) {
Node node = (Node) request.getNewObject();
NodeContainer nodeContainer = ((Process) node.getProcess()).loadNodeContainer(node, false);
command = new CreateNodeContainerCommand(linkedProcess, nodeContainer, constraint.getLocation());
}
return command;
}
use of org.talend.designer.core.ui.editor.process.Process in project tdi-studio-se by Talend.
the class ProcessComposite method debug.
public void debug() {
setHideconsoleLine(false);
if ((processContext.getProcess()) instanceof org.talend.designer.core.ui.editor.process.Process) {
((org.talend.designer.core.ui.editor.process.Process) processContext.getProcess()).checkDifferenceWithRepository();
}
// final IPreferenceStore preferenceStore = DebugUIPlugin.getDefault().getPreferenceStore();
final IPreferenceStore preferenceStore = DebugUITools.getPreferenceStore();
final boolean oldValueConsoleOnOut = preferenceStore.getBoolean(IDebugPreferenceConstants.CONSOLE_OPEN_ON_OUT);
final boolean oldValueConsoleOnErr = preferenceStore.getBoolean(IDebugPreferenceConstants.CONSOLE_OPEN_ON_ERR);
preferenceStore.setValue(IDebugPreferenceConstants.CONSOLE_OPEN_ON_OUT, false);
preferenceStore.setValue(IDebugPreferenceConstants.CONSOLE_OPEN_ON_ERR, false);
checkSaveBeforeRunSelection();
if (contextComposite.promptConfirmLauch()) {
setRunnable(false);
final IContext context = contextComposite.getSelectedContext();
IRunnableWithProgress worker = new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) {
IProcessor processor = ProcessorUtilities.getProcessor(processContext.getProcess(), processContext.getProcess().getProperty(), context);
//$NON-NLS-1$
monitor.beginTask("Launching debugger", IProgressMonitor.UNKNOWN);
try {
// use this function to generate childrens also.
ProcessorUtilities.generateCode(processContext.getProcess(), context, false, false, true, monitor);
ILaunchConfiguration config = ((Processor) processor).getDebugConfiguration(processContext.getStatisticsPort(), processContext.getTracesPort(), null);
// code is correct before launching
if (!JobErrorsChecker.hasErrors(ProcessComposite.this.getShell())) {
if (config != null) {
// PlatformUI.getWorkbench().
// getActiveWorkbenchWindow
// ().addPerspectiveListener(new
// DebugInNewWindowListener());
DebugUITools.launch(config, ILaunchManager.DEBUG_MODE);
} else {
//$NON-NLS-1$
MessageDialog.openInformation(//$NON-NLS-1$
getShell(), //$NON-NLS-1$
Messages.getString("ProcessDebugDialog.debugBtn"), //$NON-NLS-1$
Messages.getString("ProcessDebugDialog.errortext"));
}
}
} catch (ProcessorException e) {
IStatus status = new Status(IStatus.ERROR, RunProcessPlugin.PLUGIN_ID, IStatus.OK, "Debug launch failed.", //$NON-NLS-1$
e);
RunProcessPlugin.getDefault().getLog().log(status);
//$NON-NLS-1$ //$NON-NLS-2$
MessageDialog.openError(getShell(), Messages.getString("ProcessDebugDialog.debugBtn"), "");
} finally {
monitor.done();
}
}
};
IProgressService progressService = PlatformUI.getWorkbench().getProgressService();
try {
progressService.runInUI(PlatformUI.getWorkbench().getProgressService(), worker, ResourcesPlugin.getWorkspace().getRoot());
} catch (InvocationTargetException e) {
// e.printStackTrace();
ExceptionHandler.process(e);
} catch (InterruptedException e) {
// e.printStackTrace();
ExceptionHandler.process(e);
}
}
debugMode = true;
try {
Thread thread = new Thread() {
@Override
public void run() {
while (debugMode) {
final IProcess process = DebugUITools.getCurrentProcess();
if (process != null && process.isTerminated()) {
getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
setRunnable(true);
killBtn.setEnabled(false);
preferenceStore.setValue(IDebugPreferenceConstants.CONSOLE_OPEN_ON_OUT, oldValueConsoleOnOut);
preferenceStore.setValue(IDebugPreferenceConstants.CONSOLE_OPEN_ON_ERR, oldValueConsoleOnErr);
if (isAddedStreamListener) {
process.getStreamsProxy().getOutputStreamMonitor().removeListener(streamListener);
isAddedStreamListener = false;
if (processContext.isRunning()) {
//$NON-NLS-1$
final String endingPattern = Messages.getString("ProcessComposite.endPattern");
MessageFormat mf = new MessageFormat(endingPattern);
String byeMsg;
try {
byeMsg = //$NON-NLS-1$
"\n" + mf.format(new Object[] { processContext.getProcess().getName(), new Date(), new Integer(process.getExitValue()) });
processContext.addDebugResultToConsole(new ProcessMessage(MsgType.CORE_OUT, byeMsg));
} catch (DebugException e) {
// e.printStackTrace();
ExceptionHandler.process(e);
}
processContext.setRunning(false);
}
}
debugMode = false;
}
});
} else {
if (process != null) {
// (one at leat) process
// still running
getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
setRunnable(false);
killBtn.setEnabled(true);
processContext.setRunning(true);
processContext.setDebugProcess(process);
if (!isAddedStreamListener) {
process.getStreamsProxy().getOutputStreamMonitor().addListener(streamListener);
// if (clearBeforeExec.getSelection()) {
// processContext.clearMessages();
// }
// if (watchBtn.getSelection()) {
// processContext.switchTime();
// }
ClearPerformanceAction clearPerfAction = new ClearPerformanceAction();
clearPerfAction.setProcess(processContext.getProcess());
clearPerfAction.run();
ClearTraceAction clearTraceAction = new ClearTraceAction();
clearTraceAction.setProcess(processContext.getProcess());
clearTraceAction.run();
isAddedStreamListener = true;
//$NON-NLS-1$
final String startingPattern = Messages.getString("ProcessComposite.startPattern");
MessageFormat mf = new MessageFormat(startingPattern);
String welcomeMsg = mf.format(new Object[] { processContext.getProcess().getName(), new Date() });
processContext.addDebugResultToConsole(new ProcessMessage(MsgType.CORE_OUT, //$NON-NLS-1$
welcomeMsg + "\r\n"));
}
}
});
} else {
// no process running
getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
setRunnable(true);
killBtn.setEnabled(false);
}
});
}
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// e.printStackTrace();
ExceptionHandler.process(e);
}
}
}
};
thread.start();
} catch (Exception e) {
ExceptionHandler.process(e);
processContext.addErrorMessage(e);
kill();
}
}
use of org.talend.designer.core.ui.editor.process.Process in project tdi-studio-se by Talend.
the class ProcessComposite method getTRunjobList.
private List<Node> getTRunjobList(org.talend.core.model.process.IProcess process) {
List<Node> trunjobList = new ArrayList<Node>();
if (!(process instanceof Process)) {
return trunjobList;
}
List<INode> nodeList = (List<INode>) ((Process) process).getGraphicalNodes();
for (INode node : nodeList) {
if (node.getComponent().getName().equals("tRunJob")) {
//$NON-NLS-1$
if (node instanceof Node) {
trunjobList.add((Node) node);
}
}
}
return trunjobList;
}
use of org.talend.designer.core.ui.editor.process.Process in project tdi-studio-se by Talend.
the class TableByRowController method updateContextList.
private void updateContextList(IElementParameter param) {
List<String> contextParameterNamesList = new ArrayList<String>();
IElementParameter processTypeParam = elem.getElementParameterFromField(EParameterFieldType.PROCESS_TYPE);
if (processTypeParam == null) {
processTypeParam = elem.getElementParameterFromField(EParameterFieldType.ROUTE_INPUT_PROCESS_TYPE);
if (processTypeParam == null) {
return;
}
}
boolean haveContextParamList = false;
for (Object valueParam : param.getListItemsValue()) {
if (valueParam instanceof IElementParameter) {
IElementParameter vParam = (IElementParameter) valueParam;
if (vParam.getFieldType() == EParameterFieldType.CONTEXT_PARAM_NAME_LIST) {
haveContextParamList = true;
break;
}
}
}
if (!haveContextParamList) {
return;
}
IElementParameter jobElemParam = processTypeParam.getChildParameters().get(EParameterName.PROCESS_TYPE_PROCESS.getName());
IElementParameter jobVersionParam = processTypeParam.getChildParameters().get(EParameterName.PROCESS_TYPE_VERSION.getName());
IElementParameter contextElemParam = processTypeParam.getChildParameters().get(EParameterName.PROCESS_TYPE_CONTEXT.getName());
// get context list
String processId = (String) jobElemParam.getValue();
String contextName = (String) contextElemParam.getValue();
if (contextName == null) {
contextName = new String();
}
if (processId == null || contextName == null) {
revertToolBarButtonState(false);
return;
}
ProcessItem processItem = ItemCacheManager.getProcessItem(processId, (String) jobVersionParam.getValue());
Process process = null;
String[] contextParameterNames = null;
if (processItem != null) {
// achen modify to fix bug 0006107
IDesignerCoreService service = CorePlugin.getDefault().getDesignerCoreService();
process = (Process) service.getProcessFromItem(processItem);
// process = new Process(processItem.getProperty());
// process.loadXmlFile();
IContext context = process.getContextManager().getContext(contextName);
for (IContextParameter contextParam : context.getContextParameterList()) {
contextParameterNamesList.add(contextParam.getName());
}
contextParameterNames = contextParameterNamesList.toArray(new String[0]);
} else {
contextParameterNames = new String[0];
}
// update table values
TableViewerCreator tableViewerCreator = (TableViewerCreator) hashCurControls.get(param.getName());
Object[] itemsValue = param.getListItemsValue();
if (tableViewerCreator != null) {
List colList = tableViewerCreator.getColumns();
for (int j = 0; j < itemsValue.length; j++) {
if ((j + 1) >= colList.size()) {
break;
}
if (itemsValue[j] instanceof IElementParameter) {
IElementParameter tmpParam = (IElementParameter) itemsValue[j];
if (tmpParam.getFieldType() == EParameterFieldType.CONTEXT_PARAM_NAME_LIST) {
tmpParam.setListItemsDisplayCodeName(contextParameterNames);
tmpParam.setListItemsDisplayName(contextParameterNames);
tmpParam.setListItemsValue(contextParameterNames);
if (contextParameterNames.length > 0) {
tmpParam.setDefaultClosedListValue(contextParameterNames[0]);
} else {
//$NON-NLS-1$
tmpParam.setDefaultClosedListValue("");
}
// j + 1 because first column is masked
TableViewerCreatorColumnNotModifiable column = (TableViewerCreatorColumnNotModifiable) colList.get(j + 1);
CCombo combo = (CCombo) column.getCellEditor().getControl();
String[] oldItems = combo.getItems();
combo.setItems(contextParameterNames);
List<Map<String, Object>> paramValues = (List<Map<String, Object>>) param.getValue();
String[] items = param.getListItemsDisplayCodeName();
for (int currentIndex = 0; currentIndex < paramValues.size(); currentIndex++) {
Map<String, Object> currentLine = paramValues.get(currentIndex);
Object o = currentLine.get(items[j]);
if (o instanceof Integer) {
Integer nb = (Integer) o;
if ((nb >= oldItems.length) || (nb == -1)) {
currentLine.put(items[j], tmpParam.getDefaultClosedListValue());
} else {
currentLine.put(items[j], oldItems[nb]);
}
} else {
if (o instanceof String) {
Integer nb = new Integer(tmpParam.getIndexOfItemFromList((String) o));
if (nb == -1) {
currentLine.put(items[j], tmpParam.getDefaultClosedListValue());
}
}
}
}
}
}
}
}
// (bug 3740)
boolean checked = contextParameterNames != null && contextParameterNames.length > 0;
if (!checked) {
Object value = param.getValue();
if (value != null && value instanceof List) {
if (!((List) value).isEmpty()) {
((List) value).clear();
if (part != null && part.getTalendEditor() != null) {
part.getTalendEditor().setDirty(true);
}
}
}
}
revertToolBarButtonState(checked);
}
use of org.talend.designer.core.ui.editor.process.Process in project tdi-studio-se by Talend.
the class StatLogsAndImplicitcontextTreeViewPage method saveProcess.
private void saveProcess(RepositoryNode node, String paramName, Boolean isUseProjectSettings, boolean addContextModel, Map<String, Set<String>> contextVars, IProgressMonitor monitor) {
Property property = node.getObject().getProperty();
ProcessItem pItem = (ProcessItem) property.getItem();
ParametersType pType = pItem.getProcess().getParameters();
if (isOpenProcess(node)) {
Process process = getProcess(opendProcess, node);
LoadProjectSettingsCommand command = new LoadProjectSettingsCommand(process, paramName, isUseProjectSettings);
exeCommand(process, command);
Element elem = null;
String propertyName = "";
String propertyTypeName = "";
if (EParameterName.IMPLICITCONTEXT_USE_PROJECT_SETTINGS.getName().equals(paramName)) {
elem = (Element) pro.getInitialContextLoad();
propertyName = JobSettingsConstants.getExtraParameterName(EParameterName.PROPERTY_TYPE.getName()) + ':' + EParameterName.REPOSITORY_PROPERTY_TYPE.getName();
propertyTypeName = JobSettingsConstants.getExtraParameterName(EParameterName.PROPERTY_TYPE.getName()) + ':' + EParameterName.PROPERTY_TYPE.getName();
} else if (EParameterName.STATANDLOG_USE_PROJECT_SETTINGS.getName().equals(paramName)) {
elem = (Element) pro.getStatsAndLog();
propertyName = EParameterName.PROPERTY_TYPE.getName() + ':' + EParameterName.REPOSITORY_PROPERTY_TYPE.getName();
propertyTypeName = EParameterName.PROPERTY_TYPE.getName() + ':' + EParameterName.PROPERTY_TYPE.getName();
}
IElementParameter ptParam = elem.getElementParameterFromField(EParameterFieldType.PROPERTY_TYPE);
if (ptParam != null) {
IElementParameter propertyElem = ptParam.getChildParameters().get(EParameterName.PROPERTY_TYPE.getName());
Object proValue = propertyElem.getValue();
if (proValue instanceof String && ((String) proValue).equalsIgnoreCase(EmfComponent.REPOSITORY)) {
IElementParameter repositoryElem = ptParam.getChildParameters().get(EParameterName.REPOSITORY_PROPERTY_TYPE.getName());
String value = (String) repositoryElem.getValue();
ConnectionItem connectionItem = UpdateRepositoryUtils.getConnectionItemByItemId(value);
if (connectionItem != null) {
Connection connection = connectionItem.getConnection();
ChangeValuesFromRepository cmd = new ChangeValuesFromRepository(process, connection, addContextModel ? propertyName : propertyTypeName, value);
cmd.ignoreContextMode(true);
exeCommand(process, cmd);
}
}
}
monitor.worked(100);
} else {
ElementParameter2ParameterType.setParameterValue(pType, paramName, isUseProjectSettings);
if (isUseProjectSettings) {
if (EParameterName.IMPLICITCONTEXT_USE_PROJECT_SETTINGS.getName().equals(paramName)) {
ProjectSettingManager.reloadImplicitValuesFromProjectSettings(pType, ProjectManager.getInstance().getCurrentProject());
} else if (EParameterName.STATANDLOG_USE_PROJECT_SETTINGS.getName().equals(paramName)) {
ProjectSettingManager.reloadStatsAndLogFromProjectSettings(pType, ProjectManager.getInstance().getCurrentProject());
}
}
if (addContextModel && contextVars != null && !contextVars.isEmpty() && ContextUtils.getAllContextItem() != null) {
ContextUtils.addInContextModelForProcessItem(pItem, contextVars, ContextUtils.getAllContextItem());
}
try {
factory.save(pItem);
monitor.worked(100);
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
}
}
Aggregations