void ChangeSearchEngine(s3dCore.SearchEngines.ISearchEngine newEngine) { if (currentSearchEngine != null && newEngine.GetType() == currentSearchEngine.GetType()) return; if (workerThread.IsBusy) { searchBtn.Content = "Cancelling..."; workerThread.CancelAsync(); this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, ((Action)delegate { ChangeSearchEngine(newEngine); })); } currentSearchEngine = newEngine; customUI.Children.Clear(); if (newEngine.GetSearchControl() != null) { customUI.Children.Add(newEngine.GetSearchControl()); } currentSearchEngine.Reset(); searchBtn.Content = currentSearchEngine.GetSearchButtonTitle(); if (currentSearchEngine.IsSearchTextBoxVisible()) { patternTb.Visibility = Visibility.Visible; } else { patternTb.Visibility = Visibility.Collapsed; } }
void ChangeLayout(s3dCore.ListLayout.IListLayout newLayout) { if (currentLayout != null && currentLayout.GetType() == newLayout.GetType()) { return; } currentLayout = newLayout; currentLayout.ResetData(); camControler.ChangeLayout(currentLayout); if (currentLayout.CanMoveHorizontally() == false) { viewLeftBtn.Visibility = Visibility.Collapsed; viewRightBtn.Visibility = Visibility.Collapsed; } else { viewLeftBtn.Visibility = Visibility.Visible; viewRightBtn.Visibility = Visibility.Visible; } // copy elements List<s3dCore.SearchEngines.ISearchElement> tempList = new List<s3dCore.SearchEngines.ISearchElement>(currentList.Count); foreach (s3dCore.SearchEngines.ISearchElement elem in currentList.Values) { tempList.Add(elem); } currentList.Clear(); mainViewport.Children.Clear(); foreach (s3dCore.SearchEngines.ISearchElement element in tempList) { ModelUIElement3D model3D = CreateModel(element.GetContentBrush()); mainViewport.Children.Add(model3D); currentList.Add(model3D, element); } camControler.MoveToStartPosition(); }