private void OnEditArtifact(object sender, EventArgs e)
        {
            var item = _gridView.SelectedItem as ArtifactTemplate;

            if (item == null)
            {
                return;
            }
            var artifactIndex = _dataStore.IndexOf(item);

            using (var dlg = new AddOrEditArtifactDependencyDialog(_servers, item))
            {
                dlg.ShowModal();
                if (dlg.Result)
                {
                    var artifact = dlg.GetArtifact();
                    _dataStore.Remove(item);
                    _dataStore.Insert(artifactIndex, artifact);
                }
            }
        }
Ejemplo n.º 2
0
        GridView WithContextMenuAndFilter()
        {
            var control  = defaultGridView = Default(null);
            var filtered = new SelectableFilterCollection <MyGridItem>(control, CreateItems().ToArray());

            control.DataStore = filtered;
            control.AllowMultipleSelection = true;

            // Filter
            filterText.TextChanged += (s, e) =>
            {
                var filterItems = (filterText.Text ?? "").Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                if (filterItems.Length == 0)
                {
                    filtered.Filter = null;
                }
                else
                {
                    filtered.Filter = i =>
                    {
                        // Every item in the split filter string should be within the Text property
                        foreach (var filterItem in filterItems)
                        {
                            if (i.Text.IndexOf(filterItem, StringComparison.CurrentCultureIgnoreCase) == -1)
                            {
                                return(false);
                            }
                        }
                        return(true);
                    }
                };
            };

            // Context menu
            var menu = new ContextMenu();
            var item = new ButtonMenuItem {
                Text = "Click Me!"
            };

            item.Click += delegate
            {
                if (control.SelectedRows.Any())
                {
                    Log.Write(item, "Click, Rows: {0}", SelectedRowsString(control));
                }
                else
                {
                    Log.Write(item, "Click, no item selected");
                }
            };
            menu.Items.Add(item);

            // Delete menu item: deletes the item from the store, the UI updates via the binding.
            var deleteItem = new ButtonMenuItem {
                Text = "Delete Item"
            };

            deleteItem.Click += (s, e) =>
            {
                var i = control.SelectedItems.First() as MyGridItem;
                if (i != null)
                {
                    filtered.Remove(i);
                }
            };
            menu.Items.Add(deleteItem);

            // Insert item: inserts an item into the store, the UI updates via the binding.
            var insertItem = new ButtonMenuItem {
                Text = "Insert Item at the start of the list"
            };

            insertItem.Click += (s, e) =>
            {
                var i = control.SelectedItems.First() as MyGridItem;
                if (i != null)
                {
                    filtered.Insert(0, new MyGridItem(new Random(), 0));
                }
            };
            menu.Items.Add(insertItem);

            var subMenu = menu.Items.GetSubmenu("Sub Menu");

            item = new ButtonMenuItem {
                Text = "Item 5"
            };
            item.Click += (s, e) => Log.Write(item, "Clicked");
            subMenu.Items.Add(item);
            item = new ButtonMenuItem {
                Text = "Item 6"
            };
            item.Click += (s, e) => Log.Write(item, "Clicked");
            subMenu.Items.Add(item);

            control.ContextMenu = menu;
            return(control);
        }
