Package org.eclipse.egit.ui.internal.repository.tree

Examples of org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode


    }
  }

  @Override
  public Image getImage(Object element) {
    RepositoryTreeNode node = (RepositoryTreeNode) element;
    RepositoryTreeNodeType type = node.getType();
    if (type == RepositoryTreeNodeType.TAG) {
      TagNode tagNode = (TagNode) node;
      if (tagNode.isAnnotated())
        return decorateImage(annotatedTagImage, element);
    } else if (type == RepositoryTreeNodeType.FILE) {
      Object object = node.getObject();
      if (object instanceof File) {
        ImageDescriptor descriptor = PlatformUI.getWorkbench()
            .getEditorRegistry()
            .getImageDescriptor(((File) object).getName());
        return decorateImage((Image) resourceManager.get(descriptor),
            element);
      }
    } else if (type == RepositoryTreeNodeType.REPO) {
      Object object = node.getObject();
      if (object instanceof Repository) {
        Repository r = (Repository) object;
        if (ResourcePropertyTester.hasGerritConfiguration(r))
          return gerritRepoImage;
      }
    }
    return decorateImage(node.getType().getIcon(), element);
  }
View Full Code Here


  @Override
  public String getText(Object element) {
    if (!(element instanceof RepositoryTreeNode))
      return null;

    RepositoryTreeNode node = (RepositoryTreeNode) element;

    return getSimpleText(node);
  }
