| /******************************************************************************* |
| * Copyright (c) 2007, 2010 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jdt.ui.wizards; |
| |
| import java.util.List; |
| |
| import org.w3c.dom.Element; |
| |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Control; |
| |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.core.runtime.Status; |
| |
| import org.eclipse.jface.operation.IRunnableContext; |
| |
| import org.eclipse.jdt.core.IJavaElement; |
| |
| /** |
| * A Javadoc export wizard page allows the user to add an additional page to the |
| * Javadoc wizard. |
| * <p> |
| * Clients should extend this class and include the name of their |
| * class in an extension contributed to the jdt.ui's Javadoc export wizard page |
| * extension point (named <code>org.eclipse.jdt.ui.javadocExportWizardPage |
| * </code>). |
| * </p> |
| * |
| * @since 3.4 |
| */ |
| public abstract class JavadocExportWizardPage { |
| |
| /** |
| * The page container. |
| * <p> |
| * This interface is not intended to be implemented by clients. |
| * </p> |
| */ |
| public static interface IJavadocExportWizardPageContainer { |
| |
| /** |
| * Returns a runnable context top be used inside this wizard for long running |
| * operations |
| * |
| * @return a runnable context |
| */ |
| public IRunnableContext getRunnableContext(); |
| |
| /** |
| * Calling this method will update status lines and button enablement in the |
| * wizard page container |
| */ |
| public void statusUpdated(); |
| |
| /** |
| * Returns the currently configured VM options. |
| * @return the VM Options |
| */ |
| public String[] getConfiguredVMOptions(); |
| |
| /** |
| * Returns the currently configured Javadoc command options. |
| * @return the Javadoc command options |
| */ |
| public String[] getConfiguredJavadocOptions(); |
| |
| /** |
| * Returns the Java elements selected for Javadoc generation |
| * |
| * @return the Java elements selected for Javadoc generation |
| */ |
| public IJavaElement[] getSelectedJavaElements(); |
| } |
| |
| |
| private IStatus fPageStatus= Status.OK_STATUS; |
| private IJavadocExportWizardPageContainer fContainer; |
| |
| /** |
| * Creates the content of this page under the given parent composite. |
| * |
| * @param parent the parent composite |
| * @return return the created content |
| */ |
| public abstract Control createContents(Composite parent); |
| |
| |
| /** |
| * Returns the status of the page. The page is considered valid ('Ok' and 'Next' enabled) |
| * when the severity of the status is {@link IStatus#OK} or {@link IStatus#WARNING}. |
| * The page is invalid when the severity is {@link IStatus#ERROR}. |
| * |
| * @return the page status |
| * @see #setStatus(IStatus) to set the page status |
| */ |
| public final IStatus getStatus() { |
| return fPageStatus; |
| } |
| |
| /** |
| * Sets the page status. The page status severity must be one of {@link IStatus#OK} |
| * {@link IStatus#WARNING} or {@link IStatus#ERROR}. |
| * |
| * @param status the new status |
| */ |
| protected final void setStatus(IStatus status) { |
| fPageStatus= status; |
| getContainer().statusUpdated(); |
| } |
| |
| /** |
| * Sets the parent wizard container. The Javadoc wizard will set the container before {@link #setVisible} or |
| * {@link #createContents(Composite)} is called. |
| * |
| * @param container the parent container |
| */ |
| public final void setContainer(IJavadocExportWizardPageContainer container) { |
| fContainer= container; |
| } |
| |
| /** |
| * Gets the parent wizard container |
| * |
| * @return the parent wizard container |
| */ |
| protected final IJavadocExportWizardPageContainer getContainer() { |
| return fContainer; |
| } |
| |
| /** |
| * Called when the command line arguments are collected. Clients can add or modify arguments. |
| * |
| * @param vmOptions A {@link List} of {@link String} with the VM arguments. |
| * @param toolOptions A {@link List} of {@link String} with the Javadoc tool arguments. |
| * See the <a href="http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html"> Javadoc command specification</a> for the format of the arguments. |
| */ |
| public void updateArguments(List vmOptions, List toolOptions) { |
| } |
| |
| /** |
| * Called when the Javadoc ANT script is generated. |
| * |
| * @param xmlDocument The XML element for the 'javadoc' node. Clients can add or modify |
| * arguments. See the <a |
| * href="http://ant.apache.org/manual/Tasks/javadoc.html">Javadoc ANT task</a> |
| * specification for the format of the arguments. |
| */ |
| public void updateAntScript(Element xmlDocument) { |
| } |
| |
| /** |
| * Disposes any resources allocated by this |
| * dialog page. |
| */ |
| public void dispose() { |
| } |
| |
| /** |
| * Notifies that help has been requested for this dialog page. |
| */ |
| public void performHelp() { |
| } |
| |
| /** |
| * Called when the page becomes visible or becomes hidden. |
| * |
| * @param visible <code>true</code> when the page becomes visible, |
| * and <code>false</code> when the page is hidden |
| */ |
| public void setVisible(boolean visible) { |
| } |
| |
| } |