blob: 76b974464740544efe3bebf9420f4964d7fc60d7 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 2004 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.jst.j2ee.internal.earcreation;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.jst.j2ee.application.Module;
import org.eclipse.jst.j2ee.internal.earcreation.modulemap.ModuleMapping;
/**
* Insert the type's description here. Creation date: (03/29/01 4:48:46 PM)
*
* @author: Administrator
*/
public class RemoveModuleFromEARProjectCommand extends ModuleInEARProjectCommand {
public RemoveModuleFromEARProjectCommand(Module module, IProject anEarProject) {
super();
setEarProject(anEarProject);
setModuleUri(module.getUri());
setModuleAltDD(module.getAltDD());
setModule(module);
}
public boolean canExecute() {
return super.canExecute() && EARNatureRuntime.getRuntime(getEarProject()) != null;
}
protected void primExecute() {
//Required for validate edit support
refreshModule();
// Set up nestedJ2EEProject before the map removed
// It is needed for undo remove
if (editModel != null) {
ModuleMapping map = editModel.getModuleMapping(module);
if (map != null)
setNestedJ2EEProject(ResourcesPlugin.getWorkspace().getRoot().getProject(map.getProjectName()));
}
removeModuleMapping();
if (mapSuccessful)
removeModule();
}
/*
* If this was a deferred command, then the module object might be stale because a file was
* checked out
*/
protected void refreshModule() {
if (module == null)
return;
Module m = (Module) EcoreUtil.resolve(module, getApplication());
if (m != null)
module = m;
}
protected void primUndo() {
if (moduleSuccessful) {
addModule();
moduleSuccessful = false;
}
if (mapSuccessful) {
addModuleMapping();
mapSuccessful = false;
}
}
protected void removeModule() {
super.removeModule();
moduleSuccessful = true;
}
protected void removeModuleMapping() {
super.removeModuleMapping();
mapSuccessful = true;
}
// override
public String getLabel() {
return label == null ? EARCreationResourceHandler.getString("Remove_Module_Command_Label_UI_") : label;//$NON-NLS-1$
}
}