diff org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet028DuplexingObservableValue.d @ 99:5d5bd660917f

build some databind snippets
author Frank Benoit <benoit@tionex.de>
date Wed, 22 Apr 2009 18:59:26 +0200
parents 6086085e153d
children e884642ad36e
line wrap: on
line diff
--- a/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet028DuplexingObservableValue.d	Wed Apr 22 07:30:21 2009 +0200
+++ b/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet028DuplexingObservableValue.d	Wed Apr 22 18:59:26 2009 +0200
@@ -10,7 +10,9 @@
  *     Matthew Hall - bugs 262407, 260337
  ******************************************************************************/
 
-package org.eclipse.jface.examples.databinding.snippets;
+module org.eclipse.jface.examples.databinding.snippets.Snippet028DuplexingObservableValue;
+
+import java.lang.all;
 
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
@@ -42,256 +44,259 @@
  * 
  */
 public class Snippet028DuplexingObservableValue {
-	protected Shell shell;
-	private TableViewer viewer;
-	private Table table;
-	private Text releaseDate;
-	private Text title;
-	private Text director;
-	private Text writer;
+    protected Shell shell;
+    private TableViewer viewer;
+    private Table table;
+    private Text releaseDate;
+    private Text title;
+    private Text director;
+    private Text writer;
 
-	/**
-	 * Launch the application
-	 * 
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		try {
-			Snippet028DuplexingObservableValue window = new Snippet028DuplexingObservableValue();
-			window.open();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
+    /**
+     * Launch the application
+     * 
+     * @param args
+     */
+    public static void main(String[] args) {
+        try {
+            Snippet028DuplexingObservableValue window = new Snippet028DuplexingObservableValue();
+            window.open();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 
-	/**
-	 * Open the window
-	 */
-	public void open() {
-		final Display display = Display.getDefault();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				createContents();
-				shell.open();
-				shell.layout();
-				while (!shell.isDisposed()) {
-					if (!display.readAndDispatch())
-						display.sleep();
-				}
-			}
-		});
-	}
+    /**
+     * Open the window
+     */
+    public void open() {
+        final Display display = Display.getDefault();
+        Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
+            public void run() {
+                createContents();
+                shell.open();
+                shell.layout();
+                while (!shell.isDisposed()) {
+                    if (!display.readAndDispatch())
+                        display.sleep();
+                }
+            }
+        });
+    }
 
-	protected void createContents() {
-		shell = new Shell();
-		shell.setSize(509, 375);
-		shell.setText("Snippet028DuplexingObservableValue.java");
-		final GridLayout gridLayout = new GridLayout();
-		gridLayout.makeColumnsEqualWidth = true;
-		gridLayout.numColumns = 4;
-		shell.setLayout(gridLayout);
+    protected void createContents() {
+        shell = new Shell();
+        shell.setSize(509, 375);
+        shell.setText("Snippet028DuplexingObservableValue.java");
+        final GridLayout gridLayout = new GridLayout();
+        gridLayout.makeColumnsEqualWidth = true;
+        gridLayout.numColumns = 4;
+        shell.setLayout(gridLayout);
 
-		viewer = new TableViewer(shell, SWT.FULL_SELECTION | SWT.MULTI
-				| SWT.BORDER);
-		table = viewer.getTable();
-		table.setLinesVisible(true);
-		table.setHeaderVisible(true);
-		table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1));
+        viewer = new TableViewer(shell, SWT.FULL_SELECTION | SWT.MULTI
+                | SWT.BORDER);
+        table = viewer.getTable();
+        table.setLinesVisible(true);
+        table.setHeaderVisible(true);
+        table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1));
 
-		final TableColumn newColumnTableColumn_1 = new TableColumn(table,
-				SWT.NONE);
-		newColumnTableColumn_1.setWidth(120);
-		newColumnTableColumn_1.setText("Movie");
+        final TableColumn newColumnTableColumn_1 = new TableColumn(table,
+                SWT.NONE);
+        newColumnTableColumn_1.setWidth(120);
+        newColumnTableColumn_1.setText("Movie");
+
+        final TableColumn newColumnTableColumn = new TableColumn(table,
+                SWT.NONE);
 
-		final TableColumn newColumnTableColumn = new TableColumn(table,
-				SWT.NONE);
+        newColumnTableColumn.setWidth(120);
+        newColumnTableColumn.setText("Release Date");
 
-		newColumnTableColumn.setWidth(120);
-		newColumnTableColumn.setText("Release Date");
+        final TableColumn newColumnTableColumn_2 = new TableColumn(table,
+                SWT.NONE);
+        newColumnTableColumn_2.setWidth(120);
+        newColumnTableColumn_2.setText("Director");
 
