Index: META-INF/MANIFEST.MF =================================================================== RCS file: /cvsroot/technology/org.eclipse.rap/org.eclipse.rap.demo/META-INF/MANIFEST.MF,v retrieving revision 1.15 diff -u -r1.15 MANIFEST.MF --- META-INF/MANIFEST.MF 28 Apr 2008 15:41:36 -0000 1.15 +++ META-INF/MANIFEST.MF 29 May 2008 10:21:27 -0000 @@ -9,3 +9,5 @@ Import-Package: javax.servlet;version="[2.3.0,2.5.0]", javax.servlet.http;version="[2.3.0,2.5.0]" Bundle-Vendor: %Bundle-Vendor +Bundle-Activator: org.eclipse.rap.demo.MyActivator +Bundle-ActivationPolicy: lazy Index: src/org/eclipse/rap/demo/DemoTableViewPart.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.rap/org.eclipse.rap.demo/src/org/eclipse/rap/demo/DemoTableViewPart.java,v retrieving revision 1.8 diff -u -r1.8 DemoTableViewPart.java --- src/org/eclipse/rap/demo/DemoTableViewPart.java 26 Apr 2007 06:47:23 -0000 1.8 +++ src/org/eclipse/rap/demo/DemoTableViewPart.java 29 May 2008 10:21:27 -0000 @@ -13,22 +13,28 @@ import java.util.ArrayList; import java.util.List; + +import org.eclipse.core.runtime.*; +import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.viewers.*; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.*; import org.eclipse.ui.part.ViewPart; - +import org.eclipse.ui.progress.UIJob; public class DemoTableViewPart extends ViewPart { - private static final int ROWS = 40; + private static final int ROWS = 240; private static final int COLUMNS = 10; private TableViewer viewer; + private List buffer = null; private class ViewContentProvider implements IStructuredContentProvider { public Object[] getElements( Object inputElement ) { - List buffer = new ArrayList(); + buffer = new ArrayList(); for( int i = 0; i < ROWS; i++ ) { String[] row = new String[ COLUMNS ]; for( int j = 0; j < COLUMNS; j++ ) { @@ -69,6 +75,35 @@ viewer.setInput( this ); viewer.getTable().setHeaderVisible( true ); getSite().setSelectionProvider( viewer ); + select(); + Button a = new Button(parent, SWT.PUSH); + a.setText("Select by hand"); + a.addSelectionListener(new SelectionListener(){ + + public void widgetDefaultSelected(SelectionEvent e) { + } + + public void widgetSelected(SelectionEvent e) { + select(); + } + + }); + + MyActivator.getDefault().addSaveListener(new ISaveListener (){ + public void saved() { + Job refreshJob = new UIJob(""){ + public IStatus runInUIThread(IProgressMonitor monitor) { + monitor.beginTask("Refreshing...", 1); + refresh(); + monitor.done(); + return Status.OK_STATUS; + } + + }; + refreshJob.setUser(true); + refreshJob.schedule(); + } + }); } public void setFocus() { @@ -89,4 +124,13 @@ } return result; } + public void select() { + Object element = buffer.get(buffer.size() -30); + viewer.setSelection(new StructuredSelection(element), true); + viewer.reveal(element); + } + public void refresh() { + if(viewer != null && ! viewer.getControl().isDisposed()) + viewer.refresh(); + } } Index: src/org/eclipse/rap/demo/editor/FooEditor.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.rap/org.eclipse.rap.demo/src/org/eclipse/rap/demo/editor/FooEditor.java,v retrieving revision 1.4 diff -u -r1.4 FooEditor.java --- src/org/eclipse/rap/demo/editor/FooEditor.java 14 Apr 2008 15:02:43 -0000 1.4 +++ src/org/eclipse/rap/demo/editor/FooEditor.java 29 May 2008 10:21:27 -0000 @@ -11,6 +11,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.rap.demo.MyActivator; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.*; @@ -29,6 +30,7 @@ } public void doSave( final IProgressMonitor monitor ) { + MyActivator.getDefault().saveData(); editor.setDirty( false ); treeeditor.setDirty( false ); } Index: src/org/eclipse/rap/demo/MyActivator.java =================================================================== RCS file: src/org/eclipse/rap/demo/MyActivator.java diff -N src/org/eclipse/rap/demo/MyActivator.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/rap/demo/MyActivator.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,54 @@ +package org.eclipse.rap.demo; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.core.runtime.Plugin; +import org.osgi.framework.BundleContext; + + +public class MyActivator extends Plugin { + + private static MyActivator plugin; + + private List saveListeners = null; + + public MyActivator() { + } + + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + public static MyActivator getDefault() { + return plugin; + } + + public void addSaveListener(ISaveListener saveListener) { + if(saveListeners == null) + saveListeners = new ArrayList(); + if(!saveListeners.contains(saveListener)) + saveListeners.add(saveListener); + } + public void removeSaveListener(ISaveListener saveListener) { + if(saveListeners != null && saveListeners.contains(saveListener)) + saveListeners.remove(saveListener); + } + public void saveData(){ + //Do saving .... + fireSaved(); + } + private void fireSaved() { + if(saveListeners != null) { + for(int i = 0, n = saveListeners.size(); i < n; i++) { + ((ISaveListener)saveListeners.get(i)).saved(); + } + } + } +} Index: src/org/eclipse/rap/demo/ISaveListener.java =================================================================== RCS file: src/org/eclipse/rap/demo/ISaveListener.java diff -N src/org/eclipse/rap/demo/ISaveListener.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/rap/demo/ISaveListener.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,6 @@ +package org.eclipse.rap.demo; + + +public interface ISaveListener { + public void saved(); +}