Mercurial > projects > dbus-d
view dbus-d-javatests/jsrc/filetree/FileTree.java @ 0:a5576806d36d
recreate repository without any libs for lightweight repository
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sat, 20 Oct 2007 18:07:18 +0200 |
parents | |
children | 65fb7ef02c50 |
line wrap: on
line source
package filetree; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.freedesktop.dbus.DirectConnection; import dbus_d_javahelper.ConsoleProcess; /** * This class demonstrates TreeViewer. It shows the drives, directories, and * files on the system. */ public class FileTree extends ApplicationWindow { private final DataFileSystem fs; /** * FileTree constructor */ public FileTree(DataFileSystem fs) { super(null); this.fs = fs; } /** * Runs the application */ public void run() { // Don't return from open() until window closes setBlockOnOpen(true); // Open the main window open(); // Dispose the display Display.getCurrent().dispose(); } /** * Configures the shell * * @param shell * the shell */ protected void configureShell(Shell shell) { super.configureShell(shell); // Set the title bar text and the size shell.setText("File Tree"); shell.setSize(400, 400); } /** * Creates the main window's contents * * @param parent * the main window * @return Control */ protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout(1, false)); // Add a checkbox to toggle whether the labels preserve case Button preserveCase = new Button(composite, SWT.CHECK); preserveCase.setText("&Preserve case"); // Create the tree viewer to display the file tree final TreeViewer tv = new TreeViewer(composite); tv.getTree().setLayoutData(new GridData(GridData.FILL_BOTH)); tv.setContentProvider(new FileTreeContentProvider()); tv.setLabelProvider(new FileTreeLabelProvider()); tv.setInput(fs); // pass a non-null that will be ignored // When user checks the checkbox, toggle the preserve case attribute // of the label provider preserveCase.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { boolean preserveCase = ((Button) event.widget).getSelection(); FileTreeLabelProvider ftlp = (FileTreeLabelProvider) tv .getLabelProvider(); ftlp.setPreserveCase(preserveCase); } }); return composite; } /** * The application entry point * * @param args * the command line arguments */ public static void main2(String[] args) { new FileTree(null).run(); } static DirectConnection dc; static ConsoleProcess process; public static void main(String[] args) throws Exception { final String address = DirectConnection.createDynamicTCPSession(); // String address = // "tcp:host=localhost,port=12344,guid="+Transport.genGUID(); System.err.println("----------------------------"); System.err.println(address); System.err.println("----------------------------"); new Thread() { @Override public void run() { try { System.err.println("### start D ###"); process = new ConsoleProcess(new String[] { "./dsrc/DHelper", address }, null, null, System.out, System.err); System.err.println("### started D ###"); process.join(); } catch (InterruptedException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }.start(); try{ Thread.sleep( 200 ); System.err.println("--- starting connection ----"); dc = new DirectConnection(address + ",listen=true"); System.err.println("----------------------------"); DataFileSystem rem = (DataFileSystem) dc.getRemoteObject( "/DHelper/MyDataFileSystem/0", DataFileSystem.class); new FileTree(rem).run(); } finally{ dc.disconnect(); } } }