setEditorName();
}
private Composite createMainPage(Composite parent) {
final Campaign campaign = ((CampaignEditorInput)getEditorInput()).getCampaign();
Label label;
logger.debug("creating controls");
// main composite with grid layout (3 columns)
Composite comp = new Composite(parent, SWT.NONE);
comp.setLayout(new GridLayout(3, true));
// general group
{
logger.debug("creating general group");
Group generalGroup = new Group(comp, SWT.NONE);
generalGroup.setText(Messages.getString("campaign.editor.group.general.label"));
// span 2 columns, for 66% width
generalGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
// four columns in group's layout
generalGroup.setLayout(new GridLayout(4, false));
// name (line 1, full width)
logger.debug("creating name field");
label = new Label(generalGroup, SWT.RIGHT);
label.setText(Messages.getString("campaign.editor.name.label"));
label.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
name = new Text(generalGroup, SWT.BORDER);
name.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 3, 1));
name.setText(campaign.getName());
name.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent event)
{
logger.debug("setting campaign name");
campaign.setName(name.getText());
logger.debug("setting editor as dirty");
dirty = true;
// set editor name
setEditorName();
}
});
name.addFocusListener(focusListener);
// version (line 2, half-width)
logger.debug("creating version chooser");
label = new Label(generalGroup, SWT.RIGHT);
label.setText(Messages.getString("campaign.editor.version.label"));
label.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
version = new Combo(generalGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
version.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
VersionDao versionDao = (VersionDao)ServiceUtils.getService(bundleContext, VersionDao.class.getName());
try {
int i = 0;
for(Version v : versionDao.getVersions()) {
version.add(v.getLabel());
version.setData(v.getLabel(), v);
version.setData("version" + i, v);
if(campaign.getVersion() == v) {
version.select(i);
}
i++;
}
}
catch(DataAccessException e) {
logger.error("Exception while getting versions: " + e.getLocalizedMessage(), e);
// add error to Alerts
AlertService alertService = (AlertService)ServiceUtils.getService(bundleContext, AlertService.class.getName());
alertService.addAlert(new Alert(Alert.Type.ERROR, "campaign.editor", e.getLocalizedMessage()));
}
version.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
widgetSelected(e);
}
public void widgetSelected(SelectionEvent e) {
logger.debug("setting campaign edition; index = " + version.getSelectionIndex());
Version v = (Version)version.getData("version" + version.getSelectionIndex());
logger.trace("v: " + v);
if(v != null) {
campaign.setVersion(v);
logger.debug("setting editor as dirty");
dirty = true;
}
}
});
// setting (line 2, half-width)
logger.debug("creating setting chooser");
label = new Label(generalGroup, SWT.RIGHT);
label.setText(Messages.getString("campaign.editor.setting.label"));
label.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
setting = new Combo(generalGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
setting.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
SettingDao settingDao = (SettingDao)ServiceUtils.getService(bundleContext, SettingDao.class.getName());
try {
int i = 0;
for(Setting s : settingDao.getSettings()) {
setting.add(s.getLabel());
setting.setData(s.getLabel(), s);
setting.setData("setting" + i, s);
if(campaign.getSetting() == s) {
setting.select(i);
}
i++;
}
}
catch(DataAccessException e) {
logger.error("Exception while getting settings: " + e.getLocalizedMessage(), e);
// add error to Alerts
AlertService alertService = (AlertService)ServiceUtils.getService(bundleContext, AlertService.class.getName());
alertService.addAlert(new Alert(Alert.Type.ERROR, "campaign.editor", e.getLocalizedMessage()));
}
setting.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
widgetSelected(e);
}
public void widgetSelected(SelectionEvent e) {
logger.debug("setting campaign setting; index = " + setting.getSelectionIndex());
Setting s = (Setting)setting.getData("setting" + setting.getSelectionIndex());
logger.trace("s: " + s);
if(s != null) {
campaign.setSetting(s);
logger.debug("setting editor as dirty");
dirty = true;
}
}
});
// inception
logger.debug("creating date field");
label = new Label(generalGroup, SWT.RIGHT);
label.setText(Messages.getString("campaign.editor.inception.label"));
label.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
inception = new DateTime(generalGroup, SWT.BORDER);
inception.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 3, 1));
Calendar cal = new GregorianCalendar();
cal.setTime(campaign.getInception());
inception.setDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));
inception.setTime(cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND));
inception.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
logger.debug("widget default selected: " + e);
widgetSelected(e);
}
public void widgetSelected(SelectionEvent e) {
logger.debug("widget selected: " + e);
// TODO
}
});
// inception.addModifyListener(new ModifyListener() {
// public void modifyText(ModifyEvent event)
// {
// logger.debug("modifying inception date");
//
// SimpleDateFormat sdf = new SimpleDateFormat();
// String dateText = inception.getText();
//
// try
// {
// logger.debug("parsing inception date");
// Date d = sdf.parse(dateText);
//
// logger.debug("setting inception date");
// campaign.setInception(d);
//
// logger.debug("marking editor as dirty");
// dirty = true;
// }
// catch(ParseException e)
// {
// logger.debug("date is invalid; don't do it");
// }
// }
// });
// inception.addVerifyListener(new VerifyListener() {
// public void verifyText(VerifyEvent event)
// {
// logger.debug("verifying date text");
//
// event.doit = true;
//
// SimpleDateFormat sdf = new SimpleDateFormat();
// String dateText = inception.getText();
//
// try
// {
// Date d = sdf.parse(dateText);
// }
// catch(ParseException e)
// {
// logger.debug("date is invalid; don't do it");
// event.doit = false;
// }
// }
// });
// notes field
logger.debug("creating notes field");
label = new Label(generalGroup, SWT.RIGHT);
label.setText(Messages.getString("campaign.editor.notes.label"));
label.setLayoutData(new GridData(SWT.END, SWT.TOP, false, false));
notes = new Text(generalGroup, SWT.MULTI | SWT.BORDER);
notes.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1));
notes.setText(campaign.getNotes());
notes.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e)
{
logger.debug("setting notes");
campaign.setNotes(notes.getText());
logger.debug("setting editor as dirty");
dirty = true;
}
});