⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tomcatprojectcreationwizard.java

📁 一个学习eclipse插件开发的绝好入门程序
💻 JAVA
字号:
package com.sysdeo.eclipse.tomcat;

/*
 * (c) Copyright Sysdeo SA 2001, 2002.
 * All Rights Reserved.
 */

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.net.MalformedURLException;
import java.net.URL;

import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExecutableExtension;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jdt.internal.ui.util.ExceptionHandler;
import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
import org.eclipse.jdt.internal.ui.wizards.NewWizardMessages;
import org.eclipse.jdt.ui.wizards.NewJavaProjectWizardPage;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation;
import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;

public class TomcatProjectCreationWizard extends NewElementWizard implements IExecutableExtension, TomcatPluginResources {

	public static final String NEW_PROJECT_WIZARD_ID = "org.eclipse.jdt.ui.wizards.NewProjectCreationWizard"; //$NON-NLS-1$

	private NewTomcatProjectWizardPage fTomcatPage;
	private NewJavaProjectWizardPage fJavaPage;
	private WizardNewProjectCreationPage fMainPage;
	private IConfigurationElement fConfigElement;

	public TomcatProjectCreationWizard() {
		super();
		TomcatLauncherPlugin.checkTomcatSettingsAndWarn();
		ImageDescriptor banner = this.getBannerImg();
		if (banner != null)
			setDefaultPageImageDescriptor(banner);
		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
		setWindowTitle(WIZARD_PROJECT_TITLE);
	}

	public boolean canFinish() {
		return TomcatLauncherPlugin.isTomcatConfigured();

	}

	private ImageDescriptor getBannerImg() {
		try {
			URL prefix = new URL(TomcatLauncherPlugin.getDefault().getDescriptor().getInstallURL(), "icons/");
			return ImageDescriptor.createFromURL(new URL(prefix, "newjprj_wiz.gif"));
		} catch (MalformedURLException e) {
			return null;
		}
	}

	/*
	 * @see Wizard#addPages
	 */
	public void addPages() {
		super.addPages();
		fMainPage = new WizardNewProjectCreationPage("Page 1");
		fMainPage.setTitle(WIZARD_PROJECT_MAINPAGE_TITLE);
		fMainPage.setDescription(WIZARD_PROJECT_MAINPAGE_DESCRIPTION);
		addPage(fMainPage);

		fTomcatPage = new NewTomcatProjectWizardPage(this, "NewTomcatProjectPage");
		fTomcatPage.setTitle(WIZARD_PROJECT_TOMCATPAGE_TITLE);
		fTomcatPage.setDescription(WIZARD_PROJECT_TOMCATPAGE_DESCRIPTION);
		addPage(fTomcatPage);

		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
		fJavaPage = new NewJavaProjectWizardPage(root, fMainPage);
		//		addPage(fJavaPage);

	}

	/*
	 * @see Wizard#performFinish
	 */
	public boolean performFinish() {
		IRunnableWithProgress op = new WorkspaceModifyDelegatingOperation(fJavaPage.getRunnable());
		try {
			getContainer().run(false, true, op);
			TomcatProject.addTomcatNature(fJavaPage.getNewJavaProject());
			TomcatProject tomcatPrj = TomcatProject.create(fJavaPage.getNewJavaProject());
			tomcatPrj.setWebPath(fTomcatPage.getWebpath());
			tomcatPrj.setUpdateXml(fTomcatPage.getUpdateXml());
			tomcatPrj.setRootDir(fTomcatPage.getRootDir());
			tomcatPrj.saveProperties();
			tomcatPrj.fullConfiguration();
		} catch (InvocationTargetException e) {
			String title = NewWizardMessages.JavaProjectWizard_op_error_title; //$NON-NLS-1$
			String message = NewWizardMessages.JavaProjectWizard_op_error_create_message; //$NON-NLS-1$
			ExceptionHandler.handle(e, getShell(), title, message);
			return false;
		} catch (InterruptedException e) {
			return false;
		} catch (CoreException e) {
			return false;
		} catch (IOException e) {
			return false;
		}

		BasicNewProjectResourceWizard.updatePerspective(fConfigElement);
		selectAndReveal(fJavaPage.getNewJavaProject().getProject());
		return true;
	}

	/*
	 * Stores the configuration element for the wizard.  The config element will be used
	 * in <code>performFinish</code> to set the result perspective.
	 */
	public void setInitializationData(IConfigurationElement cfig, String propertyName, Object data) {
		fConfigElement = cfig;
	}

	/*
	 * @see IWizard#getNextPage(IWizardPage)
	 */
	public IWizardPage getNextPage(IWizardPage page) {
		// initialize Tomcat Wizard page webpath field
		// Default value is / + projectName
		if (page instanceof WizardNewProjectCreationPage) {
			if (!fTomcatPage.wasDisplayedOnce()) {
				fTomcatPage.setWebpath("/" + fMainPage.getProjectName());
			}
		}

		return super.getNextPage(page);
	}

	/* (non-Javadoc)
	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse.core.runtime.IProgressMonitor)
	 */
	protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException {
		// for Eclipse 3.0 compatibility
	}

	/**
	 * Getters for subclasses
	 */
	protected IConfigurationElement getFConfigElement() {
		return fConfigElement;
	}

	protected NewJavaProjectWizardPage getFJavaPage() {
		return fJavaPage;
	}

	protected WizardNewProjectCreationPage getFMainPage() {
		return fMainPage;
	}

	protected NewTomcatProjectWizardPage getFTomcatPage() {
		return fTomcatPage;
	}

	public IJavaElement getCreatedElement() {
		// TODO Auto-generated method stub
		return null;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -