diff options
author | Xavier Ducrohet <xav@android.com> | 2011-03-29 11:01:49 -0700 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2011-03-29 11:26:15 -0700 |
commit | 6f3c6c2c0a88b035ad4b2075e030ce69372fa509 (patch) | |
tree | 2df95a26bf4f7d6ba56f8e95239aae1496091e88 /eclipse | |
parent | 109612be76acf29786c0dc3c99a36f5661af3c5a (diff) | |
download | sdk-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')
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 { |