package org.eclipse.jst.servlet.ui.internal.actions; /******************************************************************************* * Copyright (c) 2003, 2008 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 *******************************************************************************/ import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.window.Window; import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities; import org.eclipse.jst.j2ee.web.datamodel.properties.IConvertStaticWebToDyamnicDataModelProperties; import org.eclipse.jst.servlet.ui.internal.wizard.ConvertToWebModuleTypeDialog; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.IWorkbenchWindowActionDelegate; import org.eclipse.ui.PlatformUI; import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; import org.eclipse.wst.web.ui.internal.Logger; /** * Convert a simple static web project to a J2EE Dynamic Web Project */ public class ConvertToWebModuleTypeAction extends Action implements IWorkbenchWindowActionDelegate { IStructuredSelection fSelection = null; IProject project = null; IWorkbenchWindow fWindow; /** * ConvertLinksDialog constructor comment. */ public ConvertToWebModuleTypeAction() { super(); } /** * make sure a web project is selected. */ protected boolean isValidProject(IProject aProject) { return JavaEEProjectUtilities.isStaticWebProject(aProject); } /** * selectionChanged method comment. */ public void selectionChanged(IAction action, ISelection selection) { boolean bEnable = false; if (selection instanceof IStructuredSelection) { fSelection = (IStructuredSelection) selection; bEnable = validateSelected(fSelection); } ((Action) action).setEnabled(bEnable); } /** * selectionChanged method comment. */ protected boolean validateSelected(ISelection selection) { if (!(selection instanceof IStructuredSelection)) return false; fSelection = (IStructuredSelection) selection; Object selectedProject = fSelection.getFirstElement(); if (!(selectedProject instanceof IProject)) return false; project = (IProject) selectedProject; return isValidProject(project); } public void dispose() { // Default } public void init(IWorkbenchWindow window) { // Default } public void run(IAction action) { try { IWorkbenchWindow window = PlatformUI.getWorkbench().getWorkbenchWindows()[0]; ConvertToWebModuleTypeDialog dialog = new ConvertToWebModuleTypeDialog(window.getShell()); dialog.open(); if (dialog.getReturnCode() == Window.CANCEL) return; doConvert(ConvertToWebModuleTypeDialog.getSelectedVersion()); } catch (Exception e) { Logger.logException(e); } } protected void doConvert(String selectedVersion) throws Exception { IDataModel model = DataModelFactory.createDataModel(IConvertStaticWebToDyamnicDataModelProperties.class); model.setProperty(IConvertStaticWebToDyamnicDataModelProperties.PROJECT, project); model.setStringProperty(IConvertStaticWebToDyamnicDataModelProperties.CONVERT_TO_WEB_VERSION, ConvertToWebModuleTypeDialog.getSelectedVersion()); model.getDefaultOperation().execute(new NullProgressMonitor(), null); } }