// 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 );
}
}