aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationMenuListener.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationMenuListener.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationMenuListener.java290
1 files changed, 0 insertions, 290 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationMenuListener.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationMenuListener.java
deleted file mode 100644
index a791c63f8..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationMenuListener.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Copyright (C) 2012 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.configuration;
-
-import static com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderPreviewMode.CUSTOM;
-import static com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderPreviewMode.DEFAULT;
-import static com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderPreviewMode.INCLUDES;
-import static com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderPreviewMode.LOCALES;
-import static com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderPreviewMode.NONE;
-import static com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderPreviewMode.SCREENS;
-import static com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderPreviewMode.VARIATIONS;
-
-import com.android.annotations.NonNull;
-import com.android.annotations.Nullable;
-import com.android.ide.common.resources.ResourceFolder;
-import com.android.ide.common.resources.configuration.FolderConfiguration;
-import com.android.ide.eclipse.adt.AdtPlugin;
-import com.android.ide.eclipse.adt.AdtUtils;
-import com.android.ide.eclipse.adt.internal.editors.IconFactory;
-import com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditorDelegate;
-import com.android.ide.eclipse.adt.internal.editors.layout.gle2.IncludeFinder;
-import com.android.ide.eclipse.adt.internal.editors.layout.gle2.IncludeFinder.Reference;
-import com.android.ide.eclipse.adt.internal.editors.layout.gle2.LayoutCanvas;
-import com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderPreviewManager;
-import com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderPreviewMode;
-import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs;
-import com.android.ide.eclipse.adt.internal.resources.manager.ResourceManager;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
-
-import java.util.List;
-
-/**
- * The {@linkplain ConfigurationMenuListener} class is responsible for
- * generating the configuration menu in the {@link ConfigurationChooser}.
- */
-class ConfigurationMenuListener extends SelectionAdapter {
- private static final String ICON_NEW_CONFIG = "newConfig"; //$NON-NLS-1$
- private static final int ACTION_SELECT_CONFIG = 1;
- private static final int ACTION_CREATE_CONFIG_FILE = 2;
- private static final int ACTION_ADD = 3;
- private static final int ACTION_DELETE_ALL = 4;
- private static final int ACTION_PREVIEW_MODE = 5;
-
- private final ConfigurationChooser mConfigChooser;
- private final int mAction;
- private final IFile mResource;
- private final RenderPreviewMode mMode;
-
- ConfigurationMenuListener(
- @NonNull ConfigurationChooser configChooser,
- int action,
- @Nullable IFile resource,
- @Nullable RenderPreviewMode mode) {
- mConfigChooser = configChooser;
- mAction = action;
- mResource = resource;
- mMode = mode;
- }
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- switch (mAction) {
- case ACTION_SELECT_CONFIG: {
- try {
- AdtPlugin.openFile(mResource, null, false);
- } catch (PartInitException ex) {
- AdtPlugin.log(ex, null);
- }
- return;
- }
- case ACTION_CREATE_CONFIG_FILE: {
- ConfigurationClient client = mConfigChooser.getClient();
- if (client != null) {
- client.createConfigFile();
- }
- return;
- }
- }
-
- IEditorPart activeEditor = AdtUtils.getActiveEditor();
- LayoutEditorDelegate delegate = LayoutEditorDelegate.fromEditor(activeEditor);
- IFile editedFile = mConfigChooser.getEditedFile();
-
- if (delegate == null || editedFile == null) {
- return;
- }
- // (Only do this when the two files are in the same project)
- IProject project = delegate.getEditor().getProject();
- if (project == null ||
- !project.equals(editedFile.getProject())) {
- return;
- }
- LayoutCanvas canvas = delegate.getGraphicalEditor().getCanvasControl();
- RenderPreviewManager previewManager = canvas.getPreviewManager();
-
- switch (mAction) {
- case ACTION_ADD: {
- previewManager.addAsThumbnail();
- break;
- }
- case ACTION_PREVIEW_MODE: {
- previewManager.selectMode(mMode);
- break;
- }
- case ACTION_DELETE_ALL: {
- previewManager.deleteManualPreviews();
- break;
- }
- default: assert false : mAction;
- }
- canvas.setFitScale(true /*onlyZoomOut*/, false /*allowZoomIn*/);
- canvas.redraw();
- }
-
- static void show(ConfigurationChooser chooser, ToolItem combo) {
- Menu menu = new Menu(chooser.getShell(), SWT.POP_UP);
- RenderPreviewMode mode = AdtPrefs.getPrefs().getRenderPreviewMode();
-
- // Configuration Previews
- create(menu, "Add As Thumbnail...",
- new ConfigurationMenuListener(chooser, ACTION_ADD, null, null),
- SWT.PUSH, false);
- if (mode == RenderPreviewMode.CUSTOM) {
- MenuItem item = create(menu, "Delete All Thumbnails",
- new ConfigurationMenuListener(chooser, ACTION_DELETE_ALL, null, null),
- SWT.PUSH, false);
- IEditorPart activeEditor = AdtUtils.getActiveEditor();
- LayoutEditorDelegate delegate = LayoutEditorDelegate.fromEditor(activeEditor);
- if (delegate != null) {
- LayoutCanvas canvas = delegate.getGraphicalEditor().getCanvasControl();
- RenderPreviewManager previewManager = canvas.getPreviewManager();
- if (!previewManager.hasManualPreviews()) {
- item.setEnabled(false);
- }
- }
- }
-
- @SuppressWarnings("unused")
- MenuItem configSeparator = new MenuItem(menu, SWT.SEPARATOR);
-
- create(menu, "Preview Representative Sample",
- new ConfigurationMenuListener(chooser, ACTION_PREVIEW_MODE, null,
- DEFAULT), SWT.RADIO, mode == DEFAULT);
- create(menu, "Preview All Screen Sizes",
- new ConfigurationMenuListener(chooser, ACTION_PREVIEW_MODE, null,
- SCREENS), SWT.RADIO, mode == SCREENS);
-
- MenuItem localeItem = create(menu, "Preview All Locales",
- new ConfigurationMenuListener(chooser, ACTION_PREVIEW_MODE, null,
- LOCALES), SWT.RADIO, mode == LOCALES);
- if (chooser.getLocaleList().size() <= 1) {
- localeItem.setEnabled(false);
- }
-
- boolean canPreviewIncluded = false;
- IProject project = chooser.getProject();
- if (project != null) {
- IncludeFinder finder = IncludeFinder.get(project);
- final List<Reference> includedBy = finder.getIncludedBy(chooser.getEditedFile());
- canPreviewIncluded = includedBy != null && !includedBy.isEmpty();
- }
- //if (!graphicalEditor.renderingSupports(Capability.EMBEDDED_LAYOUT)) {
- // canPreviewIncluded = false;
- //}
- MenuItem includedItem = create(menu, "Preview Included",
- new ConfigurationMenuListener(chooser, ACTION_PREVIEW_MODE, null,
- INCLUDES), SWT.RADIO, mode == INCLUDES);
- if (!canPreviewIncluded) {
- includedItem.setEnabled(false);
- }
-
- IFile file = chooser.getEditedFile();
- List<IFile> variations = AdtUtils.getResourceVariations(file, true);
- MenuItem variationsItem = create(menu, "Preview Layout Versions",
- new ConfigurationMenuListener(chooser, ACTION_PREVIEW_MODE, null,
- VARIATIONS), SWT.RADIO, mode == VARIATIONS);
- if (variations.size() <= 1) {
- variationsItem.setEnabled(false);
- }
-
- create(menu, "Manual Previews",
- new ConfigurationMenuListener(chooser, ACTION_PREVIEW_MODE, null,
- CUSTOM), SWT.RADIO, mode == CUSTOM);
- create(menu, "None",
- new ConfigurationMenuListener(chooser, ACTION_PREVIEW_MODE, null,
- NONE), SWT.RADIO, mode == NONE);
-
- if (variations.size() > 1) {
- @SuppressWarnings("unused")
- MenuItem separator = new MenuItem(menu, SWT.SEPARATOR);
-
- ResourceManager manager = ResourceManager.getInstance();
- for (final IFile resource : variations) {
- IFolder parent = (IFolder) resource.getParent();
- ResourceFolder parentResource = manager.getResourceFolder(parent);
- FolderConfiguration configuration = parentResource.getConfiguration();
- String title = configuration.toDisplayString();
-
- MenuItem item = create(menu, title,
- new ConfigurationMenuListener(chooser, ACTION_SELECT_CONFIG,
- resource, null),
- SWT.CHECK, false);
-
- if (file != null) {
- boolean selected = file.equals(resource);
- if (selected) {
- item.setSelection(true);
- item.setEnabled(false);
- }
- }
- }
- }
-
- Configuration configuration = chooser.getConfiguration();
- if (configuration.getEditedConfig() != null &&
- !configuration.getEditedConfig().equals(configuration.getFullConfig())) {
- if (variations.size() > 0) {
- @SuppressWarnings("unused")
- MenuItem separator = new MenuItem(menu, SWT.SEPARATOR);
- }
-
- // Add action for creating a new configuration
- MenuItem item = create(menu, "Create New...",
- new ConfigurationMenuListener(chooser, ACTION_CREATE_CONFIG_FILE,
- null, null),
- SWT.PUSH, false);
- item.setImage(IconFactory.getInstance().getIcon(ICON_NEW_CONFIG));
- }
-
- Rectangle bounds = combo.getBounds();
- Point location = new Point(bounds.x, bounds.y + bounds.height);
- location = combo.getParent().toDisplay(location);
- menu.setLocation(location.x, location.y);
- menu.setVisible(true);
- }
-
- @NonNull
- public static MenuItem create(@NonNull Menu menu, String title,
- ConfigurationMenuListener listener, int style, boolean selected) {
- MenuItem item = new MenuItem(menu, style);
- item.setText(title);
- item.addSelectionListener(listener);
- if (selected) {
- item.setSelection(true);
- }
- return item;
- }
-
- @NonNull
- static MenuItem addTogglePreviewModeAction(
- @NonNull Menu menu,
- @NonNull String title,
- @NonNull ConfigurationChooser chooser,
- @NonNull RenderPreviewMode mode) {
- boolean selected = AdtPrefs.getPrefs().getRenderPreviewMode() == mode;
- if (selected) {
- mode = RenderPreviewMode.NONE;
- }
- return create(menu, title,
- new ConfigurationMenuListener(chooser, ACTION_PREVIEW_MODE, null, mode),
- SWT.CHECK, selected);
- }
-}