Ejemplo n.º 3
0
		ContextMenu CreateContextMenu(GridView grid, SelectableFilterCollection<MyGridItem> filtered)
		{
			// Context menu
			var menu = new ContextMenu();
			var item = new ButtonMenuItem { Text = "Click Me!" };
			item.Click += (sender, e) =>
			{
				if (grid.SelectedRows.Any())
					Log.Write(item, "Click, Rows: {0}", SelectedRowsString(grid));
				else
					Log.Write(item, "Click, no item selected");
			};
			menu.Items.Add(item);

			// Delete menu item: deletes the item from the store, the UI updates via the binding.
			var deleteItem = new ButtonMenuItem { Text = "Delete Item" };
			deleteItem.Click += (s, e) =>
			{
				var i = grid.SelectedItems.First() as MyGridItem;
				if (i != null)
					filtered.Remove(i);
			};
			menu.Items.Add(deleteItem);

			// Insert item: inserts an item into the store, the UI updates via the binding.
			var insertItem = new ButtonMenuItem { Text = "Insert Item at the start of the list" };
			insertItem.Click += (s, e) =>
			{
				var i = grid.SelectedItems.First() as MyGridItem;
				if (i != null)
					filtered.Insert(0, new MyGridItem(new Random(), 0));
			};
			menu.Items.Add(insertItem);

			var subMenu = menu.Items.GetSubmenu("Sub Menu");
			item = new ButtonMenuItem { Text = "Item 5" };
			item.Click += (s, e) => Log.Write(item, "Clicked");
			subMenu.Items.Add(item);
			item = new ButtonMenuItem { Text = "Item 6" };
			item.Click += (s, e) => Log.Write(item, "Clicked");
			subMenu.Items.Add(item);

			return menu;
		}
Ejemplo n.º 4
0
        ContextMenu CreateContextMenu(GridView grid, SelectableFilterCollection <MyGridItem> filtered)
        {
            // Context menu
            var menu = new ContextMenu();
            var item = new ButtonMenuItem {
                Text = "Click Me!"
            };

            item.Click += (sender, e) =>
            {
                if (grid.SelectedRows.Any())
                {
                    Log.Write(item, "Click, Rows: {0}", SelectedRowsString(grid));
                }
                else
                {
                    Log.Write(item, "Click, no item selected");
                }
            };
            menu.Items.Add(item);

            // Delete menu item: deletes the item from the store, the UI updates via the binding.
            var deleteItem = new ButtonMenuItem {
                Text = "Delete Item"
            };

            deleteItem.Click += (s, e) =>
            {
                var i = grid.SelectedItems.First() as MyGridItem;
                if (i != null)
                {
                    filtered.Remove(i);
                }
            };
            menu.Items.Add(deleteItem);

            // Insert item: inserts an item into the store, the UI updates via the binding.
            var insertItem = new ButtonMenuItem {
                Text = "Insert Item at the start of the list"
            };

            insertItem.Click += (s, e) =>
            {
                var i = grid.SelectedItems.First() as MyGridItem;
                if (i != null)
                {
                    filtered.Insert(0, new MyGridItem(new Random(), 0));
                }
            };
            menu.Items.Add(insertItem);

            var subMenu = menu.Items.GetSubmenu("Sub Menu");

            item = new ButtonMenuItem {
                Text = "Item 5"
            };
            item.Click += (s, e) => Log.Write(item, "Clicked");
            subMenu.Items.Add(item);
            item = new ButtonMenuItem {
                Text = "Item 6"
            };
            item.Click += (s, e) => Log.Write(item, "Clicked");
            subMenu.Items.Add(item);

            return(menu);
        }
