|
From: Mikael P. <er...@us...> - 2012-01-27 14:55:00
|
Update of /cvsroot/eclipse-ccase/net.sourceforge.eclipseccase.ui/src/net/sourceforge/eclipseccase/ui
In directory vz-cvs-4.sog:/tmp/cvs-serv18032/src/net/sourceforge/eclipseccase/ui
Added Files:
Tag: mike_diff_checkin
ElementSelectionTree.java
Log Message:
First version of new checkin
--- NEW FILE: ElementSelectionTree.java ---
package net.sourceforge.eclipseccase.ui;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.Viewer;
import java.io.File;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.core.resources.IContainer;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
import java.util.Comparator;
import java.util.ArrayList;
import java.util.Arrays;
import org.eclipse.core.resources.IResource;
import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.jface.viewers.CheckboxTreeViewer;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Composite;
/**
*
* @author mikael petterson
*
*/
public class ElementSelectionTree extends Composite {
private ArrayList resourceList;
private IResource[] resources;
private ResourceComparator comparator = new ResourceComparator();
private CheckboxTreeViewer checkTreeViewer;
public ElementSelectionTree(Composite parent, IResource[] resources, int style) {
super(parent, style);
this.resources = resources;
// sort and add to internal holder.
Arrays.sort(resources, comparator);
resourceList = new ArrayList();
for (int i = 0; i < resources.length; i++) {
IResource resource = resources[i];
resourceList.add(resource);
}
}
protected Control createContents(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new GridLayout(1, false));
// Create the tree viewer to display the file tree
final CheckboxTreeViewer checkTreeViewer = new CheckboxTreeViewer(composite);
checkTreeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
checkTreeViewer.setContentProvider(new FileTreeContentProvider());
checkTreeViewer.setLabelProvider(new FileTreeLabelProvider());
checkTreeViewer.setInput("root"); // pass a non-null that will be
// ignored
// When user checks a checkbox in the tree, check all its children
checkTreeViewer.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(CheckStateChangedEvent event) {
if (event.getChecked()) {
checkTreeViewer.setSubtreeChecked(event.getElement(), true);
}
}
});
return composite;
}
public IResource[] getSelectedResources() {
ArrayList selected = new ArrayList();
Object[] checkedResources = ((CheckboxTreeViewer) checkTreeViewer).getCheckedElements();
for (int i = 0; i < checkedResources.length; i++) {
if (resourceList.contains(checkedResources[i]))
selected.add(checkedResources[i]);
}
IResource[] selectedResources = new IResource[selected.size()];
selected.toArray(selectedResources);
return selectedResources;
}
private class ResourceComparator implements Comparator {
public int compare(Object objA, Object objB) {
IResource resourceA = (IResource) objA;
IResource resourceB = (IResource) objB;
return resourceA.getFullPath().toOSString().compareTo(resourceB.getFullPath().toOSString());
}
}
class FileTreeContentProvider implements ITreeContentProvider {
public Object[] getChildren(Object arg0) {
return ((File) arg0).listFiles();
}
public Object getParent(Object arg0) {
return ((File) arg0).getParentFile();
}
public boolean hasChildren(Object arg0) {
Object[] obj = getChildren(arg0);
return obj == null ? false : obj.length > 0;
}
public Object[] getElements(Object arg0) {
return File.listRoots();
}
public void dispose() {
}
public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
}
}
class FileTreeLabelProvider implements ILabelProvider {
private Image file;
private Image dir;
public FileTreeLabelProvider() {
}
public Image getImage(Object arg0) {
// TODO Auto-generated method stub
return null;
}
public String getText(Object arg0) {
// TODO Auto-generated method stub
return null;
}
public void addListener(ILabelProviderListener arg0) {
// TODO Auto-generated method stub
}
public void dispose() {
// TODO Auto-generated method stub
}
public boolean isLabelProperty(Object arg0, String arg1) {
// TODO Auto-generated method stub
return false;
}
public void removeListener(ILabelProviderListener arg0) {
// TODO Auto-generated method stub
}
}
}
|