use of org.talend.designer.business.model.business.TalendItem in project tdi-studio-se by Talend.
the class GmfPastCommand method cloneAssignmentForModel.
private void cloneAssignmentForModel(List<BusinessItem> nodes, List pChildren) {
if (nodes == null || pChildren == null) {
return;
}
int i = nodes.size();
for (BusinessItem businessItem : getSortedBusinessItems(nodes)) {
BusinessItem newItem = (BusinessItem) getEObject(businessItem);
if (!addNew) {
newItem.setBusinessProcess(businessItem.getBusinessProcess());
}
newItem.setHAlignment(businessItem.getHAlignment());
newItem.setName(businessItem.getName());
newItem.setVAlignment(businessItem.getVAlignment());
List assignments = new ArrayList();
boolean execute = false;
int n = 0;
for (Object object : businessItem.getAssignments()) {
BusinessAssignment older = (BusinessAssignment) object;
BusinessAssignment newAssignment = (BusinessAssignment) getEObject(older);
newAssignment.setBusinessItem(newItem);
newAssignment.setComment(older.getComment());
if (!addNew) {
newAssignment.setTalendItem(older.getTalendItem());
} else {
TalendItem item = older.getTalendItem();
String talendId = null;
if (item != null) {
talendId = item.getId();
} else {
List idList = (List) itemIds.get(businessItem);
if (n < idList.size()) {
talendId = (String) idList.get(n);
}
n++;
}
RepositoryNode node = null;
if (talendId.split(" - ").length == 1) {
//$NON-NLS-1$
node = RepositoryNodeUtilities.getRepositoryNode(talendId);
} else {
node = RepositoryNodeUtilities.getMetadataTableFromConnection(talendId);
if (node == null) {
node = RepositoryNodeUtilities.getQueryFromConnection(talendId);
}
}
RepositoryHelper repositoryHelper = new RepositoryHelper();
Repository repository = process.getLocalRepositoryCopy();
if (repository == null) {
repository = repositoryHelper.createLocalRepositoryCopy(process);
}
TalendItem talendItem = repositoryHelper.createTalendItem(repository, node);
newAssignment.setTalendItem(talendItem);
}
assignments.add(newAssignment);
}
if (assignments.size() > 0) {
newItem.getAssignments().addAll(assignments);
}
if (i <= pChildren.size()) {
View node = (View) pChildren.get(pChildren.size() - i);
node.setElement(newItem);
i--;
}
if (addNew) {
this.process.getBusinessItems().add(newItem);
}
}
}
use of org.talend.designer.business.model.business.TalendItem in project tdi-studio-se by Talend.
the class FindAssignmentAction method doRun.
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.Action#run()
*/
@Override
protected void doRun() {
RepositoryNode repositoryNode = (RepositoryNode) getFirstSelectedObject();
IEditorPart activeEditor = getActiveEditor();
// remove frames draw last time
for (BusinessItemShapeFigure shapFigure : repaintedFigures) {
shapFigure.setDrawFrame(false);
shapFigure.revalidate();
shapFigure.repaint();
}
if (activeEditor instanceof BusinessDiagramEditor) {
BusinessDiagramEditor businessDiagramEditor = (BusinessDiagramEditor) activeEditor;
Diagram diagram = (Diagram) businessDiagramEditor.getDiagramEditPart().getModel();
BusinessProcess businessProcess = (BusinessProcess) diagram.getElement();
// PTODO mhelleboid use OCL or using a visitor
List list = new ArrayList();
for (Iterator iter = businessProcess.getBusinessItems().iterator(); iter.hasNext(); ) {
BusinessItem businessItem = (BusinessItem) iter.next();
for (Iterator iterator = businessItem.getAssignments().iterator(); iterator.hasNext(); ) {
BusinessAssignment businessAssignment = (BusinessAssignment) iterator.next();
TalendItem talendItem = businessAssignment.getTalendItem();
IRepositoryViewObject obj = repositoryNode.getObject();
if (talendItem.getId().equals(repositoryNode.getId())) {
list.add(businessItem);
} else if (talendItem instanceof SQLPattern || talendItem instanceof Routine || talendItem instanceof TableMetadata || talendItem instanceof Query || talendItem instanceof SapFunctionMetadata) {
if (talendItem.getLabel().equals(repositoryNode.getProperties(EProperties.LABEL))) {
list.add(businessItem);
}
}
}
}
IDiagramGraphicalViewer diagramGraphicalViewer = businessDiagramEditor.getDiagramGraphicalViewer();
List editParts = new ArrayList();
for (Iterator iter = list.iterator(); iter.hasNext(); ) {
BusinessItem businessItem = (BusinessItem) iter.next();
editParts.addAll(diagramGraphicalViewer.findEditPartsForElement(EMFCoreUtil.getProxyID(businessItem), BaseBusinessItemRelationShipEditPart.class));
editParts.addAll(diagramGraphicalViewer.findEditPartsForElement(EMFCoreUtil.getProxyID(businessItem), BusinessItemShapeEditPart.class));
}
diagramGraphicalViewer.deselectAll();
// add a frame when use findAassignment
for (Iterator iter = editParts.iterator(); iter.hasNext(); ) {
EditPart editPart = (EditPart) iter.next();
if (editPart instanceof BusinessItemShapeEditPart) {
BusinessItemShapeEditPart shapEditPart = (BusinessItemShapeEditPart) editPart;
IFigure figure = shapEditPart.getFigure();
for (Object child : figure.getChildren()) {
if (child instanceof BusinessItemShapeFigure) {
BusinessItemShapeFigure shapFigure = (BusinessItemShapeFigure) child;
shapFigure.setDrawFrame(true);
shapFigure.revalidate();
shapFigure.repaint();
repaintedFigures.add(shapFigure);
}
}
}
diagramGraphicalViewer.getSelectionManager().appendSelection(editPart);
}
ZoomManager zoomManager = (ZoomManager) businessDiagramEditor.getAdapter(ZoomManager.class);
zoomFitSelection(zoomManager, editParts, businessDiagramEditor.getDiagramEditPart(), true);
}
}
use of org.talend.designer.business.model.business.TalendItem in project tdi-studio-se by Talend.
the class BusinessAssignmentComposite method createSelectionListener.
private void createSelectionListener() {
tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
BusinessAssignment businessAssignment = getBusinessAssignment(event.getSelection());
if (businessAssignment != null) {
final IRepositoryView repositoryView = getRepositoryView();
if (repositoryView != null) {
IProjectRepositoryNode rootRepositoryNode = repositoryView.getRoot();
TalendItem item = businessAssignment.getTalendItem();
//
if (item instanceof Routine && rootRepositoryNode instanceof ProjectRepositoryNode) {
RepositoryNodeUtilities.expandParentNode(getRepositoryView(), ((ProjectRepositoryNode) rootRepositoryNode).getRootRepositoryNode(ERepositoryObjectType.CODE));
}
selectChild(item, (IRepositoryNode) rootRepositoryNode);
}
}
}
private void selectChild(TalendItem item, IRepositoryNode rootRepositoryNode) {
try {
RepositoryNode curNode = null;
JobSettingsView viewer = (JobSettingsView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(JobSettingsView.ID);
IRepositoryViewObject lastVersion = ProxyRepositoryFactory.getInstance().getLastVersion(item.getId());
if (lastVersion != null) {
curNode = RepositoryNodeUtilities.getRepositoryNode(lastVersion);
select(viewer, curNode);
} else if (item instanceof TableMetadata) {
MetadataTable table = MetadataToolHelper.getMetadataTableFromRepository(item.getId());
if (table != null) {
//$NON-NLS-1$
String id = item.getId().split(" - ")[0];
RepositoryNode node = RepositoryNodeUtilities.getMetadataTableFromConnection(item.getId());
IRepositoryView view = getRepositoryView();
if (view != null) {
RepositoryNodeUtilities.expandParentNode(view, node);
select(viewer, node);
}
}
} else if (item instanceof Query) {
org.talend.core.model.metadata.builder.connection.Query query = MetadataToolHelper.getQueryFromRepository(item.getId());
if (query != null) {
//$NON-NLS-1$
String id = item.getId().split(" - ")[0];
IRepositoryView view = getRepositoryView();
RepositoryNode node = RepositoryNodeUtilities.getQueryFromConnection(item.getId());
RepositoryNodeUtilities.expandParentNode(view, node);
select(viewer, node);
}
} else if (item instanceof SAPFunction) {
SAPFunctionUnit function = MetadataToolHelper.getSAPFunctionFromRepository(item.getId());
if (function != null) {
IRepositoryView view = getRepositoryView();
RepositoryNode node = RepositoryNodeUtilities.getSAPFunctionFromConnection(item.getId());
RepositoryNodeUtilities.expandParentNode(view, node);
select(viewer, node);
}
} else {
for (IRepositoryNode node : rootRepositoryNode.getChildren()) {
RepositoryNode rNode = (RepositoryNode) node;
if (item instanceof SQLPattern && rNode.getProperties(EProperties.CONTENT_TYPE) == ERepositoryObjectType.SQLPATTERNS) {
if (rNode.getType() == ENodeType.REPOSITORY_ELEMENT) {
SQLPatternItem sqlItem = (SQLPatternItem) rNode.getObject().getProperty().getItem();
if (sqlItem.isSystem() && item.getLabel().equals(rNode.getObject().getLabel())) {
select(viewer, rNode);
}
} else {
selectChild(item, rNode);
}
} else if (item instanceof Routine && rNode.getProperties(EProperties.CONTENT_TYPE) == ERepositoryObjectType.ROUTINES) {
if (rNode.getType() == ENodeType.REPOSITORY_ELEMENT) {
RoutineItem sqlItem = (RoutineItem) rNode.getObject().getProperty().getItem();
if (sqlItem.isBuiltIn() && item.getLabel().equals(rNode.getObject().getLabel())) {
select(viewer, rNode);
}
} else {
selectChild(item, rNode);
}
}
}
}
} catch (PersistenceException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
ExceptionHandler.process(e);
}
}
private void select(JobSettingsView viewer, RepositoryNode repositoryNode) {
if (viewer == null) {
return;
}
if (repositoryNode == null) {
return;
}
CorePlugin.getDefault().getRepositoryService().removeRepositoryTreeViewListener(viewer);
final IRepositoryView repositoryView = getRepositoryView();
if (repositoryView != null) {
repositoryView.getViewer().setSelection(new StructuredSelection(repositoryNode));
}
CorePlugin.getDefault().getRepositoryService().addRepositoryTreeViewListener(viewer);
}
});
}
use of org.talend.designer.business.model.business.TalendItem in project tdi-studio-se by Talend.
the class ClipboardActionHandler method saveCut.
private void saveCut(ISelection object) {
cutItemIds = new HashMap();
if (object instanceof IStructuredSelection) {
for (Object obj : ((IStructuredSelection) object).toList()) {
if (obj instanceof AbstractEditPart) {
AbstractEditPart editPart = (AbstractEditPart) obj;
EObject element = ((View) editPart.getModel()).getElement();
if (element instanceof BusinessItem) {
BusinessItem businessItem = (BusinessItem) element;
List assignments = new ArrayList();
for (Object assignment : businessItem.getAssignments()) {
BusinessAssignment ba = (BusinessAssignment) assignment;
TalendItem item = ba.getTalendItem();
if (item != null) {
assignments.add(item.getId());
}
}
cutItemIds.put(businessItem, assignments);
}
}
}
}
}
use of org.talend.designer.business.model.business.TalendItem in project tdi-studio-se by Talend.
the class CreateAssignmentCommand method doExecuteWithResult.
/*
* (non-Javadoc)
*
* @see
* org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand#doExecuteWithResult(org.eclipse
* .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
*/
@Override
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
// PTODO mhelleboid check if assignment already exist
RepositoryHelper repositoryHelper = new RepositoryHelper();
Repository repository = businessItem.getBusinessProcess().getLocalRepositoryCopy();
TalendItem talendItem = null;
if (repository == null) {
repository = repositoryHelper.createLocalRepositoryCopy(businessItem.getBusinessProcess());
}
for (Object item : getItems()) {
BusinessAssignment assignment = BusinessFactory.eINSTANCE.createBusinessAssignment();
talendItem = repositoryHelper.getTalendItem(repository, item);
if (talendItem == null) {
talendItem = repositoryHelper.createTalendItem(repository, item);
}
if (talendItem == null) {
//$NON-NLS-1$
return CommandResult.newErrorCommandResult(Messages.getString("CreateAssignmentCommand.CannotAssign"));
}
assignment.setBusinessItem(businessItem);
assignment.setTalendItem(talendItem);
}
return CommandResult.newOKCommandResult();
}
Aggregations