diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/model/UiManifestElementNode.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/model/UiManifestElementNode.java | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/model/UiManifestElementNode.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/model/UiManifestElementNode.java deleted file mode 100644 index 0151d4d46..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/model/UiManifestElementNode.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (C) 2007 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.manifest.model; - -import com.android.SdkConstants; -import com.android.ide.eclipse.adt.internal.editors.descriptors.ElementDescriptor; -import com.android.ide.eclipse.adt.internal.editors.manifest.descriptors.AndroidManifestDescriptors; -import com.android.ide.eclipse.adt.internal.editors.manifest.descriptors.ManifestElementDescriptor; -import com.android.ide.eclipse.adt.internal.editors.uimodel.UiAttributeNode; -import com.android.ide.eclipse.adt.internal.editors.uimodel.UiElementNode; -import com.android.ide.eclipse.adt.internal.sdk.AndroidTargetData; - -import org.w3c.dom.Element; - -/** - * Represents an XML node that can be modified by the user interface in the XML editor. - * <p/> - * Each tree viewer used in the application page's parts needs to keep a model representing - * each underlying node in the tree. This interface represents the base type for such a node. - * <p/> - * Each node acts as an intermediary model between the actual XML model (the real data support) - * and the tree viewers or the corresponding page parts. - * <p/> - * Element nodes don't contain data per se. Their data is contained in their attributes - * as well as their children's attributes, see {@link UiAttributeNode}. - * <p/> - * The structure of a given {@link UiElementNode} is declared by a corresponding - * {@link ElementDescriptor}. - */ -public final class UiManifestElementNode extends UiElementNode { - - /** - * Creates a new {@link UiElementNode} described by a given {@link ElementDescriptor}. - * - * @param elementDescriptor The {@link ElementDescriptor} for the XML node. Cannot be null. - */ - public UiManifestElementNode(ManifestElementDescriptor elementDescriptor) { - super(elementDescriptor); - } - - /** - * Computes a short string describing the UI node suitable for tree views. - * Uses the element's attribute "android:name" if present, or the "android:label" one - * followed by the element's name if not repeated. - * - * @return A short string describing the UI node suitable for tree views. - */ - @Override - public String getShortDescription() { - AndroidTargetData target = getAndroidTarget(); - AndroidManifestDescriptors manifestDescriptors = null; - if (target != null) { - manifestDescriptors = target.getManifestDescriptors(); - } - - String name = getDescriptor().getUiName(); - - if (manifestDescriptors != null && - getXmlNode() != null && - getXmlNode() instanceof Element && - getXmlNode().hasAttributes()) { - - // Application and Manifest nodes have a special treatment: they are unique nodes - // so we don't bother trying to differentiate their strings and we fall back to - // just using the UI name below. - ElementDescriptor desc = getDescriptor(); - if (desc != manifestDescriptors.getManifestElement() && - desc != manifestDescriptors.getApplicationElement()) { - Element elem = (Element) getXmlNode(); - String attr = _Element_getAttributeNS(elem, - SdkConstants.NS_RESOURCES, - AndroidManifestDescriptors.ANDROID_NAME_ATTR); - if (attr == null || attr.length() == 0) { - attr = _Element_getAttributeNS(elem, - SdkConstants.NS_RESOURCES, - AndroidManifestDescriptors.ANDROID_LABEL_ATTR); - } - if (attr != null && attr.length() > 0) { - // If the ui name is repeated in the attribute value, don't use it. - // Typical case is to avoid ".pkg.MyActivity (Activity)". - if (attr.contains(name)) { - return attr; - } else { - return String.format("%1$s (%2$s)", attr, name); - } - } - } - } - - return String.format("%1$s", name); - } - - /** - * Retrieves an attribute value by local name and namespace URI. - * <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] - * , applications must use the value <code>null</code> as the - * <code>namespaceURI</code> parameter for methods if they wish to have - * no namespace. - * <p/> - * Note: This is a wrapper around {@link Element#getAttributeNS(String, String)}. - * In some versions of webtools, the getAttributeNS implementation crashes with an NPE. - * This wrapper will return null instead. - * - * @see Element#getAttributeNS(String, String) - * @see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=318108">https://bugs.eclipse.org/bugs/show_bug.cgi?id=318108</a> - * @return The result from {@link Element#getAttributeNS(String, String)} or or an empty string. - */ - private String _Element_getAttributeNS(Element element, - String namespaceURI, - String localName) { - try { - return element.getAttributeNS(namespaceURI, localName); - } catch (Exception ignore) { - return ""; - } - } -} - |