@Override
public void runWithEvent(Event event) {
logger.info("Executing 'create object template' action: " + event);
ObjectTemplate ot = objectTemplateFactory.createObjectTemplate(campaign, false);
logger.trace("ot: " + ot);
try {
// if there is no campaign assigned, then ask the user for one
if(campaign == null) {
logger.info("No campaign is set on object template; requesting one from user.");
CampaignChooserDialog ccd = (CampaignChooserDialog)appContext.getBean("campaignChooserDialog",
new Object[] { PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell() });
int rc = ccd.open();
logger.trace("rc: " + rc);
if(rc == IDialogConstants.YES_ID) {
ot.setCampaign(ccd.getCampaign());
}
else {
logger.info("Campaign chooser dialog was canceled; aborting object template build.");
return;
}
}
// create a dialog to get information from the user
IObjectTemplateBuilderDialog dialog = (IObjectTemplateBuilderDialog)appContext.getBean(
"objectTemplateBuilderDialog", new Object[] {
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
objectTemplateBuilderDialogHelper, ot });
objectTemplateBuilder.setDialog(dialog);
if(!objectTemplateBuilder.buildObjectTemplate(ot)) {
logger.info("Object template build was incomplete; see previous log entries for details.");
alertService.addAlert(new Alert(Alert.Type.INFO, this.getClass().getSimpleName(), Messages
.getString("campaign.manager.actions.object_template.create.error.build_incomplete.text")));
return;
}
}
catch(ObjectBuilderException e) {
logger.error("Exception while trying to build object template: " + e.getLocalizedMessage(), e);
alertService
.addAlert(new Alert(Alert.Type.ERROR, this.getClass().getSimpleName(), e.getLocalizedMessage()));
return;
}
campaign.addObject(ot);
// save the object template and the campaign
try {
ot.save();
campaign.save();
}
catch(Exception e) {
logger.error("Exception while trying to save object template: " + e.getLocalizedMessage(), e);