-		final TableColumn newColumnTableColumn_2 = new TableColumn(table,
-				SWT.NONE);
-		newColumnTableColumn_2.setWidth(120);
-		newColumnTableColumn_2.setText("Director");
+        final TableColumn newColumnTableColumn_3 = new TableColumn(table,
+                SWT.NONE);
+        newColumnTableColumn_3.setWidth(120);
+        newColumnTableColumn_3.setText("Writer");
 
-		final TableColumn newColumnTableColumn_3 = new TableColumn(table,
-				SWT.NONE);
-		newColumnTableColumn_3.setWidth(120);
-		newColumnTableColumn_3.setText("Writer");
+        final Label movieLabel = new Label(shell, SWT.NONE);
+        movieLabel.setText("Movie");
 
-		final Label movieLabel = new Label(shell, SWT.NONE);
-		movieLabel.setText("Movie");
+        final Label directorLabel = new Label(shell, SWT.NONE);
+        directorLabel.setLayoutData(new GridData());
+        directorLabel.setText("Release Date");
 
-		final Label directorLabel = new Label(shell, SWT.NONE);
-		directorLabel.setLayoutData(new GridData());
-		directorLabel.setText("Release Date");
+        final Label producerLabel = new Label(shell, SWT.NONE);
+        producerLabel.setText("Director");
 
-		final Label producerLabel = new Label(shell, SWT.NONE);
-		producerLabel.setText("Director");
+        final Label scoreLabel = new Label(shell, SWT.NONE);
+        scoreLabel.setText("Writer");
 
-		final Label scoreLabel = new Label(shell, SWT.NONE);
-		scoreLabel.setText("Writer");
+        title = new Text(shell, SWT.BORDER);
+        final GridData gd_title = new GridData(SWT.FILL, SWT.CENTER, true,
+                false);
+        title.setLayoutData(gd_title);
 
-		title = new Text(shell, SWT.BORDER);
-		final GridData gd_title = new GridData(SWT.FILL, SWT.CENTER, true,
-				false);
-		title.setLayoutData(gd_title);
+        releaseDate = new Text(shell, SWT.BORDER);
+        final GridData gd_releaseDate = new GridData(SWT.FILL, SWT.CENTER,
+                true, false);
+        releaseDate.setLayoutData(gd_releaseDate);
 
-		releaseDate = new Text(shell, SWT.BORDER);
-		final GridData gd_releaseDate = new GridData(SWT.FILL, SWT.CENTER,
-				true, false);
-		releaseDate.setLayoutData(gd_releaseDate);
+        director = new Text(shell, SWT.BORDER);
+        final GridData gd_director = new GridData(SWT.FILL, SWT.CENTER, true,
+                false);
+        director.setLayoutData(gd_director);
 
-		director = new Text(shell, SWT.BORDER);
-		final GridData gd_director = new GridData(SWT.FILL, SWT.CENTER, true,
-				false);
-		director.setLayoutData(gd_director);
+        writer = new Text(shell, SWT.BORDER);
+        final GridData gd_writer = new GridData(SWT.FILL, SWT.CENTER, true,
+                false);
+        writer.setLayoutData(gd_writer);
 
-		writer = new Text(shell, SWT.BORDER);
-		final GridData gd_writer = new GridData(SWT.FILL, SWT.CENTER, true,
-				false);
-		writer.setLayoutData(gd_writer);
+        bindUI();
+    }
 
-		bindUI();
-	}
+    // Minimal JavaBeans support
+    public static abstract class AbstractModelObject {
+        private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
+                this);
 
-	// Minimal JavaBeans support
-	public static abstract class AbstractModelObject {
-		private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
-				this);
+        public void addPropertyChangeListener(PropertyChangeListener listener) {
+            propertyChangeSupport.addPropertyChangeListener(listener);
+        }
 
-		public void addPropertyChangeListener(PropertyChangeListener listener) {
-			propertyChangeSupport.addPropertyChangeListener(listener);
-		}
+        public void addPropertyChangeListener(String propertyName,
+                PropertyChangeListener listener) {
+            propertyChangeSupport.addPropertyChangeListener(propertyName,
+                    listener);
+        }
 
-		public void addPropertyChangeListener(String propertyName,
-				PropertyChangeListener listener) {
-			propertyChangeSupport.addPropertyChangeListener(propertyName,
-					listener);
-		}
+        public void removePropertyChangeListener(PropertyChangeListener listener) {
+            propertyChangeSupport.removePropertyChangeListener(listener);
+        }
 
