/** | |
* Copyright (c) 2009-2010 Thales Corporate Services S.A.S. | |
* This program and the accompanying materials | |
* are made available under the terms of the Eclipse Public License v2.0 | |
* which accompanies this distribution, and is available at | |
* https://www.eclipse.org/legal/epl-v2.0 | |
* | |
* SPDX-License-Identifier: EPL-2.0 | |
* | |
* Contributors: | |
* Thales Corporate Services S.A.S - initial API and implementation | |
*/ | |
package org.eclipse.egf.model.fcore.commands.resource; | |
import java.util.Collection; | |
import org.eclipse.egf.model.fcore.util.FcoreResourceImpl; | |
import org.eclipse.emf.edit.command.CommandActionDelegate; | |
import org.eclipse.emf.edit.command.RemoveCommand; | |
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; | |
import org.eclipse.emf.edit.domain.EditingDomain; | |
import org.eclipse.emf.edit.provider.IItemLabelProvider; | |
/** | |
* The FcoreResourceImpl supports multi-rooted resources | |
* and therefore this command will remove a root from the resource.. | |
*/ | |
public class ResourceRemoveCommand extends RemoveCommand implements CommandActionDelegate { | |
/** | |
*/ | |
private FcoreResourceImpl _resource = null; | |
/** | |
* Attribute for the adapter factory | |
*/ | |
private IItemLabelProvider _labelProvider = null; | |
/** | |
* Constructor | |
* | |
* @param domain | |
* the editing domain | |
* @param resource | |
* the resource to modify | |
* @param collection | |
* the objects to be removed | |
*/ | |
public ResourceRemoveCommand(EditingDomain domain, FcoreResourceImpl resource, Collection<?> collection) { | |
super(domain, resource.getContents(), collection); | |
if (getDomain() instanceof AdapterFactoryEditingDomain) { | |
_labelProvider = (IItemLabelProvider) ((AdapterFactoryEditingDomain) getDomain()).getAdapterFactory().adapt(getCollection().toArray()[0], IItemLabelProvider.class); | |
} | |
_resource = resource; | |
setLabel(LABEL); | |
setDescription(DESCRIPTION); | |
} | |
/** | |
* @see org.eclipse.emf.edit.command.CommandActionDelegate#getImage() | |
*/ | |
public Object getImage() { | |
return this._labelProvider != null ? this._labelProvider.getImage(getCollection().toArray()[0]) : null; | |
} | |
/** | |
* @see org.eclipse.emf.edit.command.CommandActionDelegate#getText() | |
*/ | |
public String getText() { | |
return this._labelProvider != null ? this._labelProvider.getText(getCollection().toArray()[0]) : null; | |
} | |
/** | |
* @see org.eclipse.emf.edit.command.CommandActionDelegate#getToolTipText() | |
*/ | |
public String getToolTipText() { | |
return getText(); | |
} | |
@Override | |
protected boolean prepare() { | |
if (domain.isReadOnly(_resource)) { | |
return false; | |
} | |
return super.prepare(); | |
} | |
} |