package org.nightlabs.jfire.issuetracking.ui.issue.create; import org.eclipse.swt.SWT; 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.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.WizardHop; 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.IssueFileAttachmentComposite; import org.nightlabs.jfire.issuetracking.ui.issue.IssueLinkAdderComposite; import org.nightlabs.jfire.issuetracking.ui.issue.IssueFileAttachmentComposite.IssueFileAttachmentCompositeStyle; import org.nightlabs.jfire.issuetracking.ui.resource.Messages; /** * @author Chairat Kongarayawetchakun - chairat[at]nightlabs[dot]de */ public class CreateIssueOptionalWizardPage extends WizardHopPage { //GUI private Label linkedObjectLbl; private IssueLinkAdderComposite issueLinkAdderComposite; private Label fileLabel; private IssueFileAttachmentComposite fileComposite; private WizardHopPage reminderPage; private Issue issue; public CreateIssueOptionalWizardPage(Issue issue) { super(CreateIssueOptionalWizardPage.class.getName(), Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.create.CreateIssueOptionalWizardPage.title"), SharedImages.getWizardPageImageDescriptor(IssueTrackingPlugin.getDefault(), CreateIssueWizard.class)); //$NON-NLS-1$ setDescription(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.create.CreateIssueOptionalWizardPage.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; linkedObjectLbl = new Label(mainComposite, SWT.NONE); linkedObjectLbl.setText(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.create.CreateIssueOptionalWizardPage.label.linkedObject.text")); //$NON-NLS-1$ GridData gd = new GridData(GridData.BEGINNING, GridData.BEGINNING, false, true); linkedObjectLbl.setLayoutData(gd); issueLinkAdderComposite = new IssueLinkAdderComposite(mainComposite, SWT.NONE, true, issue); fileLabel = new Label(mainComposite, SWT.NONE); fileLabel.setText(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.create.CreateIssueOptionalWizardPage.label.file.text")); //$NON-NLS-1$ GridData gd2 = new GridData(GridData.BEGINNING, GridData.BEGINNING, false, true); fileLabel.setLayoutData(gd2); fileComposite = new IssueFileAttachmentComposite(mainComposite, SWT.NONE, LayoutMode.TIGHT_WRAPPER, IssueFileAttachmentCompositeStyle.withAddRemoveButton); fileComposite.setIssue(issue); GridData gridData = new GridData(GridData.FILL_BOTH); fileComposite.setLayoutData(gridData); return mainComposite; } @Override public boolean isPageComplete() { if (reminderPage == null) { new WizardHop(this); reminderPage = new CreateIssueReminderWizardPage(issue); getWizardHop().addHopPage(reminderPage); } return getErrorMessage() == null; } public IssueLinkAdderComposite getIssueLinkAdderComposite() { return issueLinkAdderComposite; } }