package org.nightlabs.jfire.issuetracking.ui.issue.create; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.nightlabs.base.ui.composite.DateTimeControl; import org.nightlabs.base.ui.composite.XComposite; import org.nightlabs.base.ui.composite.XComposite.LayoutDataMode; import org.nightlabs.base.ui.composite.XComposite.LayoutMode; import org.nightlabs.base.ui.resource.SharedImages; import org.nightlabs.base.ui.wizard.WizardHopPage; import org.nightlabs.jfire.issue.Issue; import org.nightlabs.jfire.issuetracking.ui.IssueTrackingPlugin; import org.nightlabs.jfire.issuetracking.ui.issue.IssueUserComposite; import org.nightlabs.jfire.issuetracking.ui.issue.IssueUserComposite.Orientation; import org.nightlabs.jfire.issuetracking.ui.resource.Messages; import org.nightlabs.l10n.IDateFormatter; /** * @author Chairat Kongarayawetchakun - chairat[at]nightlabs[dot]de */ public class CreateIssueReminderWizardPage extends WizardHopPage { //GUI private DateTimeControl deadlineDateTime; private IssueUserComposite assigneeComposite; private Issue issue; public CreateIssueReminderWizardPage(Issue issue) { super(CreateIssueReminderWizardPage.class.getName(), Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.create.CreateIssueReminderWizardPage.title"), //$NON-NLS-1$ SharedImages.getWizardPageImageDescriptor(IssueTrackingPlugin.getDefault(), CreateIssueWizard.class)); setDescription(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.create.CreateIssueReminderWizardPage.description")); //$NON-NLS-1$ this.issue = issue; } @Override public Control createPageContents(Composite parent) { XComposite mainComposite = new XComposite(parent, SWT.NONE, LayoutMode.TIGHT_WRAPPER, LayoutDataMode.GRID_DATA); mainComposite.getGridLayout().numColumns = 2; Label deadlineLabel = new Label(mainComposite, SWT.NONE); deadlineLabel.setText(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.create.CreateIssueReminderWizardPage.label.deadline.text")); //$NON-NLS-1$ Composite deadlineWrapper = new XComposite(mainComposite, SWT.NONE, LayoutMode.TIGHT_WRAPPER, LayoutDataMode.GRID_DATA_HORIZONTAL, 2); deadlineDateTime = new DateTimeControl(deadlineWrapper, SWT.NONE, IDateFormatter.FLAGS_DATE_SHORT_TIME_HMS_WEEKDAY); deadlineDateTime.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); deadlineDateTime.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { issue.setDeadlineTimestamp(deadlineDateTime.getDate()); } }); deadlineDateTime.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { issue.setDeadlineTimestamp(deadlineDateTime.getDate()); } }); // Button removeDeadlineButton = new Button(deadlineWrapper, SWT.NONE); // removeDeadlineButton.setImage(SharedImages.DELETE_16x16.createImage()); // removeDeadlineButton.addSelectionListener(new SelectionAdapter() { // @Override // public void widgetSelected(SelectionEvent selectionevent) { // deadlineDateTime.setDate(null); // issue.setDeadlineTimestamp(null); // } // }); Label assigneeLabel = new Label(mainComposite, SWT.NONE); assigneeLabel.setText(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.create.CreateIssueReminderWizardPage.label.assignee.text")); //$NON-NLS-1$ assigneeComposite = new IssueUserComposite(mainComposite, SWT.NONE, LayoutMode.TIGHT_WRAPPER, LayoutDataMode.GRID_DATA_HORIZONTAL, null, Orientation.LEFT); GridData gd = new GridData(GridData.FILL_HORIZONTAL); assigneeComposite.setLayoutData(gd); assigneeComposite.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent modifyevent) { issue.setAssignee(assigneeComposite.getSelectedUser()); } }); return mainComposite; } @Override public boolean isPageComplete() { return getErrorMessage() == null; } }