Package edu.hawaii.ics.csdl.jupiter.ui.view.table

Source Code of edu.hawaii.ics.csdl.jupiter.ui.view.table.ViewLabelProvider

package edu.hawaii.ics.csdl.jupiter.ui.view.table;

import java.net.MalformedURLException;
import java.net.URL;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;

import edu.hawaii.ics.csdl.jupiter.ReviewPlugin;
import edu.hawaii.ics.csdl.jupiter.file.FileResource;
import edu.hawaii.ics.csdl.jupiter.model.columndata.ColumnDataModel;
import edu.hawaii.ics.csdl.jupiter.model.columndata.ColumnDataModelManager;
import edu.hawaii.ics.csdl.jupiter.model.review.ReviewId;
import edu.hawaii.ics.csdl.jupiter.model.review.ReviewModel;
import edu.hawaii.ics.csdl.jupiter.model.reviewissue.ResolutionKeyManager;
import edu.hawaii.ics.csdl.jupiter.model.reviewissue.ReviewIssue;
import edu.hawaii.ics.csdl.jupiter.model.reviewissue.SeverityKeyManager;
import edu.hawaii.ics.csdl.jupiter.model.reviewissue.StatusKeyManager;
import edu.hawaii.ics.csdl.jupiter.model.reviewissue.TypeKeyManager;
import edu.hawaii.ics.csdl.jupiter.util.JupiterLogger;
import edu.hawaii.ics.csdl.jupiter.util.ResourceBundleKey;

/**
* Provides the label for the code review view.
*
* @author Takuya Yamashita
* @version $Id: ViewLabelProvider.java 170 2009-10-08 08:38:34Z jsakuda $
*/
class ViewLabelProvider extends LabelProvider implements ITableLabelProvider {
  /** Jupiter logger */
  private JupiterLogger log = JupiterLogger.getLogger();

  /** The date format for the creation date. */
  private static final DateFormat DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd");
 
  private Image linkImage;

  /**
   * Returns the label text for the given column of the given element.
   *
   * @param object The object instance to cast the ReviewIssue instance type defined in
   *        <code>ReviewIssueModel</code> instance.
   * @param columnIndex the zero-based index of the column in which the label appears.
   *
   * @return The column text string. No null value.
   */
  public String getColumnText(Object object, int columnIndex) {
    ReviewIssue reviewIssue = (ReviewIssue) object;
   
    ReviewModel reviewModel = ReviewModel.getInstance();
    IProject project = reviewModel.getProjectManager().getProject();
    ReviewId reviewId = reviewModel.getReviewIdManager().getReviewId();
    String phaseNameKey = reviewModel.getPhaseManager().getPhaseNameKey();
    ColumnDataModelManager columnDataModelManager = ColumnDataModelManager.getInstance();
    ColumnDataModel columnDataModel = columnDataModelManager.getModel(phaseNameKey);
   
    String[] columnNameKeys = columnDataModel.getEnabledColumnNameKeyArray();
    // make sure that columnIndex is not the index out of bounds.
    if (columnNameKeys.length > columnIndex) {
      String columnNameKey = columnNameKeys[columnIndex];
      if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_CREATED_DATE)) {
        return DATE_FORMATTER.format(reviewIssue.getCreationDate());
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_MODIFIED_DATE)) {
        return DATE_FORMATTER.format(reviewIssue.getModificationDate());
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_REVIEWER)) {
        return reviewIssue.getReviewer();
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_ASSGINED_TO)) {
        return reviewIssue.getAssignedTo();
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_SUMMARY)) {
        return reviewIssue.getSummary();
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_DESCRIPTION)) {
        return reviewIssue.getDescription();
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_ANNOTATION)) {
        return reviewIssue.getAnnotation();
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_REVISION)) {
        return reviewIssue.getRevision();
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_TYPE)) {
        TypeKeyManager manager = TypeKeyManager.getInstance(project, reviewId);
        return manager.getLocalizedLabel(reviewIssue.getType().getKey());
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_SEVERITY)) {
        String severityKey = reviewIssue.getSeverity().getKey();
        SeverityKeyManager manager = SeverityKeyManager.getInstance(project, reviewId);
        return manager.getLocalizedLabel(severityKey);
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_RESOLUTION)) {
        String resolutionKey = reviewIssue.getResolution().getKey();
        ResolutionKeyManager manager = ResolutionKeyManager.getInstance(project, reviewId);
        return manager.getLocalizedLabel(resolutionKey);
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_STATUS)) {
        StatusKeyManager manager = StatusKeyManager.getInstance(project, reviewId);
        return manager.getLocalizedLabel(reviewIssue.getStatus().getKey());
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_FILE)) {
        return reviewIssue.getTargetFile();
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_LINE)) {
        return reviewIssue.getLine();
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_ID)) {
        return reviewIssue.getIssueId();
      }
      else if (columnNameKey.equals(ResourceBundleKey.COLUMN_HEADER_LINK_ICON)) {
        return "";
      }
    }
    return "";
  }

  /**
   * Returns the label image for the given column of the given element.
   *
   * @param object the object representing the entire row, or null indicating that no input object
   *        is set in the viewer.
   * @param columnIndex the zero-based index of the column in which the label appears.
   *
   * @return The label image for the given column of the given element.
   */
  public Image getColumnImage(Object object, int columnIndex) {
    ReviewModel reviewModel = ReviewModel.getInstance();   
    String phaseNameKey = reviewModel.getPhaseManager().getPhaseNameKey();
    ColumnDataModelManager columnDataModelManager = ColumnDataModelManager.getInstance();
    ColumnDataModel columnDataModel = columnDataModelManager.getModel(phaseNameKey);
    String[] columnNameKeys = columnDataModel.getEnabledColumnNameKeyArray();
    if (columnNameKeys.length > columnIndex) {
      if (columnNameKeys[columnIndex].equals(ResourceBundleKey.COLUMN_HEADER_LINK_ICON)) {
        return getImage(object);
      }
    }
    return null;
  }

  /**
   * Gets the image from <code>object</code>. Return the linked icon image if <code>IFile</code>
   * path to the target review file exist. Otherwise return null.
   *
   * @param object the element for which to provide the label image
   *
   * @return The image used to label the element, or null if there is no image for the given
   *         object.
   */
  public Image getImage(Object object) {
    ReviewIssue codeReview = (ReviewIssue) object;
    IProject project = FileResource.getProject(codeReview.getReviewIFile());
//    IJavaProject javaProject = JavaCore.create(project);
    String targetFileString = codeReview.getTargetFile();
    IFile targetIFile = null;
    if (!targetFileString.equals("")) {
      targetIFile = project.getFile(targetFileString);
    }
    try {
      URL url = ReviewPlugin.getInstance().getInstallURL();
      url = new URL(url, "icons/link.gif");
//      IJavaElement[] javaElements = new IJavaElement[] {javaProject};
      boolean isTargetIFileAvailable = (targetIFile != null) ? targetIFile.exists() : false;
      if (linkImage == null) {
        linkImage = ImageDescriptor.createFromURL(url).createImage();
      }
      // Sets link status for the sort by link image.
      codeReview.setLinkStatus(isTargetIFileAvailable);
      return (isTargetIFileAvailable ? linkImage : null);
    }
    catch (MalformedURLException e) {
      log.debug(e.getMessage());
      return null;
    }
  }
}
TOP

Related Classes of edu.hawaii.ics.csdl.jupiter.ui.view.table.ViewLabelProvider

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.