diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/BaseViewRule.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/BaseViewRule.java | 44 |
1 files changed, 36 insertions, 8 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/BaseViewRule.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/BaseViewRule.java index 51eb369..b712ce5 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/BaseViewRule.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/BaseViewRule.java @@ -100,9 +100,13 @@ public class BaseViewRule implements IViewRule { String custom_w = "Custom..."; String curr_w = selectedNode.getStringAttr(ANDROID_URI, ATTR_LAYOUT_WIDTH); - if (VALUE_FILL_PARENT.equals(curr_w)) { + String fillParent = getFillParentValueName(); + boolean canMatchParent = supportsMatchParent(); + if (canMatchParent && VALUE_FILL_PARENT.equals(curr_w)) { curr_w = VALUE_MATCH_PARENT; - } else if (!VALUE_WRAP_CONTENT.equals(curr_w) && !VALUE_MATCH_PARENT.equals(curr_w)) { + } else if (!canMatchParent && VALUE_MATCH_PARENT.equals(curr_w)) { + curr_w = VALUE_FILL_PARENT; + } else if (!VALUE_WRAP_CONTENT.equals(curr_w) && !fillParent.equals(curr_w)) { curr_w = "zcustom"; //$NON-NLS-1$ custom_w = "Custom: " + curr_w; } @@ -110,9 +114,11 @@ public class BaseViewRule implements IViewRule { String custom_h = "Custom..."; String curr_h = selectedNode.getStringAttr(ANDROID_URI, ATTR_LAYOUT_HEIGHT); - if (VALUE_FILL_PARENT.equals(curr_h)) { + if (canMatchParent && VALUE_FILL_PARENT.equals(curr_h)) { curr_h = VALUE_MATCH_PARENT; - } else if (!VALUE_WRAP_CONTENT.equals(curr_h) && !VALUE_MATCH_PARENT.equals(curr_h)) { + } else if (!canMatchParent && VALUE_MATCH_PARENT.equals(curr_h)) { + curr_h = VALUE_FILL_PARENT; + } else if (!VALUE_WRAP_CONTENT.equals(curr_h) && !fillParent.equals(curr_h)) { curr_h = "zcustom"; //$NON-NLS-1$ custom_h = "Custom: " + curr_h; } @@ -200,16 +206,18 @@ public class BaseViewRule implements IViewRule { List<MenuAction> list1 = Arrays.asList(new MenuAction[] { new MenuAction.Choices("layout_1width", "Layout Width", //$NON-NLS-1$ mapify( - "wrap_content", "Wrap Content", //$NON-NLS-1$ - "match_parent", "Match Parent", //$NON-NLS-1$ + VALUE_WRAP_CONTENT, "Wrap Content", + canMatchParent ? VALUE_MATCH_PARENT : VALUE_FILL_PARENT, + canMatchParent ? "Match Parent" : "Fill Parent", "zcustom", custom_w //$NON-NLS-1$ ), curr_w, onChange ), new MenuAction.Choices("layout_2height", "Layout Height", //$NON-NLS-1$ mapify( - "wrap_content", "Wrap Content", //$NON-NLS-1$ - "match_parent", "Match Parent", //$NON-NLS-1$ + VALUE_WRAP_CONTENT, "Wrap Content", + canMatchParent ? VALUE_MATCH_PARENT : VALUE_FILL_PARENT, + canMatchParent ? "Match Parent" : "Fill Parent", "zcustom", custom_h //$NON-NLS-1$ ), curr_h, @@ -321,6 +329,26 @@ public class BaseViewRule implements IViewRule { return concatenate(list1, list2); } + /** + * Returns fill_parent or match_parent, depending on whether the minimum supported + * platform supports match_parent or not + * + * @return match_parent or fill_parent depending on which is supported by the project + */ + protected String getFillParentValueName() { + return supportsMatchParent() ? VALUE_MATCH_PARENT : VALUE_FILL_PARENT; + } + + /** + * Returns true if the project supports match_parent instead of just fill_parent + * + * @return true if the project supports match_parent instead of just fill_parent + */ + protected boolean supportsMatchParent() { + // fill_parent was renamed match_parent in API level 8 + return mRulesEngine.getMinApiLevel() >= 8; + } + /** Join strings into a single string with the given delimiter */ static String join(char delimiter, Collection<String> strings) { StringBuilder sb = new StringBuilder(100); |