package org.nightlabs.jfire.issuetracking.ui.issue; 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.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.nightlabs.base.ui.composite.XComposite; import org.nightlabs.base.ui.composite.XComposite.LayoutMode; import org.nightlabs.eclipse.ui.dialog.ResizableTitleAreaDialog; import org.nightlabs.jfire.issue.Issue; import org.nightlabs.jfire.issuetracking.ui.resource.Messages; import org.nightlabs.jfire.security.User; public class IssueCommentAddDialog extends ResizableTitleAreaDialog { private Text commentText; private Issue issue; private User user; public IssueCommentAddDialog(Shell shell, Issue issue, User user) { super(shell, Messages.RESOURCE_BUNDLE); this.issue = issue; this.user = user; } protected Button createButton(Composite parent, int id, String label, boolean defaultButton) { Button button = super.createButton(parent, id, label, defaultButton); if (OK == id) { button.setText(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.IssueCommentAddDialog.addButton.text")); //$NON-NLS-1$ button.setEnabled(false); } return button; } @Override protected void configureShell(Shell newShell) { super.configureShell(newShell); newShell.setText(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.IssueCommentAddDialog.shell.text")); //$NON-NLS-1$ } @Override protected Control createDialogArea(Composite parent) { setTitle(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.IssueCommentAddDialog.title.text")); //$NON-NLS-1$ XComposite area = new XComposite(parent, SWT.NONE, LayoutMode.TIGHT_WRAPPER); area.getGridLayout().numColumns = 1; new Label(area, SWT.NONE).setText(Messages.getString("org.nightlabs.jfire.issuetracking.ui.issue.IssueCommentAddDialog.commentLabel.text")); //$NON-NLS-1$ commentText = new Text(area, SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL); commentText.setLayoutData(new GridData(GridData.FILL_BOTH)); commentText.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { getButton(OK).setEnabled(!commentText.getText().isEmpty()); } }); return area; } @Override protected void okPressed() { commentString = commentText.getText(); super.okPressed(); } private String commentString; public String getCommentString() { return commentString; } }