package happyview; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Arrays; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeColumn; import org.eclipse.swt.widgets.TreeItem; public class HappyFileTreeView { Composite parent; public HappyFileTreeView(Composite parent) { this.parent = parent; } public static void main(String[] args) { Shell shell = new Shell(); shell.setBounds(200, 100, 750, 550); shell.setText("List Fie System as Tree"); GridLayout layout = new GridLayout(); shell.setLayout(layout); Composite comp = new Composite(shell, SWT.NONE); comp.setLayout(new GridLayout()); GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.widthHint = 700; gd.heightHint = 650; comp.setLayoutData(gd); comp.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_YELLOW)); HappyFileTreeView tree = new HappyFileTreeView(comp); tree.createFileTree(); shell.open(); Display display = shell.getDisplay(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } } public void createFileTree() { Composite leftTreeComp = new Composite(parent, SWT.NONE); leftTreeComp.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_GREEN)); createLeftFileTree(leftTreeComp); leftTreeComp.setLayout(new GridLayout()); GridData leftGd = new GridData(SWT.FILL, SWT.FILL, true, true); leftGd.widthHint = 300; leftGd.heightHint = 500; leftTreeComp.setLayoutData(leftGd); } private void createLeftFileTree(Composite leftTreeComp) { String root = System.getProperty("user.home"); File rootDir = new File("/"); TreeViewer tv = new TreeViewer(leftTreeComp); Tree tree = tv.getTree(); tree.setLayoutData(new GridData(GridData.FILL_BOTH)); tree.setHeaderVisible(true); TreeColumn ti = new TreeColumn(tree, SWT.CENTER); ti.setText("File System"); ti.setWidth(400); tv.setContentProvider(new FileTreeProvider()); tv.setLabelProvider(new FileTreeLabelProvider()); tv.setInput("/"); } private Image getImage(File file) { try { if (file.isFile()) { Image img = new Image(null, new FileInputStream("images/file.png")); return img; } else { Image img = new Image(null, new FileInputStream("images/dir.png")); return img; } } catch (FileNotFoundException e) { e.printStackTrace(); } return null; } } |