aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/pages/ApplicationAttributesPart.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/pages/ApplicationAttributesPart.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/pages/ApplicationAttributesPart.java175
1 files changed, 0 insertions, 175 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/pages/ApplicationAttributesPart.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/pages/ApplicationAttributesPart.java
deleted file mode 100644
index 7d3f6a89f..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/pages/ApplicationAttributesPart.java
+++ /dev/null
@@ -1,175 +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.pages;
-
-import com.android.ide.eclipse.adt.AdtPlugin;
-import com.android.ide.eclipse.adt.internal.editors.descriptors.AttributeDescriptor;
-import com.android.ide.eclipse.adt.internal.editors.descriptors.XmlnsAttributeDescriptor;
-import com.android.ide.eclipse.adt.internal.editors.manifest.ManifestEditor;
-import com.android.ide.eclipse.adt.internal.editors.ui.UiElementPart;
-import com.android.ide.eclipse.adt.internal.editors.uimodel.IUiUpdateListener;
-import com.android.ide.eclipse.adt.internal.editors.uimodel.UiAttributeNode;
-import com.android.ide.eclipse.adt.internal.editors.uimodel.UiElementNode;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * Application's attributes section part for Application page.
- * <p/>
- * This part is displayed at the top of the application page and displays all the possible
- * attributes of an application node in the AndroidManifest (icon, class name, label, etc.)
- */
-final class ApplicationAttributesPart extends UiElementPart {
-
- /** Listen to changes to the UI node for <application> and updates the UI */
- private AppNodeUpdateListener mAppNodeUpdateListener;
- /** ManagedForm needed to create the UI controls */
- private IManagedForm mManagedForm;
-
- public ApplicationAttributesPart(Composite body, FormToolkit toolkit, ManifestEditor editor,
- UiElementNode applicationUiNode) {
- super(body, toolkit, editor, applicationUiNode,
- "Application Attributes", // section title
- "Defines the attributes specific to the application.", // section description
- Section.TWISTIE | Section.EXPANDED);
- }
-
- /**
- * Changes and refreshes the Application UI node handle by the this part.
- */
- @Override
- public void setUiElementNode(UiElementNode uiElementNode) {
- super.setUiElementNode(uiElementNode);
-
- createUiAttributes(mManagedForm);
- }
-
- /* (non-java doc)
- * Create the controls to edit the attributes for the given ElementDescriptor.
- * <p/>
- * This MUST not be called by the constructor. Instead it must be called from
- * <code>initialize</code> (i.e. right after the form part is added to the managed form.)
- * <p/>
- * Derived classes can override this if necessary.
- *
- * @param managedForm The owner managed form
- */
- @Override
- protected void createFormControls(final IManagedForm managedForm) {
- mManagedForm = managedForm;
- setTable(createTableLayout(managedForm.getToolkit(), 4 /* numColumns */));
-
- mAppNodeUpdateListener = new AppNodeUpdateListener();
- getUiElementNode().addUpdateListener(mAppNodeUpdateListener);
-
- createUiAttributes(mManagedForm);
- }
-
- @Override
- public void dispose() {
- super.dispose();
- if (getUiElementNode() != null && mAppNodeUpdateListener != null) {
- getUiElementNode().removeUpdateListener(mAppNodeUpdateListener);
- mAppNodeUpdateListener = null;
- }
- }
-
- @Override
- protected void createUiAttributes(IManagedForm managedForm) {
- Composite table = getTable();
- if (table == null || managedForm == null) {
- return;
- }
-
- // Remove any old UI controls
- for (Control c : table.getChildren()) {
- c.dispose();
- }
-
- UiElementNode uiElementNode = getUiElementNode();
- AttributeDescriptor[] attr_desc_list = uiElementNode.getAttributeDescriptors();
-
- // Display the attributes in 2 columns:
- // attr 0 | attr 4
- // attr 1 | attr 5
- // attr 2 | attr 6
- // attr 3 | attr 7
- // that is we have to fill the grid in order 0, 4, 1, 5, 2, 6, 3, 7
- // thus index = i/2 + (i is odd * n/2)
- int n = attr_desc_list.length;
- int n2 = (int) Math.ceil(n / 2.0);
- for (int i = 0; i < n; i++) {
- AttributeDescriptor attr_desc = attr_desc_list[i / 2 + (i & 1) * n2];
- if (attr_desc instanceof XmlnsAttributeDescriptor) {
- // Do not show hidden attributes
- continue;
- }
-
- UiAttributeNode ui_attr = uiElementNode.findUiAttribute(attr_desc);
- if (ui_attr != null) {
- ui_attr.createUiControl(table, managedForm);
- } else {
- // The XML has an extra attribute which wasn't declared in
- // AndroidManifestDescriptors. This is not a problem, we just ignore it.
- AdtPlugin.log(IStatus.WARNING,
- "Attribute %1$s not declared in node %2$s, ignored.", //$NON-NLS-1$
- attr_desc.getXmlLocalName(),
- uiElementNode.getDescriptor().getXmlName());
- }
- }
-
- if (n == 0) {
- createLabel(table, managedForm.getToolkit(),
- "No attributes to display, waiting for SDK to finish loading...",
- null /* tooltip */ );
- }
-
- // Initialize the enabled/disabled state
- if (mAppNodeUpdateListener != null) {
- mAppNodeUpdateListener.uiElementNodeUpdated(uiElementNode, null /* state, not used */);
- }
-
- // Tell the section that the layout has changed.
- layoutChanged();
- }
-
- /**
- * This listener synchronizes the UI with the actual presence of the application XML node.
- */
- private class AppNodeUpdateListener implements IUiUpdateListener {
- @Override
- public void uiElementNodeUpdated(UiElementNode ui_node, UiUpdateState state) {
- // The UiElementNode for the application XML node always exists, even
- // if there is no corresponding XML node in the XML file.
- //
- // We enable the UI here if the XML node is not null.
- Composite table = getTable();
- boolean exists = (ui_node.getXmlNode() != null);
- if (table != null && table.getEnabled() != exists) {
- table.setEnabled(exists);
- for (Control c : table.getChildren()) {
- c.setEnabled(exists);
- }
- }
- }
- }
-}