diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/ListViewTypeMenu.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/ListViewTypeMenu.java | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/ListViewTypeMenu.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/ListViewTypeMenu.java deleted file mode 100644 index 4577f8d12..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/ListViewTypeMenu.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Copyright (C) 2011 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.layout.gle2; - -import static com.android.SdkConstants.ANDROID_LAYOUT_RESOURCE_PREFIX; -import static com.android.ide.eclipse.adt.internal.editors.layout.gle2.LayoutMetadata.KEY_LV_FOOTER; -import static com.android.ide.eclipse.adt.internal.editors.layout.gle2.LayoutMetadata.KEY_LV_HEADER; -import static com.android.ide.eclipse.adt.internal.editors.layout.gle2.LayoutMetadata.KEY_LV_ITEM; - -import com.android.annotations.NonNull; -import com.android.annotations.Nullable; -import com.android.ide.common.rendering.api.Capability; -import com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditorDelegate; -import com.android.ide.eclipse.adt.internal.editors.layout.uimodel.UiViewElementNode; -import com.android.ide.eclipse.adt.internal.resources.CyclicDependencyValidator; -import com.android.ide.eclipse.adt.internal.ui.ResourceChooser; -import com.android.resources.ResourceType; - -import org.eclipse.core.resources.IFile; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.ActionContributionItem; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.action.Separator; -import org.eclipse.jface.window.Window; -import org.eclipse.swt.widgets.Menu; -import org.w3c.dom.Node; - -/** - * "Preview List Content" context menu which lists available data types and layouts - * the user can choose to view the ListView as. - */ -public class ListViewTypeMenu extends SubmenuAction { - /** Associated canvas */ - private final LayoutCanvas mCanvas; - /** When true, this menu is for a grid rather than a simple list */ - private boolean mGrid; - /** When true, this menu is for a spinner rather than a simple list */ - private boolean mSpinner; - - /** - * Creates a "Preview List Content" menu - * - * @param canvas associated canvas - * @param isGrid whether the menu is for a grid rather than a list - * @param isSpinner whether the menu is for a spinner rather than a list - */ - public ListViewTypeMenu(LayoutCanvas canvas, boolean isGrid, boolean isSpinner) { - super(isGrid ? "Preview Grid Content" : isSpinner ? "Preview Spinner Layout" - : "Preview List Content"); - mCanvas = canvas; - mGrid = isGrid; - mSpinner = isSpinner; - } - - @Override - protected void addMenuItems(Menu menu) { - GraphicalEditorPart graphicalEditor = mCanvas.getEditorDelegate().getGraphicalEditor(); - if (graphicalEditor.renderingSupports(Capability.ADAPTER_BINDING)) { - IAction action = new PickLayoutAction("Choose Layout...", KEY_LV_ITEM); - new ActionContributionItem(action).fill(menu, -1); - new Separator().fill(menu, -1); - - String selected = getSelectedLayout(); - if (selected != null) { - if (selected.startsWith(ANDROID_LAYOUT_RESOURCE_PREFIX)) { - selected = selected.substring(ANDROID_LAYOUT_RESOURCE_PREFIX.length()); - } - } - - if (mSpinner) { - action = new SetListTypeAction("Spinner Item", - "simple_spinner_item", selected); //$NON-NLS-1$ - new ActionContributionItem(action).fill(menu, -1); - action = new SetListTypeAction("Spinner Dropdown Item", - "simple_spinner_dropdown_item", selected); //$NON-NLS-1$ - new ActionContributionItem(action).fill(menu, -1); - return; - } - - action = new SetListTypeAction("Simple List Item", - "simple_list_item_1", selected); //$NON-NLS-1$ - new ActionContributionItem(action).fill(menu, -1); - action = new SetListTypeAction("Simple 2-Line List Item", - "simple_list_item_2", //$NON-NLS-1$ - selected); - new ActionContributionItem(action).fill(menu, -1); - action = new SetListTypeAction("Checked List Item", - "simple_list_item_checked", //$NON-NLS-1$ - selected); - new ActionContributionItem(action).fill(menu, -1); - action = new SetListTypeAction("Single Choice List Item", - "simple_list_item_single_choice", //$NON-NLS-1$ - selected); - new ActionContributionItem(action).fill(menu, -1); - action = new SetListTypeAction("Multiple Choice List Item", - "simple_list_item_multiple_choice", //$NON-NLS-1$ - selected); - if (!mGrid) { - new Separator().fill(menu, -1); - action = new SetListTypeAction("Simple Expandable List Item", - "simple_expandable_list_item_1", selected); //$NON-NLS-1$ - new ActionContributionItem(action).fill(menu, -1); - action = new SetListTypeAction("Simple 2-Line Expandable List Item", - "simple_expandable_list_item_2", //$NON-NLS-1$ - selected); - new ActionContributionItem(action).fill(menu, -1); - - new Separator().fill(menu, -1); - action = new PickLayoutAction("Choose Header...", KEY_LV_HEADER); - new ActionContributionItem(action).fill(menu, -1); - action = new PickLayoutAction("Choose Footer...", KEY_LV_FOOTER); - new ActionContributionItem(action).fill(menu, -1); - } - } else { - // Should we just hide the menu item instead? - addDisabledMessageItem( - "Not supported for this SDK version; try changing the Render Target"); - } - } - - private class SetListTypeAction extends Action { - private final String mLayout; - - public SetListTypeAction(String title, String layout, String selected) { - super(title, IAction.AS_RADIO_BUTTON); - mLayout = layout; - - if (layout.equals(selected)) { - setChecked(true); - } - } - - @Override - public void run() { - if (isChecked()) { - setNewType(KEY_LV_ITEM, ANDROID_LAYOUT_RESOURCE_PREFIX + mLayout); - } - } - } - - /** - * Action which brings up a resource chooser to choose an arbitrary layout as the - * layout to be previewed in the list. - */ - private class PickLayoutAction extends Action { - private final String mType; - - public PickLayoutAction(String title, String type) { - super(title, IAction.AS_PUSH_BUTTON); - mType = type; - } - - @Override - public void run() { - LayoutEditorDelegate delegate = mCanvas.getEditorDelegate(); - IFile file = delegate.getEditor().getInputFile(); - GraphicalEditorPart editor = delegate.getGraphicalEditor(); - ResourceChooser dlg = ResourceChooser.create(editor, ResourceType.LAYOUT) - .setInputValidator(CyclicDependencyValidator.create(file)) - .setInitialSize(85, 10) - .setCurrentResource(getSelectedLayout()); - int result = dlg.open(); - if (result == ResourceChooser.CLEAR_RETURN_CODE) { - setNewType(mType, null); - } else if (result == Window.OK) { - String newType = dlg.getCurrentResource(); - setNewType(mType, newType); - } - } - } - - @Nullable - private String getSelectedLayout() { - String layout = null; - SelectionManager selectionManager = mCanvas.getSelectionManager(); - for (SelectionItem item : selectionManager.getSelections()) { - UiViewElementNode node = item.getViewInfo().getUiViewNode(); - if (node != null) { - Node xmlNode = node.getXmlNode(); - layout = LayoutMetadata.getProperty(xmlNode, KEY_LV_ITEM); - if (layout != null) { - return layout; - } - } - } - - return null; - } - - private void setNewType(@NonNull String type, @Nullable String layout) { - LayoutEditorDelegate delegate = mCanvas.getEditorDelegate(); - GraphicalEditorPart graphicalEditor = delegate.getGraphicalEditor(); - SelectionManager selectionManager = mCanvas.getSelectionManager(); - - for (SelectionItem item : selectionManager.getSnapshot()) { - UiViewElementNode node = item.getViewInfo().getUiViewNode(); - if (node != null) { - Node xmlNode = node.getXmlNode(); - LayoutMetadata.setProperty(delegate.getEditor(), xmlNode, type, layout); - } - } - - // Refresh - graphicalEditor.recomputeLayout(); - mCanvas.redraw(); - } -} |