~alex-idereal/bzr-eclipse/1.2.0-patches

« back to all changes in this revision

Viewing changes to org.vcs.bazaar.eclipse.ui/src/org/vcs/bazaar/eclipse/ui/dialogs/ShowLogDialog.java

  • Committer: Piotr Piastucki
  • Date: 2013-04-18 17:56:28 UTC
  • mfrom: (266.1.6 bzr-eclipse-pp)
  • Revision ID: piotr_piastucki-20130418175628-06p4zwm12aeddkiz
MergeĀ lp:~piastucki/bzr-eclipse/rel_1_2_ui_improvements

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
import org.eclipse.swt.widgets.Shell;
22
22
import org.eclipse.ui.progress.UIJob;
23
23
import org.vcs.bazaar.client.BazaarRevision;
 
24
import org.vcs.bazaar.client.BazaarRevisionRange;
24
25
import org.vcs.bazaar.eclipse.core.history.BazaarBranchHistory;
25
26
import org.vcs.bazaar.eclipse.core.history.BazaarFileHistory;
26
27
import org.vcs.bazaar.eclipse.core.history.BazaarFileRevision;
34
35
        private IBzrBranch branch;
35
36
        private IResource resource;
36
37
        private RefreshLog refreshLogJob;
37
 
        private BazaarRevision selectedRevision;
 
38
        private BazaarRevisionRange selectedRevisions;
 
39
        private boolean range;
38
40
 
39
 
        private ShowLogDialog(Shell shell) {
 
41
        private ShowLogDialog(Shell shell, boolean range) {
40
42
                super(shell);
 
43
                this.range = range;
41
44
                setShellStyle(SWT.RESIZE | SWT.MODELESS | SWT.CLOSE | SWT.BORDER | SWT.TITLE);
42
45
        }
43
46
        
 
47
        public ShowLogDialog(Shell shell, IBzrBranch branch, boolean range) {
 
48
                this(shell, range);
 
49
                this.branch = branch;
 
50
        }
 
51
 
44
52
        public ShowLogDialog(Shell shell, IBzrBranch branch) {
45
 
                this(shell);
 
53
                this(shell, false);
46
54
                this.branch = branch;
47
55
        }
48
56
 
49
57
        public ShowLogDialog(Shell shell, IResource resource) {
50
 
                this(shell);
 
58
                this(shell, false);
51
59
                this.resource = resource;
52
60
        }
53
61
 
54
62
        @Override
55
63
        protected Control createDialogArea(Composite parent) {
56
64
                Composite composite  = (Composite)super.createDialogArea(parent);
57
 
                viewer = new HistoryTreeViewer(composite, SWT.H_SCROLL | SWT.V_SCROLL);
 
65
                viewer = new HistoryTreeViewer(composite, (range ? SWT.MULTI : 0) | SWT.H_SCROLL | SWT.V_SCROLL);
58
66
                viewer.addDoubleClickListener(new IDoubleClickListener() {
59
67
                        public void doubleClick(DoubleClickEvent event) {
60
68
                                okPressed();
74
82
        }
75
83
 
76
84
        public BazaarRevision getSelectedRevision() {
77
 
                return selectedRevision;
 
85
                return selectedRevisions != null ? selectedRevisions.getStart() : null;
 
86
        }
 
87
 
 
88
        public String getSelectedRevisionAsString() {
 
89
                if (selectedRevisions != null) {
 
90
                        if (selectedRevisions.getStart().equals(selectedRevisions.getEnd())) {
 
91
                                return selectedRevisions.getStart().getValue();
 
92
                        } else {
 
93
                                return String.format("%1$s..%2$s", selectedRevisions.getStart().getValue(), selectedRevisions.getEnd().getValue());
 
94
                        }
 
95
                }
 
96
                return null;
78
97
        }
79
98
 
80
99
        @Override
81
100
        protected void okPressed() {
82
101
                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
83
 
                if (selection.size() == 1) {
84
 
                        BazaarFileRevision rev = (BazaarFileRevision) selection.getFirstElement();
85
 
                        selectedRevision = rev.getRevision();
 
102
                if (selection.size() > 0) {
 
103
                        Object[] selected = selection.toArray();
 
104
                        BazaarFileRevision rev1 = (BazaarFileRevision) selected[0];
 
105
                        BazaarFileRevision rev2 = (BazaarFileRevision) selected[selected.length -1];
 
106
                        selectedRevisions = BazaarRevisionRange.getRange(rev2.getRevision(), rev1.getRevision());
86
107
                }
87
108
                super.okPressed();
88
109
        }