void IChangesetMenuOperations.DiffSelectedChangesets() { List <RepObjectInfo> selectedChangesets = ChangesetsSelection.GetSelectedRepObjectInfos(mChangesetsListView); if (selectedChangesets.Count < 2) { return; } LaunchDiffOperations.DiffSelectedChangesets( ChangesetsSelection.GetSelectedRepository(mChangesetsListView), (ChangesetExtendedInfo)selectedChangesets[0], (ChangesetExtendedInfo)selectedChangesets[1], mIsGluonMode); }
void FillChangesets(WorkspaceInfo wkInfo, string query) { if (mIsRefreshing) { return; } mIsRefreshing = true; List <RepObjectInfo> changesetsToSelect = ChangesetsSelection.GetSelectedRepObjectInfos(mChangesetsListView); int defaultRow = TableViewOperations. GetFirstSelectedRow(mChangesetsListView); ((IProgressControls)mProgressControls).ShowProgress( PlasticLocalization.GetString( PlasticLocalization.Name.LoadingChangesets)); ViewQueryResult queryResult = null; IThreadWaiter waiter = ThreadWaiter.GetWaiter(); waiter.Execute( /*threadOperationDelegate*/ delegate { queryResult = new ViewQueryResult( Plastic.API.FindQuery(wkInfo, query)); }, /*afterOperationDelegate*/ delegate { try { if (waiter.Exception != null) { ExceptionsHandler.DisplayException(waiter.Exception); return; } int changesetsCount = GetChangesetsCount(queryResult); mChangesetsLabelText = string.Format( "{0} changesets", changesetsCount); UpdateChangesetsList(mChangesetsListView, queryResult); if (changesetsCount == 0) { mDiffPanel.ClearInfo(); return; } ChangesetsSelection.SelectChangesets( mChangesetsListView, changesetsToSelect, defaultRow); } finally { ((IProgressControls)mProgressControls).HideProgress(); mIsRefreshing = false; } }); }