package org.feature.transform.splot2fm.handler;
import java.util.List;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.dialogs.MessageDialog;
import org.feature.transform.splot2fm.SXFM2FMTransformator;
import org.js.model.feature.editor.FeatureModelWizard;
public class TransformCommandHandler extends AbstractGenCommandHandler {
String handledCommandId = "org.js.transform.splot2fm";
/*
* (non-Javadoc)
*
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
String featureModelExtension = "";
int result = dialogPersistModel();
switch (result) {
case 0:
// EFeatureText
featureModelExtension = SXFM2FMTransformator.efm_fileextension;
break;
case 1:
// XMI
List<String> extensions = FeatureModelWizard.FILE_EXTENSIONS;
if (!extensions.isEmpty()) {
featureModelExtension = extensions.get(0);
}
break;
case 2:
// cancel pressed
return null;
default:
break;
}
List<IFile> files = getFilesFromWorkspace();
SXFM2FMTransformator.parseFiles(files, featureModelExtension);
return null;
}
private int dialogPersistModel() {
MessageDialog dialog = new MessageDialog(null, "Persist Feature Model",
null, "How to persist feature models?",
MessageDialog.QUESTION, new String[] { "Textual Notation",
"XMI", "Cancel" }, 0);
int result = dialog.open();
return result;
}
}