private void groupsActionEditGroup() { try { _NewGroupTarget = NewGroupTarget.SubGroup; var item = _RightSelectedItem ?? tvwGroups.SelectedItem as PNTreeItem; if (item == null) return; var gr = item.Tag as PNGroup; if (gr == null) return; var dlgGroup = new WndNewGroup(gr, item) { Owner = this }; dlgGroup.GroupChanged += dlgGroup_GroupChanged; var showDialog = dlgGroup.ShowDialog(); if (showDialog == null || !showDialog.Value) { dlgGroup.GroupChanged -= dlgGroup_GroupChanged; } } catch (Exception ex) { PNStatic.LogException(ex); } }
private void dlgGroup_GroupChanged(object sender, GroupChangedEventArgs e) { try { var dlgNewGroup = sender as WndNewGroup; if (dlgNewGroup != null) dlgNewGroup.GroupChanged -= dlgGroup_GroupChanged; PNGroup pnGroup = null; switch (_NewGroupTarget) { case NewGroupTarget.SubGroup: pnGroup = getSelectedGroup(); break; case NewGroupTarget.TopLevel: var item = tvwGroups.Items[0] as PNTreeItem; if (item != null) pnGroup = item.Tag as PNGroup; break; } if (pnGroup != null) { var pnTreeItem = e.TreeItem; if (e.Mode == AddEditMode.Add) { var gr = (PNGroup)e.Group.Clone(); gr.ParentID = pnGroup.ID; gr.ID = PNData.GetNewGroupID(); pnGroup.Subgroups.Add(gr); PNData.InsertNewGroup(gr); if (_NewGroupTarget == NewGroupTarget.SubGroup) { loadGroups(gr, pnTreeItem, true); if (pnTreeItem != null) pnTreeItem.IsExpanded = true; } else { var item = tvwGroups.Items[0] as PNTreeItem; if (item != null) { loadGroups(gr, item, true); item.IsExpanded = true; } } } else { e.Group.CopyTo(pnGroup); pnGroup.Name = e.Group.Name; changeNodeText(pnTreeItem, pnGroup.ID); if (!Equals(pnTreeItem.Image, pnGroup.Image)) { if (!pnGroup.IsDefaultImage) pnTreeItem.Image = pnGroup.Image; else pnTreeItem.SetImageResource(pnGroup.ImageName); } updateStatusBar(); PNData.SaveGroupChanges(pnGroup); var selectedNote = getSelectedNote(); if (selectedNote != null) loadNotePreview(selectedNote); } } _NewGroupTarget = NewGroupTarget.None; } catch (Exception ex) { PNStatic.LogException(ex); } }