Merge branch 'readonly-p4-master'
This commit is contained in:
committed by
The Android Open Source Project
commit
6618c0165d
@@ -159,9 +159,9 @@ public final class ManifestEditor extends AndroidEditor {
|
||||
protected void xmlModelChanged(Document xml_doc) {
|
||||
// create the ui root node on demand.
|
||||
initUiRootNode(false /*force*/);
|
||||
|
||||
|
||||
loadFromXml(xml_doc);
|
||||
|
||||
|
||||
super.xmlModelChanged(xml_doc);
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ public final class ManifestEditor extends AndroidEditor {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void onDescriptorsChanged(UiElementNode oldManifestNode) {
|
||||
mUiManifestNode.reloadFromXmlNode(oldManifestNode.getXmlNode());
|
||||
|
||||
@@ -321,7 +321,6 @@ public final class ManifestEditor extends AndroidEditor {
|
||||
if (mUiManifestNode != null && force == false) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
AndroidManifestDescriptors manifestDescriptor = getManifestDescriptors();
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* A selection dialog to select the type of the new element node to
|
||||
* created, either in the application node or the selected sub node.
|
||||
* create, either in the application node or the selected sub node.
|
||||
*/
|
||||
public class NewItemSelectionDialog extends AbstractElementListSelectionDialog {
|
||||
|
||||
|
||||
@@ -30,16 +30,15 @@ import java.util.ArrayList;
|
||||
*/
|
||||
class UiModelTreeContentProvider implements ITreeContentProvider {
|
||||
|
||||
/** The root {@link UiElementNode} which contains all the elements that are to be
|
||||
* manipulated by this tree view. In general this is the manifest UI node. */
|
||||
private UiElementNode mUiRootNode;
|
||||
/** The descriptor of the elements to be displayed as root in this tree view. All elements
|
||||
* of the same type in the root will be displayed. */
|
||||
private ElementDescriptor[] mDescriptorFilters;
|
||||
/** Object which provides the uiRootNode */
|
||||
private final UiRootNodeProvider mUiRootNodeProvider;
|
||||
|
||||
public UiModelTreeContentProvider(UiElementNode uiRootNode,
|
||||
public UiModelTreeContentProvider(UiRootNodeProvider rootNodeProvider,
|
||||
ElementDescriptor[] descriptorFilters) {
|
||||
mUiRootNode = uiRootNode;
|
||||
mUiRootNodeProvider = rootNodeProvider;
|
||||
mDescriptorFilters = descriptorFilters;
|
||||
}
|
||||
|
||||
@@ -87,8 +86,9 @@ class UiModelTreeContentProvider implements ITreeContentProvider {
|
||||
*/
|
||||
public Object[] getElements(Object inputElement) {
|
||||
ArrayList<UiElementNode> roots = new ArrayList<UiElementNode>();
|
||||
if (mUiRootNode != null) {
|
||||
for (UiElementNode ui_node : mUiRootNode.getUiChildren()) {
|
||||
UiElementNode uiRootNode = mUiRootNodeProvider.getRootNode();
|
||||
if (uiRootNode != null) {
|
||||
for (UiElementNode ui_node : uiRootNode.getUiChildren()) {
|
||||
if (mDescriptorFilters == null || mDescriptorFilters.length == 0) {
|
||||
roots.add(ui_node);
|
||||
} else {
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright (C) 2009 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.editors.ui.tree;
|
||||
|
||||
import com.android.ide.eclipse.editors.uimodel.UiElementNode;
|
||||
|
||||
/**
|
||||
* An object that can provide a uiRootNode.
|
||||
*/
|
||||
public interface UiRootNodeProvider {
|
||||
/** Returns the UiDocumentNode for the current model. */
|
||||
public abstract UiElementNode getRootNode();
|
||||
}
|
||||
@@ -83,7 +83,8 @@ import java.util.LinkedList;
|
||||
* On the left is a details part that displays all the visible UI attributes for a given
|
||||
* selected UI element node.
|
||||
*/
|
||||
public final class UiTreeBlock extends MasterDetailsBlock implements ICommitXml {
|
||||
public final class UiTreeBlock extends MasterDetailsBlock
|
||||
implements ICommitXml, UiRootNodeProvider {
|
||||
|
||||
/** Height hint for the tree view. Helps the grid layout resize properly on smaller screens. */
|
||||
private static final int TREE_HEIGHT_HINT = 50;
|
||||
@@ -181,6 +182,17 @@ public final class UiTreeBlock extends MasterDetailsBlock implements ICommitXml
|
||||
return mMasterPart;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the {@link UiElementNode} for the current model.
|
||||
* <p/>
|
||||
* This is used by the content provider attached to {@link #mTreeViewer} since
|
||||
* the uiRootNode changes after each call to
|
||||
* {@link #changeRootAndDescriptors(UiElementNode, ElementDescriptor[], boolean)}.
|
||||
*/
|
||||
public UiElementNode getRootNode() {
|
||||
return mUiRootNode;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createMasterPart(final IManagedForm managedForm, Composite parent) {
|
||||
FormToolkit toolkit = managedForm.getToolkit();
|
||||
@@ -239,8 +251,7 @@ public final class UiTreeBlock extends MasterDetailsBlock implements ICommitXml
|
||||
tree.setLayoutData(gd);
|
||||
|
||||
mTreeViewer = new TreeViewer(tree);
|
||||
mTreeViewer.setContentProvider(new UiModelTreeContentProvider(
|
||||
mUiRootNode, mDescriptorFilters));
|
||||
mTreeViewer.setContentProvider(new UiModelTreeContentProvider(this, mDescriptorFilters));
|
||||
mTreeViewer.setLabelProvider(new UiModelTreeLabelProvider());
|
||||
mTreeViewer.setInput("unused"); //$NON-NLS-1$
|
||||
|
||||
|
||||
Reference in New Issue
Block a user