in org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java [1000:1201]
private Composite createMessageAndPersonArea(Composite container) {
Composite messageAndPersonArea = toolkit.createComposite(container);
GridDataFactory.fillDefaults().grab(true, true)
.applyTo(messageAndPersonArea);
GridLayoutFactory.swtDefaults().margins(0, 0).spacing(0, 0)
.applyTo(messageAndPersonArea);
Section messageSection = toolkit.createSection(messageAndPersonArea,
ExpandableComposite.TITLE_BAR
| ExpandableComposite.CLIENT_INDENT);
messageSection.setText(UIText.CommitDialog_CommitMessage);
Composite messageArea = toolkit.createComposite(messageSection);
GridLayoutFactory.fillDefaults().spacing(0, 0)
.extendedMargins(2, 2, 2, 2).applyTo(messageArea);
toolkit.paintBordersFor(messageArea);
GridDataFactory.fillDefaults().grab(true, true).applyTo(messageSection);
GridLayoutFactory.swtDefaults().applyTo(messageSection);
Composite headerArea = new Composite(messageSection, SWT.NONE);
GridLayoutFactory.fillDefaults().spacing(0, 0).numColumns(2)
.applyTo(headerArea);
ToolBar messageToolbar = new ToolBar(headerArea, SWT.FLAT
| SWT.HORIZONTAL);
GridDataFactory.fillDefaults().align(SWT.END, SWT.FILL)
.grab(true, false).applyTo(messageToolbar);
addMessageDropDown(headerArea);
messageSection.setTextClient(headerArea);
final CommitProposalProcessor commitProposalProcessor = new CommitProposalProcessor() {
@Override
protected Collection<String> computeFileNameProposals() {
return getFileList();
}
@Override
protected Collection<String> computeMessageProposals() {
return CommitMessageHistory.getCommitHistory();
}
};
commitText = new CommitMessageArea(messageArea, "", SWT.NONE) { //$NON-NLS-1$
@Override
protected CommitProposalProcessor getCommitProposalProcessor() {
return commitProposalProcessor;
}
};
commitText
.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
commitText.setCleanupMode(cleanup, commentChar);
commitText.setText(commitMessage);
messageSection.setClient(messageArea);
Point size = commitText.getTextWidget().getSize();
int minHeight = commitText.getTextWidget().getLineHeight() * 3;
commitText.setLayoutData(GridDataFactory.fillDefaults()
.grab(true, true).hint(size).minSize(size.x, minHeight)
.align(SWT.FILL, SWT.FILL).create());
UIUtils.addBulbDecorator(commitText.getTextWidget(),
UIText.CommitDialog_ContentAssist);
Composite personArea = toolkit.createComposite(messageAndPersonArea);
toolkit.paintBordersFor(personArea);
GridLayoutFactory.swtDefaults().numColumns(2).applyTo(personArea);
GridDataFactory.fillDefaults().grab(true, false).applyTo(personArea);
toolkit.createLabel(personArea, UIText.CommitDialog_Author)
.setForeground(
toolkit.getColors().getColor(IFormColors.TB_TOGGLE));
authorText = toolkit.createText(personArea, null);
authorText
.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
authorText.setLayoutData(GridDataFactory.fillDefaults()
.grab(true, false).create());
if (repository != null
&& repository.getRepositoryState().equals(
RepositoryState.CHERRY_PICKING_RESOLVED))
authorText.setEnabled(false);
toolkit.createLabel(personArea, UIText.CommitDialog_Committer)
.setForeground(
toolkit.getColors().getColor(IFormColors.TB_TOGGLE));
committerText = toolkit.createText(personArea, null);
committerText.setLayoutData(GridDataFactory.fillDefaults()
.grab(true, false).create());
if (committer != null)
committerText.setText(committer);
amendingItem = new ToolItem(messageToolbar, SWT.CHECK);
amendingItem.setSelection(amending);
if (amending)
amendingItem.setEnabled(false); // if already set, don't allow any
// changes
else if (!amendAllowed)
amendingItem.setEnabled(false);
amendingItem.setToolTipText(UIText.CommitDialog_AmendPreviousCommit);
Image amendImage = UIIcons.AMEND_COMMIT.createImage();
UIUtils.hookDisposal(amendingItem, amendImage);
amendingItem.setImage(amendImage);
signedOffItem = new ToolItem(messageToolbar, SWT.CHECK);
signedOffItem.setToolTipText(UIText.CommitDialog_AddSOB);
Image signedOffImage = UIIcons.SIGNED_OFF.createImage();
UIUtils.hookDisposal(signedOffItem, signedOffImage);
signedOffItem.setImage(signedOffImage);
signCommitItem = new ToolItem(messageToolbar, SWT.CHECK);
signCommitItem.setToolTipText(UIText.CommitDialog_SignCommit);
Image signCommitImage = UIIcons.SIGN_COMMIT.createImage();
UIUtils.hookDisposal(signCommitItem, signCommitImage);
signCommitItem.setImage(signCommitImage);
changeIdItem = new ToolItem(messageToolbar, SWT.CHECK);
Image changeIdImage = UIIcons.GERRIT.createImage();
UIUtils.hookDisposal(changeIdItem, changeIdImage);
changeIdItem.setImage(changeIdImage);
changeIdItem.setToolTipText(UIText.CommitDialog_AddChangeIdLabel);
final ICommitMessageComponentNotifications listener = new ICommitMessageComponentNotifications() {
@Override
public void updateSignedOffToggleSelection(boolean selection) {
signedOffItem.setSelection(selection);
}
@Override
public void updateChangeIdToggleSelection(boolean selection) {
changeIdItem.setSelection(selection);
}
@Override
public void updateSignCommitToggleSelection(boolean selection) {
signCommitItem.setSelection(selection);
}
@Override
public void statusUpdated() {
updateMessage();
}
};
commitMessageComponent = new CommitMessageComponent(repository,
listener);
commitMessageComponent.enableListeners(false);
commitMessageComponent.setDefaults();
commitMessageComponent.attachControls(commitText, authorText,
committerText);
commitMessageComponent.setCommitMessage(commitMessage);
commitMessageComponent.setAuthor(author);
commitMessageComponent.setCommitter(committer);
commitMessageComponent.setAmending(amending);
commitMessageComponent.setFilesToCommit(getFileList());
amendingItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
commitMessageComponent.setAmendingButtonSelection(amendingItem
.getSelection());
}
});
changeIdItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
commitMessageComponent.setChangeIdButtonSelection(changeIdItem
.getSelection());
}
});
signedOffItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
commitMessageComponent
.setSignedOffButtonSelection(signedOffItem
.getSelection());
}
});
boolean canSign = GpgSetup.getDefault() != null;
signCommitItem.setEnabled(canSign);
if (!canSign) {
signCommitItem
.setToolTipText(UIText.CommitDialog_Sign_Not_Available);
}
signCommitItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
commitMessageComponent.setSignCommitButtonSelection(
signCommitItem.getSelection());
}
});
commitMessageComponent.updateUI();
commitMessageComponent.enableListeners(true);
return messageAndPersonArea;
}