summaryrefslogtreecommitdiff
path: root/src/plugins/android.codeutils/src/com/motorola/studio/android/wizards/buildingblocks/FilteredActionsSelectionDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android.codeutils/src/com/motorola/studio/android/wizards/buildingblocks/FilteredActionsSelectionDialog.java')
-rw-r--r--src/plugins/android.codeutils/src/com/motorola/studio/android/wizards/buildingblocks/FilteredActionsSelectionDialog.java153
1 files changed, 153 insertions, 0 deletions
diff --git a/src/plugins/android.codeutils/src/com/motorola/studio/android/wizards/buildingblocks/FilteredActionsSelectionDialog.java b/src/plugins/android.codeutils/src/com/motorola/studio/android/wizards/buildingblocks/FilteredActionsSelectionDialog.java
new file mode 100644
index 0000000..5399ab3
--- /dev/null
+++ b/src/plugins/android.codeutils/src/com/motorola/studio/android/wizards/buildingblocks/FilteredActionsSelectionDialog.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.motorola.studio.android.wizards.buildingblocks;
+
+import java.util.Comparator;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog;
+
+import com.motorola.studio.android.codeutils.CodeUtilsActivator;
+
+/**
+ * Class that implements a filter dialog to be used by NewLauncherWizardPage class
+ */
+class FilteredActionsSelectionDialog extends FilteredItemsSelectionDialog
+{
+ private final Set<String> categorySet;
+
+ public FilteredActionsSelectionDialog(Shell shell, Set<String> categorySet)
+ {
+ super(shell, true);
+ this.categorySet = categorySet;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createExtendedContentArea(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ protected Control createExtendedContentArea(Composite parent)
+ {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createFilter()
+ */
+ @Override
+ protected ItemsFilter createFilter()
+ {
+ return new ItemsFilter()
+ {
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ItemsFilter#isConsistentItem(java.lang.Object)
+ */
+ @Override
+ public boolean isConsistentItem(Object item)
+ {
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ItemsFilter#matchItem(java.lang.Object)
+ */
+ @Override
+ public boolean matchItem(Object item)
+ {
+ if (!(item instanceof String))
+ {
+ return false;
+ }
+ return matches((String) item);
+ }
+
+ };
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#fillContentProvider(org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.AbstractContentProvider, org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ItemsFilter, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ @Override
+ protected void fillContentProvider(AbstractContentProvider contentProvider,
+ ItemsFilter itemsFilter, IProgressMonitor progressMonitor) throws CoreException
+ {
+ for (String action : categorySet)
+ {
+ contentProvider.add(action, itemsFilter);
+ }
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getDialogSettings()
+ */
+ @Override
+ protected IDialogSettings getDialogSettings()
+ {
+ return CodeUtilsActivator.getDefault().getDialogSettings();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getElementName(java.lang.Object)
+ */
+ @Override
+ public String getElementName(Object item)
+ {
+ return (String) item;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getItemsComparator()
+ */
+ @Override
+ protected Comparator<String> getItemsComparator()
+ {
+ return new Comparator<String>()
+ {
+
+ public int compare(String o1, String o2)
+ {
+ return o1.compareToIgnoreCase(o2);
+ }
+ };
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#validateItem(java.lang.Object)
+ */
+ @Override
+ protected IStatus validateItem(Object item)
+ {
+ IStatus status;
+ if (categorySet.contains(item))
+ {
+ status = new Status(IStatus.OK, CodeUtilsActivator.PLUGIN_ID, "");
+ }
+ else
+ {
+ status = new Status(IStatus.ERROR, CodeUtilsActivator.PLUGIN_ID, "Select an item.");
+ }
+ return status;
+ }
+}