-		public void removePropertyChangeListener(PropertyChangeListener listener) {
-			propertyChangeSupport.removePropertyChangeListener(listener);
-		}
+        public void removePropertyChangeListener(String propertyName,
+                PropertyChangeListener listener) {
+            propertyChangeSupport.removePropertyChangeListener(propertyName,
+                    listener);
+        }
 
-		public void removePropertyChangeListener(String propertyName,
-				PropertyChangeListener listener) {
-			propertyChangeSupport.removePropertyChangeListener(propertyName,
-					listener);
-		}
+        protected void firePropertyChange(String propertyName, Object oldValue,
+                Object newValue) {
+            propertyChangeSupport.firePropertyChange(propertyName, oldValue,
+                    newValue);
+        }
+    }
 
-		protected void firePropertyChange(String propertyName, Object oldValue,
-				Object newValue) {
-			propertyChangeSupport.firePropertyChange(propertyName, oldValue,
-					newValue);
-		}
-	}
-
-	public static class MovieInfo extends AbstractModelObject {
-		private String title;
-		private String releaseDate;
-		private String director;
-		private String writer;
+    public static class MovieInfo extends AbstractModelObject {
+        private String title;
+        private String releaseDate;
+        private String director;
+        private String writer;
 
-		public MovieInfo(String title, String releaseDate, String director,
-				String writer) {
-			this.title = title;
-			this.releaseDate = releaseDate;
-			this.director = director;
-			this.writer = writer;
-		}
+        public MovieInfo(String title, String releaseDate, String director,
+                String writer) {
+            this.title = title;
+            this.releaseDate = releaseDate;
+            this.director = director;
+            this.writer = writer;
+        }
 
-		public String getTitle() {
-			return title;
-		}
+        public String getTitle() {
+            return title;
+        }
 
-		public void setTitle(String title) {
-			firePropertyChange("title", this.title, this.title = title);
-		}
+        public void setTitle(String title) {
+            firePropertyChange("title", this.title, this.title = title);
+        }
 
-		public String getReleaseDate() {
-			return releaseDate;
-		}
+        public String getReleaseDate() {
+            return releaseDate;
+        }
 
-		public void setReleaseDate(String releaseDate) {
-			firePropertyChange("releaseDate", this.releaseDate,
-					this.releaseDate = releaseDate);
-		}
+        public void setReleaseDate(String releaseDate) {
+            firePropertyChange("releaseDate", this.releaseDate,
+                    this.releaseDate = releaseDate);
+        }
 
-		public String getDirector() {
-			return director;
-		}
+        public String getDirector() {
+            return director;
+        }
 
-		public void setDirector(String director) {
-			firePropertyChange("director", this.director,
-					this.director = director);
-		}
+        public void setDirector(String director) {
+            firePropertyChange("director", this.director,
+                    this.director = director);
+        }
+
+        public String getWriter() {
+            return writer;
+        }
 
-		public String getWriter() {
-			return writer;
-		}
+        public void setWriter(String writer) {
+            firePropertyChange("writer", this.writer, this.writer = writer);
+        }
+    }
 
-		public void setWriter(String writer) {
-			firePropertyChange("writer", this.writer, this.writer = writer);
-		}
-	}
+    private void bindUI() {
+        IObservableList movies = new WritableList();
+        movies.add(new MovieInfo("007: Quantum of Solace", "October 31, 2008",
+                "Marc Forster", "Robert Wade"));
+        movies.add(new MovieInfo("Batman Begins", "June 15, 2005",
+                "Christopher Nolan", "David S. Goyer"));
+        movies.add(new MovieInfo("Cloverfield", "January 18, 2008",
+                "Matt Reeves", "Drew Goddard"));
+        movies.add(new MovieInfo("The Dark Knight", "July 18, 2008",
+                "Christopher Nolan", "David S. Goyer"));
+        movies.add(new MovieInfo("Finding Nemo", "May 30, 2003",
+                "Andrew Stanton", "Andrew Stanton"));
+        movies.add(new MovieInfo("Get Smart", "June 20, 2008", "Peter Segal",
+                "Tom J. Astle"));
+        movies.add(new MovieInfo(
+                "Indiana Jones and the Kingdom of the Crystal Skull",
+                "May 22, 2008", "Steven Spielberg", "Drunken Lemurs"));
+        movies.add(new MovieInfo("Iron Man", "May 2, 2008", "Jon Favreau",
+                "Mark Fergus"));
+        movies.add(new MovieInfo("Raiders of the Lost Ark", "June 12, 1981",
+                "Steven Spielberg", "George Lucas"));
+        movies.add(new MovieInfo("Valkyrie", "December 25, 2008",
+                "Bryan Singer", "Christopher McQuarrie"));
+        movies.add(new MovieInfo("Wall-E", "June 27, 2008", "Andrew Stanton",
+                "Andrew Stanton"));
+        movies.add(new MovieInfo("Wanted", "June 27, 2008",
+                "Timur Bekmambetov", "Michael Brandt"));
 
-	private void bindUI() {
-		IObservableList movies = new WritableList();
-		movies.add(new MovieInfo("007: Quantum of Solace", "October 31, 2008",
-				"Marc Forster", "Robert Wade"));
-		movies.add(new MovieInfo("Batman Begins", "June 15, 2005",
-				"Christopher Nolan", "David S. Goyer"));
-		movies.add(new MovieInfo("Cloverfield", "January 18, 2008",
-				"Matt Reeves", "Drew Goddard"));
-		movies.add(new MovieInfo("The Dark Knight", "July 18, 2008",
-				"Christopher Nolan", "David S. Goyer"));
-		movies.add(new MovieInfo("Finding Nemo", "May 30, 2003",
-				"Andrew Stanton", "Andrew Stanton"));
-		movies.add(new MovieInfo("Get Smart", "June 20, 2008", "Peter Segal",
-				"Tom J. Astle"));
-		movies.add(new MovieInfo(
-				"Indiana Jones and the Kingdom of the Crystal Skull",
-				"May 22, 2008", "Steven Spielberg", "Drunken Lemurs"));
-		movies.add(new MovieInfo("Iron Man", "May 2, 2008", "Jon Favreau",
-				"Mark Fergus"));
-		movies.add(new MovieInfo("Raiders of the Lost Ark", "June 12, 1981",
-				"Steven Spielberg", "George Lucas"));
-		movies.add(new MovieInfo("Valkyrie", "December 25, 2008",
-				"Bryan Singer", "Christopher McQuarrie"));
-		movies.add(new MovieInfo("Wall-E", "June 27, 2008", "Andrew Stanton",
-				"Andrew Stanton"));
-		movies.add(new MovieInfo("Wanted", "June 27, 2008",
-				"Timur Bekmambetov", "Michael Brandt"));
+        ViewerSupport.bind(viewer, movies, BeanProperties.values(
+                MovieInfo.class, new String[] { "title", "releaseDate",
+                        "director", "writer" }));
+
+        // Select Batman Begins and The Dark Knight, which have the same
+        // director and writer
+        viewer.setSelection(new StructuredSelection(new Object[] {
+                movies.get(1), movies.get(3) }));
+
+        DataBindingContext dbc = new DataBindingContext();
 
-		ViewerSupport.bind(viewer, movies, BeanProperties.values(
-				MovieInfo.class, new String[] { "title", "releaseDate",
-						"director", "writer" }));
-
-		// Select Batman Begins and The Dark Knight, which have the same
-		// director and writer
-		viewer.setSelection(new StructuredSelection(new Object[] {
-				movies.get(1), movies.get(3) }));
-
-		DataBindingContext dbc = new DataBindingContext();
-
-		IObservableList selections = ViewerProperties.multipleSelection()
-				.observe(viewer);
-		dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(title),
-				DuplexingObservableValue.withDefaults(BeanProperties.value(
-						"title").observeDetail(selections), "",
-						"<Multiple titles>"));
-		dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(releaseDate),
-				DuplexingObservableValue.withDefaults(BeanProperties.value(
-						"releaseDate").observeDetail(selections), "",
-						"<Multiple dates>"));
-		dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(director),
-				DuplexingObservableValue.withDefaults(BeanProperties.value(
-						"director").observeDetail(selections), "",
-						"<Multiple directors>"));
-		dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(writer),
-				DuplexingObservableValue.withDefaults(BeanProperties.value(
-						"writer").observeDetail(selections), "",
-						"<Multiple writers>"));
-	}
+        IObservableList selections = ViewerProperties.multipleSelection()
+                .observe(viewer);
+        dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(title),
+                DuplexingObservableValue.withDefaults(BeanProperties.value(
+                        "title").observeDetail(selections), "",
+                        "<Multiple titles>"));
+        dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(releaseDate),
+                DuplexingObservableValue.withDefaults(BeanProperties.value(
+                        "releaseDate").observeDetail(selections), "",
+                        "<Multiple dates>"));
+        dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(director),
+                DuplexingObservableValue.withDefaults(BeanProperties.value(
+                        "director").observeDetail(selections), "",
+                        "<Multiple directors>"));
+        dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(writer),
+                DuplexingObservableValue.withDefaults(BeanProperties.value(
+                        "writer").observeDetail(selections), "",
+                        "<Multiple writers>"));
+    }
 }
+void main( String[] args ){
+    Snippet028DuplexingObservableValue.main(args);
+}