void SearchFinished(AsyncOperationInstance<IList<ISerializableObject>> operation, IList<ISerializableObject> result) { List<IISOViewModel> selectionList = buildQueryResult(result); DispatcherHelper.CheckBeginInvokeOnUI( () => { _queryResult = selectionList; QueryResultTree = new AsyncTreeViewModel(ISOStore); RaiseQueryResultChanged(); CurrentOperation = null; }); }
public SelectionViewModel() : base("Selection_Next", "Selection_Previous", "Selection_Title","") { PreviousPage = Messages.Page.FieldData; NextPage = Messages.Page.Actions; CanNavigateNext = false; CanNavigateBack = false; MessengerInstance.Register<Selection>(this, (msg) => { CanNavigateNext = false; CanNavigateBack = false; BuildingSelection = false; BuildStatus = "Selection_WaitingForTree"; SelectionTree = new AsyncTreeViewModel(ISOStore); SelectionTree.TruncateDataItems = msg.TruncateDataItems; foreach (var vm in msg.Content) { SelectionTree.addGenerator(vm); } SelectionTree.SelectionBuildProgressChanged += new SelectionBuildProgressChangedHandler(SelectionTree_SelectionBuildProgressChanged); new Action(() => { _completeSelection = SelectionTree.buildSelection(); DispatcherHelper.CheckBeginInvokeOnUI(()=> { SelectionTree.SelectionBuildProgressChanged -= SelectionTree_SelectionBuildProgressChanged; CanNavigateBack = true; CanNavigateNext = true; BuildingSelection = false; BuildStatus = "Selection_Done"; }); }).BeginInvoke(null, null); }); }
/// <summary> /// Initializes a new instance of the SelectFieldDataViewModel class. /// </summary> public SelectFieldDataViewModel() : base("SelectFD_Next","SelectFD_Previous","SelectFD_Title","SelectFD_Description") { NextPage = Messages.Page.FinalSelection; PreviousPage = Messages.Page.Actions; CanNavigateBack = true; CanNavigateNext = true; QueryDatabase = new RelayCommand(executeSearch, () => ConfiguredSearch != null); AddToSelection = new RelayCommand<IList>((selection) => { if(SelectionTree == null) SelectionTree = new AsyncTreeViewModel(ISOStore); if (_queryResult != null && selection != null) { var typedSelection = Enumerable.Cast<IISOViewModel>(selection); foreach (var generator in typedSelection) { if (!_selection.Contains(generator)) _selection.Add(generator); } if (typedSelection.Count() > 0) { RaiseSelectionChanged(); } } }); RemoveFromSelection = new RelayCommand<IList>((selection) => { if(_queryResult != null && selection != null) { var typedSelection = Enumerable.Cast<IISOViewModel>(selection); foreach (var generator in typedSelection) { _selection.Remove(generator); } if (selection.Count > 0) { RaiseSelectionChanged(); } } }); MessengerInstance.Register<ConnectionStateChanged>(this, (msg) => { //Repository Disconnected if ((msg.Content & ConnectionState.ConnectedToRepository) != ConnectionState.ConnectedToRepository) clearSelection(); }); MessengerInstance.Register<Settings>(this, (msg) => updateFromSettings(msg.Content)); MessengerInstance.Send<SettingsRequest>(new SettingsRequest()); }