Search in sources :

Example 11 with FileRecord

use of net.sourceforge.pmd.eclipse.ui.model.FileRecord in project pmd-eclipse-plugin by pmd.

the class ViolationOverviewLabelProvider method getProjectName.

/**
 * Return the project name.
 *
 * @param element
 * @return
 */
private String getProjectName(Object element) {
    String projectName = "";
    AbstractPMDRecord projectRec = null;
    if (element instanceof PackageRecord) {
        projectRec = ((PackageRecord) element).getParent();
    } else if (element instanceof FileRecord) {
        projectRec = ((FileRecord) element).getParent().getParent();
    } else if (element instanceof MarkerRecord) {
        projectRec = ((MarkerRecord) element).getParent().getParent().getParent();
    } else if (element instanceof FileToMarkerRecord) {
        projectRec = ((FileToMarkerRecord) element).getParent().getParent().getParent().getParent();
    }
    if (projectRec != null) {
        projectName = projectRec.getName();
    }
    return projectName;
}
Also used : FileToMarkerRecord(net.sourceforge.pmd.eclipse.ui.model.FileToMarkerRecord) MarkerRecord(net.sourceforge.pmd.eclipse.ui.model.MarkerRecord) PackageRecord(net.sourceforge.pmd.eclipse.ui.model.PackageRecord) FileRecord(net.sourceforge.pmd.eclipse.ui.model.FileRecord) FileToMarkerRecord(net.sourceforge.pmd.eclipse.ui.model.FileToMarkerRecord) AbstractPMDRecord(net.sourceforge.pmd.eclipse.ui.model.AbstractPMDRecord)

Example 12 with FileRecord

use of net.sourceforge.pmd.eclipse.ui.model.FileRecord in project pmd-eclipse-plugin by pmd.

the class ViolationOverviewLabelProvider method getColumnImage.

/**
 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
 *      int)
 */
public Image getColumnImage(Object element, int columnIndex) {
    Image image = null;
    // the first column
    if (columnIndex == 0) {
        if (element instanceof PackageRecord) {
            image = getImage(KEY_IMAGE_PACKAGE, PMDUiConstants.ICON_PACKAGE);
        } else if (element instanceof FileRecord || element instanceof FileToMarkerRecord) {
            image = getImage(KEY_IMAGE_JAVAFILE, PMDUiConstants.ICON_JAVACU);
        } else if (element instanceof MarkerRecord) {
            MarkerRecord markerRecord = (MarkerRecord) element;
            int priority = markerRecord.getPriority();
            image = getPriorityImage(priority);
        }
    }
    return image;
}
Also used : FileToMarkerRecord(net.sourceforge.pmd.eclipse.ui.model.FileToMarkerRecord) MarkerRecord(net.sourceforge.pmd.eclipse.ui.model.MarkerRecord) PackageRecord(net.sourceforge.pmd.eclipse.ui.model.PackageRecord) FileRecord(net.sourceforge.pmd.eclipse.ui.model.FileRecord) Image(org.eclipse.swt.graphics.Image) FileToMarkerRecord(net.sourceforge.pmd.eclipse.ui.model.FileToMarkerRecord)

Example 13 with FileRecord

use of net.sourceforge.pmd.eclipse.ui.model.FileRecord in project pmd-eclipse-plugin by pmd.

the class PriorityFilter method select.

/*
     * @see
     * org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.
     * Viewer, java.lang.Object, java.lang.Object)
     */
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
    boolean select = false;
    if (element instanceof PackageRecord) {
        // ViolationOverview
        select = hasMarkersToShow((PackageRecord) element);
    } else if (element instanceof FileRecord) {
        // ViolationOverview
        select = hasMarkersToShow((FileRecord) element);
    } else if (element instanceof IMarker) {
        // ViolationOutline
        try {
            final IMarker marker = (IMarker) element;
            final Integer markerPrio = (Integer) marker.getAttribute(PMDUiConstants.KEY_MARKERATT_PRIORITY);
            select = isPriorityEnabled(markerPrio);
        } catch (CoreException ce) {
            PMDPlugin.getDefault().logError(StringKeys.ERROR_CORE_EXCEPTION + this.toString(), ce);
        }
    } else if (element instanceof MarkerRecord) {
        // ViolationOverview
        final MarkerRecord markerRec = (MarkerRecord) element;
        for (Integer priority : priorityList) {
            if (markerRec.getPriority() == priority.intValue()) {
                select = true;
                break;
            }
        }
    } else if (element instanceof FileToMarkerRecord) {
        select = true;
    }
    return select;
}
Also used : CoreException(org.eclipse.core.runtime.CoreException) FileToMarkerRecord(net.sourceforge.pmd.eclipse.ui.model.FileToMarkerRecord) MarkerRecord(net.sourceforge.pmd.eclipse.ui.model.MarkerRecord) PackageRecord(net.sourceforge.pmd.eclipse.ui.model.PackageRecord) FileRecord(net.sourceforge.pmd.eclipse.ui.model.FileRecord) IMarker(org.eclipse.core.resources.IMarker) FileToMarkerRecord(net.sourceforge.pmd.eclipse.ui.model.FileToMarkerRecord)

