aboutsummaryrefslogtreecommitdiffstats
path: root/eclipse
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2011-06-07 16:07:00 -0700
committerAndroid Code Review <code-review@android.com>2011-06-07 16:07:00 -0700
commit08f09e9f14c7b594b630c95ad8484666a54ea62c (patch)
treeb99294a59665c933a61a75cf47159e36446d9c5f /eclipse
parentb9c99e310b830730e36bf7c0d9e954da3375f336 (diff)
parent2cc0c66934d8f3a853c4dbf8418f3faffbb12a77 (diff)
downloadsdk-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')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/GraphicalEditorPart.java4
-rwxr-xr-xeclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/LayoutCanvasViewer.java30
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/SelectionManager.java11
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.