Exemplo n.º 1
0
        private void BookmarksDataGridView_DragDrop(object sender, DragEventArgs e)
        {
            // The mouse locations are relative to the screen, so they must be
            // converted to client coordinates.
            Point clientPoint = BookmarksDataGridView.PointToClient(new Point(e.X, e.Y));

            // Get the row index of the item the mouse is below.
            RowIndexOfItemUnderMouseToDrop = BookmarksDataGridView.HitTest(clientPoint.X, clientPoint.Y).RowIndex;

            // If the drag operation was a move then remove and insert the row.
            if (e.Effect == DragDropEffects.Move)
            {
                DataGridViewRow rowToMove = e.Data.GetData(typeof(DataGridViewRow)) as DataGridViewRow;

                Bookmark bookmark = (Bookmark)Bookmarks.ElementAt(rowToMove.Index).Clone();
                Bookmarks.RemoveAt(rowToMove.Index);
                if (RowIndexOfItemUnderMouseToDrop >= 0)
                {
                    Bookmarks.Insert(RowIndexOfItemUnderMouseToDrop, bookmark);
                }
                else
                {
                    Bookmarks.Add(bookmark);
                }
            }

            BookmarksBindingSource.ResetBindings(false);
        }
Exemplo n.º 2
0
 private void BookmarksDataGridView_MouseMove(object sender, MouseEventArgs e)
 {
     if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
     {
         // If the mouse moves outside the rectangle, start the drag.
         if (DragBoxFromMouseDown != Rectangle.Empty && !DragBoxFromMouseDown.Contains(e.X, e.Y))
         {
             // Proceed with the drag and drop, passing in the list item.
             DragDropEffects dropEffect = BookmarksDataGridView.DoDragDrop(BookmarksDataGridView.Rows[RowIndexFromMouseDown], DragDropEffects.Move);
         }
     }
 }
Exemplo n.º 3
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();
        }
Exemplo n.º 4
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;
        }