summaryrefslogtreecommitdiff
path: root/src/plugins/android/src/com/motorola/studio/android/wizards/project/SampleSelectionPage.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android/src/com/motorola/studio/android/wizards/project/SampleSelectionPage.java')
-rw-r--r--src/plugins/android/src/com/motorola/studio/android/wizards/project/SampleSelectionPage.java150
1 files changed, 150 insertions, 0 deletions
diff --git a/src/plugins/android/src/com/motorola/studio/android/wizards/project/SampleSelectionPage.java b/src/plugins/android/src/com/motorola/studio/android/wizards/project/SampleSelectionPage.java
new file mode 100644
index 0000000..90141db
--- /dev/null
+++ b/src/plugins/android/src/com/motorola/studio/android/wizards/project/SampleSelectionPage.java
@@ -0,0 +1,150 @@
+/*
+ * 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.project;
+
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.PlatformUI;
+
+import com.motorola.studio.android.AndroidPlugin;
+import com.motorola.studio.android.adt.Sample;
+import com.motorola.studio.android.adt.SdkUtils;
+import com.motorola.studio.android.i18n.AndroidNLS;
+import com.motorola.studio.android.model.AndroidProject;
+
+/**
+ * Sample Selection Wizard Page.
+ */
+public class SampleSelectionPage extends WizardPage
+{
+ private TreeViewer treeViewer;
+
+ final private AndroidProject project;
+
+ private Sample selection = null;
+
+ private final String NEW_PROJECT_SAMPLE_HELP = AndroidPlugin.PLUGIN_ID + ".newproj";
+
+ /**
+ * Constructor
+ * @param project
+ */
+ public SampleSelectionPage(AndroidProject project)
+ {
+ super(AndroidNLS.UI_SampleSelectionPage_TitleSourcePage);
+ this.project = project;
+ setTitle(AndroidNLS.UI_SampleSelectionPage_WizardTitle);
+ setDescription(AndroidNLS.UI_SampleSelectionPage_WizardDescription);
+ setPageComplete(true);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createControl(Composite parent)
+ {
+ initializeDialogUnits(parent);
+ Composite mainComposite = new Composite(parent, SWT.NONE);
+ mainComposite.setLayout(new GridLayout());
+ mainComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
+ mainComposite.setLayout(new GridLayout());
+
+ // Samples Tree Label
+ Label itemsTableLabel = new Label(mainComposite, SWT.NONE);
+ itemsTableLabel.setText(AndroidNLS.UI_SampleSelectionPage_SamplesTreeLabel);
+
+ Composite composite = new Composite(mainComposite, SWT.NONE);
+ composite.setLayout(new GridLayout());
+ composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ // Samples Tree Viewer
+ treeViewer = new TreeViewer(composite, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL);
+ GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, false);
+ layoutData.heightHint = 250;
+ treeViewer.getControl().setLayoutData(layoutData);
+ treeViewer.setContentProvider(new TreeContentProvider(project));
+ treeViewer.setLabelProvider(new TreeLabelProvider());
+ treeViewer.setInput(SdkUtils.getCurrentSdk());
+ treeViewer.expandAll();
+ treeViewer.getTree().addSelectionListener(new SamplesSelectionAdapter(this, project));
+
+ setControl(mainComposite);
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, NEW_PROJECT_SAMPLE_HELP);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.DialogPage#setVisible(boolean)
+ */
+ @Override
+ public void setVisible(boolean visible)
+ {
+ if (visible)
+ {
+ treeViewer.refresh();
+ Tree tree = treeViewer.getTree();
+ tree.deselectAll();
+
+ if (selection != null)
+ {
+ for (TreeItem item : treeViewer.getTree().getItems())
+ {
+ if (item.getData() instanceof Sample)
+ {
+ Sample sample = (Sample) item.getData();
+ if (sample.getName().equals(selection.getName()))
+ {
+ tree.setSelection(item);
+ tree.select(item);
+ project.setSample(sample);
+ setPageComplete(true);
+ }
+ }
+ }
+ }
+ if ((tree.getSelection().length == 0) && (tree.getItemCount() > 0))
+ {
+ tree.setSelection(tree.getItem(0));
+ tree.select(tree.getItem(0));
+ project.setSample((Sample) tree.getItem(0).getData());
+ setPageComplete(true);
+ }
+ }
+ else
+ {
+ selection = project.getSample();
+ setPageComplete(false);
+ }
+ super.setVisible(visible);
+ getContainer().updateButtons();
+ }
+
+ //returns native page when selected or main page
+ @Override
+ public IWizardPage getPreviousPage()
+ {
+ return super.getPreviousPage();
+ }
+
+} \ No newline at end of file