Ejemplo n.º 5
0
        SearchBox CreateSearchBox(SelectableFilterCollection <MyGridItem> filtered)
        {
            var filterText = new SearchBox {
                PlaceholderText = "Filter"
            };

            filterText.TextChanged += (s, e) =>
            {
                var filterItems = (filterText.Text ?? "").Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                if (filterItems.Length == 0)
                {
                    filtered.Filter = null;
                }
                else
                {
                    filtered.Filter = i =>
                    {
                        // Every item in the split filter string should be within the Text property
                        foreach (var filterItem in filterItems)
                        {
                            if (i.Text.IndexOf(filterItem, StringComparison.OrdinalIgnoreCase) == -1)
                            {
                                return(false);
                            }
                        }
                        return(true);
                    }
                };
            };
            return(filterText);
        }

        GridView CreateGrid()
        {
            var control = new GridView
            {
                Size = new Size(300, 100)
            };

            LogEvents(control);

            var dropDown = MyDropDown("DropDownKey");

            control.Columns.Add(new GridColumn {
                DataCell = new CheckBoxCell("Check"), AutoSize = true, Resizable = false
            });
            control.Columns.Add(new GridColumn {
                HeaderText = "Image", DataCell = new ImageViewCell("Image")
            });
            control.Columns.Add(new GridColumn {
                HeaderText = "ImageText", DataCell = new ImageTextCell("Image", "Text")
            });
            control.Columns.Add(new GridColumn {
                HeaderText = "Text", DataCell = new TextBoxCell("Text"), Sortable = true
            });
            control.Columns.Add(new GridColumn {
                HeaderText = "Progress", DataCell = new ProgressCell("Progress")
            });
            control.Columns.Add(new GridColumn {
                HeaderText = "Drop Down", DataCell = dropDown, Sortable = true
            });

            if (Platform.Supports <DrawableCell>())
            {
                var drawableCell = new DrawableCell();
                drawableCell.Paint += (sender, e) =>
                {
                    var m = e.Item as MyGridItem;
                    if (m != null)
                    {
                        if (e.CellState.HasFlag(DrawableCellStates.Selected))
                        {
                            e.Graphics.FillRectangle(Colors.Blue, e.ClipRectangle);
                        }
                        else
                        {
                            e.Graphics.FillRectangle(Brushes.Cached(m.Color), e.ClipRectangle);
                        }
                        var rect = e.ClipRectangle;
                        rect.Inflate(-5, -5);
                        e.Graphics.DrawRectangle(Colors.White, rect);
                        e.Graphics.DrawLine(Colors.White, rect.Left, rect.Bottom, rect.MiddleX, rect.Top);
                        e.Graphics.DrawLine(Colors.White, rect.Right, rect.Bottom, rect.MiddleX, rect.Top);
                    }
                };
                control.Columns.Add(new GridColumn
                {
                    HeaderText = "Owner drawn",
                    DataCell   = drawableCell
                });
            }

            return(control);
        }

        IEnumerable <MyGridItem> CreateItems()
        {
            var rand = new Random();

            for (int i = 0; i < 10000; i++)
            {
                yield return(new MyGridItem(rand, i));
            }
        }

        ContextMenu CreateContextMenu(GridView grid, SelectableFilterCollection <MyGridItem> filtered)
        {
            // Context menu
            var menu = new ContextMenu();
            var item = new ButtonMenuItem {
                Text = "Click Me!"
            };

            item.Click += (sender, e) =>
            {
                if (grid.SelectedRows.Any())
                {
                    Log.Write(item, "Click, Rows: {0}", SelectedRowsString(grid));
                }
                else
                {
                    Log.Write(item, "Click, no item selected");
                }
            };
            menu.Items.Add(item);

            // Delete menu item: deletes the item from the store, the UI updates via the binding.
            var deleteItem = new ButtonMenuItem {
                Text = "Delete Item"
            };

            deleteItem.Click += (s, e) =>
            {
                var i = grid.SelectedItems.First() as MyGridItem;
                if (i != null)
                {
                    filtered.Remove(i);
                }
            };
            menu.Items.Add(deleteItem);

            // Insert item: inserts an item into the store, the UI updates via the binding.
            var insertItem = new ButtonMenuItem {
                Text = "Insert Item at the start of the list"
            };

            insertItem.Click += (s, e) =>
            {
                var i = grid.SelectedItems.First() as MyGridItem;
                if (i != null)
                {
                    filtered.Insert(0, new MyGridItem(new Random(), 0));
                }
            };
            menu.Items.Add(insertItem);

            var subMenu = menu.Items.GetSubmenu("Sub Menu");

            item = new ButtonMenuItem {
                Text = "Item 5"
            };
            item.Click += (s, e) => Log.Write(item, "Clicked");
            subMenu.Items.Add(item);
            item = new ButtonMenuItem {
                Text = "Item 6"
            };
            item.Click += (s, e) => Log.Write(item, "Clicked");
            subMenu.Items.Add(item);

            return(menu);
        }