Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 85682 Details for
Bug 213623
DataBinding ViewersObservables should expose widget
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
IViewerObservableValue/List
patch.txt (text/plain), 13.24 KB, created by
Thomas Kratz
on 2007-12-20 15:17:52 EST
(
hide
)
Description:
IViewerObservableValue/List
Filename:
MIME Type:
Creator:
Thomas Kratz
Created:
2007-12-20 15:17:52 EST
Size:
13.24 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jface.databinding >Index: src/org/eclipse/jface/databinding/viewers/ViewersObservables.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ViewersObservables.java,v >retrieving revision 1.5 >diff -u -r1.5 ViewersObservables.java >--- src/org/eclipse/jface/databinding/viewers/ViewersObservables.java 17 Aug 2007 20:30:09 -0000 1.5 >+++ src/org/eclipse/jface/databinding/viewers/ViewersObservables.java 20 Dec 2007 20:15:55 -0000 >@@ -18,6 +18,7 @@ > import org.eclipse.jface.internal.databinding.internal.viewers.SelectionProviderSingleSelectionObservableValue; > import org.eclipse.jface.viewers.ISelectionProvider; > import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.jface.viewers.Viewer; > import org.eclipse.swt.widgets.Display; > > /** >@@ -70,4 +71,47 @@ > selectionProvider, Object.class); > } > >+ /** >+ * Returns an observable value that tracks the current selection of the >+ * given viewer. The IViewerObservableValue exposes the viewer. If the >+ * selection provider provides selections of type >+ * {@link IStructuredSelection}, the observable value will be the first >+ * element of the structured selection as returned by >+ * {@link IStructuredSelection#getFirstElement()}. >+ * >+ * @param viewer >+ * @return the observable value tracking the (single) selection of the given >+ * selection provider >+ */ >+ public static IViewerObservableValue observeSingleSelection(Viewer viewer) { >+ return new SelectionProviderSingleSelectionObservableValue( >+ SWTObservables.getRealm(Display.getDefault()), viewer); >+ } >+ >+ /** >+ * Returns an observable value that tracks the current selection of the >+ * given viewer. The IViewerObservableList exposes the viewer. Assumes that >+ * the selection provider provides selections of type >+ * {@link IStructuredSelection}. Note that the observable list will not >+ * honor the full contract of <code>java.util.List</code> in that it may >+ * delete or reorder elements based on what the selection provider returns >+ * from {@link ISelectionProvider#getSelection()} after having called >+ * {@link ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)} >+ * based on the requested change to the observable list. The affected >+ * methods are <code>add</code>, <code>addAll</code>, and >+ * <code>set</code>. >+ * >+ * @param viewer >+ * @return the observable value tracking the (multi) selection of the given >+ * selection provider >+ * >+ * @since 1.2 >+ */ >+ public static IViewerObservableList observeMultiSelection( >+ Viewer viewer) { >+ return new SelectionProviderMultipleSelectionObservableList( >+ SWTObservables.getRealm(Display.getDefault()), viewer, >+ Object.class); >+ } >+ > } >Index: src/org/eclipse/jface/internal/databinding/internal/viewers/SelectionProviderSingleSelectionObservableValue.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/viewers/SelectionProviderSingleSelectionObservableValue.java,v >retrieving revision 1.9 >diff -u -r1.9 SelectionProviderSingleSelectionObservableValue.java >--- src/org/eclipse/jface/internal/databinding/internal/viewers/SelectionProviderSingleSelectionObservableValue.java 6 Sep 2007 18:10:47 -0000 1.9 >+++ src/org/eclipse/jface/internal/databinding/internal/viewers/SelectionProviderSingleSelectionObservableValue.java 20 Dec 2007 20:15:56 -0000 >@@ -18,6 +18,7 @@ > import org.eclipse.core.databinding.observable.Diffs; > import org.eclipse.core.databinding.observable.Realm; > import org.eclipse.core.databinding.observable.value.AbstractObservableValue; >+import org.eclipse.jface.databinding.viewers.IViewerObservableValue; > import org.eclipse.jface.util.Util; > import org.eclipse.jface.viewers.ISelection; > import org.eclipse.jface.viewers.ISelectionChangedListener; >@@ -25,6 +26,8 @@ > import org.eclipse.jface.viewers.IStructuredSelection; > import org.eclipse.jface.viewers.SelectionChangedEvent; > import org.eclipse.jface.viewers.StructuredSelection; >+import org.eclipse.jface.viewers.StructuredViewer; >+import org.eclipse.jface.viewers.Viewer; > > /** > * Observes single selection of an <code>ISelectionProvider</code>. >@@ -32,7 +35,7 @@ > * @since 1.1 > */ > public class SelectionProviderSingleSelectionObservableValue extends >- AbstractObservableValue { >+ AbstractObservableValue implements IViewerObservableValue{ > > private final ISelectionProvider selectionProvider; > >@@ -144,4 +147,15 @@ > .removeSelectionChangedListener(selectionChangedListener); > super.dispose(); > } >+ /** >+ * Gets the Viewer this Observable is bound to. >+ * @return the viewer this value is bound to. returns null if the selection provider is not a StructuredViewer >+ */ >+ public Viewer getViewer(){ >+ if(selectionProvider instanceof StructuredViewer){ >+ return (Viewer)selectionProvider; >+ } >+ // TODO what to do now ? >+ return null; >+ } > } >Index: src/org/eclipse/jface/internal/databinding/internal/viewers/SelectionProviderMultipleSelectionObservableList.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/viewers/SelectionProviderMultipleSelectionObservableList.java,v >retrieving revision 1.2 >diff -u -r1.2 SelectionProviderMultipleSelectionObservableList.java >--- src/org/eclipse/jface/internal/databinding/internal/viewers/SelectionProviderMultipleSelectionObservableList.java 19 Aug 2007 01:21:39 -0000 1.2 >+++ src/org/eclipse/jface/internal/databinding/internal/viewers/SelectionProviderMultipleSelectionObservableList.java 20 Dec 2007 20:15:56 -0000 >@@ -19,12 +19,15 @@ > import org.eclipse.core.databinding.observable.Realm; > import org.eclipse.core.databinding.observable.list.ListDiff; > import org.eclipse.core.databinding.observable.list.WritableList; >+import org.eclipse.jface.databinding.viewers.IViewerObservableList; > import org.eclipse.jface.viewers.ISelection; > import org.eclipse.jface.viewers.ISelectionChangedListener; > import org.eclipse.jface.viewers.ISelectionProvider; > import org.eclipse.jface.viewers.IStructuredSelection; > import org.eclipse.jface.viewers.SelectionChangedEvent; > import org.eclipse.jface.viewers.StructuredSelection; >+import org.eclipse.jface.viewers.StructuredViewer; >+import org.eclipse.jface.viewers.Viewer; > > /** > * Observes multiple-selection of an {@link ISelectionProvider}. >@@ -32,7 +35,7 @@ > * @since 1.2 > */ > public class SelectionProviderMultipleSelectionObservableList extends >- WritableList { >+ WritableList implements IViewerObservableList{ > > protected ISelectionProvider selectionProvider; > protected boolean handlingSelection; >@@ -108,4 +111,16 @@ > selectionProvider = null; > super.dispose(); > } >+ /** >+ * Gets the Viewer this Observable is bound to. >+ * @return the viewer this list is bound to (if it exists) >+ * >+ */ >+ public Viewer getViewer(){ >+ if(selectionProvider instanceof StructuredViewer){ >+ return (Viewer)selectionProvider; >+ } >+ // TODO what to do now ? >+ return null; >+ } > } >Index: src/org/eclipse/jface/databinding/viewers/IViewerObservableValue.java >=================================================================== >RCS file: src/org/eclipse/jface/databinding/viewers/IViewerObservableValue.java >diff -N src/org/eclipse/jface/databinding/viewers/IViewerObservableValue.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/jface/databinding/viewers/IViewerObservableValue.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,29 @@ >+/******************************************************************************* >+ * Copyright (c) 2007 IBM Corporation and others. >+ * 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: >+ * IBM Corporation - initial API and implementation >+ ******************************************************************************/ >+ >+package org.eclipse.jface.databinding.viewers; >+ >+import org.eclipse.core.databinding.observable.value.IObservableValue; >+import org.eclipse.jface.viewers.Viewer; >+ >+/** >+ * @since 3.3 >+ * >+ */ >+public interface IViewerObservableValue extends IObservableValue { >+ >+ /** >+ * Gets the Viewer this Observable is bound to. >+ * @return the viewer this observable. returns null if the selection provider is not a Viewer >+ */ >+ public Viewer getViewer(); >+ >+} >Index: src/org/eclipse/jface/databinding/viewers/IViewerObservableList.java >=================================================================== >RCS file: src/org/eclipse/jface/databinding/viewers/IViewerObservableList.java >diff -N src/org/eclipse/jface/databinding/viewers/IViewerObservableList.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/jface/databinding/viewers/IViewerObservableList.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,28 @@ >+/******************************************************************************* >+ * Copyright (c) 2007 IBM Corporation and others. >+ * 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: >+ * IBM Corporation - initial API and implementation >+ ******************************************************************************/ >+ >+package org.eclipse.jface.databinding.viewers; >+ >+import org.eclipse.core.databinding.observable.list.IObservableList; >+import org.eclipse.jface.viewers.Viewer; >+ >+/** >+ * @since 3.3 >+ * >+ */ >+public interface IViewerObservableList extends IObservableList { >+ /** >+ * Gets the Viewer this Observable is bound to. >+ * @return the viewer this observable is bound to. returns null if the selection provider is not a Viewer >+ */ >+ public Viewer getViewer(); >+ >+} >#P org.eclipse.jface.tests.databinding >Index: src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SelectionProviderSingleSelectionObservableValueTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SelectionProviderSingleSelectionObservableValueTest.java,v >retrieving revision 1.10 >diff -u -r1.10 SelectionProviderSingleSelectionObservableValueTest.java >--- src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SelectionProviderSingleSelectionObservableValueTest.java 28 Sep 2007 15:30:11 -0000 1.10 >+++ src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SelectionProviderSingleSelectionObservableValueTest.java 20 Dec 2007 20:15:58 -0000 >@@ -127,6 +127,15 @@ > selectionProvider.setSelection(new StructuredSelection(model[1])); > assertEquals(1, listener.count); > } >+ >+ /** tests if the viewer is returned */ >+ public void testIViewerObservable() { >+ SelectionProviderSingleSelectionObservableValue observable = new SelectionProviderSingleSelectionObservableValue( >+ SWTObservables.getRealm(Display.getDefault()), >+ selectionProvider); >+ assertNotNull(observable.getViewer()); >+ assertEquals(selectionProvider, observable.getViewer()); >+ } > > private class ContentProvider implements IStructuredContentProvider { > public void dispose() { >Index: src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SelectionProviderMultiSelectionObservableListTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SelectionProviderMultiSelectionObservableListTest.java,v >retrieving revision 1.2 >diff -u -r1.2 SelectionProviderMultiSelectionObservableListTest.java >--- src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SelectionProviderMultiSelectionObservableListTest.java 28 Sep 2007 15:30:11 -0000 1.2 >+++ src/org/eclipse/jface/tests/internal/databinding/internal/viewers/SelectionProviderMultiSelectionObservableListTest.java 20 Dec 2007 20:15:57 -0000 >@@ -138,6 +138,15 @@ > assertEquals(observable, listener.event.getObservableList()); > assertEquals(0, ((IStructuredSelection)viewer.getSelection()).size()); > } >+ >+ /** tests if the viewer is returned */ >+ public void testIViewerObservable() { >+ SelectionProviderMultipleSelectionObservableList observable = new SelectionProviderMultipleSelectionObservableList( >+ SWTObservables.getRealm(Display.getDefault()), >+ selectionProvider, Object.class); >+ assertNotNull(observable.getViewer()); >+ assertEquals(selectionProvider, observable.getViewer()); >+ } > > /** > * @param diffEntry >@@ -151,6 +160,8 @@ > assertEquals(position, diffEntry.getPosition()); > assertEquals(element, diffEntry.getElement()); > } >+ >+ > > private class ContentProvider implements IStructuredContentProvider { > public void dispose() {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 213623
: 85682 |
85704