@Override
 protected void configureShell(Shell newShell) {
   super.configureShell(newShell);
   if (system) {
     newShell.setText(Messages.getString("ShowRoutineItemsDialog.systemTitle")); // $NON-NLS-1$
   } else {
     newShell.setText(Messages.getString("ShowRoutineItemsDialog.title")); // $NON-NLS-1$
   }
 }
 private boolean getPropagate(Boolean returnIfNull) {
   if (propagate == null) {
     if (returnIfNull != null) {
       return returnIfNull;
     }
     propagate =
         MessageDialog.openQuestion(
             new Shell(),
             Messages.getString("ChangeMetadataCommand.messageDialog.propagate"), // $NON-NLS-1$
             Messages.getString(
                 "ChangeMetadataCommand.messageDialog.questionMessage")); //$NON-NLS-1$
   }
   return propagate;
 }
  @Override
  protected void doRun() {
    ISelection selection = getSelection();
    Object obj = ((IStructuredSelection) selection).getFirstElement();
    RepositoryNode node = (RepositoryNode) obj;

    IPath path = RepositoryNodeUtilities.getPath(node);
    String originalName = node.getObject().getLabel();

    RepositoryObject repositoryObj = new RepositoryObject(node.getObject().getProperty());
    repositoryObj.setRepositoryNode(node.getObject().getRepositoryNode());
    OpenExistVersionProcessWizard wizard = new OpenExistVersionProcessWizard(repositoryObj);
    PropertyManagerWizardDialog dialog =
        new PropertyManagerWizardDialog(Display.getCurrent().getActiveShell(), wizard);
    dialog.setPageSize(300, 250);
    dialog.setTitle(Messages.getString("OpenExistVersionProcess.open.dialog")); // $NON-NLS-1$
    if (dialog.open() == Dialog.OK) {
      refresh(node);
      // refresh the corresponding editor's name
      IEditorPart part = getCorrespondingEditor(node);
      if (part != null && part instanceof IUIRefresher) {
        ((IUIRefresher) part).refreshName();
      } else {
        processRoutineRenameOperation(originalName, node, path);
      }
    }
  }
  /**
   * Test if the selected item is a node.
   *
   * @return true / false
   */
  private boolean canPerformAction() {
    if (getSelectedObjects().isEmpty()) {
      return false;
    }
    List parts = getSelectedObjects();
    if (parts.size() == 1) {
      Object o = parts.get(0);
      if (!(o instanceof NodePart)) {
        return false;
      }
      NodePart part = (NodePart) o;
      if (!(part.getModel() instanceof INode)) {
        return false;
      }
      node = (Node) part.getModel();

      EditPart parentPart = part.getParent();
      while (!(parentPart instanceof ProcessPart)) {
        parentPart = parentPart.getParent();
      }
      if (!(parentPart instanceof ProcessPart)) {
        return false;
      }
      process = (IProcess) ((ProcessPart) parentPart).getModel();
      setText(Messages.getString("PropertiesContextAction.Properties")); // $NON-NLS-1$
    }
    return true;
  }
 /*
  * (non-Javadoc)
  *
  * @see
  * org.talend.designer.core.ui.editor.properties2.editors.AbstractElementPropertySectionController#createCommand()
  */
 public Command createCommand(Button button) {
   Object data = button.getData(NAME);
   if (data != null) {
     if (ICON_SELECTION.equals(data)) {
       FileDialog dial = new FileDialog(composite.getShell(), SWT.NONE);
       dial.setFilterExtensions(
           new String[] {"*.jpg", "*.png", "*.gif"}); // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
       String propertyName = (String) button.getData(PARAMETER_NAME);
       String file = dial.open();
       if (file != null) {
         if (!file.equals("")) { // $NON-NLS-1$
           if (!elem.getPropertyValue(propertyName).equals(file)) {
             ImageData imageData = new ImageData(file);
             if (ImageUtils.checkSize(
                 ImageDescriptor.createFromImageData(imageData), ImageUtils.ICON_SIZE.ICON_32)) {
               if (elem instanceof IProcess2) {
                 refreshIcon(imageData);
                 return new IconSelectionCommand(
                     (IProcess2) elem, ImageDescriptor.createFromImageData(imageData), file);
               }
             } else {
               MessageDialog.openError(
                   composite.getShell(),
                   Messages.getString("IconSelectionController.MessageTitle"), // $NON-NLS-1$
                   Messages.getString("IconSelectionController.Messages")); // $NON-NLS-1$
             }
           }
         }
       }
     } else if (ICON_REVERT.equals(data)) {
       if (elem instanceof IProcess2) {
         Image defaultIcon = RepositoryLabelProvider.getDefaultJobletImage();
         ImageDescriptor imageData = ImageDescriptor.createFromImage(defaultIcon);
         refreshIcon(defaultIcon.getImageData());
         return new IconSelectionCommand((IProcess2) elem, imageData, null);
       }
     }
   }
   return null;
 }
  public void init(
      INode node,
      IElementParameter schemaParam,
      IMetadataTable currentOutputMetadata,
      IMetadataTable newOutputMetadata) {
    this.node = node;
    this.schemaParam = schemaParam;
    if (schemaParam == null) {
      if (newOutputMetadata.getAttachedConnector() != null) {
        currentConnector = newOutputMetadata.getAttachedConnector();
      } else {
        if (node.isELTComponent()) {
          currentConnector = EConnectionType.TABLE.getName();
        } else {
          currentConnector = EConnectionType.FLOW_MAIN.getName();
        }
      }
      for (IElementParameter param : node.getElementParameters()) {
        if (param.getFieldType().equals(EParameterFieldType.SCHEMA_TYPE)
            && param.getContext().equals(currentConnector)) {
          this.schemaParam = param;
        }
      }
    } else {
      currentConnector = this.schemaParam.getContext();
    }

    this.inputNode = null;
    this.currentInputMetadata = null;
    this.newInputMetadata = null;
    oldInputMetadata = null;
    this.currentOutputMetadata = currentOutputMetadata;
    if (this.currentOutputMetadata == null) {
      this.currentOutputMetadata = node.getMetadataFromConnector(currentConnector);
    }
    if (currentOutputMetadata == null && newOutputMetadata != null) {
      currentOutputMetadata = newOutputMetadata.clone(true);
    }
    oldOutputMetadata = this.currentOutputMetadata.clone(true);
    this.newOutputMetadata = newOutputMetadata.clone(true);
    this.newOutputMetadata.setReadOnly(this.currentOutputMetadata.isReadOnly());
    initializeContainer();
    setLabel(Messages.getString("ChangeMetadataCommand.changeMetadataValues")); // $NON-NLS-1$
  }
 public ChangeMetadataCommand(
     INode node,
     IElementParameter schemaParam,
     INode inputNode,
     IMetadataTable currentInputMetadata,
     IMetadataTable newInputMetadata,
     IMetadataTable currentOutputMetadata,
     IMetadataTable newOutputMetadata) {
   this.node = node;
   this.inputNode = inputNode;
   this.schemaParam = schemaParam;
   if (schemaParam == null) {
     currentConnector = EConnectionType.FLOW_MAIN.getName();
     for (IElementParameter param : node.getElementParameters()) {
       if ((param.getFieldType().equals(EParameterFieldType.SCHEMA_TYPE)
               || param.getFieldType().equals(EParameterFieldType.DCSCHEMA))
           && param.getContext().equals(currentConnector)) {
         this.schemaParam = param;
       }
     }
   } else {
     currentConnector = this.schemaParam.getContext();
   }
   this.currentInputMetadata = currentInputMetadata;
   if (currentInputMetadata != null) {
     oldInputMetadata = currentInputMetadata.clone();
   } else {
     oldInputMetadata = null;
   }
   this.newInputMetadata = newInputMetadata;
   this.currentOutputMetadata = currentOutputMetadata;
   if (this.currentOutputMetadata == null) {
     this.currentOutputMetadata = node.getMetadataFromConnector(currentConnector);
   }
   oldOutputMetadata = this.currentOutputMetadata.clone();
   this.newOutputMetadata = newOutputMetadata;
   initializeContainer();
   setLabel(Messages.getString("ChangeMetadataCommand.changeMetadataValues")); // $NON-NLS-1$
 }
