private void DeleteInfoCard() { // If a card is selected, display a message box asking if the user wants to delete this card. // If they select yes, delete the card from the collection, save the collection and repopulate // the tree if (treeView.SelectedNode != null) { int cardIndex = (int)treeView.SelectedNode.Tag; if (cardIndex >= 0) { IInfoCard card = _infoCards[cardIndex]; if (MessageBox.Show("Are you sure you want to delete " + card.Name + "?", "Confirm Delete", MessageBoxButtons.YesNo) == DialogResult.Yes) { if (_lastDisplayedCard == card) { // If the card is currently displayed, make sure we close it _lastDisplayedCard.CloseDisplay(); _lastDisplayedCard = null; } _infoCards.RemoveAt(cardIndex); _infoCards.Save(InfoCardsFile); PopulateTreeView(null); } } } }
private void CreateNewCard(string category) { IInfoCard card = _infoCardFactories[category].CreateNewInfoCard(category); if (card.EditData()) { _infoCards.Add(card); _infoCards.Save(InfoCardsFile); PopulateTreeView(card.Name); } }
private void DisplayCardData() { if (treeView.SelectedNode != null) { int cardIndex = (int)treeView.SelectedNode.Tag; if (cardIndex >= 0) { // If a card is currently displayed, close it if (_lastDisplayedCard != null) { _lastDisplayedCard.CloseDisplay(); _lastDisplayedCard = null; } IInfoCard card = _infoCards[cardIndex]; card.DisplayData(panelInfoCard); _lastDisplayedCard = card; } } }
private void PopulateTreeView(string selectedKey) { Dictionary <string, TreeNode> mainNodes = new Dictionary <string, TreeNode>(); TreeNode selectedNode = null; treeView.Nodes.Clear(); TreeNode rootNode = new TreeNode("Information Cards"); rootNode.Tag = NodeRoot; treeView.Nodes.Add(rootNode); for (int i = 0; i < _infoCards.Count; i++) { IInfoCard infoCard = (IInfoCard)_infoCards[i]; TreeNode categoryNode = null; if (!mainNodes.ContainsKey(infoCard.Category)) { categoryNode = new TreeNode(infoCard.Category); categoryNode.Tag = NodeCategory; rootNode.Nodes.Add(categoryNode); mainNodes.Add(infoCard.Category, categoryNode); } else { categoryNode = mainNodes[infoCard.Category]; } TreeNode newNode = new TreeNode(infoCard.Name); if (infoCard.Name == selectedKey) { selectedNode = newNode; } newNode.Tag = i; categoryNode.Nodes.Add(newNode); } treeView.ExpandAll(); if (selectedNode != null) { treeView.SelectedNode = selectedNode; } }
private void EditCardData() { if (treeView.SelectedNode != null) { int cardIndex = (int)treeView.SelectedNode.Tag; if (cardIndex >= 0) { if (_lastDisplayedCard != null) { // Close any card currently displayed _lastDisplayedCard.CloseDisplay(); _lastDisplayedCard = null; } IInfoCard card = _infoCards[cardIndex]; bool cardChanged = card.EditData(); if (cardChanged) { _infoCards[cardIndex] = card; _infoCards.Save(InfoCardsFile); PopulateTreeView(card.Name); } } } }