protected void editData() {
    final IStructuredSelection selection = (IStructuredSelection) dataTableViewer.getSelection();
    if (onlyOneElementSelected(selection)) {
      final Data selectedData = (Data) selection.getFirstElement();
      if (selectedData.eContainer() == null) {
        final AbstractProcess parentProcess = ModelHelper.getParentProcess(eObject);
        BonitaStudioLog.error(
            "Investigation trace for issue BS-11552:\n"
                + "The context was not initialized.\n "
                + "Please report the issue with details and attached impacted process.\n"
                + "data: "
                + (selectedData != null ? selectedData.getName() : "null data")
                + "\n"
                + "From diagram:"
                + (parentProcess != null ? parentProcess.getName() : "No process found."),
            DataPlugin.PLUGIN_ID);
      }

      final DataWizard wizard =
          new DataWizard(
              getEditingDomain(),
              selectedData,
              getDataFeature(),
              getDataFeatureToCheckUniqueID(),
              getShowAutoGenerateForm());
      wizard.setIsPageFlowContext(isPageFlowContext());
      wizard.setIsOverviewContext(isOverViewContext());
      new CustomWizardDialog(
              Display.getDefault().getActiveShell(), wizard, IDialogConstants.OK_LABEL)
          .open();
      dataTableViewer.refresh();
    }
  }
 private String generateDataName() {
   return Messages.Data
       + (ModelHelper.getAllItemsOfType(
                   ModelHelper.getParentProcess(element),
                   SimulationPackage.eINSTANCE.getSimulationData())
               .size()
           + 1);
 }
 /*
  * (non-Javadoc)
  * @see org.eclipse.gmf.runtime.diagram.ui.properties.sections.
  * AbstractModelerPropertySection#getEObject()
  */
 @Override
 protected EObject getEObject() {
   final EObject eObject = super.getEObject();
   if (eObject instanceof Lane) {
     return ModelHelper.getParentProcess(eObject);
   }
   return eObject;
 }
 private void expressionButtonListener(final EObject context) {
   final ParameterWizardDialog parameterDialog =
       new ParameterWizardDialog(
           Display.getCurrent().getActiveShell(),
           new AddParameterWizard(
               ModelHelper.getParentProcess(context), TransactionUtil.getEditingDomain(context)));
   if (parameterDialog.open() == Dialog.OK) {
     fillViewerInput(context);
   }
 }
 /* (non-Javadoc)
  * @see org.eclipse.jface.viewers.EditingSupport#setValue(java.lang.Object, java.lang.Object)
  */
 @Override
 protected void setValue(Object element, Object value) {
   if (element != null && value != null && transactionalEditingDomain != null) {
     AbstractProcess process = ModelHelper.getParentProcess((EObject) element);
     if (process != null) {
       transactionalEditingDomain
           .getCommandStack()
           .execute(
               SetCommand.create(
                   transactionalEditingDomain,
                   element,
                   ProcessPackage.Literals.ELEMENT__DOCUMENTATION,
                   value));
       getViewer().refresh();
     }
   }
 }
Пример #6
0
  /* (non-Javadoc)
   * @see org.eclipse.jface.wizard.Wizard#performFinish()
   */
  @Override
  public boolean performFinish() {
    final TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(container);
    Data workingCopy = page.getWorkingCopy();
    setDatasourceId(workingCopy, dataContainmentFeature);
    if (editMode) {
      AbstractProcess process = ModelHelper.getParentProcess(container);
      CompoundCommand cc = new CompoundCommand();
      final RefactorDataOperation op =
          new RefactorDataOperation(BonitaGroovyRefactoringAction.REFACTOR_OPERATION);
      op.setCompoundCommand(cc);
      op.setEditingDomain(editingDomain);
      op.setContainer(process);
      op.setNewData(workingCopy);
      op.setOldData(originalData);
      op.updateReferencesInScripts();
      final boolean switchingDataeClass = !originalData.eClass().equals(workingCopy.eClass());
      op.setUpdateDataReferences(switchingDataeClass);
      if (op.isCanExecute()) {
        try {

          getContainer().run(true, false, op);

        } catch (InvocationTargetException e) {
          BonitaStudioLog.error(e);
        } catch (InterruptedException e) {
          BonitaStudioLog.error(e);
        }

        if (switchingDataeClass) {
          List<?> dataList = (List<?>) container.eGet(dataContainmentFeature);
          int index = dataList.indexOf(originalData);
          cc.append(
              RemoveCommand.create(editingDomain, container, dataContainmentFeature, originalData));
          cc.append(
              AddCommand.create(
                  editingDomain, container, dataContainmentFeature, workingCopy, index));
        } else {
          for (EStructuralFeature feature : originalData.eClass().getEAllStructuralFeatures()) {
            cc.append(
                SetCommand.create(editingDomain, originalData, feature, workingCopy.eGet(feature)));
          }
        }

        editingDomain.getCommandStack().execute(cc);
      } else {
        cc.dispose();
      }
    } else {
      editingDomain
          .getCommandStack()
          .execute(
              AddCommand.create(editingDomain, container, dataContainmentFeature, workingCopy));
    }
    try {
      RepositoryManager.getInstance()
          .getCurrentRepository()
          .getProject()
          .build(
              IncrementalProjectBuilder.FULL_BUILD,
              XtextProjectHelper.BUILDER_ID,
              Collections.EMPTY_MAP,
              null);
    } catch (CoreException e) {
      BonitaStudioLog.error(e, DataPlugin.PLUGIN_ID);
    }

    return true;
  }