Ejemplo n.º 1
0
        private void SaveBookmarksButton_Click(object sender, EventArgs e)
        {
            BookmarksDataGridView.EndEdit();

            BookmarkManager.Instance.ClearBookmarks();
            Bookmarks.ForEach(bookmark => {
                BookmarkManager.Instance.AddBookmark(bookmark);
            });
            BookmarkManager.Instance.SaveBookmarks();

            NotificationCenter.Instance.PostNotification("vagrant-manager.bookmarks-updated");
            this.Close();
        }
Ejemplo n.º 2
0
        private void ManageBookmarksWindow_Load(object sender, EventArgs e)
        {
            CancelScan = new CancellationTokenSource();
            Bookmarks  = new List <Bookmark>(BookmarkManager.Instance.GetBookmarks().Select(bookmark => (Bookmark)bookmark.Clone()));

            ((DataGridViewComboBoxColumn)BookmarksDataGridView.Columns["ProviderIdentifier"]).Items.AddRange(VagrantManager.Instance.GetProviderIdentifiers());
            BookmarksBindingSource = new BindingSource()
            {
                DataSource = Bookmarks
            };
            BookmarksDataGridView.DataSource = BookmarksBindingSource;

            BookmarksDataGridView.ColumnHeaderMouseClick += (s, args) => {
                BookmarksDataGridView.EndEdit();

                foreach (DataGridViewColumn column in BookmarksDataGridView.Columns)
                {
                    if (column == BookmarksDataGridView.Columns[args.ColumnIndex])
                    {
                        column.Tag = column.Tag != null && ((SortOrder)column.Tag) == SortOrder.Ascending ? SortOrder.Descending : SortOrder.Ascending;
                        column.HeaderCell.SortGlyphDirection = (SortOrder)column.Tag;

                        Bookmarks.Sort((a, b) => {
                            PropertyInfo bookmarkProperty = typeof(Bookmark).GetProperty(column.DataPropertyName);
                            return(String.Compare(bookmarkProperty.GetValue(a).ToString(), bookmarkProperty.GetValue(b).ToString()));
                        });

                        if (column.HeaderCell.SortGlyphDirection == SortOrder.Descending)
                        {
                            Bookmarks.Reverse();
                        }
                    }
                    else
                    {
                        column.HeaderCell.SortGlyphDirection = SortOrder.None;
                        column.Tag = null;
                    }
                }

                BookmarksDataGridView.Refresh();
            };
            BookmarksDataGridView.CellValueChanged += (s, args) => {
                if (BookmarksDataGridView.Columns["ProviderIdentifier"].Index == args.ColumnIndex)
                {
                    Bookmarks.ElementAt(args.RowIndex).ProviderIdentifier = (string)BookmarksDataGridView.Rows[args.RowIndex].Cells[args.ColumnIndex].Value;
                    BookmarksDataGridView.Refresh();
                }
            };

            RecursiveScanCheckbox.Checked = Properties.Settings.Default.RecursiveBookmarkScan;
        }