Mercurial > projects > dwt2
diff org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet007ColorLabelProvider.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/Snippet007ColorLabelProvider.d Wed Apr 22 07:30:21 2009 +0200 +++ b/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet007ColorLabelProvider.d Wed Apr 22 18:59:26 2009 +0200 @@ -10,7 +10,9 @@ * IBM Corporation - see bug 137934 ******************************************************************************/ -package org.eclipse.jface.examples.databinding.snippets; +module org.eclipse.jface.examples.databinding.snippets.Snippet007ColorLabelProvider; + +import java.lang.all; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; @@ -48,173 +50,177 @@ * @since 3.2 */ public class Snippet007ColorLabelProvider { - /** - * @param args - */ - public static void main(String[] args) { - final List persons = new ArrayList(); - persons.add(new Person("Fiona Apple", Person.FEMALE)); - persons.add(new Person("Elliot Smith", Person.MALE)); - persons.add(new Person("Diana Krall", Person.FEMALE)); - persons.add(new Person("David Gilmour", Person.MALE)); + /** + * @param args + */ + public static void main(String[] args) { + final List persons = new ArrayList(); + persons.add(new Person("Fiona Apple", Person.FEMALE)); + persons.add(new Person("Elliot Smith", Person.MALE)); + persons.add(new Person("Diana Krall", Person.FEMALE)); + persons.add(new Person("David Gilmour", Person.MALE)); - final Display display = new Display(); - Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() { - public void run() { - Shell shell = new Shell(display); - shell.setText("Gender Bender"); - shell.setLayout(new GridLayout()); + final Display display = new Display(); + Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() { + public void run() { + Shell shell = new Shell(display); + shell.setText("Gender Bender"); + shell.setLayout(new GridLayout()); - Table table = new Table(shell, SWT.SINGLE | SWT.H_SCROLL - | SWT.V_SCROLL | SWT.BORDER); - GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); - table.setLayoutData(gridData); - table.setHeaderVisible(true); - table.setLinesVisible(true); - TableColumn column = new TableColumn(table, SWT.NONE); - column.setText("No"); - column.setWidth(20); - column = new TableColumn(table, SWT.NONE); - column.setText("Name"); - column.setWidth(100); - final TableViewer viewer = new TableViewer(table); + Table table = new Table(shell, SWT.SINGLE | SWT.H_SCROLL + | SWT.V_SCROLL | SWT.BORDER); + GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); + table.setLayoutData(gridData); + table.setHeaderVisible(true); + table.setLinesVisible(true); + TableColumn column = new TableColumn(table, SWT.NONE); + column.setText("No"); + column.setWidth(20); + column = new TableColumn(table, SWT.NONE); + column.setText("Name"); + column.setWidth(100); + final TableViewer viewer = new TableViewer(table); - IObservableList observableList = Observables - .staticObservableList(persons); - ObservableListContentProvider contentProvider = new ObservableListContentProvider(); + IObservableList observableList = Observables + .staticObservableList(persons); + ObservableListContentProvider contentProvider = new ObservableListContentProvider(); + + viewer.setContentProvider(contentProvider); - viewer.setContentProvider(contentProvider); + // this does not have to correspond to the columns in the table, + // we just list all attributes that affect the table content. + IObservableMap[] attributes = BeansObservables.observeMaps( + contentProvider.getKnownElements(), Person.class, + new String[] { "name", "gender" }); - // this does not have to correspond to the columns in the table, - // we just list all attributes that affect the table content. - IObservableMap[] attributes = BeansObservables.observeMaps( - contentProvider.getKnownElements(), Person.class, - new String[] { "name", "gender" }); + class ColorLabelProvider extends ObservableMapLabelProvider + implements ITableColorProvider { + Color male = display.getSystemColor(SWT.COLOR_BLUE); - class ColorLabelProvider extends ObservableMapLabelProvider - implements ITableColorProvider { - Color male = display.getSystemColor(SWT.COLOR_BLUE); + Color female = new Color(display, 255, 192, 203); - Color female = new Color(display, 255, 192, 203); - - ColorLabelProvider(IObservableMap[] attributes) { - super(attributes); - } + ColorLabelProvider(IObservableMap[] attributes) { + super(attributes); + } - // to drive home the point that attributes does not have to - // match - // the columns - // in the table, we change the column text as follows: - public String getColumnText(Object element, int index) { - if (index == 0) { - return Integer - .toString(persons.indexOf(element) + 1); - } - return ((Person) element).getName(); - } + // to drive home the point that attributes does not have to + // match + // the columns + // in the table, we change the column text as follows: + public String getColumnText(Object element, int index) { + if (index == 0) { + return Integer + .toString(persons.indexOf(element) + 1); + } + return ((Person) element).getName(); + } + + public Color getBackground(Object element, int index) { + return null; + } - public Color getBackground(Object element, int index) { - return null; - } + public Color getForeground(Object element, int index) { + if (index == 0) + return null; + Person person = (Person) element; + return (person.getGender() == Person.MALE) ? male + : female; + } - public Color getForeground(Object element, int index) { - if (index == 0) - return null; - Person person = (Person) element; - return (person.getGender() == Person.MALE) ? male - : female; - } + public void dispose() { + super.dispose(); + female.dispose(); + } + } + viewer.setLabelProvider(new ColorLabelProvider(attributes)); - public void dispose() { - super.dispose(); - female.dispose(); - } - } - viewer.setLabelProvider(new ColorLabelProvider(attributes)); + viewer.setInput(observableList); - viewer.setInput(observableList); - - table.getColumn(0).pack(); + table.getColumn(0).pack(); - Button button = new Button(shell, SWT.PUSH); - button.setText("Toggle Gender"); - button.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent arg0) { - StructuredSelection selection = (StructuredSelection) viewer - .getSelection(); - if (selection != null && !selection.isEmpty()) { - Person person = (Person) selection - .getFirstElement(); - person - .setGender((person.getGender() == Person.MALE) ? Person.FEMALE - : Person.MALE); - } - } - }); + Button button = new Button(shell, SWT.PUSH); + button.setText("Toggle Gender"); + button.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent arg0) { + StructuredSelection selection = (StructuredSelection) viewer + .getSelection(); + if (selection != null && !selection.isEmpty()) { + Person person = (Person) selection + .getFirstElement(); + person + .setGender((person.getGender() == Person.MALE) ? Person.FEMALE + : Person.MALE); + } + } + }); + + shell.setSize(300, 400); + shell.open(); - shell.setSize(300, 400); - shell.open(); + while (!shell.isDisposed()) { + if (!display.readAndDispatch()) + display.sleep(); + } + } + }); + display.dispose(); + } - while (!shell.isDisposed()) { - if (!display.readAndDispatch()) - display.sleep(); - } - } - }); - display.dispose(); - } + static class Person { + static final int MALE = 0; + + static final int FEMALE = 1; - static class Person { - static final int MALE = 0; + private String name; - static final int FEMALE = 1; + private int gender; - private String name; - - private int gender; + private PropertyChangeSupport changeSupport = new PropertyChangeSupport( + this); - private PropertyChangeSupport changeSupport = new PropertyChangeSupport( - this); - - Person(String name, int gender) { - this.name = name; - this.gender = gender; - } + Person(String name, int gender) { + this.name = name; + this.gender = gender; + } - /** - * Returns the name. Method declared public to satisfy Java bean - * conventions - * - * @return the name - */ - public String getName() { - return name; - } + /** + * Returns the name. Method declared public to satisfy Java bean + * conventions + * + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param listener + */ + public void addPropertyChangeListener(PropertyChangeListener listener) { + changeSupport.addPropertyChangeListener(listener); + } - /** - * @param listener - */ - public void addPropertyChangeListener(PropertyChangeListener listener) { - changeSupport.addPropertyChangeListener(listener); - } - - public void removePropertyChangeListener(PropertyChangeListener listener) { - changeSupport.removePropertyChangeListener(listener); - } + public void removePropertyChangeListener(PropertyChangeListener listener) { + changeSupport.removePropertyChangeListener(listener); + } - /** - * Returns the gender. Method declared public to satisfy Java bean - * conventions - * - * @return the gender - */ - public int getGender() { - return gender; - } + /** + * Returns the gender. Method declared public to satisfy Java bean + * conventions + * + * @return the gender + */ + public int getGender() { + return gender; + } - void setGender(int gender) { - changeSupport.firePropertyChange("gender", this.gender, - this.gender = gender); - } - } + void setGender(int gender) { + changeSupport.firePropertyChange("gender", this.gender, + this.gender = gender); + } + } } + +void main( String[] args ){ + Snippet007ColorLabelProvider.main(args); +}