diff options
author | Tor Norbye <tnorbye@google.com> | 2011-06-07 16:07:00 -0700 |
---|---|---|
committer | Android Code Review <code-review@android.com> | 2011-06-07 16:07:00 -0700 |
commit | 08f09e9f14c7b594b630c95ad8484666a54ea62c (patch) | |
tree | b99294a59665c933a61a75cf47159e36446d9c5f /eclipse | |
parent | b9c99e310b830730e36bf7c0d9e954da3375f336 (diff) | |
parent | 2cc0c66934d8f3a853c4dbf8418f3faffbb12a77 (diff) | |
download | sdk-08f09e9f14c7b594b630c95ad8484666a54ea62c.zip sdk-08f09e9f14c7b594b630c95ad8484666a54ea62c.tar.gz sdk-08f09e9f14c7b594b630c95ad8484666a54ea62c.tar.bz2 |
Merge "17384: Clicking in the layout editor does not show its properties"
Diffstat (limited to 'eclipse')
3 files changed, 36 insertions, 9 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/GraphicalEditorPart.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/GraphicalEditorPart.java index 41017a0..5d0f5b6 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/GraphicalEditorPart.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/GraphicalEditorPart.java @@ -40,12 +40,12 @@ import com.android.ide.eclipse.adt.internal.editors.IPageImageProvider; import com.android.ide.eclipse.adt.internal.editors.IconFactory; import com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor; import com.android.ide.eclipse.adt.internal.editors.layout.LayoutReloadMonitor; -import com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback; import com.android.ide.eclipse.adt.internal.editors.layout.LayoutReloadMonitor.ChangeFlags; import com.android.ide.eclipse.adt.internal.editors.layout.LayoutReloadMonitor.ILayoutReloadListener; +import com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback; import com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite; -import com.android.ide.eclipse.adt.internal.editors.layout.configuration.LayoutCreatorDialog; import com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.IConfigListener; +import com.android.ide.eclipse.adt.internal.editors.layout.configuration.LayoutCreatorDialog; import com.android.ide.eclipse.adt.internal.editors.layout.gle2.IncludeFinder.Reference; import com.android.ide.eclipse.adt.internal.editors.layout.gre.RulesEngine; import com.android.ide.eclipse.adt.internal.editors.ui.DecorComposite; diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/LayoutCanvasViewer.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/LayoutCanvasViewer.java index a1438d9..c5c8bce 100755 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/LayoutCanvasViewer.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/LayoutCanvasViewer.java @@ -19,6 +19,9 @@ package com.android.ide.eclipse.adt.internal.editors.layout.gle2; import com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor; import com.android.ide.eclipse.adt.internal.editors.layout.gre.RulesEngine; +import org.eclipse.core.runtime.ListenerList; +import org.eclipse.jface.util.SafeRunnable; +import org.eclipse.jface.viewers.IPostSelectionProvider; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; @@ -40,7 +43,7 @@ import org.eclipse.swt.widgets.Control; * canvas' selection changes are broadcasted to anyone listening, which includes * the part itself as well as the associated outline and property sheet pages. */ -class LayoutCanvasViewer extends Viewer { +class LayoutCanvasViewer extends Viewer implements IPostSelectionProvider { private LayoutCanvas mCanvas; private final LayoutEditor mLayoutEditor; @@ -58,6 +61,7 @@ class LayoutCanvasViewer extends Viewer { private ISelectionChangedListener mSelectionListener = new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { fireSelectionChanged(event); + firePostSelectionChanged(event); } }; @@ -127,4 +131,28 @@ class LayoutCanvasViewer extends Viewer { mCanvas = null; } } + + // ---- Implements IPostSelectionProvider ---- + + private ListenerList mPostChangedListeners = new ListenerList(); + + public void addPostSelectionChangedListener(ISelectionChangedListener listener) { + mPostChangedListeners.add(listener); + } + + public void removePostSelectionChangedListener(ISelectionChangedListener listener) { + mPostChangedListeners.remove(listener); + } + + protected void firePostSelectionChanged(final SelectionChangedEvent event) { + Object[] listeners = mPostChangedListeners.getListeners(); + for (int i = 0; i < listeners.length; i++) { + final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i]; + SafeRunnable.run(new SafeRunnable() { + public void run() { + l.selectionChanged(event); + } + }); + } + } } diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/SelectionManager.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/SelectionManager.java index 01e72d0..aeb05a2 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/SelectionManager.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/SelectionManager.java @@ -94,7 +94,6 @@ public class SelectionManager implements ISelectionProvider { /** List of clients listening to selection changes. */ private final ListenerList mSelectionListeners = new ListenerList(); - /** * Constructs a new {@link SelectionManager} associated with the given layout canvas. * @@ -105,12 +104,12 @@ public class SelectionManager implements ISelectionProvider { } public void addSelectionChangedListener(ISelectionChangedListener listener) { - mSelectionListeners.add(listener); - } + mSelectionListeners.add(listener); + } - public void removeSelectionChangedListener(ISelectionChangedListener listener) { - mSelectionListeners.remove(listener); - } + public void removeSelectionChangedListener(ISelectionChangedListener listener) { + mSelectionListeners.remove(listener); + } /** * Returns the native {@link SelectionItem} list. |