/** @generated */
 protected DirectEditManager getManager() {
   if (manager == null) {
     setManager(
         new TextDirectEditManager(this, null, UMLEditPartFactory.getTextCellEditorLocator(this)));
   }
   return manager;
 }
 /** @generated */
 protected DirectEditManager getManager() {
   if (manager == null) {
     setManager(
         new MultilineLabelDirectEditManager(
             this,
             MultilineLabelDirectEditManager.getTextCellEditorClass(this),
             UMLEditPartFactory.getTextCellEditorLocator(this)));
   }
   return manager;
 }
Ejemplo n.º 3
0
  /** @generated */
  protected void performDirectEditRequest(Request request) {
    final Request theRequest = request;
    if (IDirectEdition.UNDEFINED_DIRECT_EDITOR == directEditionMode) {
      directEditionMode = getDirectEditionType();
    }
    switch (directEditionMode) {
      case IDirectEdition.NO_DIRECT_EDITION:
        // no direct edition mode => does nothing
        return;
      case IDirectEdition.EXTENDED_DIRECT_EDITOR:
        updateExtendedEditorConfiguration();
        if (configuration == null || configuration.getLanguage() == null) {
          // Create default edit manager
          setManager(
              new MultilineLabelDirectEditManager(
                  this,
                  MultilineLabelDirectEditManager.getTextCellEditorClass(this),
                  UMLEditPartFactory.getTextCellEditorLocator(this)));
          performDefaultDirectEditorEdit(theRequest);
        } else {
          configuration.preEditAction(resolveSemanticElement());
          Dialog dialog = null;
          if (configuration instanceof ICustomDirectEditorConfiguration) {
            setManager(
                ((ICustomDirectEditorConfiguration) configuration).createDirectEditManager(this));
            initializeDirectEditManager(theRequest);
            return;
          } else if (configuration instanceof IPopupEditorConfiguration) {
            IPopupEditorHelper helper =
                ((IPopupEditorConfiguration) configuration).createPopupEditorHelper(this);
            helper.showEditor();
            return;
          } else if (configuration instanceof IAdvancedEditorConfiguration) {
            dialog =
                ((IAdvancedEditorConfiguration) configuration)
                    .createDialog(
                        PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
                        resolveSemanticElement(),
                        configuration.getTextToEdit(resolveSemanticElement()));
          } else if (configuration instanceof IDirectEditorConfiguration) {
            dialog =
                new ExtendedDirectEditionDialog(
                    PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
                    resolveSemanticElement(),
                    ((IDirectEditorConfiguration) configuration)
                        .getTextToEdit(resolveSemanticElement()),
                    (IDirectEditorConfiguration) configuration);
          } else {
            return;
          }
          final Dialog finalDialog = dialog;
          if (Window.OK == dialog.open()) {
            TransactionalEditingDomain domain = getEditingDomain();
            RecordingCommand command =
                new RecordingCommand(domain, "Edit Label") {

                  @Override
                  protected void doExecute() {
                    configuration.postEditAction(
                        resolveSemanticElement(), ((ILabelEditorDialog) finalDialog).getValue());
                  }
                };
            domain.getCommandStack().execute(command);
          }
        }
        break;
      case IDirectEdition.DEFAULT_DIRECT_EDITOR:
        initializeDirectEditManager(theRequest);
        break;
      default:
        break;
    }
  }