de.tobject.findbugs.view.properties.PropPageTitleProvider.java Source code

Java tutorial

Introduction

Here is the source code for de.tobject.findbugs.view.properties.PropPageTitleProvider.java

Source

/*
 * Contributions to FindBugs
 * Copyright (C) 2009, Andrei Loskutov
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
package de.tobject.findbugs.view.properties;

import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jface.viewers.IStructuredSelection;

import de.tobject.findbugs.marker.FindBugsMarker;
import de.tobject.findbugs.reporter.MarkerUtil;
import de.tobject.findbugs.view.explorer.BugGroup;
import de.tobject.findbugs.view.explorer.BugLabelProvider;
import edu.umd.cs.findbugs.BugCategory;
import edu.umd.cs.findbugs.BugCode;
import edu.umd.cs.findbugs.BugInstance;
import edu.umd.cs.findbugs.BugPattern;

public class PropPageTitleProvider extends BugLabelProvider {
    @Override
    public String getText(Object element) {
        if (element instanceof IStructuredSelection) {
            IStructuredSelection selection = (IStructuredSelection) element;
            if (selection.size() > 1) {
                return super.getText(element);
            }
            element = selection.getFirstElement();
        }
        String title = getTitle(element);
        if (title != null) {
            return title;
        }
        return super.getText(element);
    }

    String getTitle(Object something) {
        if (something instanceof BugGroup) {
            return getTitle((BugGroup) something);
        }
        if (something instanceof IMarker) {
            return getTitle((IMarker) something);
        }
        return null;
    }

    String getTitle(IMarker marker) {
        return getTitle(MarkerUtil.findBugInstanceForMarker(marker));
    }

    String getTitle(BugGroup group) {
        switch (group.getType()) {
        case Marker:
            return getTitle((IMarker) group.getData());
        case Pattern:
            return getTitle((BugPattern) group.getData());
        case PatternType:
            return getTitle((BugCode) group.getData());
        case Category:
            return getTitle((BugCategory) group.getData());
        case Priority:
            return getTitle((Integer) group.getData());
        case Package:
            return getTitle((IPackageFragment) group.getData());
        case Project:
            return getTitle((IProject) group.getData());
        case Class:
            return getTitle((IJavaElement) group.getData());

        default:
            break;
        }
        return null;
    }

    String getTitle(IJavaElement elem) {
        if (elem == null) {
            return null;
        }
        StringBuilder sb = new StringBuilder("Class: ");
        sb.append(elem.getElementName());
        return sb.toString();
    }

    String getTitle(IProject pack) {
        if (pack == null) {
            return null;
        }
        StringBuilder sb = new StringBuilder("Project: ");
        sb.append(pack.getName());
        return sb.toString();
    }

    String getTitle(IPackageFragment pack) {
        if (pack == null) {
            return null;
        }
        StringBuilder sb = new StringBuilder("Package: ");
        String name = pack.getElementName();
        if (name == null || name.length() == 0) {
            sb.append("default package");
        } else {
            sb.append(name);
        }
        return sb.toString();
    }

    String getTitle(Integer priority) {
        if (priority == null) {
            return null;
        }
        StringBuilder sb = new StringBuilder("Priority: ");
        sb.append(FindBugsMarker.Priority.label(priority.intValue()).name());
        return sb.toString();
    }

    String getTitle(BugCategory category) {
        if (category == null) {
            return null;
        }
        StringBuilder sb = new StringBuilder("Category: ");
        sb.append(category.getShortDescription());
        sb.append(" (").append(category.getAbbrev()).append(", ");
        sb.append(category.getCategory()).append(")");
        return sb.toString();
    }

    String getTitle(BugCode type) {
        if (type == null) {
            return null;
        }
        StringBuilder sb = new StringBuilder("Pattern Type: ");
        sb.append(type.getDescription());
        sb.append(" (").append(type.getAbbrev()).append(")");
        return sb.toString();
    }

    String getTitle(BugPattern pattern) {
        if (pattern == null) {
            return null;
        }
        StringBuilder sb = new StringBuilder("Pattern: ");
        sb.append(pattern.getShortDescription());
        return sb.toString();
    }

    String getTitle(BugInstance bug) {
        if (bug == null) {
            return null;
        }
        StringBuilder sb = new StringBuilder("Bug: ");
        sb.append(bug.getAbridgedMessage());
        return sb.toString();
    }

    String getDetails(BugInstance bug) {
        if (bug == null) {
            return null;
        }
        StringBuilder sb = new StringBuilder();
        BugPattern pattern = bug.getBugPattern();
        sb.append(" (").append(pattern.getType());
        sb.append(", ").append(pattern.getAbbrev()).append(", ");
        sb.append(pattern.getCategory()).append(", ");
        sb.append(bug.getPriorityString());
        sb.append(")");
        return sb.toString();
    }

    String getDetails(BugPattern pattern) {
        if (pattern == null) {
            return null;
        }
        StringBuilder sb = new StringBuilder("<b>id:</b> ");
        sb.append(pattern.getType());
        sb.append(", <b>type:</b> ").append(pattern.getAbbrev()).append(", <b>category:</b> ");
        sb.append(pattern.getCategory());
        return sb.toString();
    }
}