Example 14 with FileRecord

use of net.sourceforge.pmd.eclipse.ui.model.FileRecord in project pmd-eclipse-plugin by pmd.

the class ProjectFilter method select.

/*
     * @see
     * org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.
     * Viewer, java.lang.Object, java.lang.Object)
     */
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
    boolean select = true;
    AbstractPMDRecord projectRec = null;
    if (element instanceof PackageRecord) {
        projectRec = ((PackageRecord) element).getParent();
    } else if (element instanceof FileRecord) {
        projectRec = ((FileRecord) element).getParent().getParent();
    } else if (element instanceof MarkerRecord) {
        projectRec = ((MarkerRecord) element).getParent().getParent().getParent();
    }
    // we don't want the Element to be shown
    if (projectFilterList.contains(projectRec)) {
        select = false;
    }
    return select;
}
Also used : MarkerRecord(net.sourceforge.pmd.eclipse.ui.model.MarkerRecord) PackageRecord(net.sourceforge.pmd.eclipse.ui.model.PackageRecord) FileRecord(net.sourceforge.pmd.eclipse.ui.model.FileRecord) AbstractPMDRecord(net.sourceforge.pmd.eclipse.ui.model.AbstractPMDRecord)

Example 15 with FileRecord

use of net.sourceforge.pmd.eclipse.ui.model.FileRecord in project pmd-eclipse-plugin by pmd.

the class CalculateStatisticsAction method run.

/**
 * Executes the Action
 */
public void run() {
    try {
        final ProgressMonitorDialog dialog = new ProgressMonitorDialog(Display.getCurrent().getActiveShell());
        dialog.setCancelable(true);
        dialog.run(false, false, new IRunnableWithProgress() {

            public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
                final TreeItem[] items = getViewer().getTree().getItems();
                final int unitCount = calculateWorkUnits(items);
                monitor.beginTask(getString(StringKeys.MONITOR_CALC_STATS_TASK), unitCount);
                for (TreeItem item : items) {
                    if (monitor.isCanceled()) {
                        break;
                    }
                    if (item.getData() instanceof PackageRecord) {
                        final PackageRecord record = (PackageRecord) item.getData();
                        final AbstractPMDRecord[] children = record.getChildren();
                        monitor.subTask(getString(StringKeys.MONITOR_CALC_STATS_OF_PACKAGE) + ": " + record.getName());
                        for (AbstractPMDRecord kid : children) {
                            if (kid instanceof FileRecord) {
                                calculateFileRecord((FileRecord) kid);
                                monitor.worked(1);
                            }
                        }
                    } else if (item.getData() instanceof FileRecord) {
                        calculateFileRecord((FileRecord) item.getData());
                        monitor.worked(1);
                    }
                }
                getViewer().refresh(true);
            }
        });
    } catch (InvocationTargetException e) {
        logErrorByKey(StringKeys.ERROR_INVOCATIONTARGET_EXCEPTION, e);
    } catch (InterruptedException e) {
        logErrorByKey(StringKeys.ERROR_INTERRUPTED_EXCEPTION, e);
    }
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) TreeItem(org.eclipse.swt.widgets.TreeItem) ProgressMonitorDialog(org.eclipse.jface.dialogs.ProgressMonitorDialog) PackageRecord(net.sourceforge.pmd.eclipse.ui.model.PackageRecord) FileRecord(net.sourceforge.pmd.eclipse.ui.model.FileRecord) InvocationTargetException(java.lang.reflect.InvocationTargetException) IRunnableWithProgress(org.eclipse.jface.operation.IRunnableWithProgress) AbstractPMDRecord(net.sourceforge.pmd.eclipse.ui.model.AbstractPMDRecord)

Aggregations

FileRecord (net.sourceforge.pmd.eclipse.ui.model.FileRecord)15 AbstractPMDRecord (net.sourceforge.pmd.eclipse.ui.model.AbstractPMDRecord)8 PackageRecord (net.sourceforge.pmd.eclipse.ui.model.PackageRecord)8 MarkerRecord (net.sourceforge.pmd.eclipse.ui.model.MarkerRecord)7 FileToMarkerRecord (net.sourceforge.pmd.eclipse.ui.model.FileToMarkerRecord)5 IMarker (org.eclipse.core.resources.IMarker)2 IResource (org.eclipse.core.resources.IResource)2 InvocationTargetException (java.lang.reflect.InvocationTargetException)1 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Rule (net.sourceforge.pmd.Rule)1 IFile (org.eclipse.core.resources.IFile)1 IProject (org.eclipse.core.resources.IProject)1 CoreException (org.eclipse.core.runtime.CoreException)1 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)1 ProgressMonitorDialog (org.eclipse.jface.dialogs.ProgressMonitorDialog)1 IRunnableWithProgress (org.eclipse.jface.operation.IRunnableWithProgress)1 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)1 Image (org.eclipse.swt.graphics.Image)1