public class MyCommitActionFactory implements ICommitActionFactory {
      private MyDialog dialog;
      private ICommitDialog commitDialog;
      public ICommitDialog getCommitDialog(final Shell shell,
                  Collection allFilesToCommit, final ICommentDialogPanel commentPanel) {
            commitDialog = new ICommitDialog() {
                  public String getMessage() {
                       //... 
                  }
                  public int open() {
                        dialog = new MyDialog(new Shell(shell), commentPanel);
                        return dialog.open();
                  }
            };
            return commitDialog;
}
public class MyDialog extends DefaultDialog {
	public MyDialog(Shell shell, ICommentDialogPanel commentPanel,
			StringBuffer issues) {
		super(shell, commentPanel);
		this.commentHeaderMessage = issues;
		issuePanel = new IssuePanel();
	}
	public MyDialog(Shell parentShell, MyCommitPanel panel) {
		super(parentShell, (IDialogPanel) panel);
		this.panel = (IDialogPanel) panel;
		issuePanel = new IssuePanel();
	}
	@Override
	protected Control createContents(Composite parent) {
		this.parent = parent;
                //call creating Subversive controls there and also some ours controls
                 //...
                 this.dialogArea = this.createMainPanel(composite);
                 //....
		return composite;
	}
}
Note, then in createContents I extended in some way createButtonPane and createMainPanel where my controls were placed.
Is everything is clear there? 
Can it be something like I override some initial initialisation of Subversive CommitDilaog, if it exists,  or something like that? Or can it be something like subversive plug-in falls somewherre during initialisation? I don't really know what can happen in that case.
Andrei Pavlenko.