org.eclipse.mylyn.java.ui.views.ProblemsFieldJavaElement.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.mylyn.java.ui.views.ProblemsFieldJavaElement.java

Source

/*******************************************************************************
 * Copyright (c) 2004 - 2005 University Of British Columbia and others.
 * 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:
 *     University Of British Columbia - initial API and implementation
 *******************************************************************************/
/*
 * Created on Jul 6, 2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package org.eclipse.mylyn.java.ui.views;

import org.eclipse.jdt.core.*;
import org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.views.markers.internal.ConcreteMarker;
import org.eclipse.ui.views.markers.internal.Messages;

import org.eclipse.mylyn.java.ui.JavaUiUtil;

/**
 * @author beatmik
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class ProblemsFieldJavaElement implements org.eclipse.ui.views.markers.internal.IField {

    private String description;
    private Image image;
    private JavaElementImageProvider imageProvider = new JavaElementImageProvider();

    public ProblemsFieldJavaElement() {
        description = Messages.getString("Java Element"); //$NON-NLS-1$
    }

    public String getDescription() {
        return description;
    }

    public Image getDescriptionImage() {
        return image;
    }

    public String getColumnHeaderText() {
        return description;
    }

    public Image getColumnHeaderImage() {
        return image;
    }

    public String getValue(Object obj) {
        if (obj == null || !(obj instanceof ConcreteMarker)) {
            return ""; //$NON-NLS-1$
        }
        ConcreteMarker marker = (ConcreteMarker) obj;
        IJavaElement javaElement = JavaUiUtil.getJavaElement(marker);//SearchUtil.getJavaElement(marker);
        if (javaElement == null) {
            return marker.getResourceName();
        } else {
            String name;
            if (javaElement instanceof IMember && javaElement.getParent() != null
                    && !(javaElement.getParent() instanceof ICompilationUnit)) {
                name = javaElement.getParent().getElementName() + "." + javaElement.getElementName();
            } else {
                name = javaElement.getElementName();
            }
            return name;
        }
    }

    public Image getImage(Object obj) {
        if (obj == null || !(obj instanceof ConcreteMarker)) {
            return null; //$NON-NLS-1$
        }
        ConcreteMarker marker = (ConcreteMarker) obj;
        IJavaElement javaElement = JavaUiUtil.getJavaElement(marker);//SearchUtil.getJavaElement(marker);
        if (javaElement == null) {
            return null;
        } else {
            Image image = imageProvider.getImageLabel(javaElement, JavaElementImageProvider.SMALL_ICONS);
            return image;
        }
    }

    public int compare(Object obj1, Object obj2) {
        if (obj1 == null || obj2 == null || !(obj1 instanceof ConcreteMarker)
                || !(obj2 instanceof ConcreteMarker)) {
            return 0;
        }

        ConcreteMarker marker1 = (ConcreteMarker) obj1;
        ConcreteMarker marker2 = (ConcreteMarker) obj2;

        try {
            return marker1.getResourceNameKey().compareTo(marker2.getResourceNameKey());
        } catch (NoSuchMethodError e) {
            return 0; // TODO: will not sorting these cause any problems?
        }
    }
}