View Full Code Here

    super.dispose();
  }

  private Image decorateImage(final Image image, Object element) {

    RepositoryTreeNode node = (RepositoryTreeNode) element;
    switch (node.getType()) {

    case TAG:
      // fall through
    case ADDITIONALREF:
      // fall through
    case REF:
      // if the branch or tag is checked out,
      // we want to decorate the corresponding
      // node with a little check indicator
      String refName = ((Ref) node.getObject()).getName();
      Ref leaf = ((Ref) node.getObject()).getLeaf();

      String branchName;
      String compareString;

      try {
        branchName = node.getRepository().getFullBranch();
        if (branchName == null)
          return image;
        if (refName.startsWith(Constants.R_HEADS)) {
          // local branch: HEAD would be on the branch
          compareString = refName;
        } else if (refName.startsWith(Constants.R_TAGS)) {
          // tag: HEAD would be on the commit id to which the tag is
          // pointing
          TagNode tagNode = (TagNode) node;
          compareString = tagNode.getCommitId();
        } else if (refName.startsWith(Constants.R_REMOTES)) {
          // remote branch: HEAD would be on the commit id to which
          // the branch is pointing
          ObjectId id = node.getRepository().resolve(refName);
          if (id == null)
            return image;
          RevWalk rw = new RevWalk(node.getRepository());
          try {
            RevCommit commit = rw.parseCommit(id);
            compareString = commit.getId().name();
          } finally {
            rw.release();
          }
        } else if (refName.equals(Constants.HEAD))
          return getDecoratedImage(image);
        else {
          String leafname = leaf.getName();
          if (leafname.startsWith(Constants.R_REFS)
              && leafname.equals(node.getRepository()
                  .getFullBranch()))
            return getDecoratedImage(image);
          else if (leaf.getObjectId().equals(
              node.getRepository().resolve(Constants.HEAD)))
            return getDecoratedImage(image);
          // some other symbolic reference
          return image;
        }
      } catch (IOException e1) {
View Full Code Here

    CommonViewer viewer = super.createCommonViewer(aParent);
    // handle the double-click event for tags and branches
    viewer.addDoubleClickListener(new IDoubleClickListener() {
      public void doubleClick(DoubleClickEvent event) {
        TreeSelection sel = (TreeSelection) event.getSelection();
        RepositoryTreeNode element = (RepositoryTreeNode) sel
            .getFirstElement();
        // Disable checkout for bare repositories
        if (element.getRepository().isBare())
          return;
        if (element instanceof RefNode)
          executeOpenCommandWithConfirmation(((RefNode) element)
              .getObject().getName());
        if (element instanceof TagNode)
          executeOpenCommandWithConfirmation(((TagNode) element)
              .getObject().getName());
      }
    });
    // handle open event for the working directory
    viewer.addOpenListener(new IOpenListener() {
      public void open(OpenEvent event) {
        TreeSelection sel = (TreeSelection) event.getSelection();
        RepositoryTreeNode element = (RepositoryTreeNode) sel
            .getFirstElement();
        if (element instanceof FileNode
            || element instanceof StashedCommitNode)
          executeOpenCommand();
      }
View Full Code Here

        } catch (InterruptedException e) {
          Activator.handleError(e.getMessage(), e, false);
        }

      for (String repoPath : entry.getValue()) {
        final RepositoryTreeNode node = getNodeForPath(repository, repoPath);
        if (node != null)
          nodesToShow.add(node);
      }
    }
View Full Code Here

   */
  public void showRepository(Repository repositoryToShow) {
    ITreeContentProvider cp = (ITreeContentProvider) getCommonViewer()
        .getContentProvider();
    for (Object repo : cp.getElements(getCommonViewer().getInput())) {
      RepositoryTreeNode node = (RepositoryTreeNode) repo;
      if (repositoryToShow.getDirectory().equals(node.getRepository().getDirectory()))
        selectReveal(new StructuredSelection(node));
    }
  }
View Full Code Here

  private static List<Object> getShowInElements(IStructuredSelection selection) {
    List<Object> elements = new ArrayList<Object>();
    for (Object element : selection.toList()) {
      if (element instanceof FileNode || element instanceof FolderNode
          || element instanceof WorkingDirNode) {
        RepositoryTreeNode treeNode = (RepositoryTreeNode) element;
        IPath path = treeNode.getPath();
        IResource resource = ResourceUtil.getResourceForLocation(path);
        if (resource != null)
          elements.add(resource);
      } else if (element instanceof RepositoryNode) {
        // Can be shown in History, Reflog and Properties views
View Full Code Here

      }
    }
  }

  private RepositoryTreeNode getNodeForPath(Repository repository, String repoRelativePath) {
    RepositoryTreeNode currentNode = null;
    ITreeContentProvider cp = (ITreeContentProvider) getCommonViewer()
        .getContentProvider();
    for (Object repo : cp.getElements(getCommonViewer().getInput())) {
      RepositoryTreeNode node = (RepositoryTreeNode) repo;
      // TODO equals implementation of Repository?
      if (repository.getDirectory().equals(
          ((Repository) node.getObject()).getDirectory())) {
        for (Object child : cp.getChildren(node)) {
          RepositoryTreeNode childNode = (RepositoryTreeNode) child;
          if (childNode.getType() == RepositoryTreeNodeType.WORKINGDIR) {
            currentNode = childNode;
            break;
          }
        }
        break;
      }
    }

    IPath relPath = new Path(repoRelativePath);

    for (String segment : relPath.segments())
      for (Object child : cp.getChildren(currentNode)) {
        @SuppressWarnings("unchecked")
        RepositoryTreeNode<File> childNode = (RepositoryTreeNode<File>) child;
        if (childNode.getObject().getName().equals(segment)) {
          currentNode = childNode;
          break;
        }
      }
View Full Code Here

  public StyledString getStyledText(Object element) {
    if (!(element instanceof RepositoryTreeNode))
      return null;

    RepositoryTreeNode node = (RepositoryTreeNode) element;

    switch (node.getType()) {
    case REPO:
      if (node.getParent() != null
          && node.getParent().getType() == RepositoryTreeNodeType.SUBMODULES)
        return getStyledTextForSubmodule(node);
      return GitLabels.getStyledLabelExtendedSafe(node.getObject());
    case ADDITIONALREF:
      Ref ref = (Ref) node.getObject();
      // shorten the name
      StyledString refName = new StyledString(
          Repository.shortenRefName(ref.getName()));

      ObjectId refId;
      if (ref.isSymbolic()) {
        refName.append(' ');
        refName.append('[', StyledString.DECORATIONS_STYLER);
        refName.append(ref.getLeaf().getName(),
            StyledString.DECORATIONS_STYLER);
        refName.append(']', StyledString.DECORATIONS_STYLER);
        refId = ref.getLeaf().getObjectId();
      } else
        refId = ref.getObjectId();

      refName.append(' ');
      RevCommit commit = getLatestCommit(node);
      if (commit != null)
        refName.append(abbreviate(commit),
            StyledString.QUALIFIER_STYLER)
            .append(' ')
            .append(commit.getShortMessage(),
                StyledString.QUALIFIER_STYLER);
      else
        refName.append(abbreviate(refId),
            StyledString.QUALIFIER_STYLER);
      return refName;
    case WORKINGDIR:
      StyledString dirString = new StyledString(
          UIText.RepositoriesView_WorkingDir_treenode);
      dirString.append(" - ", StyledString.QUALIFIER_STYLER); //$NON-NLS-1$
      dirString.append(node.getRepository().getWorkTree()
          .getAbsolutePath(), StyledString.QUALIFIER_STYLER);
      return dirString;

    case REF:
      StyledString styled = null;
View Full Code Here

  /**
   * @return the selected path
   */
  public String getPath() {
    IStructuredSelection sel = (IStructuredSelection) tv.getSelection();
    RepositoryTreeNode node = (RepositoryTreeNode) sel.getFirstElement();
    if (node != null && node.getType() == RepositoryTreeNodeType.FOLDER)
      return ((File) node.getObject()).getPath();
    if (node != null && node.getType() == RepositoryTreeNodeType.WORKINGDIR)
      return node.getRepository().getWorkTree().getPath();
    return null;
  }
View Full Code Here

TOP

Related Classes of org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.