org.projectusus.autotestsuite.ui.internal.CheckedProjectsViewer.java Source code

Java tutorial

Introduction

Here is the source code for org.projectusus.autotestsuite.ui.internal.CheckedProjectsViewer.java

Source

// Copyright (c) 2009 by the projectusus.org contributors
// This software is released under the terms and conditions
// of the Eclipse Public License (EPL) 1.0.
// See http://www.eclipse.org/legal/epl-v10.html for details.
package org.projectusus.autotestsuite.ui.internal;

import java.util.LinkedHashSet;
import java.util.Set;

import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.ui.JavaElementLabelProvider;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.projectusus.autotestsuite.core.internal.AllJavaProjectsInWorkspace;
import org.projectusus.autotestsuite.core.internal.IAllJavaProjects;
import org.projectusus.autotestsuite.core.internal.RequiredJavaProjects;

class CheckedProjectsViewer extends CheckboxTableViewer {

    CheckedProjectsViewer(Composite parent) {
        super(new Table(parent, SWT.CHECK | SWT.BORDER));
        getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
        setContentProvider(new ArrayContentProvider());
        setLabelProvider(new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT));
        setInput(new AllJavaProjectsInWorkspace().find());
    }

    void updateCheckedProjects(IJavaProject root) {
        Object[] checked = getCheckedElements();
        Set<IJavaProject> projects = new LinkedHashSet<IJavaProject>();
        if (root != null) {
            IAllJavaProjects allProjects = new AllJavaProjectsInWorkspace();
            projects.addAll(new RequiredJavaProjects(allProjects).findFor(root));
        }
        setInput(projects);
        setCheckedElements(checked);
    }
}