/// <summary> /// Default Constructor /// </summary> public VisualisationSelector() { InitializeComponent(); panelButtons = new WrapPanel(); panelButtons.Orientation = Orientation.Horizontal; borderMain.Content = panelButtons; List <string> allVisualisations = VisualisationFactory.GetNames(); for (int i = 0; i < allVisualisations.Count; i++) { ToggleButton button = new ToggleButton(); button.Name = "button" + allVisualisations[i]; button.Tag = allVisualisations[i]; button.Width = 80; button.Height = 80; button.Click += new RoutedEventHandler(button_Click); StackPanel sp = new StackPanel(); Image image = new Image(); image.Stretch = System.Windows.Media.Stretch.Fill; image.Width = 48; image.Height = 48; image.Source = new BitmapImage(VisualisationFactory.GetLargeImage(allVisualisations[i])); TextBlock tb = new TextBlock(); tb.Text = allVisualisations[i]; tb.HorizontalAlignment = HorizontalAlignment.Center; sp.Children.Add(image); sp.Children.Add(tb); button.Content = sp; if (i == 0) { button.IsChecked = true; } panelButtons.Children.Add(button); } int numItems = allVisualisations.Count; int columns = Math.Min(3, numItems); this.Width = (80 * columns) + 20; this.Height = (Math.Ceiling((double)numItems / (double)columns) * 80) + 20; this.MouseMove += new MouseEventHandler(VisualisationSelector_MouseMove); this.MouseLeave += new MouseEventHandler(VisualisationSelector_MouseLeave); }
/// <summary> /// Convert the value /// </summary> /// <param name="value"></param> /// <param name="targetType"></param> /// <param name="parameter"></param> /// <param name="culture"></param> /// <returns></returns> public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { string icon = ""; if (value is Data.Favourite) { icon = VisualisationFactory.GetLargeImage((value as Data.Favourite).Visualisation).ToString(); } else if (value is Data.FavouriteFolder) { icon = "../Resources/FavouriteFolder32.png"; } return(icon); }
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> /// 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)); } } } } } }