/** DOC xye class global comment. Detailled comment */
public class OpenExistVersionProcessAction extends EditPropertiesAction {

  private static final String ACTION_LABEL =
      Messages.getString("OpenExistVersionProcess.open"); // $NON-NLS-1$

  public OpenExistVersionProcessAction() {
    super();

    this.setText(ACTION_LABEL);
    this.setToolTipText(ACTION_LABEL);
    this.setImageDescriptor(ImageProvider.getImageDesc(ECoreImage.PROCESS_ICON));
  }

  @Override
  protected void doRun() {
    ISelection selection = getSelection();
    Object obj = ((IStructuredSelection) selection).getFirstElement();
    RepositoryNode node = (RepositoryNode) obj;

    IPath path = RepositoryNodeUtilities.getPath(node);
    String originalName = node.getObject().getLabel();

    RepositoryObject repositoryObj = new RepositoryObject(node.getObject().getProperty());
    repositoryObj.setRepositoryNode(node.getObject().getRepositoryNode());
    OpenExistVersionProcessWizard wizard = new OpenExistVersionProcessWizard(repositoryObj);
    PropertyManagerWizardDialog dialog =
        new PropertyManagerWizardDialog(Display.getCurrent().getActiveShell(), wizard);
    dialog.setPageSize(300, 250);
    dialog.setTitle(Messages.getString("OpenExistVersionProcess.open.dialog")); // $NON-NLS-1$
    if (dialog.open() == Dialog.OK) {
      refresh(node);
      // refresh the corresponding editor's name
      IEditorPart part = getCorrespondingEditor(node);
      if (part != null && part instanceof IUIRefresher) {
        ((IUIRefresher) part).refreshName();
      } else {
        processRoutineRenameOperation(originalName, node, path);
      }
    }
  }

