Package org.eclipse.egit.ui.internal.search

Source Code of org.eclipse.egit.ui.internal.search.CommitResultLabelProvider

/*******************************************************************************
*  Copyright (c) 2011 GitHub Inc.
*  All rights reserved. This program and the accompanying materials
*  are made available under the terms of the Eclipse Public License v1.0
*  which accompanies this distribution, and is available at
*  http://www.eclipse.org/legal/epl-v10.html
*
*  Contributors:
*    Kevin Sawicki (GitHub Inc.) - initial API and implementation
*******************************************************************************/
package org.eclipse.egit.ui.internal.search;

import java.text.DateFormat;
import java.text.MessageFormat;

import org.eclipse.egit.ui.internal.UIText;
import org.eclipse.egit.ui.internal.commit.RepositoryCommit;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.search.ui.text.AbstractTextSearchViewPage;
import org.eclipse.ui.model.WorkbenchLabelProvider;

/**
* Commit search results label provider class.
*/
public class CommitResultLabelProvider extends WorkbenchLabelProvider {

  private DateFormat dateFormat = DateFormat.getDateTimeInstance(
      DateFormat.MEDIUM, DateFormat.SHORT);

  private int layout;

  /**
   * Create commit result label provider
   *
   * @param layout
   */
  public CommitResultLabelProvider(int layout) {
    this.layout = layout;
  }

  /**
   * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)
   */
  public StyledString getStyledText(Object element) {
    StyledString styled = new StyledString();
    if (element instanceof RepositoryCommit) {
      RepositoryCommit commit = (RepositoryCommit) element;
      RevCommit revCommit = commit.getRevCommit();

      styled.append(MessageFormat.format(
          UIText.CommitResultLabelProvider_SectionMessage,
          commit.abbreviate(), revCommit.getShortMessage()));

      PersonIdent author = revCommit.getAuthorIdent();
      if (author != null)
        styled.append(MessageFormat.format(
            UIText.CommitResultLabelProvider_SectionAuthor,
            author.getName(), dateFormat.format(author.getWhen())),
            StyledString.QUALIFIER_STYLER);

      if (layout == AbstractTextSearchViewPage.FLAG_LAYOUT_FLAT)
        styled.append(MessageFormat.format(
            UIText.CommitResultLabelProvider_SectionRepository,
            commit.getRepositoryName()),
            StyledString.DECORATIONS_STYLER);
    } else if (element instanceof RepositoryMatch) {
      RepositoryMatch repository = (RepositoryMatch) element;
      styled.append(repository.getLabel(repository));
      styled.append(" - ", StyledString.QUALIFIER_STYLER); //$NON-NLS-1$
      styled.append(repository.getRepository().getDirectory()
          .getAbsolutePath(), StyledString.QUALIFIER_STYLER);
      styled.append(MessageFormat.format(" ({0})", //$NON-NLS-1$
          Integer.valueOf(repository.getMatchCount())),
          StyledString.COUNTER_STYLER);
    }
    return styled;
  }
}
TOP

Related Classes of org.eclipse.egit.ui.internal.search.CommitResultLabelProvider

TOP
Copyright © 2018 www.massapi.com. 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.