public class CreateFormDelegate extends BaseActionDelegate {
public void run(IAction action) {
try {
FormNode formNode = ((FormNodeEditPart) selectedPart).getModel();
ChooseFormTypeDialog chooseFormTypeDialog = new ChooseFormTypeDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell());
if (chooseFormTypeDialog.open() != Dialog.OK) {
return;
}
formNode.setFormType(chooseFormTypeDialog.getType());
String fileName = FormTypeProvider.getFormType(formNode.getFormType()).getFormFileName(getDefinitionFile(), formNode);
IFile file = IOUtils.getAdjacentFile(getDefinitionFile(), fileName);
if (!file.exists()) {
file = IOUtils.createFileSafely(file);
}
setNewFormFile(formNode, file.getName());
formNode.setDirty();
// open form
OpenFormEditorDelegate openFormEditorDelegate;
if (ChooseFormTypeDialog.EDITOR_EXTERNAL.equals(chooseFormTypeDialog.getEditorType())) {
openFormEditorDelegate = new OpenExternalFormEditorDelegate();
} else {
openFormEditorDelegate = new OpenVisualFormEditorDelegate();
}
openFormEditorDelegate.targetPart = targetPart;