  @Override
  public void init(TreeViewer viewer, IStructuredSelection selection) {
    if (!ExtractMetaDataUtils.getInstance().haveLoadMetadataNode()) {
      setEnabled(false);
      return;
    }
    super.init(viewer, selection);
  }

  public class PropertyManagerWizardDialog extends WizardDialog {

    /**
     * DOC xye PropertyManagerWizardDialog constructor comment.
     *
     * @param parentShell
     * @param newWizard
     */
    public PropertyManagerWizardDialog(Shell parentShell, IWizard newWizard) {
      super(parentShell, newWizard);
    }

    public Button getFinishButton() {
      return getButton(IDialogConstants.FINISH_ID);
    }
  }

  @Override
  protected IEditorPart getCorrespondingEditor(RepositoryNode node) {
    IEditorReference[] eidtors = getActivePage().getEditorReferences();

    for (IEditorReference eidtor : eidtors) {
      try {
        IEditorInput input = eidtor.getEditorInput();
        if (!(input instanceof JobEditorInput)) {
          continue;
        }

        JobEditorInput repositoryInput = (JobEditorInput) input;
        checkUnLoadedNodeForProcess(repositoryInput);
        if (repositoryInput.getItem().equals(node.getObject().getProperty().getItem())) {

          IPath path = repositoryInput.getFile().getLocation();

          return eidtor.getEditor(false);
        }
      } catch (PartInitException e) {
        continue;
      }
    }
    return null;
  }

  private void checkUnLoadedNodeForProcess(JobEditorInput fileEditorInput) {
    if (fileEditorInput == null || fileEditorInput.getLoadedProcess() == null) {
      return;
    }
    IProcess2 loadedProcess = fileEditorInput.getLoadedProcess();
    List<NodeType> unloadedNode = loadedProcess.getUnloadedNode();
    if (unloadedNode != null && !unloadedNode.isEmpty()) {

      String message = "Some Component are not loaded:\n";
      for (int i = 0; i < unloadedNode.size(); i++) {
        message = message + unloadedNode.get(i).getComponentName() + "\n";
      }
      if (!CommonsPlugin.isHeadless() && PlatformUI.isWorkbenchRunning()) {
        Display display = Display.getCurrent();
        if (display == null) {
          display = Display.getDefault();
        }
        if (display != null) {
          final Display tmpDis = display;
          final String tmpMess = message;
          display.syncExec(
              new Runnable() {

                @Override
                public void run() {
                  Shell shell = null;
                  final IWorkbenchWindow activeWorkbenchWindow =
                      PlatformUI.getWorkbench().getActiveWorkbenchWindow();
                  if (activeWorkbenchWindow != null) {
                    shell = activeWorkbenchWindow.getShell();
                  } else {
                    if (tmpDis != null) {
                      shell = tmpDis.getActiveShell();
                    } else {
                      shell = new Shell();
                    }
                  }
                  MessageDialog.openWarning(shell, "Warning", tmpMess);
                }
              });
        }
      }
    }
  }
}
/**
 * Toggle whether using the hightlight of subjobs or not, this action is only related to
 * MultiPageTalendEditor.
 */
