/** * */ package org.nightlabs.jfire.issuetracking.ui.issue.editor; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.ui.forms.editor.FormPage; import org.nightlabs.base.ui.language.I18nTextEditor; import org.nightlabs.base.ui.language.I18nTextEditorMultiLine; import org.nightlabs.base.ui.language.I18nTextEditor.EditMode; import org.nightlabs.jdo.ObjectIDUtil; import org.nightlabs.jfire.issue.Issue; import org.nightlabs.jfire.issuetracking.ui.resource.Messages; /** * @author Alexander Bieber <!-- alex [AT] nightlabs [DOT] de --> * */ public class IssueSubjectAndDescriptionSection extends AbstractIssueEditorGeneralSection { private Label subjectLabel; private I18nTextEditor subjectText; private Label descriptionLabel; private I18nTextEditor descriptionText; private ModifyListener modifyListener = new ModifyListener() { public void modifyText(ModifyEvent arg0) { markDirty(); } }; /** * @param section * @param managedForm */ public IssueSubjectAndDescriptionSection(FormPage page, Composite parent, IssueEditorPageController controller) { super(page, parent, controller); getClient().getGridLayout().numColumns = 2; getClient().getGridLayout().makeColumnsEqualWidth = false; getSection().setText(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.editor.IssueSubjectAndDescriptionSection.section.text")); //$NON-NLS-1$ subjectLabel = new Label(getClient(), SWT.WRAP); subjectLabel.setLayoutData(new GridData()); subjectLabel.setText(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.editor.IssueSubjectAndDescriptionSection.label.subject.text")); //$NON-NLS-1$ subjectText = new I18nTextEditor(getClient()); subjectText.addModifyListener(modifyListener); descriptionLabel = new Label(getClient(), SWT.WRAP); descriptionLabel.setLayoutData(new GridData()); descriptionLabel.setText(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.editor.IssueSubjectAndDescriptionSection.label.description.text")); //$NON-NLS-1$ descriptionText = new I18nTextEditorMultiLine(getClient(), subjectText.getLanguageChooser()); descriptionText.addModifyListener(modifyListener); } private boolean isIDSet = false; @Override protected void doSetIssue(Issue issue) { subjectText.setI18nText(issue.getSubject(), EditMode.DIRECT); descriptionText.setI18nText(issue.getDescription(), EditMode.DIRECT); // ((GridData) descriptionText.getLayoutData()).heightHint = descriptionLabel.getBounds().height * 10; // Show also the IssueID? On the title panel, since this value is unmodifiable. if (!isIDSet) { getSection().setText( Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.editor.IssueSubjectAndDescriptionSection.section.text") //$NON-NLS-1$ + " (ID:" + ObjectIDUtil.longObjectIDFieldToString(issue.getIssueID()) + ")" ); isIDSet = true; } } // @Override // public void commit(boolean onSave) { // super.commit(onSave); // getIssue().getSubject().setText(subjectText.getLanguageChooser().getLanguage().getLanguageID(), subjectText.getEditText()); // getIssue().getDescription().setText(descriptionText.getLanguageChooser().getLanguage().getLanguageID(), descriptionText.getEditText()); // } }