protected Command createMappingCommand;
public DelegateCommand(EditingDomain editingDomain, CommandParameter commandParameter) {
super(MappingUIPlugin.getPlugin().getString( [[#variable1499cbc0]]), MappingUIPlugin.getPlugin().getString( [[#variable1499cb20]]));
collection = commandParameter.getCollection();
mappingDomain = (MappingDomain) editingDomain;
}
@Override protected boolean prepare() {
boolean result = false;
if (collection != null) {
Collection<Object> mappedObjects = new HashSet<Object>();
Collection<Object> mappingObjects = new HashSet<Object>();
MappingRoot mappingRoot = mappingDomain.getMappingRoot();
for (Object object: collection) {
if (object instanceof Mapping) {
appendIfCanExecute( [[#variable1499ca20]].create(mappingDomain, (Mapping) object));
mappingObjects.add(object);
}
else
if (mappingRoot.isInputObject(object) || mappingRoot.isOutputObject(object)) {
mappedObjects.add(object);
}
}
if ( !mappedObjects.isEmpty()) {
Collection<? extends Mapping> mappings = mappingRoot.getAllMappings(mappedObjects);
switch (mappings.size()) {
case 0:
{
createMappingCommand = CreateMappingCommand.create(mappingDomain, mappedObjects);
result = appendIfCanExecute(createMappingCommand);
break;
}
case 1:
{
result = appendIfCanExecute( [[#variable1499ca20]].create(mappingDomain, mappings.iterator().next()));
break;
}
default:
{
break;
}
}
}
}
result = result || !isEmpty();
return result;
}
@Override public void execute() {
super.execute();
if (createMappingCommand != null) {
appendAndExecute( [[#variable1499ca20]].create(mappingDomain, (Mapping) createMappingCommand.getResult().iterator().next()));
}
}
/**
* This returns the icon, if any, of the action.
*/
public Object getImage() {
return "Placeholder";
}
public String getText() {
return getLabel();
}
/**
* This returns the tool tip text, if any, of the action.
*/
public String getToolTipText() {
return getDescription();
}
|