public class ToggleSubjobsAction extends Action {

  public static final String ID =
      "org.talend.designer.core.ui.action.ToggleSubjobsAction"; //$NON-NLS-1$

  private static final String JOBLET_ID = "org.talend.designer.joblet.multieditor"; // $NON-NLS-1$

  private static final String MAP_REDUCE_MULTIPAGE_EDITOR_ID =
      "org.talend.designer.mapreduce.editor"; //$NON-NLS-1$

  public static final String TEXT = Messages.getString("ToggleSubjobsAction.LABEL"); // $NON-NLS-1$

  private static ToggleSubjobsAction instance = new ToggleSubjobsAction();

  public static ToggleSubjobsAction getDefault() {
    return instance;
  }

  /** bqian ToggleSubjobsAction constructor comment. */
  private ToggleSubjobsAction() {
    super(TEXT, IAction.AS_CHECK_BOX);
    this.setId(ID);
    this.setDescription(TEXT);
    setChecked(getGlobalStore().getBoolean(TalendDesignerPrefConstants.DISPLAY_SUBJOBS));
  }

  @Override
  public void run() {
    boolean display = isChecked();
    getGlobalStore().setValue(TalendDesignerPrefConstants.DISPLAY_SUBJOBS, display);

    IEditorReference[] editorParts =
        PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences();

    for (IEditorReference reference : editorParts) {
      if (!(reference.getId().equals(MultiPageTalendEditor.ID)
          || reference.getId().equals(JOBLET_ID)
          || MAP_REDUCE_MULTIPAGE_EDITOR_ID.equals(reference.getId()))) {
        continue;
      }

      IEditorPart editorPart = reference.getEditor(false);
      if (editorPart == null) {
        continue;
      }
      if (editorPart instanceof AbstractMultiPageTalendEditor) {
        AbstractMultiPageTalendEditor editor = (AbstractMultiPageTalendEditor) editorPart;
        IProcess2 process = editor.getTalendEditor().getProcess();

        if (process == null) {
          continue;
        }
        List<? extends ISubjobContainer> subjobs = process.getSubjobContainers();

        for (ISubjobContainer subjobContainer : subjobs) {
          subjobContainer.updateSubjobDisplay();
        }
      }
    }
  }

