aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/menu/descriptors/MenuDescriptors.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/menu/descriptors/MenuDescriptors.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/menu/descriptors/MenuDescriptors.java199
1 files changed, 0 insertions, 199 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/menu/descriptors/MenuDescriptors.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/menu/descriptors/MenuDescriptors.java
deleted file mode 100644
index b7bab1bd3..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/menu/descriptors/MenuDescriptors.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * 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.eclipse.adt.internal.editors.menu.descriptors;
-
-import static com.android.SdkConstants.ANDROID_NS_NAME;
-import static com.android.SdkConstants.ANDROID_URI;
-import static com.android.SdkConstants.TAG_MENU;
-
-import com.android.ide.common.resources.platform.DeclareStyleableInfo;
-import com.android.ide.eclipse.adt.AdtUtils;
-import com.android.ide.eclipse.adt.internal.editors.descriptors.AttributeDescriptor;
-import com.android.ide.eclipse.adt.internal.editors.descriptors.DescriptorsUtils;
-import com.android.ide.eclipse.adt.internal.editors.descriptors.ElementDescriptor;
-import com.android.ide.eclipse.adt.internal.editors.descriptors.IDescriptorProvider;
-import com.android.ide.eclipse.adt.internal.editors.descriptors.XmlnsAttributeDescriptor;
-
-import java.util.ArrayList;
-import java.util.Map;
-
-/**
- * Complete description of the menu structure.
- */
-public final class MenuDescriptors implements IDescriptorProvider {
-
- /** The root element descriptor. */
- private ElementDescriptor mDescriptor = null;
-
- /** @return the root descriptor. */
- @Override
- public ElementDescriptor getDescriptor() {
- return mDescriptor;
- }
-
- @Override
- public ElementDescriptor[] getRootElementDescriptors() {
- return mDescriptor.getChildren();
- }
-
- /**
- * Updates the document descriptor.
- * <p/>
- * It first computes the new children of the descriptor and then updates them
- * all at once.
- *
- * @param styleMap The map style => attributes from the attrs.xml file
- */
- public synchronized void updateDescriptors(Map<String, DeclareStyleableInfo> styleMap) {
-
- // There are 3 elements: menu, item and group.
- // The root element MUST be a menu.
- // A top menu can contain items or group:
- // - top groups can contain top items
- // - top items can contain sub-menus
- // A sub menu can contains sub items or sub groups:
- // - sub groups can contain sub items
- // - sub items cannot contain anything
-
- if (mDescriptor == null) {
- mDescriptor = createElement(styleMap,
- TAG_MENU, // xmlName
- "Menu", // uiName,
- null, // TODO SDK URL
- null, // extraAttribute
- null, // childrenElements,
- true /* mandatory */);
- }
-
- // -- sub menu can have sub_items, sub_groups but not sub_menus
-
- ElementDescriptor sub_item = createElement(styleMap,
- "item", // xmlName //$NON-NLS-1$
- "Item", // uiName,
- null, // TODO SDK URL
- null, // extraAttribute
- null, // childrenElements,
- false /* mandatory */);
-
- ElementDescriptor sub_group = createElement(styleMap,
- "group", // xmlName //$NON-NLS-1$
- "Group", // uiName,
- null, // TODO SDK URL
- null, // extraAttribute
- new ElementDescriptor[] { sub_item }, // childrenElements,
- false /* mandatory */);
-
- ElementDescriptor sub_menu = createElement(styleMap,
- TAG_MENU, // xmlName
- "Sub-Menu", // uiName,
- null, // TODO SDK URL
- null, // extraAttribute
- new ElementDescriptor[] { sub_item, sub_group }, // childrenElements,
- true /* mandatory */);
-
- // -- top menu can have all top groups and top items (which can have sub menus)
-
- ElementDescriptor top_item = createElement(styleMap,
- "item", // xmlName //$NON-NLS-1$
- "Item", // uiName,
- null, // TODO SDK URL
- null, // extraAttribute
- new ElementDescriptor[] { sub_menu }, // childrenElements,
- false /* mandatory */);
-
- ElementDescriptor top_group = createElement(styleMap,
- "group", // xmlName //$NON-NLS-1$
- "Group", // uiName,
- null, // TODO SDK URL
- null, // extraAttribute
- new ElementDescriptor[] { top_item }, // childrenElements,
- false /* mandatory */);
-
- XmlnsAttributeDescriptor xmlns = new XmlnsAttributeDescriptor(ANDROID_NS_NAME,
- ANDROID_URI);
-
- updateElement(mDescriptor, styleMap, "Menu", xmlns); //$NON-NLS-1$
- mDescriptor.setChildren(new ElementDescriptor[] { top_item, top_group });
- }
-
- /**
- * Returns a new ElementDescriptor constructed from the information given here
- * and the javadoc & attributes extracted from the style map if any.
- */
- private ElementDescriptor createElement(
- Map<String, DeclareStyleableInfo> styleMap,
- String xmlName, String uiName, String sdkUrl,
- AttributeDescriptor extraAttribute,
- ElementDescriptor[] childrenElements, boolean mandatory) {
-
- ElementDescriptor element = new ElementDescriptor(xmlName, uiName, null, sdkUrl,
- null, childrenElements, mandatory);
-
- return updateElement(element, styleMap,
- getStyleName(xmlName),
- extraAttribute);
- }
-
- /**
- * Updates an ElementDescriptor with the javadoc & attributes extracted from the style
- * map if any.
- */
- private ElementDescriptor updateElement(ElementDescriptor element,
- Map<String, DeclareStyleableInfo> styleMap,
- String styleName,
- AttributeDescriptor extraAttribute) {
- ArrayList<AttributeDescriptor> descs = new ArrayList<AttributeDescriptor>();
-
- DeclareStyleableInfo style = styleMap != null ? styleMap.get(styleName) : null;
- if (style != null) {
- DescriptorsUtils.appendAttributes(descs,
- null, // elementName
- ANDROID_URI,
- style.getAttributes(),
- null, // requiredAttributes
- null); // overrides
- element.setTooltip(style.getJavaDoc());
- }
-
- if (extraAttribute != null) {
- descs.add(extraAttribute);
- }
-
- element.setAttributes(descs.toArray(new AttributeDescriptor[descs.size()]));
- return element;
- }
-
- /**
- * Returns the style name (i.e. the <declare-styleable> name found in attrs.xml)
- * for a given XML element name.
- * <p/>
- * The rule is that all elements have for style name:
- * - their xml name capitalized
- * - a "Menu" prefix, except for <menu> itself which is just "Menu".
- */
- private String getStyleName(String xmlName) {
- String styleName = AdtUtils.capitalize(xmlName);
-
- // This is NOT the UI Name but the expected internal style name
- final String MENU_STYLE_BASE_NAME = "Menu"; //$NON-NLS-1$
-
- if (!styleName.equals(MENU_STYLE_BASE_NAME)) {
- styleName = MENU_STYLE_BASE_NAME + styleName;
- }
- return styleName;
- }
-}