aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/relative/ConstraintType.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/relative/ConstraintType.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/relative/ConstraintType.java241
1 files changed, 0 insertions, 241 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/relative/ConstraintType.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/relative/ConstraintType.java
deleted file mode 100644
index ed4ac1bf4..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/relative/ConstraintType.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Eclipse Public License, Version 1.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.eclipse.org/org/documents/epl-v10.php
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.ide.common.layout.relative;
-
-import static com.android.ide.common.api.SegmentType.BASELINE;
-import static com.android.ide.common.api.SegmentType.BOTTOM;
-import static com.android.ide.common.api.SegmentType.CENTER_HORIZONTAL;
-import static com.android.ide.common.api.SegmentType.CENTER_VERTICAL;
-import static com.android.ide.common.api.SegmentType.LEFT;
-import static com.android.ide.common.api.SegmentType.RIGHT;
-import static com.android.ide.common.api.SegmentType.TOP;
-import static com.android.ide.common.api.SegmentType.UNKNOWN;
-import static com.android.SdkConstants.ATTR_LAYOUT_ABOVE;
-import static com.android.SdkConstants.ATTR_LAYOUT_ALIGN_BASELINE;
-import static com.android.SdkConstants.ATTR_LAYOUT_ALIGN_BOTTOM;
-import static com.android.SdkConstants.ATTR_LAYOUT_ALIGN_LEFT;
-import static com.android.SdkConstants.ATTR_LAYOUT_ALIGN_PARENT_BOTTOM;
-import static com.android.SdkConstants.ATTR_LAYOUT_ALIGN_PARENT_LEFT;
-import static com.android.SdkConstants.ATTR_LAYOUT_ALIGN_PARENT_RIGHT;
-import static com.android.SdkConstants.ATTR_LAYOUT_ALIGN_PARENT_TOP;
-import static com.android.SdkConstants.ATTR_LAYOUT_ALIGN_RIGHT;
-import static com.android.SdkConstants.ATTR_LAYOUT_ALIGN_TOP;
-import static com.android.SdkConstants.ATTR_LAYOUT_BELOW;
-import static com.android.SdkConstants.ATTR_LAYOUT_CENTER_HORIZONTAL;
-import static com.android.SdkConstants.ATTR_LAYOUT_CENTER_IN_PARENT;
-import static com.android.SdkConstants.ATTR_LAYOUT_CENTER_VERTICAL;
-import static com.android.SdkConstants.ATTR_LAYOUT_TO_LEFT_OF;
-import static com.android.SdkConstants.ATTR_LAYOUT_TO_RIGHT_OF;
-
-import com.android.annotations.NonNull;
-import com.android.annotations.Nullable;
-import com.android.ide.common.api.SegmentType;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Each constraint type corresponds to a type of constraint available for the
- * RelativeLayout; for example, {@link #LAYOUT_ABOVE} corresponds to the layout_above constraint.
- */
-enum ConstraintType {
- LAYOUT_ABOVE(ATTR_LAYOUT_ABOVE,
- null /* sourceX */, BOTTOM, null /* targetX */, TOP,
- false /* targetParent */, true /* horizontalEdge */, false /* verticalEdge */,
- true /* relativeToMargin */),
-
- LAYOUT_BELOW(ATTR_LAYOUT_BELOW, null, TOP, null, BOTTOM, false, true, false, true),
- ALIGN_TOP(ATTR_LAYOUT_ALIGN_TOP, null, TOP, null, TOP, false, true, false, false),
- ALIGN_BOTTOM(ATTR_LAYOUT_ALIGN_BOTTOM, null, BOTTOM, null, BOTTOM, false, true, false, false),
- ALIGN_LEFT(ATTR_LAYOUT_ALIGN_LEFT, LEFT, null, LEFT, null, false, false, true, false),
- ALIGN_RIGHT(ATTR_LAYOUT_ALIGN_RIGHT, RIGHT, null, RIGHT, null, false, false, true, false),
- LAYOUT_LEFT_OF(ATTR_LAYOUT_TO_LEFT_OF, RIGHT, null, LEFT, null, false, false, true, true),
- LAYOUT_RIGHT_OF(ATTR_LAYOUT_TO_RIGHT_OF, LEFT, null, RIGHT, null, false, false, true, true),
- ALIGN_PARENT_TOP(ATTR_LAYOUT_ALIGN_PARENT_TOP, null, TOP, null, TOP, true, true, false, false),
- ALIGN_BASELINE(ATTR_LAYOUT_ALIGN_BASELINE, null, BASELINE, null, BASELINE, false, true, false,
- false),
- ALIGN_PARENT_LEFT(ATTR_LAYOUT_ALIGN_PARENT_LEFT, LEFT, null, LEFT, null, true, false, true,
- false),
- ALIGN_PARENT_RIGHT(ATTR_LAYOUT_ALIGN_PARENT_RIGHT, RIGHT, null, RIGHT, null, true, false, true,
- false),
- ALIGN_PARENT_BOTTOM(ATTR_LAYOUT_ALIGN_PARENT_BOTTOM, null, BOTTOM, null, BOTTOM, true, true,
- false, false),
- LAYOUT_CENTER_HORIZONTAL(ATTR_LAYOUT_CENTER_HORIZONTAL, CENTER_VERTICAL, null, CENTER_VERTICAL,
- null, true, true, false, false),
- LAYOUT_CENTER_VERTICAL(ATTR_LAYOUT_CENTER_VERTICAL, null, CENTER_HORIZONTAL, null,
- CENTER_HORIZONTAL, true, false, true, false),
- LAYOUT_CENTER_IN_PARENT(ATTR_LAYOUT_CENTER_IN_PARENT, CENTER_VERTICAL, CENTER_HORIZONTAL,
- CENTER_VERTICAL, CENTER_HORIZONTAL, true, true, true, false);
-
- private ConstraintType(String name, SegmentType sourceSegmentTypeX,
- SegmentType sourceSegmentTypeY, SegmentType targetSegmentTypeX,
- SegmentType targetSegmentTypeY, boolean targetParent, boolean horizontalEdge,
- boolean verticalEdge, boolean relativeToMargin) {
- assert horizontalEdge || verticalEdge;
-
- this.name = name;
- this.sourceSegmentTypeX = sourceSegmentTypeX != null ? sourceSegmentTypeX : UNKNOWN;
- this.sourceSegmentTypeY = sourceSegmentTypeY != null ? sourceSegmentTypeY : UNKNOWN;
- this.targetSegmentTypeX = targetSegmentTypeX != null ? targetSegmentTypeX : UNKNOWN;
- this.targetSegmentTypeY = targetSegmentTypeY != null ? targetSegmentTypeY : UNKNOWN;
- this.targetParent = targetParent;
- this.horizontalEdge = horizontalEdge;
- this.verticalEdge = verticalEdge;
- this.relativeToMargin = relativeToMargin;
- }
-
- /** The attribute name of the constraint */
- public final String name;
-
- /** The horizontal position of the source of the constraint */
- public final SegmentType sourceSegmentTypeX;
-
- /** The vertical position of the source of the constraint */
- public final SegmentType sourceSegmentTypeY;
-
- /** The horizontal position of the target of the constraint */
- public final SegmentType targetSegmentTypeX;
-
- /** The vertical position of the target of the constraint */
- public final SegmentType targetSegmentTypeY;
-
- /**
- * If true, the constraint targets the parent layout, otherwise it targets another
- * view
- */
- public final boolean targetParent;
-
- /** If true, this constraint affects the horizontal dimension */
- public final boolean horizontalEdge;
-
- /** If true, this constraint affects the vertical dimension */
- public final boolean verticalEdge;
-
- /**
- * Whether this constraint is relative to the margin bounds of the node rather than
- * the node's actual bounds
- */
- public final boolean relativeToMargin;
-
- /** Map from attribute name to constraint type */
- private static Map<String, ConstraintType> sNameToType;
-
- /**
- * Returns the {@link ConstraintType} corresponding to the given attribute name, or
- * null if not found.
- *
- * @param attribute the name of the attribute to look up
- * @return the corresponding {@link ConstraintType}
- */
- @Nullable
- public static ConstraintType fromAttribute(@NonNull String attribute) {
- if (sNameToType == null) {
- ConstraintType[] types = ConstraintType.values();
- Map<String, ConstraintType> map = new HashMap<String, ConstraintType>(types.length);
- for (ConstraintType type : types) {
- map.put(type.name, type);
- }
- sNameToType = map;
- }
- return sNameToType.get(attribute);
- }
-
- /**
- * Returns true if this constraint type represents a constraint where the target edge
- * is one of the parent edges (actual edge, not center/baseline segments)
- *
- * @return true if the target segment is a parent edge
- */
- public boolean isRelativeToParentEdge() {
- return this == ALIGN_PARENT_LEFT || this == ALIGN_PARENT_RIGHT || this == ALIGN_PARENT_TOP
- || this == ALIGN_PARENT_BOTTOM;
- }
-
- /**
- * Returns a {@link ConstraintType} for a potential match of edges.
- *
- * @param withParent if true, the target is the parent
- * @param from the source edge
- * @param to the target edge
- * @return a {@link ConstraintType}, or null
- */
- @Nullable
- public static ConstraintType forMatch(boolean withParent, SegmentType from, SegmentType to) {
- // Attached to parent edge?
- if (withParent) {
- switch (from) {
- case TOP:
- return ALIGN_PARENT_TOP;
- case BOTTOM:
- return ALIGN_PARENT_BOTTOM;
- case LEFT:
- return ALIGN_PARENT_LEFT;
- case RIGHT:
- return ALIGN_PARENT_RIGHT;
- case CENTER_HORIZONTAL:
- return LAYOUT_CENTER_VERTICAL;
- case CENTER_VERTICAL:
- return LAYOUT_CENTER_HORIZONTAL;
- }
-
- return null;
- }
-
- // Attached to some other node.
- switch (from) {
- case TOP:
- switch (to) {
- case TOP:
- return ALIGN_TOP;
- case BOTTOM:
- return LAYOUT_BELOW;
- case BASELINE:
- return ALIGN_BASELINE;
- }
- break;
- case BOTTOM:
- switch (to) {
- case TOP:
- return LAYOUT_ABOVE;
- case BOTTOM:
- return ALIGN_BOTTOM;
- case BASELINE:
- return ALIGN_BASELINE;
- }
- break;
- case LEFT:
- switch (to) {
- case LEFT:
- return ALIGN_LEFT;
- case RIGHT:
- return LAYOUT_RIGHT_OF;
- }
- break;
- case RIGHT:
- switch (to) {
- case LEFT:
- return LAYOUT_LEFT_OF;
- case RIGHT:
- return ALIGN_RIGHT;
- }
- break;
- case BASELINE:
- return ALIGN_BASELINE;
- }
-
- return null;
- }
-}