private void contextFavoriteDelete_Click(object sender, RoutedEventArgs e) { var menuItem = (sender as MenuItem).DataContext; Model.Item item = null; try { item = (Model.Item)menuItem; } catch (InvalidCastException ice) { MessageBox.Show("Unable to remove item from favorites: " + "\n" + ice.Message + "\n" + ice.StackTrace); return; } FavoriteHandler fHandler = new FavoriteHandler(); foreach(Model.Item i in fHandler.favorites.ToList()) { if (item.ItemName.Equals(i.ItemName)) { fHandler.favorites.Remove(i);//remove the item } } FavoritesListBox.ItemsSource = new ListHelper().populateList(fHandler.favorites); }
private void Pivot_SelectionChanged_1(object sender, SelectionChangedEventArgs e) { //BrowsePivot selected if (MasterPivot.SelectedItem == BrowsePivot) { //set focus to this to remove soft keyboard from screen (from Search page) this.Focus(); bool noTableSelected = true; string tableValue = getCategory(out noTableSelected); if (!noTableSelected) { MessageBox.Show("No Table selected in Categories. Defaulting to Monster."); //has already been set to Monster in getCategory() } string strSelect = @"SELECT name FROM " + tableValue + " ORDER BY name ASC";//need to check for empty entry List<Model.Item> _ItemEntries = (Application.Current as App).db.SelectBrowse(strSelect); //execute query for results //add the sql property for each item. This query will be used when the specific item is clicked. foreach(Model.Item i in _ItemEntries.ToList<Model.Item>()) { i.ItemSQL = @"SELECT id, name, full_text FROM " + tableValue + " WHERE name LIKE " + @"""" + i.ItemName + @"""" + " LIMIT 1"; } BrowseListBox.ItemsSource = new ListHelper().populateList(_ItemEntries); } else if (MasterPivot.SelectedItem == FavoritePivot) { //set focus to this to remove soft keyboard from screen (from Search page) this.Focus(); //set the source FavoriteHandler fHandler = new FavoriteHandler(); FavoritesListBox.ItemsSource = new ListHelper().populateList(fHandler.favorites); } //SearchPivot selected else if (MasterPivot.SelectedItem == SearchPivot) { searchTextBox.Focus(); //Collapse the browser control so the user doesn't see a blank white page. if (browserControl.Visibility == System.Windows.Visibility.Visible) { browserControl.Visibility = System.Windows.Visibility.Collapsed; } } else { //set focus to this to remove soft keyboard from screen (from Search page) this.Focus(); } }
/// <summary> /// Attempt to add the selected item to the list of favorites. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void contextFavorite_Click(object sender, RoutedEventArgs e) { var menuItem = (sender as MenuItem).DataContext; Model.Item item = null; try { item = (Model.Item)menuItem; } catch (InvalidCastException ice) { MessageBox.Show("Unable to add item to favorites: " + "\n" + ice.Message + "\n" + ice.StackTrace); return; } //The items in the browse list are BrowseItem objects, meaning the html associated with them is retrieved after the user clicks on one. //This means we must run a query to get the html. This is good for performance because it means that massive strings containing HTML won't be retrieved for every list item //as soon as the item is loaded. string fullHTML = retrieveResult(@"""" + item.ItemName + @""""); //escape commas and crap if (fullHTML.Length > 0) { //We want to add a Model.Item object to the list of favorites so a new instance will need to be created here, using the retrieved html. FavoriteHandler fHandler = new FavoriteHandler(); bool noTableSelected = true; string tableValue = getCategory(out noTableSelected); if (!noTableSelected) { MessageBox.Show("No Table selected in Categories. Defaulting to Monster."); //has already been set to Monster in getCategory() } //Select only 1 item from database! string strSelect = @"SELECT id, name, full_text FROM " + tableValue + " WHERE name LIKE " + @"""" + item.ItemName + @"""" + " LIMIT 1 "; fHandler.addtoFavorites(new Model.Item(item.ItemName, strSelect, fullHTML)); } else //Why would anyone add an item like this anyways - just say no. { MessageBox.Show("No page exists for this item. Unable to add to favorites."); } }
private void TextBlock_Tap(object sender, System.Windows.Input.GestureEventArgs e) { try { //go to a web browser control with the html string passed in Model.Item selectedItem = (Model.Item)FavoritesListBox.SelectedItem; //todo - find the item in the favorites list so we can get the sql. FavoriteHandler fHandler = new FavoriteHandler(); Model.Item item = null; try { item = (Model.Item)fHandler.favorites.First(Item => Item.ItemName.Equals(selectedItem.ItemName)); } catch (ArgumentNullException ane) { MessageBox.Show("Error loading up Favorited Item: " + selectedItem.ItemName + "\n " + ane.Message + "||\n" + ane.StackTrace); } catch (InvalidOperationException ioe) { MessageBox.Show("Error loading up Favorited Item: " + selectedItem.ItemName + "\n " + ioe.Message + "||\n" + ioe.StackTrace); } //we use history result here because we stored the sql when adding the item as a favorite. string fullHTML = retrieveHistoryOrFavoriteResult(item.ItemSQL); if (fullHTML != string.Empty) { currentHTML = fullHTML; //set the html to be the selected result NavigationService.Navigate(new Uri("/ListHitViewer.xaml", UriKind.Relative)); } } catch (InvalidCastException ice) { MessageBox.Show("Unable to load page for item: " + "\n" + ice.Message + "\n" + ice.StackTrace); } }