aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/export/ExportLinksPart.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/export/ExportLinksPart.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/export/ExportLinksPart.java124
1 files changed, 124 insertions, 0 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/export/ExportLinksPart.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/export/ExportLinksPart.java
new file mode 100644
index 000000000..85a2165cc
--- /dev/null
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/export/ExportLinksPart.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2010 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.export;
+
+import com.android.ide.eclipse.adt.AdtPlugin;
+import com.android.ide.eclipse.adt.internal.editors.ui.SectionHelper.ManifestSectionPart;
+
+import org.eclipse.jface.text.DocumentEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.ui.forms.events.HyperlinkEvent;
+import org.eclipse.ui.forms.events.IHyperlinkListener;
+import org.eclipse.ui.forms.widgets.FormText;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Section;
+
+/**
+ * Links section part for export properties page.
+ * Displays some help and some links/actions for the user to use.
+ */
+final class ExportLinksPart extends ManifestSectionPart {
+
+ private FormText mFormText;
+
+ public ExportLinksPart(Composite body, FormToolkit toolkit, ExportEditor editor) {
+ super(body, toolkit, Section.TWISTIE | Section.EXPANDED, true /* description */);
+ Section section = getSection();
+ section.setText("Links");
+ section.setDescription("TODO SOME TEXT HERE. You can also edit the XML directly.");
+
+ final Composite table = createTableLayout(toolkit, 2 /* numColumns */);
+
+ StringBuffer buf = new StringBuffer();
+ buf.append("<form>"); //$NON-NLS-1$
+
+ buf.append("<li style=\"image\" value=\"android_img\"><a href=\"action_dosomething\">");
+ buf.append("TODO Custom Action");
+ buf.append("</a>"); //$NON-NLS-1$
+ buf.append(": blah blah do something (like build/export).");
+ buf.append("</li>"); //$NON-NLS-1$
+
+ buf.append(String.format("<li style=\"image\" value=\"android_img\"><a href=\"page:%1$s\">", //$NON-NLS-1$
+ ExportEditor.TEXT_EDITOR_ID));
+ buf.append("XML Source");
+ buf.append("</a>"); //$NON-NLS-1$
+ buf.append(": Directly edit the AndroidManifest.xml file.");
+ buf.append("</li>"); //$NON-NLS-1$
+
+ buf.append("<li style=\"image\" value=\"android_img\">"); //$NON-NLS-1$
+ buf.append("<a href=\"http://code.google.com/android/devel/bblocks-manifest.html\">Documentation</a>: Documentation from the Android SDK for AndroidManifest.xml."); //$NON-NLS-1$
+ buf.append("</li>"); //$NON-NLS-1$
+ buf.append("</form>"); //$NON-NLS-1$
+
+ mFormText = createFormText(table, toolkit, true, buf.toString(),
+ false /* setupLayoutData */);
+
+ Image androidLogo = AdtPlugin.getAndroidLogo();
+ mFormText.setImage("android_img", androidLogo); //$NON-NLS-1$
+
+ // Listener for default actions (page change, URL web browser)
+ mFormText.addHyperlinkListener(editor.createHyperlinkListener());
+
+ mFormText.addHyperlinkListener(new IHyperlinkListener() {
+ @Override
+ public void linkExited(HyperlinkEvent e) {
+ // pass
+ }
+
+ @Override
+ public void linkEntered(HyperlinkEvent e) {
+ // pass
+ }
+
+ @Override
+ public void linkActivated(HyperlinkEvent e) {
+ String link = e.data.toString();
+ if ("action_dosomething".equals(link)) {
+ MessageBox mb = new MessageBox(table.getShell(), SWT.OK);
+ mb.setText("Custom Action Invoked");
+ mb.open();
+ }
+ }
+ });
+ }
+
+ /**
+ * Called after all pages have been created, to let the parts initialize their
+ * content based on the document's model.
+ * <p/>
+ * The model should be acceded via the {@link ExportEditor}.
+ *
+ * @param editor The {@link ExportEditor} instance.
+ */
+ public void onModelInit(ExportEditor editor) {
+ // pass
+ }
+
+ /**
+ * Called after the document model has been changed. The model should be acceded via
+ * the {@link ExportEditor} (e.g. getDocument, wrapRewriteSession)
+ *
+ * @param editor The {@link ExportEditor} instance.
+ * @param event Specification of changes applied to document.
+ */
+ public void onModelChanged(ExportEditor editor, DocumentEvent event) {
+ // pass
+ }
+}