private void buttonHistory_Click(object sender, RoutedEventArgs e) { ShumbiDiscover.Controls.Dialogs.History dialog = new ShumbiDiscover.Controls.Dialogs.History(); dialog.SearchHistory = _coreLogic.History; dialog.HistoryOpenItem += delegate(SearchDescription searchDescription) { DialogPanel.Close(dialog, DialogResult.Close); if (!searchVisualisationTab.SelectSearchVisualisation(searchDescription.Id)) { SearchVisualisation searchVisualisation = new SearchVisualisation(); searchVisualisation.Visualisation = visualisationSelector.Visualisation; searchVisualisation.Localise(); searchVisualisation.ItemActivated += new SearchVisualisation.ItemActivatedEventHandler(SearchVisualisation_ItemActivated); searchVisualisation.ItemSelected += new SearchVisualisation.ItemSelectedEventHandler(SearchVisualisation_ItemSelected); searchVisualisation.SearchResultSet = new SearchResultSet(); searchVisualisation.SearchResultSet.SearchDescription = searchDescription; textQuery.Text = searchDescription.Query; DisplayNewVisualisation(searchVisualisation); UpdateGoState(); _currentSearchVisualisation = searchVisualisation; searchVisualisationTab.AddSearchVisualisation(_currentSearchVisualisation); ShowSearchResultProgressDialog(CultureHelper.GetString(Properties.Resources.ResourceManager, "LOADING") + "..."); _coreLogic.SearchResultSetLoad(searchDescription, delegate(SearchResultSet searchResultSet) { Action a = delegate() { if (searchResultSet != null && _currentSearchVisualisation != null) { _currentSearchVisualisation.SearchResultSet = searchResultSet; _currentSearchVisualisation.PopulateVisualisation(); DialogPanel.Close(_progressControl, DialogResult.Ok); } else { DialogPanel.Close(_progressControl, DialogResult.Cancel); } }; #if SILVERLIGHT Dispatcher.BeginInvoke(a); #else Dispatcher.Invoke(a); #endif } ); } }; dialog.HistoryDeleteItem += delegate(SearchDescription searchDescription) { _coreLogic.HistoryDelete(searchDescription); }; dialog.HistoryClearItems += delegate() { _coreLogic.HistoryClear(); }; DialogPanel.ShowDialog(Properties.Resources.ResourceManager, "HISTORY", dialog, "buttonClose", DialogButtons.Close, null); }
private void SearchVisualise(string query) { documentViewer.Visibility = Visibility.Collapsed; documentViewer.Cleanup(); annotationCanvas.ClearContent(); DisplayNewVisualisation(null); ShowSearchResultProgressDialog(CultureHelper.GetString(Properties.Resources.ResourceManager, "SEARCHING") + "..."); foreach (string searchProviderName in searchSelector.SearchProviders) { _progressControl.AddItem(searchProviderName, _coreLogic.NumberItemsToRetrieve); } SearchResultSet searchResultSet = new SearchResultSet(); searchResultSet.SearchDescription = new SearchDescription(); searchResultSet.SearchDescription.Query = query; searchResultSet.SearchDescription.QueryDate = DateTime.Now; searchResultSet.SearchDescription.SearchProviders = searchSelector.SearchProviders; _currentSearchVisualisation = new SearchVisualisation(); _currentSearchVisualisation.Visualisation = visualisationSelector.Visualisation; _currentSearchVisualisation.Localise(); _currentSearchVisualisation.ItemActivated += new SearchVisualisation.ItemActivatedEventHandler(SearchVisualisation_ItemActivated); _currentSearchVisualisation.ItemSelected += new SearchVisualisation.ItemSelectedEventHandler(SearchVisualisation_ItemSelected); _currentSearchVisualisation.SearchResultSet = searchResultSet; searchVisualisationTab.AddSearchVisualisation(_currentSearchVisualisation); InformationPanelRefresh(); ActionButtonsRefresh(); _gettingProgress = false; _progressTimer = new DispatcherTimer(); _progressTimer.Interval = TimeSpan.FromMilliseconds(200); _progressTimer.Tick += new EventHandler(_progressTimer_Tick); _progressTimer.Start(); _coreLogic.SearchStartSession(searchResultSet.SearchDescription.SearchProviders, query, delegate(SearchResultSet searchResultSet2) { Action a = delegate() { if (_progressTimer != null) { _progressTimer.Stop(); _gettingProgress = false; } if (searchResultSet2 != null && _currentSearchVisualisation != null) { _currentSearchVisualisation.SearchResultSet = searchResultSet2; _currentSearchVisualisation.PopulateVisualisation(); DialogPanel.Close(_progressControl, DialogResult.Ok); } else { DialogPanel.Close(_progressControl, DialogResult.Cancel); } }; #if SILVERLIGHT Dispatcher.BeginInvoke(a); #else Dispatcher.Invoke(a); #endif } ); }
private void AddToFavourites(SearchVisualisation searchVisualisation) { if (searchVisualisation != null) { Favourite favourite = new Favourite(); favourite.Name = searchVisualisation.SearchResultSet.SearchDescription.Query; favourite.Query = searchVisualisation.SearchResultSet.SearchDescription.Query; favourite.SearchProviders = searchVisualisation.SearchResultSet.SearchDescription.SearchProviders; favourite.Visualisation = searchVisualisation.Visualisation; _coreLogic.FavouritesAdd(favourite); } }
void searchVisualisationTab_AddToFavourites(SearchVisualisation searchVisualisation) { AddToFavourites(searchVisualisation); }
void searchVisualisationTab_ItemSelected(SearchVisualisation searchVisualisation) { bool showDocumentViewer = false; DisplayNewVisualisation(searchVisualisation); _currentSearchVisualisation = searchVisualisation; if (_currentSearchVisualisation != null) { textQuery.Text = _currentSearchVisualisation.SearchResultSet.SearchDescription.Query; showDocumentViewer = _currentSearchVisualisation.IsClusterOpen; } if (showDocumentViewer) { OpenDocumentViewer(); } else { CloseDocumentViewer(); } InformationPanelRefresh(); ActionButtonsRefresh(); UpdateGoState(); }
private void DisplayNewVisualisation(SearchVisualisation searchVisualisation) { if (_currentSearchVisualisation != null) { _currentSearchVisualisation.VisualisationStateChanged(false); } if (searchVisualisation != null) { contentPresenterVisualisation.Content = searchVisualisation.VisualisationControl; searchVisualisation.VisualisationStateChanged(true); } else { contentPresenterVisualisation.Content = null; } }
private ToggleButton CreateTabButton(SearchVisualisation searchVisualisation) { ToggleButton button = new ToggleButton(); Grid g = new Grid(); ColumnDefinition cd0 = new ColumnDefinition(); cd0.Width = new GridLength(6); ColumnDefinition cd1 = new ColumnDefinition(); cd1.Width = new GridLength(20); ColumnDefinition cd2 = new ColumnDefinition(); cd2.Width = new GridLength(6); ColumnDefinition cd3 = new ColumnDefinition(); cd3.Width = new GridLength(80); ColumnDefinition cd4 = new ColumnDefinition(); cd4.Width = new GridLength(6); ColumnDefinition cd5 = new ColumnDefinition(); cd5.Width = new GridLength(20); ColumnDefinition cd6 = new ColumnDefinition(); cd6.Width = new GridLength(20); ColumnDefinition cd7 = new ColumnDefinition(); cd7.Width = new GridLength(6); g.ColumnDefinitions.Add(cd0); g.ColumnDefinitions.Add(cd1); g.ColumnDefinitions.Add(cd2); g.ColumnDefinitions.Add(cd3); g.ColumnDefinitions.Add(cd4); g.ColumnDefinitions.Add(cd5); g.ColumnDefinitions.Add(cd6); g.ColumnDefinitions.Add(cd7); Image image = new Image(); image.Width = 20; image.Height = 20; image.Source = new System.Windows.Media.Imaging.BitmapImage(VisualisationFactory.GetSmallImage(searchVisualisation.Visualisation)); Grid.SetColumn(image, 1); g.Children.Add(image); TextBlock tb = new TextBlock(); tb.Text = searchVisualisation.SearchResultSet.SearchDescription.Query; tb.TextWrapping = TextWrapping.NoWrap; #if !SILVERLIGHT tb.TextTrimming = TextTrimming.CharacterEllipsis; #endif tb.TextAlignment = TextAlignment.Left; tb.VerticalAlignment = VerticalAlignment.Center; tb.HorizontalAlignment = HorizontalAlignment.Left; Grid.SetColumn(tb, 3); g.Children.Add(tb); Button favouritesAddButton = new Button(); favouritesAddButton.Click += new RoutedEventHandler(favouritesAddButton_Click); favouritesAddButton.Width = 20; favouritesAddButton.Height = 20; favouritesAddButton.Tag = searchVisualisation; Image imageFavouritesAdd = new Image(); imageFavouritesAdd.Source = new BitmapImage(new Uri("Resources/FavouritesAdd16.png", UriKind.Relative)); imageFavouritesAdd.Stretch = Stretch.None; favouritesAddButton.Content = imageFavouritesAdd; Grid.SetColumn(favouritesAddButton, 5); g.Children.Add(favouritesAddButton); TextBlock tbClose = new TextBlock(); tbClose.Text = "X"; tbClose.VerticalAlignment = VerticalAlignment.Top; Button closeButton = new Button(); closeButton.Margin = new Thickness(0, 0, 0, 0); closeButton.Click += new RoutedEventHandler(closeButton_Click); closeButton.Content = tbClose; closeButton.Tag = searchVisualisation; closeButton.Width = 20; closeButton.Height = 20; Grid.SetColumn(closeButton, 6); g.Children.Add(closeButton); g.Tag = searchVisualisation; g.Width = 164; g.Height = 32; button.Content = g; button.Tag = searchVisualisation; button.Height = 32; button.Width = 164; button.Click += new RoutedEventHandler(button_Click); return(button); }
/// <summary> /// Remove a search visualisation from the list /// </summary> /// <param name="searchVisualisation">The search visualisation to remove</param> public void RemoveSearchVisualisation(SearchVisualisation searchVisualisation) { int found = -1; for (int i = 0; i < _items.Children.Count && found == -1; i++) { ToggleButton button = _items.Children[i] as ToggleButton; if (button.Tag == searchVisualisation) { found = i; _items.Children.RemoveAt(i); if (i <= _currentIndex) { _currentIndex--; } } } if (found != -1) { int newIndex = _currentIndex; if (newIndex < 0) { newIndex = 0; } if (ItemSelected != null) { if (newIndex < _items.Children.Count) { ToggleButton b = _items.Children[newIndex] as ToggleButton; SelectNewItem(b); } else { ItemSelected(null); } } } CalculateButtonVisibility(true); }
/// <summary> /// Refresh the search visualisation /// </summary> /// <param name="refreshSearchVisualisation">The search visualisation to refresh</param> public void RefreshSearchVisualisation(SearchVisualisation refreshSearchVisualisation) { bool found = false; for (int i = 0; i < _items.Children.Count && !found; i++) { ToggleButton b = _items.Children[i] as ToggleButton; SearchVisualisation searchVisualisation = b.Tag as SearchVisualisation; if (searchVisualisation != null) { if (searchVisualisation.SearchResultSet.SearchDescription.Id == refreshSearchVisualisation.SearchResultSet.SearchDescription.Id) { found = true; Grid g = b.Content as Grid; if (g != null) { Image image = g.Children[0] as Image; if (image != null) { image.Source = new System.Windows.Media.Imaging.BitmapImage(VisualisationFactory.GetSmallImage(searchVisualisation.Visualisation)); } } } } } }
/// <summary> /// Add a new search visualisation /// </summary> /// <param name="searchVisualisation">The search visualisation to add</param> public void AddSearchVisualisation(SearchVisualisation searchVisualisation) { ToggleButton button = CreateTabButton(searchVisualisation); _items.Children.Add(button); SelectNewItem(button); _currentIndex = _items.Children.IndexOf(button); CalculateButtonVisibility(true); }