Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRalf Sternberg2013-07-23 14:11:12 +0000
committerRalf Sternberg2013-07-24 08:14:48 +0000
commit7c5202f7432e04b0f3e87c75f048413b156b6445 (patch)
tree2056a9ac7c1e8b43c5ebc3f7217692b83adf92c0
parent60f5d5a73105c1f5ceb6403af2b5a2a8a2a5f481 (diff)
downloadorg.eclipse.rap.incubator.dropdown-7c5202f7432e04b0f3e87c75f048413b156b6445.tar.gz
org.eclipse.rap.incubator.dropdown-7c5202f7432e04b0f3e87c75f048413b156b6445.tar.xz
org.eclipse.rap.incubator.dropdown-7c5202f7432e04b0f3e87c75f048413b156b6445.zip
Use AutoSuggest instead of Viewer in demo
-rw-r--r--examples/org.eclipse.rap.addons.dropdown.demo/META-INF/MANIFEST.MF4
-rw-r--r--examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestDemo.java171
-rw-r--r--examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java150
3 files changed, 183 insertions, 142 deletions
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/META-INF/MANIFEST.MF b/examples/org.eclipse.rap.addons.dropdown.demo/META-INF/MANIFEST.MF
index f882463..885ffa1 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo/META-INF/MANIFEST.MF
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/META-INF/MANIFEST.MF
@@ -5,10 +5,8 @@ Bundle-SymbolicName: org.eclipse.rap.addons.dropdown.demo
Bundle-Version: 0.1.0.qualifier
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.eclipse.rap.rwt;bundle-version="2.1.0",
- org.eclipse.rap.jface;bundle-version="2.1.0",
org.eclipse.rap.clientscripting;bundle-version="0.1.100"
Service-Component: OSGI-INF/*.xml
Bundle-Vendor: Eclipse.org - RAP Incubator
-Import-Package: org.eclipse.rap.addons.dropdown;version="0.1.0",
- org.eclipse.rap.addons.dropdown.viewer;version="0.1.0"
+Import-Package: org.eclipse.rap.addons.dropdown;version="0.1.0"
Export-Package: org.eclipse.rap.addons.dropdown.demo;version="0.1.0"
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestDemo.java b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestDemo.java
new file mode 100644
index 0000000..b98de49
--- /dev/null
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestDemo.java
@@ -0,0 +1,171 @@
+/*******************************************************************************
+ * Copyright (c) 2013 EclipseSource.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * EclipseSource - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.rap.addons.dropdown.demo;
+
+import java.util.Arrays;
+
+import org.eclipse.rap.addons.dropdown.AutoSuggest;
+import org.eclipse.rap.addons.dropdown.DataProvider;
+import org.eclipse.rap.addons.dropdown.DataSource;
+import org.eclipse.rap.addons.dropdown.SuggestionSelectedListener;
+import org.eclipse.rap.rwt.RWT;
+import org.eclipse.rap.rwt.application.AbstractEntryPoint;
+import org.eclipse.rap.rwt.internal.client.WidgetDataWhiteList;
+import org.eclipse.rap.rwt.internal.client.WidgetDataWhiteListImpl;
+import org.eclipse.swt.SWT;
+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.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+
+
+@SuppressWarnings("restriction")
+public class AutoSuggestDemo extends AbstractEntryPoint {
+
+ private Text text;
+ private AutoSuggest autoSuggest;
+ private DataSource de;
+ private DataSource at;
+
+ @Override
+ protected void createContents( Composite parent ) {
+ createDataSources();
+ setupWidgetDataWhiteList();
+ Composite composite = new Composite( parent, SWT.NONE );
+ composite.setLayout( new GridLayout( 3, false ) );
+ createTextArea( composite );
+ createLocationArea( composite );
+ createConfigArea( composite );
+ createLogArea( composite );
+ createDisposeButton( composite );
+ }
+
+ private void createDataSources() {
+ de = new DataSource();
+ de.setDataProvider( new DataProvider() {
+ public Iterable< ? > getSuggestions() {
+ return Arrays.asList( KFZ.DE );
+ }
+ public String getValue( Object element ) {
+ String[] array = (String[])element;
+ return array[ 2 ] + " (" + array[ 0 ] + ")";
+ }
+ } );
+ at = new DataSource();
+ at.setDataProvider( new DataProvider() {
+ public Iterable< ? > getSuggestions() {
+ return Arrays.asList( KFZ.AT );
+ }
+ public String getValue( Object element ) {
+ String[] array = (String[])element;
+ return array[ 1 ] + " (" + array[ 0 ] + ")";
+ }
+ } );
+ }
+
+ private void createTextArea( Composite parent ) {
+ text = new Text( parent, SWT.BORDER );
+ text.setData( RWT.CUSTOM_VARIANT, "dropdown" );
+ text.setCursor( text.getDisplay().getSystemCursor( SWT.CURSOR_ARROW ) );
+ GridData gridData = new GridData( 200, 23 );
+ gridData.verticalAlignment = SWT.TOP;
+ text.setLayoutData( gridData );
+ text.setMessage( "City" );
+ text.setFocus();
+ autoSuggest = new AutoSuggest( text );
+ autoSuggest.setDataSource( de );
+ }
+
+ private void createLocationArea( Composite parent ) {
+ Group location = new Group( parent, SWT.NONE );
+ location.setText( "Location" );
+ GridData layoutData = new GridData( SWT.CENTER, SWT.FILL, false, true );
+ location.setLayoutData( layoutData );
+ layoutData.verticalSpan = 2;
+ location.setLayout( new GridLayout( 1, true ) );
+ final Button germany = new Button( location, SWT.RADIO );
+ germany.setText( "Germany" );
+ germany.setSelection( true );
+ germany.addListener( SWT.Selection, new Listener() {
+ public void handleEvent( Event event ) {
+ if( germany.getSelection() ) {
+ autoSuggest.setDataSource( de );
+ }
+ }
+ } );
+ final Button austria = new Button( location, SWT.RADIO );
+ austria.setText( "Austria" );
+ austria.addListener( SWT.Selection, new Listener() {
+ public void handleEvent( Event event ) {
+ if( austria.getSelection() ) {
+ autoSuggest.setDataSource( at );
+ }
+ }
+ } );
+ }
+
+ private void createConfigArea( Composite parent ) {
+ Group location = new Group( parent, SWT.NONE );
+ location.setText( "Config" );
+ GridData layoutData = new GridData( SWT.CENTER, SWT.FILL, false, true );
+ location.setLayoutData( layoutData );
+ layoutData.verticalSpan = 2;
+ location.setLayout( new GridLayout( 1, true ) );
+ final Button autoComplete = new Button( location, SWT.CHECK );
+ autoComplete.setText( "AutoComplete" );
+ autoComplete.addListener( SWT.Selection, new Listener() {
+ public void handleEvent( Event event ) {
+ autoSuggest.setAutoComplete( autoComplete.getSelection() );
+ }
+ } );
+ }
+
+ private void createLogArea( Composite parent ) {
+ final Table table = new Table( parent, SWT.BORDER | SWT.HIDE_SELECTION );
+ new TableColumn( table, SWT.NONE ).setText( "KFZ" );
+ new TableColumn( table, SWT.NONE ).setText( "Area" );
+ table.getColumn( 0 ).setWidth( 200 );
+ table.getColumn( 1 ).setWidth( 40 );
+ GridData gridData = new GridData( 250, 60 );
+ table.setLayoutData( gridData );
+ autoSuggest.addSelectionListener( new SuggestionSelectedListener() {
+ public void suggestionSelected() {
+ TableItem item = new TableItem( table, SWT.NONE );
+ item.setText( text.getText() );
+ table.setTopIndex( table.indexOf( item ) );
+ }
+ } );
+ }
+
+ private void createDisposeButton( Composite parent ) {
+ Button button = new Button( parent, SWT.PUSH );
+ button.setText( "Dispose!" );
+ button.addListener( SWT.Selection, new Listener() {
+ public void handleEvent( Event event ) {
+ text.dispose();
+ }
+ } );
+ }
+
+ private static void setupWidgetDataWhiteList() {
+ WidgetDataWhiteListImpl list
+ = ( WidgetDataWhiteListImpl )RWT.getClient().getService( WidgetDataWhiteList.class );
+ list.setKeys( new String[]{ "dropdown", "text", "data" } );
+ }
+
+}
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java
index 750fc77..ce5232f 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java
@@ -13,9 +13,7 @@ package org.eclipse.rap.addons.dropdown.demo;
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.jface.viewers.*;
import org.eclipse.rap.addons.dropdown.DropDown;
-import org.eclipse.rap.addons.dropdown.viewer.DropDownViewer;
import org.eclipse.rap.clientscripting.ClientListener;
import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.application.AbstractEntryPoint;
@@ -28,7 +26,12 @@ import org.eclipse.rap.rwt.service.ResourceManager;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
@SuppressWarnings("restriction")
@@ -42,7 +45,6 @@ public class DropDownDemo extends AbstractEntryPoint {
WidgetDataWhiteListImpl list
= ( WidgetDataWhiteListImpl )RWT.getClient().getService( WidgetDataWhiteList.class );
list.setKeys( new String[]{ "dropdown", "text", "data" } );
- createKFZExample( parent );
createNationsExample( parent );
create90sMoviesExample( parent );
create80sMoviesExample( parent );
@@ -63,7 +65,7 @@ public class DropDownDemo extends AbstractEntryPoint {
Button open = new Button( textBox, SWT.ARROW | SWT.DOWN );
open.setLayoutData( new GridData( SWT.RIGHT, SWT.FILL, false, true ) );
addButtonClientListener( open );
- final DropDown dropdown = createDropDown( text, textBox );
+ final DropDown dropdown = createDropDown( text );
open.setData( "dropdown", WidgetUtil.getId( dropdown ) );
dropdown.setVisibleItemCount( 3 );
dropdown.setData( "data", getClientData( "Nations" ) );
@@ -75,11 +77,11 @@ public class DropDownDemo extends AbstractEntryPoint {
group.setLayout( new GridLayout( 1, true ) );
Text text = createText( group, SWT.BORDER );
text.setMessage( "90's Movies" );
- DropDown dropdown = createDropDown( text, text );
+ DropDown dropdown = createDropDown( text );
dropdown.setData( "data", getClientData( "Movies" ) );
}
- private void create80sMoviesExample( Composite parent ) {
+ private static void create80sMoviesExample( Composite parent ) {
Group group = new Group( parent, SWT.NONE );
group.setText( "DropDown only, 760 entries, no ClientScripting, markup" );
group.setLayout( new GridLayout( 1, true ) );
@@ -122,136 +124,6 @@ public class DropDownDemo extends AbstractEntryPoint {
dropdown.setData( "columns", new int[] { 300, 60 } );
}
- private void createKFZExample( Composite parent ) {
- Group group = new Group( parent, SWT.NONE );
- group.setText( "DropDownViewer + server-side expand button, dynamic input (586 entries max)" );
- group.setLayout( new GridLayout( 3, false ) );
- final Text text = createKFZExample_Text( group );
- final DropDownViewer viewer = createKFZExample_Viewer( text );
- createKFZExample_Location( group, viewer );
- createKFZExample_Config( group, viewer );
- createKFZExample_Log( group, viewer );
- createDisposeButton( group, text );
- }
-
- private void createDisposeButton( Group group, final Text text ) {
- Button button = new Button( group, SWT.PUSH );
- button.setText( "Dispose!" );
- button.addListener( SWT.Selection, new Listener() {
- public void handleEvent( Event event ) {
- text.dispose();
- }
- } );
- }
-
- private void createKFZExample_Location( Group group, final DropDownViewer viewer ) {
- Group location = new Group( group, SWT.NONE );
- location.setText( "Location" );
- GridData layoutData = new GridData( SWT.CENTER, SWT.FILL, false, true );
- location.setLayoutData( layoutData );
- layoutData.verticalSpan = 2;
- location.setLayout( new GridLayout( 1, true ) );
- final Button germany = new Button( location, SWT.RADIO );
- germany.setText( "Germany" );
- germany.addListener( SWT.Selection, new Listener() {
- public void handleEvent( Event event ) {
- if( germany.getSelection() ) {
- viewer.setInput( KFZ.DE );
- }
- }
- } );
- final Button austria = new Button( location, SWT.RADIO );
- austria.setText( "Austria" );
- austria.addListener( SWT.Selection, new Listener() {
- public void handleEvent( Event event ) {
- if( austria.getSelection() ) {
- viewer.setInput( KFZ.AT );
- }
- }
- } );
- final Text text = ( Text )viewer.getControl();
- text.addListener( SWT.Modify, new Listener() {
- public void handleEvent( Event event ) {
- if( viewer.getInput() == null && text.getText().length() >= 3 ) {
- germany.setSelection( true );
- germany.notifyListeners( SWT.Selection, new Event() );
- }
- }
- } );
- }
-
- private void createKFZExample_Config( Group group, final DropDownViewer viewer ) {
- Group location = new Group( group, SWT.NONE );
- location.setText( "Config" );
- GridData layoutData = new GridData( SWT.CENTER, SWT.FILL, false, true );
- location.setLayoutData( layoutData );
- layoutData.verticalSpan = 2;
- location.setLayout( new GridLayout( 1, true ) );
- final Button autoComplete = new Button( location, SWT.CHECK );
- autoComplete.setText( "AutoComplete" );
- autoComplete.addListener( SWT.Selection, new Listener() {
- public void handleEvent( Event event ) {
- viewer.setAutoComplete( autoComplete.getSelection() );
- }
- } );
- }
-
- private DropDownViewer createKFZExample_Viewer( final Text text ) {
- DropDownViewer viewer = new DropDownViewer( text );
- viewer.setLabelProvider( new LabelProvider() {
- @Override
- public String getText( Object object ) {
- String[] entry = ( ( String[] )object );
- if( entry.length == 4 ) {
- return entry[ 2 ]; // germany
- }
- return entry[ 1 ]; // austria
- }
- } );
- viewer.setContentProvider( new IStructuredContentProvider() {
- public void inputChanged( Viewer viewer, Object oldInput, Object newInput ) {
- }
-
- public void dispose() {
- }
-
- public Object[] getElements( Object inputElement ) {
- return ( Object[] )inputElement;
- }
- } );
- return viewer;
- }
-
- private Text createKFZExample_Text( Group group ) {
- final Text text = new Text( group, SWT.BORDER );
- text.setData( RWT.CUSTOM_VARIANT, "dropdown" );
- text.setCursor( text.getDisplay().getSystemCursor( SWT.CURSOR_ARROW ) );
- GridData gridData = new GridData( 200, 23 );
- gridData.verticalAlignment = SWT.TOP;
- text.setLayoutData( gridData );
- text.setMessage( "City" );
- return text;
- }
-
- private void createKFZExample_Log( Group group, DropDownViewer viewer ) {
- final Table table = new Table( group, SWT.BORDER | SWT.HIDE_SELECTION );
- ( new TableColumn( table, SWT.NONE ) ).setText( "KFZ" );
- ( new TableColumn( table, SWT.NONE ) ).setText( "Area" );
- table.getColumn( 0 ).setWidth( 40 );
- table.getColumn( 1 ).setWidth( 200 );
- GridData gridData = new GridData( 250, 60 );
- table.setLayoutData( gridData );
- viewer.addSelectionChangedListener( new ISelectionChangedListener() {
- public void selectionChanged( SelectionChangedEvent event ) {
- IStructuredSelection selection = ( IStructuredSelection )event.getSelection();
- String[] city = ( String[] )selection.getFirstElement();
- TableItem item = new TableItem( table, SWT.NONE );
- item.setText( city );
- table.setTopIndex( table.indexOf( item ) );
- }
- } );
- }
-
private Text createText( Composite parent, int style ) {
Text text = new Text( parent, style );
GridData gridData = new GridData( 200, 23 );
@@ -261,7 +133,7 @@ public class DropDownDemo extends AbstractEntryPoint {
return text;
}
- private DropDown createDropDown( Text text, Control parent ) {
+ private DropDown createDropDown( Text text ) {
DropDown dropdown = new DropDown( text );
dropdown.setData( "text", WidgetUtil.getId( text ) );
text.setData( "dropdown", WidgetUtil.getId( dropdown ) );
@@ -306,7 +178,7 @@ public class DropDownDemo extends AbstractEntryPoint {
return remoteObject.getId();
}
- private String[] filter( String[] values, String text, int limit ) {
+ private static String[] filter( String[] values, String text, int limit ) {
List<String> result = new ArrayList<String>( limit );
for( int i = 0; result.size() < limit && i < values.length; i++ ) {
String item = values[ i ];

Back to the top