  private IPreferenceStore getGlobalStore() {
    return DesignerPlugin.getDefault().getPreferenceStore();
  }
}
Beispiel #10
0
 /**
  * Move the given node to another location.
  *
  * @param node
  * @param newPos
  */
 public MoveNoteCommand(Note note, Point newPos) {
   this.note = note;
   this.newPos = newPos;
   setLabel(Messages.getString("MoveNodeCommand.Label")); // $NON-NLS-1$
 }
 /**
  * Constructs a new PropertiesContextAction.
  *
  * @param part
  */
 public ShowComponentSettingViewerAction(IWorkbenchPart part) {
   super(part);
   setId(ID);
   setImageDescriptor(DesignerPlugin.getImageDescriptor("icons/breakpoint.png")); // $NON-NLS-1$
   setText(Messages.getString("PropertiesContextAction.Properties")); // $NON-NLS-1$
 }
  /*
   * (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) {
    this.curParameter = param;
    FormData data;
    Button btnEdit = getWidgetFactory().createButton(subComposite, "", SWT.PUSH); // $NON-NLS-1$

    btnEdit.setImage(ImageProvider.getImage(CoreUIPlugin.getImageDescriptor(DOTS_BUTTON)));

    data = new FormData();
    data.left = new FormAttachment(0, 120);
    data.top = new FormAttachment(0, top);
    data.height = STANDARD_HEIGHT - 2;
    btnEdit.setLayoutData(data);
    btnEdit.setData(NAME, ICON_SELECTION);
    btnEdit.setData(PARAMETER_NAME, param.getName());
    btnEdit.setEnabled(!param.isReadOnly());
    btnEdit.addSelectionListener(listenerSelection);

    DecoratedField dField =
        new DecoratedField(
            subComposite,
            SWT.NONE,
            new IControlCreator() {

              @Override
              public Control createControl(Composite parent, int style) {

                return new Label(parent, style);
              }
            });
    // revert btn
    Button btnRevert =
        getWidgetFactory()
            .createButton(
                subComposite,
                Messages.getString("IconSelectionController.Revert"),
                SWT.PUSH); //$NON-NLS-1$

    data = new FormData();
    data.left = new FormAttachment(btnEdit, 5);
    data.top = new FormAttachment(0, top);
    data.height = STANDARD_HEIGHT - 2;
    btnRevert.setLayoutData(data);
    btnRevert.setData(NAME, ICON_REVERT);
    btnRevert.setData(PARAMETER_NAME, param.getName());
    btnRevert.setEnabled(!param.isReadOnly());
    btnRevert.addSelectionListener(listenerSelection);

    if (param.isRequired()) {
      FieldDecoration decoration =
          FieldDecorationRegistry.getDefault()
              .getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED);
      dField.addFieldDecoration(decoration, SWT.RIGHT | SWT.TOP, false);
    }
    if (param.isRepositoryValueUsed()) {
      FieldDecoration decoration =
          FieldDecorationRegistry.getDefault()
              .getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
      decoration.setDescription(
          Messages.getString("FileController.decoration.description")); // $NON-NLS-1$
      dField.addFieldDecoration(decoration, SWT.RIGHT | SWT.BOTTOM, false);
    }

    Control cLayout = dField.getLayoutControl();
    filePathText = (Label) dField.getControl();
    String file = (String) elem.getPropertyValue(PARAMETER_NAME);
    if (file != null) {
      // ImageData imageData = new ImageData(file);
      // image = new Image(composite.getShell().getDisplay(), imageData);
      // filePathText.setImage(image);
    }

    CLabel labelLabel = getWidgetFactory().createCLabel(subComposite, param.getDisplayName(), 0);
    data = new FormData();
    if (lastControl != null) {
      data.left = new FormAttachment(lastControl, 0);
    } else {
      data.left = new FormAttachment((((numInRow - 1) * MAX_PERCENT) / nbInRow), 0);
    }
    data.top = new FormAttachment(0, top);
    labelLabel.setLayoutData(data);
    if (numInRow != 1) {
      labelLabel.setAlignment(SWT.RIGHT);
    }

    // **************************
    data = new FormData();
    int currentLabelWidth = 50;
    GC gc = new GC(labelLabel);
    Point labelSize = gc.stringExtent(param.getDisplayName());
    gc.dispose();

    if ((labelSize.x + ITabbedPropertyConstants.HSPACE) > currentLabelWidth) {
      currentLabelWidth = labelSize.x + ITabbedPropertyConstants.HSPACE;
    }

    if (numInRow == 1) {
      if (lastControl != null) {
        data.left = new FormAttachment(lastControl, currentLabelWidth);
      } else {
        data.left = new FormAttachment(0, currentLabelWidth);
      }
    } else {
      data.left = new FormAttachment(labelLabel, 0, SWT.RIGHT);
    }
    data.top = new FormAttachment(btnEdit, 0, SWT.CENTER);
    data.height = 34;
    data.width = 30;
    cLayout.setLayoutData(data);

    Point initialSize = dField.getLayoutControl().computeSize(SWT.DEFAULT, SWT.DEFAULT);
    dynamicProperty.setCurRowSize(initialSize.y + ITabbedPropertyConstants.VSPACE);
    return btnEdit;
  }