aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/resources/platform/ViewClassInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/resources/platform/ViewClassInfo.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/resources/platform/ViewClassInfo.java158
1 files changed, 158 insertions, 0 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/resources/platform/ViewClassInfo.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/resources/platform/ViewClassInfo.java
new file mode 100644
index 000000000..214eb9cb4
--- /dev/null
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/resources/platform/ViewClassInfo.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2008 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.resources.platform;
+
+
+/**
+ * Information needed to represent a View or ViewGroup (aka Layout) item
+ * in the layout hierarchy, as extracted from the main android.jar and the
+ * associated attrs.xml.
+ */
+public class ViewClassInfo {
+ /** Is this a layout class (i.e. ViewGroup) or just a view? */
+ private boolean mIsLayout;
+ /** FQCN e.g. android.view.View, never null. */
+ private String mFullClassName;
+ /** Short class name, e.g. View, never null. */
+ private String mShortClassName;
+ /** Super class. Can be null. */
+ private ViewClassInfo mSuperClass;
+ /** Short javadoc. Can be null. */
+ private String mJavaDoc;
+ /** Attributes for this view or view group. Can be empty but never null. */
+ private AttributeInfo[] mAttributes;
+
+ public static class LayoutParamsInfo {
+ /** Short class name, e.g. LayoutData, never null. */
+ private String mShortClassName;
+ /** ViewLayout class info owning this layout data */
+ private ViewClassInfo mViewLayoutClass;
+ /** Super class. Can be null. */
+ private LayoutParamsInfo mSuperClass;
+ /** Layout Data Attributes for layout classes. Can be empty but not null. */
+ private AttributeInfo[] mAttributes;
+
+ public LayoutParamsInfo(ViewClassInfo enclosingViewClassInfo,
+ String shortClassName, LayoutParamsInfo superClassInfo) {
+ mShortClassName = shortClassName;
+ mViewLayoutClass = enclosingViewClassInfo;
+ mSuperClass = superClassInfo;
+ mAttributes = new AttributeInfo[0];
+ }
+
+ /** Returns short class name, e.g. "LayoutData" */
+ public String getShortClassName() {
+ return mShortClassName;
+ }
+ /** Returns the ViewLayout class info enclosing this layout data. Cannot null. */
+ public ViewClassInfo getViewLayoutClass() {
+ return mViewLayoutClass;
+ }
+ /** Returns the super class info. Can be null. */
+ public LayoutParamsInfo getSuperClass() {
+ return mSuperClass;
+ }
+ /** Returns the LayoutData attributes. Can be empty but not null. */
+ public AttributeInfo[] getAttributes() {
+ return mAttributes;
+ }
+ /** Sets the LayoutData attributes. Can be empty but not null. */
+ public void setAttributes(AttributeInfo[] attributes) {
+ mAttributes = attributes;
+ }
+ }
+
+ /** Layout data info for a layout class. Null for all non-layout classes and always
+ * non-null for a layout class. */
+ public LayoutParamsInfo mLayoutData;
+
+ // --------
+
+ public ViewClassInfo(boolean isLayout, String fullClassName, String shortClassName) {
+ mIsLayout = isLayout;
+ mFullClassName = fullClassName;
+ mShortClassName = shortClassName;
+ mAttributes = new AttributeInfo[0];
+ }
+
+ /** Returns whether this is a layout class (i.e. ViewGroup) or just a View */
+ public boolean isLayout() {
+ return mIsLayout;
+ }
+
+ /** Returns FQCN e.g. "android.view.View" */
+ public String getFullClassName() {
+ return mFullClassName;
+ }
+
+ /** Returns short class name, e.g. "View" */
+ public String getShortClassName() {
+ return mShortClassName;
+ }
+
+ /** Returns the super class. Can be null. */
+ public ViewClassInfo getSuperClass() {
+ return mSuperClass;
+ }
+
+ /** Returns a short javadoc */
+ public String getJavaDoc() {
+ return mJavaDoc;
+ }
+
+ /** Returns the attributes for this view or view group. Maybe empty but not null. */
+ public AttributeInfo[] getAttributes() {
+ return mAttributes;
+ }
+
+ /** Returns the LayoutData info for layout classes. Null for non-layout view classes. */
+ public LayoutParamsInfo getLayoutData() {
+ return mLayoutData;
+ }
+
+ /**
+ * Sets a link on the info of the super class of this View or ViewGroup.
+ * <p/>
+ * The super class info must be of the same kind (i.e. group to group or view to view)
+ * except for the top ViewGroup which links to the View info.
+ * <p/>
+ * The super class cannot be null except for the top View info.
+ */
+ public void setSuperClass(ViewClassInfo superClass) {
+ mSuperClass = superClass;
+ }
+
+ /** Sets the javadoc for this View or ViewGroup. */
+ public void setJavaDoc(String javaDoc) {
+ mJavaDoc = javaDoc;
+ }
+
+ /** Sets the list of attributes for this View or ViewGroup. */
+ public void setAttributes(AttributeInfo[] attributes) {
+ mAttributes = attributes;
+ }
+
+ /**
+ * Sets the {@link LayoutParamsInfo} for layout classes.
+ * Does nothing for non-layout view classes.
+ */
+ public void setLayoutParams(LayoutParamsInfo layoutData) {
+ if (mIsLayout) {
+ mLayoutData = layoutData;
+ }
+ }
+}