OSDN Git Service

Add a new getParser method to IProjectCallback.
authorXavier Ducrohet <xav@android.com>
Mon, 6 Jun 2011 22:29:32 +0000 (15:29 -0700)
committerXavier Ducrohet <xav@android.com>
Mon, 6 Jun 2011 22:32:18 +0000 (15:32 -0700)
This is used to make the implementation easier with access to the
XML file path in the ResourceValue.

Change-Id: Iedbb194bdf4b3d17841be1d50c384b62615bae8f

eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/ProjectCallback.java
layoutlib_api/src/com/android/ide/common/rendering/api/Bridge.java
layoutlib_api/src/com/android/ide/common/rendering/api/IProjectCallback.java

index a20cc6c..c3698fd 100644 (file)
@@ -31,6 +31,7 @@ import com.android.ide.common.rendering.api.ILayoutPullParser;
 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.api.ResourceValue;
 import com.android.ide.common.rendering.api.Result;
 import com.android.ide.common.rendering.legacy.LegacyCallback;
 import com.android.ide.eclipse.adt.AdtConstants;
@@ -402,6 +403,10 @@ public final class ProjectCallback extends LegacyCallback {
         return null;
     }
 
+    public ILayoutPullParser getParser(ResourceValue layoutResource) {
+        return getParser(layoutResource.getName());
+    }
+
     public Object getAdapterItemValue(ResourceReference adapterView, Object adapterCookie,
             ResourceReference itemRef,
             int fullPosition, int typePosition, int fullChildPosition, int typeChildPosition,
index d5a1829..026907e 100644 (file)
@@ -32,7 +32,7 @@ import java.util.Map;
  */
 public abstract class Bridge {
 
-    public final static int API_CURRENT = 6;
+    public final static int API_CURRENT = 7;
 
     /**
      * Returns the API level of the layout library.
index b91b598..d35ca35 100644 (file)
@@ -97,10 +97,20 @@ public interface IProjectCallback {
      * Returns a custom parser for the layout of the given name.
      * @param layoutName the name of the layout.
      * @return returns a custom parser or null if no custom parsers are needed.
+     * @deprecated This is replaced by {@link #getParser(ResourceValue)} but older version
+     * of the layoutlib (before API7) will still call this method.
      */
+    @Deprecated
     ILayoutPullParser getParser(String layoutName);
 
     /**
+     * Returns a custom parser for a given layout.
+     * @param layoutResource The layout.
+     * @return returns a custom parser or null if no custom parsers are needed.
+     */
+    ILayoutPullParser getParser(ResourceValue layoutResource);
+
+    /**
      * Returns the value of an item used by an adapter.
      * @param adapterView The {@link ResourceReference} for the adapter view info.
      * @param adapterCookie the view cookie for this particular view.