private void emptyExpandedChildren(RepositoryNode repositoryNode) { for (IRepositoryNode children : repositoryNode.getChildren()) { if (idIsValid(children)) { expanded.remove(children.getId()); } emptyExpandedChildren((RepositoryNode) children); } }
public IDuplicateHandle createDuplicateHandle(IRepositoryNode node) throws BusinessException { IDuplicateHandle handle = null; EResourceConstant typedConstant = EResourceConstant.getTypedConstant(node.getObject().getProperty().getItem()); if (typedConstant == null) { BusinessException createBusinessException = ExceptionFactory.getInstance() .createBusinessException( DefaultMessagesImpl.getString( "ActionHandleFactory.duplicateFail", node.getLabel())); // $NON-NLS-1$ throw createBusinessException; } else { switch (typedConstant) { case DB_CONNECTIONS: handle = new DBConnectionDuplicateHandle(); break; case JRXML_TEMPLATE: handle = new JrxmlFileDuplicateHandle(node); break; case ANALYSIS: handle = new AnalysisDuplicateHandle(); break; case REPORTS: handle = new ReportDuplicateHandle(); break; case MDM_CONNECTIONS: case PATTERNS: case RULES_PARSER: case RULES_SQL: handle = new ModelElementDuplicateHandle(); break; case INDICATORS: handle = new IndicatorDuplicateHandle(); break; case SOURCE_FILES: handle = new SourceFileDuplicateHandle(node); break; default: break; } } return handle; }
@SuppressWarnings("unchecked") private static List<NodeType> getProcessNodeTypes(IRepositoryNode node) { Item item = node.getObject().getProperty().getItem(); if (item instanceof ProcessItem) { ProcessType process = ((ProcessItem) item).getProcess(); return process.getNode(); } return Collections.emptyList(); }
@Override public void run() { SaveAsBusinessModelWizard businessModelWizard = new SaveAsBusinessModelWizard(editorPart); WizardDialog dlg = new WizardDialog(Display.getCurrent().getActiveShell(), businessModelWizard); if (dlg.open() == Window.OK) { try { BusinessProcessItem businessProcessItem = businessModelWizard.getBusinessProcessItem(); IRepositoryNode repositoryNode = RepositoryNodeUtilities.getRepositoryNode( businessProcessItem.getProperty().getId(), false); // because step1, the fresh will unload the resource(EMF), so, assign a new one... businessProcessItem = (BusinessProcessItem) repositoryNode.getObject().getProperty().getItem(); IWorkbenchPage page = getActivePage(); DiagramResourceManager diagramResourceManager = new DiagramResourceManager(page, new NullProgressMonitor()); IFile file = businessModelWizard.getTempFile(); // Set readonly to false since created job will always be editable. RepositoryEditorInput newBusinessModelEditorInput = new RepositoryEditorInput(file, businessProcessItem); newBusinessModelEditorInput.setRepositoryNode(repositoryNode); // here really do the normal save as function IDocumentProvider provider = ((BusinessDiagramEditor) this.editorPart).getDocumentProvider(); provider.aboutToChange(newBusinessModelEditorInput); provider.saveDocument( null, newBusinessModelEditorInput, provider.getDocument(this.editorPart.getEditorInput()), true); provider.changed(newBusinessModelEditorInput); // copy back from the *.business_diagram file to *.item file. // @see:BusinessDiagramEditor.doSave(IProgressMonitor progressMonitor) diagramResourceManager.updateFromResource( businessProcessItem, newBusinessModelEditorInput.getFile()); // notice: here, must save it, save the item to disk, otherwise close the editor // without any modification, there won't save the // model again, so, will lost the graphic when reopen it. ProxyRepositoryFactory.getInstance().save(businessProcessItem); // close the old editor page.closeEditor(this.editorPart, false); // open the new editor, because at the same time, there will update the // jobSetting/componentSetting view IEditorPart openEditor = page.openEditor(newBusinessModelEditorInput, BusinessDiagramEditor.ID, true); } catch (Exception e) { MessageDialog.openError( Display.getCurrent().getActiveShell(), "Error", "Business model could not be saved" + " : " + e.getMessage()); ExceptionHandler.process(e); } } }
private boolean idIsValid(IRepositoryNode repositoryNode) { String id = repositoryNode.getId(); return id != null && !RepositoryNode.NO_ID.equals(id); }