use of org.talend.core.model.properties.JobletProcessItem in project tdi-studio-se by Talend.
the class UIManager method refreshVisualMapImage.
private void refreshVisualMapImage() {
AbstractMapComponent mapCom = mapperManager.getAbstractMapComponent();
if (mapCom == null) {
return;
}
INode component = mapCom.getOriginalNode();
if (component != null && component.getExternalNode() != null && component.getExternalNode().getScreenshot() != null) {
byte[] saveImageToData = ImageUtils.saveImageToData(component.getExternalNode().getScreenshot());
IProcess process = component.getProcess();
if (process instanceof IProcess2) {
IProcess2 processtmp = (IProcess2) process;
Item item = processtmp.getProperty().getItem();
if (item instanceof ProcessItem) {
ProcessItem processItem = (ProcessItem) item;
processItem.getProcess().getScreenshots().put(component.getUniqueName(), saveImageToData);
} else if (item instanceof JobletProcessItem) {
JobletProcessItem jobletItem = (JobletProcessItem) item;
jobletItem.getJobletProcess().getScreenshots().put(component.getUniqueName(), saveImageToData);
}
}
}
}
use of org.talend.core.model.properties.JobletProcessItem in project tdi-studio-se by Talend.
the class ReplaceJavaKeywordsNameForContextMigrationTask method execute.
/*
* (non-Javadoc)
*
* @see org.talend.core.model.migration.AbstractItemMigrationTask#execute(org.talend.core.model.properties.Item)
*/
@SuppressWarnings("unchecked")
@Override
public ExecutionResult execute(Item item) {
if (getProject().getLanguage() == ECodeLanguage.PERL) {
return ExecutionResult.NOTHING_TO_DO;
}
// first process the context items.
if (firstProcess) {
contextReplacedNamesMap = getReplacedNamesAndReplaceContextVars();
firstProcess = false;
}
// new name to old one
Map<String, String> jobContextReplacedNamesMap = new HashMap<String, String>();
boolean changed = false;
ProcessType process = null;
if (item instanceof ProcessItem) {
process = ((ProcessItem) item).getProcess();
} else if (item instanceof JobletProcessItem) {
process = ((JobletProcessItem) item).getJobletProcess();
}
if (process != null) {
changed = modifyJobContext(jobContextReplacedNamesMap, process.getContext());
UpdateContextVariablesHelper.updateProcessForRenamed(process, jobContextReplacedNamesMap);
// for tRunJob repalce, need wait for finishing the featrue 3310
// TODO
// try {
// UpdateRunJobComponentContextHelper.updateItemRunJobComponentReference(factory,
// jobContextReplacedNamesMap,
// process.getName(), null);
// } catch (PersistenceException e) {
// //
// }
}
//
if (changed) {
try {
factory.save(item, true);
return ExecutionResult.SUCCESS_WITH_ALERT;
} catch (PersistenceException e) {
ExceptionHandler.process(e);
return ExecutionResult.FAILURE;
}
}
return ExecutionResult.NOTHING_TO_DO;
}
use of org.talend.core.model.properties.JobletProcessItem in project tdi-studio-se by Talend.
the class ImageController method createControl.
/*
* (non-Javadoc)
*
* @see
* org.talend.designer.core.ui.editor.properties2.editors.AbstractElementPropertySectionController#createControl()
*/
@Override
public Control createControl(final Composite subComposite, final IElementParameter param, final int numInRow, final int nbInRow, final int top, final Control lastControl) {
// String fileName = (String) param.getValue();
// IRepositoryService service = DesignerPlugin.getDefault().getRepositoryService();
// String filePath = service.getPathFileName(RepositoryConstants.IMG_DIRECTORY, fileName).toPortableString();
boolean hasScreenshots = false;
byte[] screenshot = null;
if (param.getElement() instanceof INode && ((INode) param.getElement()).getExternalNode() != null) {
String componentType = ((INode) param.getElement()).getComponent().getName();
if ("tMap".equals(componentType)) {
IProcess process = ((INode) param.getElement()).getProcess();
if (process instanceof IProcess2) {
IProcess2 processtmp = (IProcess2) process;
Item item = processtmp.getProperty().getItem();
if (item instanceof ProcessItem) {
ProcessItem processItem = (ProcessItem) item;
screenshot = (byte[]) processItem.getProcess().getScreenshots().get(((INode) param.getElement()).getUniqueName());
if (screenshot != null) {
hasScreenshots = true;
}
} else if (item instanceof JobletProcessItem) {
JobletProcessItem jobletItem = (JobletProcessItem) item;
screenshot = (byte[]) jobletItem.getJobletProcess().getScreenshots().get(((INode) param.getElement()).getUniqueName());
if (screenshot != null) {
hasScreenshots = true;
}
}
}
}
}
if (hasScreenshots) {
ImageDescriptor imageDesc = ImageUtils.createImageFromData(screenshot);
((INode) param.getElement()).getExternalNode().setScreenshot(imageDesc);
// ImageDescriptor imageDesc = ((INode) param.getElement()).getExternalNode().getScreenshot();
// File fileOrFolder = new java.io.File(filePath);
// if (!fileOrFolder.isFile() || !fileOrFolder.canRead()) {
// return lastControl;
// }
final Composite compositeImage = new Composite(subComposite, SWT.BORDER);
final Image image = imageDesc.createImage();
addResourceDisposeListener(compositeImage, image);
//$NON-NLS-1$
CLabel labelLabel = getWidgetFactory().createCLabel(subComposite, param.getDisplayName() + " :");
FormData formDataLabel = new FormData();
labelLabel.setVisible(true);
if (numInRow != 1) {
labelLabel.setAlignment(SWT.RIGHT);
}
if (lastControl != null) {
formDataLabel.left = new FormAttachment(lastControl, 0);
} else {
formDataLabel.left = new FormAttachment((((numInRow - 1) * MAX_PERCENT) / nbInRow), 0);
formDataLabel.top = new FormAttachment(0, top);
}
labelLabel.setLayoutData(formDataLabel);
compositeImage.setToolTipText(param.getDisplayName());
Point size = new Point(image.getImageData().width, image.getImageData().height);
FormData formData = new FormData((int) (size.x * 0.8), (int) (size.y * 0.8));
formData.top = new FormAttachment(0, top);
formData.left = new FormAttachment(labelLabel);
ImageData data = image.getImageData();
compositeImage.setLayoutData(formData);
data = data.scaledTo((int) (size.x * 0.8), (int) (size.y * 0.8));
Image im = new Image(image.getDevice(), data);
compositeImage.setBackgroundImage(im);
return compositeImage;
} else {
return lastControl;
}
}
use of org.talend.core.model.properties.JobletProcessItem in project tdi-studio-se by Talend.
the class AbstractPreferenceComposite method addButtonListeners.
private void addButtonListeners() {
reloadBtn.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
onReloadButtonClick();
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
widgetSelected(e);
}
});
saveBtn.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
onSaveButtonClick();
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
widgetSelected(e);
}
});
if (hasRunJobNode(false) && needApplyToChildren()) {
applyToChildrenJob.addSelectionListener(new SelectionListener() {
/*
* (non-Javadoc)
*
* @see
* org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
*/
@Override
public void widgetSelected(SelectionEvent e) {
// zli for bug 12335
final ProgressDialog progress = new ProgressDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()) {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IEditorReference[] editorReferences = activePage.getEditorReferences();
CorePlugin defaultPlugin = CorePlugin.getDefault();
IDesignerCoreService designerCoreService = defaultPlugin.getDesignerCoreService();
List<IProcess2> openedProcessList = designerCoreService.getOpenedProcess(RepositoryUpdateManager.getEditors());
List<String> activeProcessId = new ArrayList<String>();
for (IProcess process : openedProcessList) {
activeProcessId.add(process.getId());
}
final int rate = 1 / openedProcessList.size() - activeProcessId.size();
for (INode runjobNode : tRunJobNodes) {
String id = (String) runjobNode.getElementParameter(EParameterName.PROCESS_TYPE_PROCESS.getName()).getValue();
String version = (String) runjobNode.getElementParameter(EParameterName.PROCESS_TYPE_VERSION.getName()).getValue();
if ("".equals(id) || id == null) {
//$NON-NLS-1$
MessageDialog.openWarning(getShell(), //$NON-NLS-1$
Messages.getString("AbstractPreferenceComposite.warning", runjobNode.getUniqueName()), Messages.getString("AbstractPreferenceComposite.jobAssigned", //$NON-NLS-1$
runjobNode.getUniqueName()));
return;
}
if (activeProcessId.contains(id)) {
IEditorPart activeEditorPart = activePage.getActiveEditor();
for (IEditorReference editorReference : editorReferences) {
IEditorPart editorPart = editorReference.getEditor(false);
if ((editorPart != activeEditorPart) && (editorPart instanceof MultiPageTalendEditor)) {
IElement element = ((MultiPageTalendEditor) editorPart).getProcess();
StatsAndLogsViewHelper.applySettings(elem, element, AbstractPreferenceComposite.this);
}
}
} else {
try {
SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1 * UpdatesConstants.SCALE, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
subMonitor.beginTask(UpdatesConstants.EMPTY, 1 * rate);
IRepositoryViewObject lastVersion = DesignerPlugin.getDefault().getProxyRepositoryFactory().getLastVersion(id);
if (lastVersion != null) {
Item item = lastVersion.getProperty().getItem();
IProcess processFromItem = designerCoreService.getProcessFromItem(item);
if (processFromItem instanceof Process) {
Process process = (Process) processFromItem;
StatsAndLogsViewHelper.applySettings(elem, process, AbstractPreferenceComposite.this);
IProxyRepositoryFactory factory = defaultPlugin.getProxyRepositoryFactory();
Property property = factory.getUptodateProperty(process.getProperty());
process.setProperty(property);
subMonitor.subTask(RepositoryUpdateManager.getUpdateJobInfor(process.getProperty()));
ProcessType processType = process.saveXmlFile();
Item item2 = process.getProperty().getItem();
if (item2 instanceof JobletProcessItem) {
((JobletProcessItem) item2).setJobletProcess((JobletProcess) processType);
} else {
((ProcessItem) item2).setProcess(processType);
}
factory.save(item2);
subMonitor.done();
}
}
} catch (PersistenceException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
applySettingsToSubJob(id, version);
}
}
};
try {
progress.executeProcess();
} catch (InvocationTargetException e1) {
e1.printStackTrace();
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
/**
* yzhang Comment method "applySettingsToSubJob".
*
* @param id
* @param version
*/
private void applySettingsToSubJob(String id, String version) {
final ProcessItem processItem = ItemCacheManager.getProcessItem(id, version);
if (processItem == null) {
return;
}
ProcessType processType = processItem.getProcess();
EList<ElementParameterType> parameters = processType.getParameters().getElementParameter();
StatsAndLogsViewHelper.applySettings(parameters, elem);
List<NodeType> nodes = findRunJobNode(processType.getNode());
for (NodeType nodeType : nodes) {
EList<ElementParameterType> list = nodeType.getElementParameter();
ElementParameterType idParam = getElementParameterType(list, //$NON-NLS-1$
PROCESS + ":" + EParameterName.PROCESS_TYPE_PROCESS.getName());
ElementParameterType versionParam = getElementParameterType(list, //$NON-NLS-1$
PROCESS + ":" + EParameterName.PROCESS_TYPE_VERSION.getName());
String subId = idParam.getValue();
String subVersion = versionParam.getValue();
applySettingsToSubJob(subId, subVersion);
}
}
});
}
}
use of org.talend.core.model.properties.JobletProcessItem in project tdi-studio-se by Talend.
the class ElementHelper method updateTooltipFigure.
/**
* DOC Administrator Comment method "getTooltipFigure".
*
* @param figure
*/
public void updateTooltipFigure(Figure figure, BusinessTooltipFigure tooltipFigure, EditPart editPart) {
EObject element = ((View) editPart.getModel()).getElement();
if (element instanceof BusinessItem) {
List assignements = ((BusinessItem) element).getAssignments();
BusinessItemProviderAdapterFactory adapterFactory = new BusinessItemProviderAdapterFactory();
BusinessAssignmentItemProvider provider = (BusinessAssignmentItemProvider) adapterFactory.createBusinessAssignmentAdapter();
Image img = null;
Label label = null;
List<Label> labels = new ArrayList();
try {
for (Object assignment : assignements) {
if (assignment instanceof BusinessAssignment) {
TalendItem talendItem = ((BusinessAssignment) assignment).getTalendItem();
if (talendItem != null) {
IRepositoryViewObject obj = CorePlugin.getDefault().getProxyRepositoryFactory().getLastVersion(talendItem.getId());
if (obj != null) {
ERepositoryObjectType type = obj.getRepositoryObjectType();
Item item = obj.getProperty().getItem();
if (item instanceof JobletProcessItem) {
JobletProcessItem jobletItem = (JobletProcessItem) item;
Image jobletCustomIcon = RepositoryLabelProvider.getJobletCustomIcon(jobletItem.getProperty());
if (jobletCustomIcon != null) {
img = ImageUtils.scale(jobletCustomIcon, ICON_SIZE.ICON_16);
}
} else {
img = CoreImageProvider.getImage(type);
}
//$NON-NLS-1$ //$NON-NLS-2$
label = new Label(obj.getLabel() + " (" + provider.getColumnText(assignment, 0) + ")", img);
labels.add(label);
} else {
MetadataTable table = MetadataToolHelper.getMetadataTableFromRepository(talendItem.getId());
Query query = MetadataToolHelper.getQueryFromRepository(talendItem.getId());
SAPFunctionUnit function = MetadataToolHelper.getSAPFunctionFromRepository(talendItem.getId());
if (table != null) {
img = ImageDescriptor.createFromFile(ECoreImage.class, ECoreImage.METADATA_TABLE_ICON.getPath()).createImage();
label = new Label(talendItem.getLabel() + " (" + provider.getColumnText(assignment, 0) + ")", //$NON-NLS-1$ //$NON-NLS-2$
img);
labels.add(label);
} else if (query != null) {
img = ImageDescriptor.createFromFile(ECoreImage.class, ECoreImage.METADATA_QUERY_ICON.getPath()).createImage();
label = new Label(talendItem.getLabel() + " (" + provider.getColumnText(assignment, 0) + ")", //$NON-NLS-1$ //$NON-NLS-2$
img);
labels.add(label);
} else if (talendItem instanceof SQLPattern) {
List<IRepositoryViewObject> list = ProxyRepositoryFactory.getInstance().getAll(ERepositoryObjectType.SQLPATTERNS);
for (IRepositoryViewObject object : list) {
if (talendItem.getLabel().equals(object.getLabel())) {
img = ImageDescriptor.createFromFile(ECoreImage.class, ECoreImage.METADATA_SQLPATTERN_ICON.getPath()).createImage();
label = new Label(//$NON-NLS-1$
talendItem.getLabel() + " (" + provider.getColumnText(assignment, 0) + ")", //$NON-NLS-1$
img);
labels.add(label);
}
}
} else if (talendItem instanceof Routine) {
List<IRepositoryViewObject> list = ProxyRepositoryFactory.getInstance().getAll(ERepositoryObjectType.ROUTINES);
for (IRepositoryViewObject object : list) {
if (talendItem.getLabel().equals(object.getLabel())) {
img = ImageDescriptor.createFromFile(ECoreImage.class, ECoreImage.ROUTINE_ICON.getPath()).createImage();
label = new Label(//$NON-NLS-1$
talendItem.getLabel() + " (" + provider.getColumnText(assignment, 0) + ")", //$NON-NLS-1$
img);
labels.add(label);
}
}
} else if (function != null) {
img = ImageDescriptor.createFromFile(ECoreImage.class, ECoreImage.METADATA_SAPCONNECTION_ICON.getPath()).createImage();
label = new Label(talendItem.getLabel() + " (" + provider.getColumnText(assignment, 0) + ")", //$NON-NLS-1$ //$NON-NLS-2$
img);
labels.add(label);
} else {
img = (Image) provider.getImage(assignment);
img = new OverlayImage(img, ImageProvider.getImageDesc(ECoreImage.DELETED_OVERLAY), EPosition.BOTTOM_RIGHT).createImage();
String text = provider.getText(assignment) + " (" + provider.getColumnText(assignment, 0) + //$NON-NLS-1$ //$NON-NLS-2$
")";
label = new Label(text, img);
labels.add(label);
}
}
}
}
}
if (tooltipFigure == null) {
tooltipFigure = new BusinessTooltipFigure();
}
if (labels.size() == 0) {
figure.setToolTip(null);
} else {
tooltipFigure.buildFigures(labels);
figure.setToolTip(tooltipFigure);
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
}
}
Aggregations