aboutsummaryrefslogtreecommitdiffstats
path: root/eclipse
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2011-03-29 11:01:49 -0700
committerXavier Ducrohet <xav@android.com>2011-03-29 11:26:15 -0700
commit6f3c6c2c0a88b035ad4b2075e030ce69372fa509 (patch)
tree2df95a26bf4f7d6ba56f8e95239aae1496091e88 /eclipse
parent109612be76acf29786c0dc3c99a36f5661af3c5a (diff)
downloadsdk-6f3c6c2c0a88b035ad4b2075e030ce69372fa509.zip
sdk-6f3c6c2c0a88b035ad4b2075e030ce69372fa509.tar.gz
sdk-6f3c6c2c0a88b035ad4b2075e030ce69372fa509.tar.bz2
Add support for data binding in the layout editor.
The Layoutlib_api is changed to allow passing information regarding adapter content, and querying eclipse to fill the items. Change-Id: Ie5a047ab9cd0ed7677c13309d95663eae462c3e7
Diffstat (limited to 'eclipse')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/ProjectCallback.java10
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/GraphicalEditorPart.java12
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/layoutRendering/ApiDemosRenderingTest.java5
3 files changed, 26 insertions, 1 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/ProjectCallback.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/ProjectCallback.java
index 804156a..de52133 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/ProjectCallback.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/ProjectCallback.java
@@ -18,6 +18,7 @@ package com.android.ide.eclipse.adt.internal.editors.layout;
import com.android.ide.common.rendering.api.IProjectCallback;
import com.android.ide.common.rendering.api.LayoutLog;
+import com.android.ide.common.rendering.api.ResourceReference;
import com.android.ide.common.rendering.legacy.LegacyCallback;
import com.android.ide.eclipse.adt.AdtConstants;
import com.android.ide.eclipse.adt.AdtPlugin;
@@ -336,4 +337,13 @@ public final class ProjectCallback extends LegacyCallback {
constructor.setAccessible(true);
return constructor.newInstance(constructorParameters);
}
+
+ public String getAdapterItemValue(ResourceReference adapterView, ResourceReference itemRef,
+ int fullPosition, int typePosition, ResourceReference viewRef, String viewClass) {
+ if (viewClass.contains("TextView")) {
+ return viewRef.getName() + " " + typePosition;
+ }
+
+ return null;
+ }
}
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 07eb7ef..47d4f22 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
@@ -1499,7 +1499,7 @@ public class GraphicalEditorPart extends EditorPart
params.setForceNoDecor();
}
- // FIXME make persistent and only reload when the manifest (or at least resources) chanage.
+ // FIXME make persistent and only reload when the manifest (or at least resources) changes.
IFolderWrapper projectFolder = new IFolderWrapper(getProject());
IAbstractFile manifest = AndroidManifest.getManifest(projectFolder);
if (manifest != null) {
@@ -1527,6 +1527,16 @@ public class GraphicalEditorPart extends EditorPart
// set the Image Overlay as the image factory.
params.setImageFactory(getCanvasControl().getImageOverlay());
+ // ---------------------------------------
+ // Data binding DEBUG
+// AdapterBinding binding = new AdapterBinding();
+// binding.addHeader(new ResourceReference("header", false));
+// binding.addFooter(new ResourceReference("footer", false));
+// binding.addItem(new AdapterItemReference("listitem", false, 3));
+// binding.addItem(new AdapterItemReference("separator"));
+// params.addAdapterBinding(new ResourceReference("listview"), binding);
+ // ---------------------------------------
+
try {
mProjectCallback.setLogger(logger);
return layoutLib.createSession(params);
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/layoutRendering/ApiDemosRenderingTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/layoutRendering/ApiDemosRenderingTest.java
index 94b5ac1..f5c843c 100644
--- a/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/layoutRendering/ApiDemosRenderingTest.java
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/layoutRendering/ApiDemosRenderingTest.java
@@ -21,6 +21,7 @@ import com.android.ide.common.rendering.LayoutLibrary;
import com.android.ide.common.rendering.api.ILayoutPullParser;
import com.android.ide.common.rendering.api.IProjectCallback;
import com.android.ide.common.rendering.api.RenderSession;
+import com.android.ide.common.rendering.api.ResourceReference;
import com.android.ide.common.rendering.api.ResourceValue;
import com.android.ide.common.rendering.api.SessionParams;
import com.android.ide.common.rendering.api.SessionParams.RenderingMode;
@@ -127,6 +128,10 @@ public class ApiDemosRenderingTest extends SdkTestCase {
return null;
}
+ public String getAdapterItemValue(ResourceReference adapterView, ResourceReference itemRef,
+ int fullPosition, int typePosition, ResourceReference viewRef, String viewClass) {
+ return null;
+ }
}
public void testApiDemos() throws IOException, XmlPullParserException {