@SuppressWarnings("unchecked")
 public void init() {
   RepositoryNode[] selectedNodes =
       (RepositoryNode[])
           ((IStructuredSelection) selectionProvider.getSelection())
               .toList()
               .toArray(new RepositoryNode[] {});
   if (selectedNodes.length == 0) {
     this.setEnabled(false);
     return;
   }
   int i = 0;
   for (RepositoryNode node : selectedNodes) {
     if (node.getProperties(EProperties.CONTENT_TYPE) == RepositoryNodeType.FOLDER
         || node.getProperties(EProperties.CONTENT_TYPE) == RepositoryNodeType.QUERY
         || node.getProperties(EProperties.CONTENT_TYPE) == RepositoryNodeType.QUERIESCONNECTION) {
       i++;
     }
   }
   if (i > 0) {
     this.setEnabled(false);
   } else {
     this.setEnabled(true);
   }
 }
Exemplo n.º 2
0
 @Override
 public int category(Object element) {
   if (element instanceof RepositoryNode) {
     RepositoryNode node = (RepositoryNode) element;
     if (ERepositoryObjectType.METADATA_CON_COLUMN.equals(
         node.getProperties(EProperties.CONTENT_TYPE))) {
       RepositoryNode parent = node.getParent().getParent();
       if (parent != null
           && ERepositoryObjectType.METADATA_CON_TABLE.equals(
               parent.getProperties(EProperties.CONTENT_TYPE))
           && parent.getObject() instanceof MetadataTableRepositoryObject) {
         MetadataTableRepositoryObject tableObject =
             (MetadataTableRepositoryObject) parent.getObject();
         MetadataColumnRepositoryObject columnObject =
             (MetadataColumnRepositoryObject) ((RepositoryNode) element).getObject();
         MetadataColumn tColumn = columnObject.getTdColumn();
         EList<MetadataColumn> columns = tableObject.getTable().getColumns();
         for (int i = 0; i < columns.size(); i++) {
           MetadataColumn column = columns.get(i);
           if (column.getName() != null && column.getName().equals(tColumn.getName())) {
             return i;
           }
         }
       }
     }
   }
   return super.category(element);
 }
  /** Adds a submenu to the given menu with the name "New Component". */
  @Override
  public void fillContextMenu(IMenuManager menu) {
    // MOD mzhao user readonly role on svn repository mode.
    if (!isShowMenu()) {
      return;
    }

    // ADD msjian TDQ-10444: fix get error when click on the exchange node
    if (isExchangeNode()) {
      return;
    }
    // TDQ-10444~

    Object obj = ((TreeSelection) this.getContext().getSelection()).getFirstElement();
    if (obj instanceof RepositoryNode) {
      RepositoryNode node = (RepositoryNode) obj;
      // RepositoryNode parent = node.getParent();
      // if (!(parent instanceof ReportSubFolderRepNode)) {
      if (shouldShowDeleteMenu(node)) {
        // menu.add(new DeleteObjectsAction());
        menu.add(new DQDeleteAction());
        if (shouldShowRenameFolderMenu(node)) {
          Object type = node.getProperties(EProperties.CONTENT_TYPE);
          if (ERepositoryObjectType.TDQ_JRAXML_ELEMENT.equals(type)) {
            menu.add(new RenameJrxmlFolderAction(node));
          } else {
            menu.add(new RenameTdqFolderAction(node));
          }
        }
      }
      // }
    }
  }
 /*
  * (non-Javadoc)
  *
  * @see org.talend.commons.ui.swt.actions.ITreeContextualAction#init(org.eclipse.jface.viewers.TreeViewer,
  * org.eclipse.jface.viewers.IStructuredSelection)
  */
 @Override
 public void init(TreeViewer viewer, IStructuredSelection selection) {
   boolean canWork = !selection.isEmpty() && selection.size() == 1;
   IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
   if (factory.isUserReadOnlyOnCurrentProject()) {
     canWork = false;
   }
   if (canWork) {
     Object o = selection.getFirstElement();
     RepositoryNode node = (RepositoryNode) o;
     switch (node.getType()) {
       case SIMPLE_FOLDER:
       case SYSTEM_FOLDER:
         ERepositoryObjectType nodeType =
             (ERepositoryObjectType) node.getProperties(EProperties.CONTENT_TYPE);
         if (nodeType != ERepositoryObjectType.PIG_UDF) {
           canWork = false;
         }
         if (node.getObject() != null && node.getObject().isDeleted()) {
           canWork = false;
         }
         break;
       default:
         canWork = false;
     }
     if (canWork && !ProjectManager.getInstance().isInCurrentMainProject(node)) {
       canWork = false;
     }
   }
   setEnabled(canWork);
 }
  /*
   * (non-Javadoc)
   *
   * @see
   * org.talend.repository.ui.actions.metadata.AbstractCreateAction#init(org.talend.repository.model.RepositoryNode)
   */
  @Override
  protected void init(RepositoryNode node) {
    ERepositoryObjectType nodeType =
        (ERepositoryObjectType) node.getProperties(EProperties.CONTENT_TYPE);
    IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
    if (factory.isUserReadOnlyOnCurrentProject()
        || !ProjectManager.getInstance().isInCurrentMainProject(node)) {
      setEnabled(false);
    } else {
      if (ENodeType.REPOSITORY_ELEMENT.equals(node.getType())) {
        if (node.getObject().getRepositoryStatus() == ERepositoryStatus.DELETED
            || node.getObject().getRepositoryStatus() == ERepositoryStatus.LOCK_BY_OTHER) {
          setEnabled(false);
          return;
        }
        if ((factory.getStatus(node.getObject()) == ERepositoryStatus.DELETED)
            || (factory.getStatus(node.getObject()) == ERepositoryStatus.LOCK_BY_OTHER)) {
          setEnabled(false);
          return;
        }

        if (ERepositoryObjectType.METADATA_CON_TABLE.equals(nodeType)
            || ERepositoryObjectType.METADATA_CON_COLUMN.equals(nodeType)) {
          RepositoryNode parent = node.getParent();
          if (parent != null
              && HCatalogRepositoryNodeType.HCATALOG.equals(
                  parent.getProperties(EProperties.CONTENT_TYPE))) {
            setText(EDIT_LABEL);
            collectSiblingNames(node);
            setEnabled(true);
            return;
          }
        } else if (HCatalogRepositoryNodeType.HCATALOG.equals(nodeType)) {
          setText(CREATE_LABEL);
          collectChildNames(node);
          setEnabled(true);
          return;
        }
      }
    }
  }
 @Override
 public void run() {
   IStructuredSelection selection = (IStructuredSelection) selectionProvider.getSelection();
   RepositoryNode firstNode = (RepositoryNode) selection.getFirstElement();
   if (firstNode.getProperties(EProperties.CONTENT_TYPE) == RepositoryNodeType.FOLDER) {
     firstNode = repositoryNodeManager.getRepositoryNodebyName(connParam.getRepositoryName());
   }
   List<String> repositoryNames = repositoryNodeManager.getALLReposotoryNodeNames();
   IRepositoryViewObject object = SQLBuilderRepositoryNodeManager.getRoot(firstNode).getObject();
   connParam.setRepositoryName(object.getLabel());
   connParam.setRepositoryId(object.getId());
   connParam.setFirstOpenSqlBuilder(false);
   if (isQuery) {
     DBTreeProvider provider = (DBTreeProvider) selectionProvider.getContentProvider();
     selectReveal(provider.getSelectedExtReposiotryNode());
     isQuery = false;
   } else {
     connParam.setEditorTitle(TextUtil.getNewQueryLabel());
     connParam.setQueryObject(null);
   }
   dialog.openEditor(firstNode, repositoryNames, connParam, false);
 }
  /*
   * (non-Javadoc)
   *
   * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
   */
  @Override
  protected void doRun() {
    ISelection selection = getSelection();
    Object obj = ((IStructuredSelection) selection).getFirstElement();
    RepositoryNode node = (RepositoryNode) obj;

    ERepositoryObjectType objectType = null;
    IPath path = null;

    path = RepositoryNodeUtilities.getPath(node);
    if (RepositoryConstants.isSystemFolder(path.toString())) {
      return;
    }
    objectType = (ERepositoryObjectType) node.getProperties(EProperties.CONTENT_TYPE);

    if (objectType != null) {
      FolderWizard processWizard = new FolderWizard(path, objectType, null);
      Shell activeShell = Display.getCurrent().getActiveShell();
      WizardDialog dialog = new WizardDialog(activeShell, processWizard);
      dialog.setPageSize(400, 60);
      dialog.create();
      dialog.open();
    }
  }
  /*
   * (non-Javadoc)
   *
   * @see org.talend.repository.ui.actions.ITreeContextualAction#init(org.eclipse.jface.viewers.TreeViewer,
   * org.eclipse.jface.viewers.IStructuredSelection)
   */
  @Override
  public void init(TreeViewer viewer, IStructuredSelection selection) {
    boolean canWork = !selection.isEmpty() && selection.size() == 1;
    IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
    if (factory.isUserReadOnlyOnCurrentProject()) {
      canWork = false;
    }
    if (canWork) {
      Object o = selection.getFirstElement();
      RepositoryNode node = (RepositoryNode) o;
      Object property = node.getProperties(EProperties.CONTENT_TYPE);
      switch (node.getType()) {
        case REPOSITORY_ELEMENT:
        case STABLE_SYSTEM_FOLDER:
          canWork = false;
          break;
        case SYSTEM_FOLDER:
          if (ERepositoryObjectType.GENERATED.equals(property)
              || ERepositoryObjectType.JOBS.equals(property)
              || ERepositoryObjectType.JOBLETS.equals(property)
              || ERepositoryObjectType.SQLPATTERNS.equals(property)
              || ERepositoryObjectType.REFERENCED_PROJECTS.equals(property)
              || ERepositoryObjectType.SVN_ROOT.equals(property)) {
            canWork = false;
          } else if (property != null
              && GlobalServiceRegister.getDefault()
                  .isServiceRegistered(ICamelDesignerCoreService.class)) {
            ICamelDesignerCoreService camelService =
                (ICamelDesignerCoreService)
                    GlobalServiceRegister.getDefault().getService(ICamelDesignerCoreService.class);
            if (property.equals(camelService.getRouteDocsType())) {
              canWork = false;
            }
          }
          break;
        case SIMPLE_FOLDER:
          if (ERepositoryObjectType.JOB_DOC.equals(property)
              || ERepositoryObjectType.JOBLET_DOC.equals(property)
              || (ERepositoryObjectType.SQLPATTERNS.equals(property)
                  && !isUnderUserDefined(node))) {
            canWork = false;
          } else if (property != null
              && GlobalServiceRegister.getDefault()
                  .isServiceRegistered(ICamelDesignerCoreService.class)) {
            ICamelDesignerCoreService camelService =
                (ICamelDesignerCoreService)
                    GlobalServiceRegister.getDefault().getService(ICamelDesignerCoreService.class);
            if (property.equals(camelService.getRouteDocType())) {
              canWork = false;
            }
          }
          if (node.getObject().isDeleted()) {
            canWork = false;
          }
          break;
        default:
          // Nothing to do
      }

      if (canWork && !ProjectManager.getInstance().isInCurrentMainProject(node)) {
        canWork = false;
      }
    }
    setEnabled(canWork);
  }