package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+
import com.android.ide.common.api.DrawingStyle;
import com.android.ide.common.api.DropFeedback;
import com.android.ide.common.api.IDragElement;
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ID;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_TEXT;
+
import com.android.ide.common.api.DropFeedback;
import com.android.ide.common.api.IAttributeInfo;
+import com.android.ide.common.api.IAttributeInfo.Format;
import com.android.ide.common.api.IClientRulesEngine;
import com.android.ide.common.api.IDragElement;
+import com.android.ide.common.api.IDragElement.IDragAttribute;
import com.android.ide.common.api.IGraphics;
import com.android.ide.common.api.INode;
import com.android.ide.common.api.MenuAction;
import com.android.ide.common.api.Point;
import com.android.ide.common.api.Rect;
-import com.android.ide.common.api.IAttributeInfo.Format;
-import com.android.ide.common.api.IDragElement.IDragAttribute;
import java.util.Arrays;
import java.util.HashMap;
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_HEIGHT;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_WIDTH;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_FILL_PARENT;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_MATCH_PARENT;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_WRAP_CONTENT;
+
import com.android.ide.common.api.DropFeedback;
import com.android.ide.common.api.IAttributeInfo;
import com.android.ide.common.api.IClientRulesEngine;
public class BaseView implements IViewRule {
protected IClientRulesEngine mRulesEngine;
- /**
- * Namespace for the Android resource XML, i.e.
- * "http://schemas.android.com/apk/res/android"
- */
- public static String ANDROID_URI = "http://schemas.android.com/apk/res/android"; //$NON-NLS-1$
-
- /** The fully qualified class name of an EditText view */
- public static final String FQCN_EDIT_TEXT = "android.widget.EditText"; //$NON-NLS-1$
-
- /** The fully qualified class name of a LinearLayout view */
- public static final String FQCN_LINEAR_LAYOUT = "android.widget.LinearLayout"; //$NON-NLS-1$
-
- /** The fully qualified class name of a FrameLayout view */
- public static final String FQCN_FRAME_LAYOUT = "android.widget.FrameLayout"; //$NON-NLS-1$
-
- /** The fully qualified class name of a TableRow view */
- public static final String FQCN_TABLE_ROW = "android.widget.TableRow"; //$NON-NLS-1$
-
- /** The fully qualified class name of a TabWidget view */
- public static final String FQCN_TAB_WIDGET = "android.widget.TabWidget"; //$NON-NLS-1$
-
- // Some common Android layout attribute names used by the view rules.
- // All these belong to the attribute namespace ANDROID_URI.
- public static final String ATTR_ID = "id"; //$NON-NLS-1$
-
- public static final String ATTR_TEXT = "text"; //$NON-NLS-1$
-
- public static final String ATTR_LAYOUT_WIDTH = "layout_width"; //$NON-NLS-1$
-
- public static final String ATTR_LAYOUT_HEIGHT = "layout_height"; //$NON-NLS-1$
-
- public static final String ATTR_SRC = "src"; //$NON-NLS-1$
-
- public static final String ATTR_LAYOUT_BELOW = "layout_below"; //$NON-NLS-1$
-
- // Some common Android layout attribute values used by the view rules.
- public static final String VALUE_FILL_PARENT = "fill_parent"; //$NON-NLS-1$
-
- // like fill_parent for API 8
- public static final String VALUE_MATCH_PARENT = "match_parent"; //$NON-NLS-1$
-
- public static final String VALUE_WRAP_CONTENT = "wrap_content"; //$NON-NLS-1$
-
// Cache of attributes. Key is FQCN of a node mixed with its view hierarchy
// parent. Values are a custom map as needed by getContextMenu.
private Map<String, Map<String, Prop>> mAttributesMap =
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ID;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_BELOW;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_WIDTH;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_TEXT;
+import static com.android.ide.common.layout.LayoutConstants.FQCN_EDIT_TEXT;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_FILL_PARENT;
+
import com.android.ide.common.api.INode;
import com.android.ide.common.api.IViewRule;
import com.android.ide.common.api.InsertType;
// A DialerFilter requires a couple of nested EditTexts with fixed ids:
if (insertType == InsertType.CREATE) {
INode hint = node.appendChild(FQCN_EDIT_TEXT);
- hint.setAttribute(ANDROID_URI, BaseView.ATTR_TEXT, "Hint");
+ hint.setAttribute(ANDROID_URI, ATTR_TEXT, "Hint");
hint.setAttribute(ANDROID_URI, ATTR_ID, "@android:id/hint"); //$NON-NLS-1$
hint.setAttribute(ANDROID_URI, ATTR_LAYOUT_WIDTH, VALUE_FILL_PARENT);
INode primary = node.appendChild(FQCN_EDIT_TEXT);
- primary.setAttribute(ANDROID_URI, BaseView.ATTR_TEXT, "Primary");
+ primary.setAttribute(ANDROID_URI, ATTR_TEXT, "Primary");
primary.setAttribute(ANDROID_URI, ATTR_ID, "@android:id/primary"); //$NON-NLS-1$
primary.setAttribute(ANDROID_URI, ATTR_LAYOUT_BELOW,
"@android:id/hint"); //$NON-NLS-1$
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_HEIGHT;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_WIDTH;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ORIENTATION;
+import static com.android.ide.common.layout.LayoutConstants.FQCN_LINEAR_LAYOUT;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_FILL_PARENT;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_HORIZONTAL;
+
import com.android.ide.common.api.INode;
import com.android.ide.common.api.IViewRule;
import com.android.ide.common.api.InsertType;
// Insert a horizontal linear layout which is commonly used with horizontal scrollbars
// as described by the documentation for HorizontalScrollbars.
INode linearLayout = node.appendChild(FQCN_LINEAR_LAYOUT);
- linearLayout.setAttribute(ANDROID_URI, LinearLayoutRule.ATTR_ORIENTATION,
- LinearLayoutRule.VALUE_HORIZONTAL);
+ linearLayout.setAttribute(ANDROID_URI, ATTR_ORIENTATION,
+ VALUE_HORIZONTAL);
}
}
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_SRC;
+
import com.android.ide.common.api.INode;
import com.android.ide.common.api.IViewRule;
import com.android.ide.common.api.InsertType;
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_SRC;
+
import com.android.ide.common.api.INode;
import com.android.ide.common.api.IViewRule;
import com.android.ide.common.api.InsertType;
* limitations under the License.
*/
-package com.android.ide.eclipse.adt.internal.editors.layout;
-
+package com.android.ide.common.layout;
/**
* A bunch of constants that map to either:
* </ul>
*/
public class LayoutConstants {
-
public static final String RELATIVE_LAYOUT = "RelativeLayout"; //$NON-NLS-1$
public static final String LINEAR_LAYOUT = "LinearLayout"; //$NON-NLS-1$
public static final String ABSOLUTE_LAYOUT = "AbsoluteLayout"; //$NON-NLS-1$
public static final String VALUE_TRUE = "true"; //$NON-NLS-1$
public static final String VALUE_N_DIP = "%ddip"; //$NON-NLS-1$
- private LayoutConstants() {
- }
+ /**
+ * Namespace for the Android resource XML, i.e.
+ * "http://schemas.android.com/apk/res/android"
+ */
+ public static String ANDROID_URI = "http://schemas.android.com/apk/res/android"; //$NON-NLS-1$
+
+ /** The fully qualified class name of an EditText view */
+ public static final String FQCN_EDIT_TEXT = "android.widget.EditText"; //$NON-NLS-1$
+
+ /** The fully qualified class name of a LinearLayout view */
+ public static final String FQCN_LINEAR_LAYOUT = "android.widget.LinearLayout"; //$NON-NLS-1$
+
+ /** The fully qualified class name of a FrameLayout view */
+ public static final String FQCN_FRAME_LAYOUT = "android.widget.FrameLayout"; //$NON-NLS-1$
+
+ /** The fully qualified class name of a TableRow view */
+ public static final String FQCN_TABLE_ROW = "android.widget.TableRow"; //$NON-NLS-1$
+
+ /** The fully qualified class name of a TabWidget view */
+ public static final String FQCN_TAB_WIDGET = "android.widget.TabWidget"; //$NON-NLS-1$
+
+ public static final String ATTR_SRC = "src"; //$NON-NLS-1$
+
+ // like fill_parent for API 8
+ public static final String VALUE_MATCH_PARENT = "match_parent"; //$NON-NLS-1$
+
+ public static String ATTR_ORIENTATION = "orientation"; //$NON-NLS-1$
+
+ public static String VALUE_HORIZONTAL = "horizontal"; //$NON-NLS-1$
+
+ public static String VALUE_VERTICAL = "vertical"; //$NON-NLS-1$
+
}
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_HEIGHT;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_WIDTH;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ORIENTATION;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_FILL_PARENT;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_HORIZONTAL;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_VERTICAL;
+
import com.android.ide.common.api.DrawingStyle;
import com.android.ide.common.api.DropFeedback;
import com.android.ide.common.api.IDragElement;
import com.android.ide.common.api.INode;
import com.android.ide.common.api.INodeHandler;
import com.android.ide.common.api.IViewMetadata;
+import com.android.ide.common.api.IViewMetadata.FillPreference;
import com.android.ide.common.api.IViewRule;
import com.android.ide.common.api.InsertType;
import com.android.ide.common.api.MenuAction;
import com.android.ide.common.api.Point;
import com.android.ide.common.api.Rect;
-import com.android.ide.common.api.IViewMetadata.FillPreference;
import java.util.ArrayList;
import java.util.List;
* classes.
*/
public class LinearLayoutRule extends BaseLayout {
- public static String ATTR_ORIENTATION = "orientation"; //$NON-NLS-1$
- public static String VALUE_HORIZONTAL = "horizontal"; //$NON-NLS-1$
- public static String VALUE_VERTICAL = "vertical"; //$NON-NLS-1$
-
/**
* Add an explicit Orientation toggle to the context menu.
*/
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_WIDTH;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_FILL_PARENT;
+
import com.android.ide.common.api.INode;
import com.android.ide.common.api.IViewRule;
import com.android.ide.common.api.InsertType;
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+
import com.android.ide.common.api.INode;
import com.android.ide.common.api.IViewRule;
import com.android.ide.common.api.InsertType;
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ID;
+
import com.android.ide.common.api.DrawingStyle;
import com.android.ide.common.api.DropFeedback;
import com.android.ide.common.api.IAttributeInfo;
+import com.android.ide.common.api.IAttributeInfo.Format;
import com.android.ide.common.api.IDragElement;
import com.android.ide.common.api.IFeedbackPainter;
import com.android.ide.common.api.IGraphics;
import com.android.ide.common.api.INode;
+import com.android.ide.common.api.INode.IAttribute;
import com.android.ide.common.api.INodeHandler;
import com.android.ide.common.api.IViewRule;
import com.android.ide.common.api.Point;
import com.android.ide.common.api.Rect;
-import com.android.ide.common.api.IAttributeInfo.Format;
-import com.android.ide.common.api.INode.IAttribute;
import java.util.ArrayList;
import java.util.Collections;
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_HEIGHT;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_WIDTH;
+import static com.android.ide.common.layout.LayoutConstants.FQCN_LINEAR_LAYOUT;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_FILL_PARENT;
+
import com.android.ide.common.api.INode;
import com.android.ide.common.api.IViewRule;
import com.android.ide.common.api.InsertType;
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_WIDTH;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_FILL_PARENT;
+
import com.android.ide.common.api.INode;
import com.android.ide.common.api.IViewRule;
import com.android.ide.common.api.InsertType;
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ID;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_HEIGHT;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_WIDTH;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ORIENTATION;
+import static com.android.ide.common.layout.LayoutConstants.FQCN_FRAME_LAYOUT;
+import static com.android.ide.common.layout.LayoutConstants.FQCN_LINEAR_LAYOUT;
+import static com.android.ide.common.layout.LayoutConstants.FQCN_TAB_WIDGET;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_FILL_PARENT;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_VERTICAL;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_WRAP_CONTENT;
+
import com.android.ide.common.api.INode;
import com.android.ide.common.api.IViewRule;
import com.android.ide.common.api.InsertType;
INode linear = node.appendChild(FQCN_LINEAR_LAYOUT);
linear.setAttribute(ANDROID_URI, ATTR_LAYOUT_WIDTH, VALUE_FILL_PARENT);
linear.setAttribute(ANDROID_URI, ATTR_LAYOUT_HEIGHT, VALUE_FILL_PARENT);
- linear.setAttribute(ANDROID_URI, LinearLayoutRule.ATTR_ORIENTATION,
- LinearLayoutRule.VALUE_VERTICAL);
+ linear.setAttribute(ANDROID_URI, ATTR_ORIENTATION,
+ VALUE_VERTICAL);
INode tab = linear.appendChild(FQCN_TAB_WIDGET);
tab.setAttribute(ANDROID_URI, ATTR_LAYOUT_WIDTH, VALUE_FILL_PARENT);
*/
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.FQCN_TABLE_ROW;
+
import com.android.ide.common.api.IMenuCallback;
import com.android.ide.common.api.INode;
import com.android.ide.common.api.IViewRule;
package com.android.ide.eclipse.adt.internal.editors.descriptors;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ID;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_BELOW;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_HEIGHT;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_WIDTH;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_TEXT;
+import static com.android.ide.common.layout.LayoutConstants.RELATIVE_LAYOUT;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_FILL_PARENT;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_WRAP_CONTENT;
+
import com.android.ide.common.api.IAttributeInfo.Format;
import com.android.ide.common.resources.platform.AttributeInfo;
import com.android.ide.eclipse.adt.AndroidConstants;
-import com.android.ide.eclipse.adt.internal.editors.layout.LayoutConstants;
import com.android.ide.eclipse.adt.internal.editors.uimodel.UiDocumentNode;
import com.android.ide.eclipse.adt.internal.editors.uimodel.UiElementNode;
import com.android.ide.eclipse.adt.internal.resources.ResourceType;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Map;
-import java.util.Set;
import java.util.Map.Entry;
+import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
boolean fill = ui_node.getDescriptor().hasChildren() &&
ui_node.getUiParent() instanceof UiDocumentNode;
ui_node.setAttributeValue(
- LayoutConstants.ATTR_LAYOUT_WIDTH,
+ ATTR_LAYOUT_WIDTH,
SdkConstants.NS_RESOURCES,
- fill ? LayoutConstants.VALUE_FILL_PARENT : LayoutConstants.VALUE_WRAP_CONTENT,
+ fill ? VALUE_FILL_PARENT : VALUE_WRAP_CONTENT,
false /* override */);
ui_node.setAttributeValue(
- LayoutConstants.ATTR_LAYOUT_HEIGHT,
+ ATTR_LAYOUT_HEIGHT,
SdkConstants.NS_RESOURCES,
- fill ? LayoutConstants.VALUE_FILL_PARENT : LayoutConstants.VALUE_WRAP_CONTENT,
+ fill ? VALUE_FILL_PARENT : VALUE_WRAP_CONTENT,
false /* override */);
String widget_id = getFreeWidgetId(ui_node);
if (widget_id != null) {
ui_node.setAttributeValue(
- LayoutConstants.ATTR_ID,
+ ATTR_ID,
SdkConstants.NS_RESOURCES,
widget_id,
false /* override */);
}
ui_node.setAttributeValue(
- LayoutConstants.ATTR_TEXT,
+ ATTR_TEXT,
SdkConstants.NS_RESOURCES,
widget_id,
false /*override*/);
UiElementNode ui_parent = ui_node.getUiParent();
if (ui_parent != null &&
ui_parent.getDescriptor().getXmlLocalName().equals(
- LayoutConstants.RELATIVE_LAYOUT)) {
+ RELATIVE_LAYOUT)) {
UiElementNode ui_previous = ui_node.getUiPreviousSibling();
if (ui_previous != null) {
- String id = ui_previous.getAttributeValue(LayoutConstants.ATTR_ID);
+ String id = ui_previous.getAttributeValue(ATTR_ID);
if (id != null && id.length() > 0) {
id = id.replace("@+", "@"); //$NON-NLS-1$ //$NON-NLS-2$
ui_node.setAttributeValue(
- LayoutConstants.ATTR_LAYOUT_BELOW,
+ ATTR_LAYOUT_BELOW,
SdkConstants.NS_RESOURCES,
id,
false /* override */);
params[2] = generated;
}
- String id = uiRoot.getAttributeValue(LayoutConstants.ATTR_ID);
+ String id = uiRoot.getAttributeValue(ATTR_ID);
if (id != null) {
id = id.replace("@+id/", ""); //$NON-NLS-1$ $NON-NLS-2$
id = id.replace("@id/", ""); //$NON-NLS-1$ $NON-NLS-2$
package com.android.ide.eclipse.adt.internal.editors.layout.gle2;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_HEIGHT;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_LAYOUT_WIDTH;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_TEXT;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_WRAP_CONTENT;
+
import com.android.ide.common.api.InsertType;
import com.android.ide.common.api.Rect;
-import com.android.ide.common.layout.BaseView;
import com.android.ide.common.layoutlib.LayoutLibrary;
import com.android.ide.eclipse.adt.internal.editors.descriptors.DescriptorsUtils;
import com.android.ide.eclipse.adt.internal.editors.descriptors.DocumentDescriptor;
import com.android.ide.eclipse.adt.internal.editors.descriptors.ElementDescriptor;
import com.android.ide.eclipse.adt.internal.editors.descriptors.XmlnsAttributeDescriptor;
-import com.android.ide.eclipse.adt.internal.editors.layout.LayoutConstants;
import com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor;
import com.android.ide.eclipse.adt.internal.editors.layout.descriptors.LayoutDescriptors;
import com.android.ide.eclipse.adt.internal.editors.layout.gre.NodeFactory;
// Set up a proper name space
Attr attr = document.createAttributeNS(XmlnsAttributeDescriptor.XMLNS_URI,
"xmlns:android"); //$NON-NLS-1$
- attr.setValue(BaseView.ANDROID_URI);
+ attr.setValue(ANDROID_URI);
element.getAttributes().setNamedItemNS(attr);
element.setAttributeNS(SdkConstants.NS_RESOURCES,
- LayoutConstants.ATTR_LAYOUT_WIDTH, LayoutConstants.VALUE_WRAP_CONTENT);
+ ATTR_LAYOUT_WIDTH, VALUE_WRAP_CONTENT);
element.setAttributeNS(SdkConstants.NS_RESOURCES,
- LayoutConstants.ATTR_LAYOUT_HEIGHT, LayoutConstants.VALUE_WRAP_CONTENT);
+ ATTR_LAYOUT_HEIGHT, VALUE_WRAP_CONTENT);
// This doesn't apply to all, but doesn't seem to cause harm and makes for a
// better experience with text-oriented views like buttons and texts
UiElementNode uiRoot = layoutEditor.getUiRootNode();
String text = DescriptorsUtils.getFreeWidgetId(uiRoot, viewName);
- element.setAttributeNS(SdkConstants.NS_RESOURCES, LayoutConstants.ATTR_TEXT, text);
+ element.setAttributeNS(SdkConstants.NS_RESOURCES, ATTR_TEXT, text);
document.appendChild(element);
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+
import com.android.ide.common.api.INode;
import com.android.ide.common.api.Point;
import com.android.ide.common.api.Rect;
// Drop preview
"useStyle(DROP_PREVIEW), drawRect(Rect[-22,-50,105,80])");
- assertEquals("-22dip", inserted.getStringAttr(BaseLayout.ANDROID_URI, "layout_x"));
- assertEquals("-50dip", inserted.getStringAttr(BaseLayout.ANDROID_URI, "layout_y"));
+ assertEquals("-22dip", inserted.getStringAttr(ANDROID_URI, "layout_x"));
+ assertEquals("-50dip", inserted.getStringAttr(ANDROID_URI, "layout_y"));
// Without drag bounds we should just draw guide lines instead
inserted = dragInto(new Rect(0, 0, 0, 0), new Point(30, -10), 4, -1,
"useStyle(GUIDELINE), drawLine(30,0,30,480), drawLine(0,-10,240,-10)",
// Drop preview
"useStyle(DROP_PREVIEW), drawLine(30,-10,240,-10), drawLine(30,-10,30,480)");
- assertEquals("30dip", inserted.getStringAttr(BaseLayout.ANDROID_URI, "layout_x"));
- assertEquals("-10dip", inserted.getStringAttr(BaseLayout.ANDROID_URI, "layout_y"));
+ assertEquals("30dip", inserted.getStringAttr(ANDROID_URI, "layout_x"));
+ assertEquals("-10dip", inserted.getStringAttr(ANDROID_URI, "layout_y"));
}
}
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ID;
+
import com.android.ide.common.api.IDragElement;
import com.android.ide.common.api.INode;
import com.android.ide.common.api.Rect;
*/
public final void testCollectIds2() {
IDragElement[] elements = TestDragElement.create(TestDragElement.create(
- "android.widget.Button", new Rect(0, 0, 100, 80)).set("myuri", BaseView.ATTR_ID,
+ "android.widget.Button", new Rect(0, 0, 100, 80)).set("myuri", ATTR_ID,
"@+id/Button01"));
Map<String, Pair<String, String>> idMap = new HashMap<String, Pair<String, String>>();
public final void testDefaultAttributeFilter() {
assertEquals("true", BaseLayout.DEFAULT_ATTR_FILTER.replace("myuri", "layout_alignRight",
"true"));
- assertEquals(null, BaseLayout.DEFAULT_ATTR_FILTER.replace(BaseLayout.ANDROID_URI,
+ assertEquals(null, BaseLayout.DEFAULT_ATTR_FILTER.replace(ANDROID_URI,
"layout_alignRight", "true"));
- assertEquals("true", BaseLayout.DEFAULT_ATTR_FILTER.replace(BaseLayout.ANDROID_URI,
+ assertEquals("true", BaseLayout.DEFAULT_ATTR_FILTER.replace(ANDROID_URI,
"myproperty", "true"));
}
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ID;
import com.android.ide.common.api.DropFeedback;
import com.android.ide.common.api.IDragElement;
* Common layout helpers from LayoutRule tests
*/
public abstract class LayoutTestBase extends TestCase {
- public static String ANDROID_URI = BaseView.ANDROID_URI;
- public static String ATTR_ID = BaseView.ATTR_ID;
-
/**
* Helper function used by tests to drag a button into a canvas containing
* the given children.
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ID;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ORIENTATION;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_HORIZONTAL;
+import static com.android.ide.common.layout.LayoutConstants.VALUE_VERTICAL;
+
import com.android.ide.common.api.DropFeedback;
import com.android.ide.common.api.IDragElement;
import com.android.ide.common.api.IMenuCallback;
import com.android.ide.common.api.INode;
import com.android.ide.common.api.IViewRule;
import com.android.ide.common.api.MenuAction;
+import com.android.ide.common.api.MenuAction.Choices;
import com.android.ide.common.api.Point;
import com.android.ide.common.api.Rect;
-import com.android.ide.common.api.MenuAction.Choices;
import java.util.List;
rule.onDropped(targetNode, elements, feedback, dropPoint);
assertEquals(1, targetNode.getChildren().length);
assertEquals("@+id/Button01", targetNode.getChildren()[0].getStringAttr(
- BaseView.ANDROID_URI, BaseView.ATTR_ID));
+ ANDROID_URI, ATTR_ID));
}
// Utility for other tests
int insertIndex, int currentIndex,
String... graphicsFragments) {
INode linearLayout = TestNode.create("android.widget.LinearLayout").id(
- "@+id/LinearLayout01").bounds(new Rect(0, 0, 240, 480)).set(BaseView.ANDROID_URI,
- LinearLayoutRule.ATTR_ORIENTATION,
- vertical ? LinearLayoutRule.VALUE_VERTICAL : LinearLayoutRule.VALUE_HORIZONTAL)
+ "@+id/LinearLayout01").bounds(new Rect(0, 0, 240, 480)).set(ANDROID_URI,
+ ATTR_ORIENTATION,
+ vertical ? VALUE_VERTICAL : VALUE_HORIZONTAL)
.add(
TestNode.create("android.widget.Button").id("@+id/Button01").bounds(
new Rect(0, 0, 100, 80)),
LinearLayoutRule rule = new LinearLayoutRule();
INode node = TestNode.create("android.widget.Button").id("@+id/Button012");
- assertNull(node.getStringAttr(BaseView.ANDROID_URI, LinearLayoutRule.ATTR_ORIENTATION));
+ assertNull(node.getStringAttr(ANDROID_URI, ATTR_ORIENTATION));
List<MenuAction> contextMenu = rule.getContextMenu(node);
assertEquals(4, contextMenu.size());
MenuAction.Choices choices = (Choices) orientationAction;
IMenuCallback callback = choices.getCallback();
- callback.action(orientationAction, LinearLayoutRule.VALUE_VERTICAL, true);
-
- String orientation = node.getStringAttr(BaseView.ANDROID_URI,
- LinearLayoutRule.ATTR_ORIENTATION);
- assertEquals(LinearLayoutRule.VALUE_VERTICAL, orientation);
- callback.action(orientationAction, LinearLayoutRule.VALUE_HORIZONTAL, true);
- orientation = node.getStringAttr(BaseView.ANDROID_URI, LinearLayoutRule.ATTR_ORIENTATION);
- assertEquals(LinearLayoutRule.VALUE_HORIZONTAL, orientation);
+ callback.action(orientationAction, VALUE_VERTICAL, true);
+
+ String orientation = node.getStringAttr(ANDROID_URI,
+ ATTR_ORIENTATION);
+ assertEquals(VALUE_VERTICAL, orientation);
+ callback.action(orientationAction, VALUE_HORIZONTAL, true);
+ orientation = node.getStringAttr(ANDROID_URI, ATTR_ORIENTATION);
+ assertEquals(VALUE_HORIZONTAL, orientation);
}
public void testDragInEmptyWithBounds() {
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+
import com.android.ide.common.api.INode;
import com.android.ide.common.api.Point;
import com.android.ide.common.api.Rect;
// Drop preview
"useStyle(DROP_PREVIEW), drawRect(Rect[0,0,105,80])");
- assertEquals("true", inserted.getStringAttr(BaseLayout.ANDROID_URI,
+ assertEquals("true", inserted.getStringAttr(ANDROID_URI,
"layout_alignParentTop"));
}
String[] elements = attachment.split("=");
String name = "layout_" + elements[0];
String value = elements[1];
- assertEquals(value, inserted.getStringAttr(BaseLayout.ANDROID_URI, name));
+ assertEquals(value, inserted.getStringAttr(ANDROID_URI, name));
}
}
}
*/
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ID;
+
import com.android.ide.common.api.IDragElement;
import com.android.ide.common.api.Rect;
}
public TestDragElement id(String id) {
- return set(BaseView.ANDROID_URI, BaseView.ATTR_ID, id);
+ return set(ANDROID_URI, ATTR_ID, id);
}
public static TestDragElement create(String fqn, Rect bounds) {
*/
package com.android.ide.common.layout;
+import static com.android.ide.common.layout.LayoutConstants.ANDROID_URI;
+import static com.android.ide.common.layout.LayoutConstants.ATTR_ID;
+
import com.android.ide.common.api.IAttributeInfo;
import com.android.ide.common.api.INode;
import com.android.ide.common.api.INodeHandler;
}
public TestNode id(String id) {
- return set(BaseView.ANDROID_URI, BaseView.ATTR_ID, id);
+ return set(ANDROID_URI, ATTR_ID, id);
}
public TestNode set(String uri, String name, String value) {