public void SetAccViewDataStore()
        {
            var accs = LocalContext.GetAllAccounts().Select(acc => new AccountGridItem(acc, this));

            filteredCollection     = new SelectableFilterCollection <AccountGridItem>(AccountsView, accs);
            AccountsView.DataStore = filteredCollection;
        }
Example #2
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);
        }
Example #3
0
        private void PopulateGridView()
        {
            var filtered = new SelectableFilterCollection <LogItem>(_gridView, ToolboxApp.Log.LiveLogItems);

            _gridView.DataStore = filtered;

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

                if (filterItems.Length == 0)
                {
                    filtered.Filter = null;
                }
                else
                {
                    filtered.Filter = i =>
                    {
                        foreach (var filterItem in filterItems)
                        {
                            if (i.ToString().IndexOf(filterItem, StringComparison.CurrentCultureIgnoreCase) == -1)
                            {
                                return(false);
                            }
                        }
                        return(true);
                    }
                };
            };
        }
Example #4
0
 public ImportDialog(List <Server> servers)
 {
     _serversCombo = new ComboBox();
     _projectCombo = new ComboBox();
     _configCombo  = new ComboBox();
     _win32        = new CheckBox {
         Text    = "Win 32-bit",
         Checked = true
     };
     _win64 = new CheckBox
     {
         Text    = "Win 64-bit",
         Checked = true
     };
     _linux32 = new CheckBox {
         Text    = "Linux 32-bit",
         Checked = true
     };
     _linux64 = new CheckBox {
         Text    = "Linux 64-bit",
         Checked = true
     };
     _spinner = new Spinner {
         Size    = new Size(30, 30),
         Visible = false
     };
     _gridView  = new GridView();
     _dataStore = new SelectableFilterCollection <ArtifactTemplate>(_gridView);
     Init(servers);
 }
Example #5
0
        public ReferenceDialog(IController controller, string[] refs)
        {
            InitializeComponent();

            _controller = controller;

            _dllFileFilter = new FileFilter("Dll Files (*.dll)", new[] { ".dll" });
            _allFileFilter = new FileFilter("All Files (*.*)", new[] { ".*" });

            var assemblyColumn = new GridColumn();

            assemblyColumn.HeaderText = "Assembly";
            assemblyColumn.DataCell   = new TextBoxCell("Assembly");
            assemblyColumn.Sortable   = true;
            grid1.Columns.Add(assemblyColumn);

            var locationColumn = new GridColumn();

            locationColumn.HeaderText = "Location";
            locationColumn.DataCell   = new TextBoxCell("Location");
            locationColumn.Sortable   = true;
            grid1.Columns.Add(locationColumn);

            grid1.DataStore = _dataStore = new SelectableFilterCollection <RefItem>(grid1);

            foreach (var rf in refs)
            {
                _dataStore.Add(new RefItem(Path.GetFileName(rf), _controller.GetFullPath(rf)));
            }
        }
Example #6
0
 TableLayout CreateOptions(GridView grid, SelectableFilterCollection <MyGridItem> filtered)
 {
     return(new TableLayout
     {
         Padding = Padding.Empty,
         Rows =
         {
             TableLayout.Horizontal(
                 null,
                 EnabledCheckBox(grid),
                 EditableCheckBox(grid),
                 AllowMultiSelectCheckBox(grid),
                 ShowHeaderCheckBox(grid),
                 GridLinesDropDown(grid),
                 null
                 ),
             TableLayout.Horizontal(
                 null,
                 CreateScrollToRow(grid),
                 CreateBeginEditButton(grid),
                 null
                 ),
             CreateSearchBox(filtered)
         }
     });
 }
Example #7
0
		public GridViewSection()
		{
			var gridView = CreateGrid();
			var selectionGridView = CreateGrid();

			// hook up selection of main grid to the selection grid
			gridView.SelectionChanged += (s, e) => selectionGridView.DataStore = gridView.SelectedItems.ToList();

			var filteredCollection = new SelectableFilterCollection<MyGridItem>(gridView, CreateItems().ToList());
			gridView.DataStore = filteredCollection;

			if (Platform.Supports<ContextMenu>())
				gridView.ContextMenu = CreateContextMenu(gridView, filteredCollection);

			Content = new TableLayout
			{
				Padding = new Padding(10),
				Spacing = new Size(5, 5),
				Rows =
				{
					new TableRow(
						"Grid", 
						new TableLayout(
							CreateOptions(gridView, filteredCollection),
							gridView
						)
					) { ScaleHeight = true },
					new TableRow("Selected Items", selectionGridView)
				}
			};
		}
Example #8
0
        Button AddItemButton(SelectableFilterCollection <MyGridItem> filtered)
        {
            var control = new Button {
                Text = "Add Item"
            };

            control.Click += (sender, e) => filtered.Add(new MyGridItem(new Random(), filtered.Count + 1));
            return(control);
        }
Example #9
0
        Control CreateSearchBox(SelectableFilterCollection <JourneyViewModel> 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.TextDescription.IndexOf(filterItem, StringComparison.OrdinalIgnoreCase) == -1)
                            {
                                return(false);
                            }
                        }
                        return(true);
                    }
                };
            };

            var panel = new Panel();

            panel.Content = filterText;
            panel.Padding = new Padding(5, 5);

            return(panel);
        }

        ContextMenu CreateContextMenu()
        {
            var menu = new ContextMenu();

            var deleteItem = new ButtonMenuItem {
                Text = "Delete"
            };

            deleteItem.Click += (s, e) =>
            {
                DeleteSelectedJourney();
            };
            menu.Items.Add(deleteItem);

            return(menu);
        }
    }
Example #10
0
 StackLayout CreateOptions(GridView grid, SelectableFilterCollection <MyGridItem> filtered)
 {
     return(new StackLayout
     {
         Spacing = 5,
         HorizontalContentAlignment = HorizontalAlignment.Stretch,
         Items =
         {
             TableLayout.Horizontal(
                 5,
                 null,
                 EnabledCheckBox(grid),
                 EditableCheckBox(grid),
                 AllowMultiSelectCheckBox(grid),
                 ShowHeaderCheckBox(grid),
                 GridLinesDropDown(grid),
                 null
                 ),
             TableLayout.Horizontal(
                 5,
                 null,
                 AddItemButton(filtered),
                 CreateScrollToRow(grid),
                 CreateBeginEditButton(grid),
                 "Border",
                 CreateBorderType(grid),
                 null
                 ),
             TableLayout.Horizontal(
                 5,
                 null,
                 ReloadDataButton(grid),
                 null
                 ),
             TableLayout.Horizontal(
                 5,
                 null,
                 "TextBoxCell:",
                 "TextAlignment",               TextAlignmentDropDown(grid),
                 "VerticalAlignment",           VerticalAlignmentDropDown(grid),
                 null
                 ),
             TableLayout.Horizontal(
                 5,
                 null,
                 "AutoSelectMode",              AutoSelectModeDropDown(grid),
                 null
                 ),
             CreateSearchBox(filtered)
         }
     });
 }
		public void Setup()
		{
			TestUtils.Invoke(() =>
			{
				grid = new GridView();
				// Some platforms need at least one column for selection to work
				grid.Columns.Add(new GridColumn { HeaderText = "Text", DataCell = new TextBoxCell("Id") });
				model = GridViewUtils.CreateModel();

				// create our filtered collection
				filtered = new SelectableFilterCollection<DataItem>(grid, model);
				filtered.SelectionChanged += (s, e) => modelSelectionChangedCount++;
				grid.DataStore = filtered;
				grid.SelectionChanged += (s, e) => viewSelectionChangedCount++;
				modelSelectionChangedCount = viewSelectionChangedCount = 0;
			});
		}
Example #12
0
        void PopulatePropertyView(bool v)
        {
            var coll = new SelectableFilterCollection <PropertyPOCO> (mPropertyGridView);

            for (int i = 0; i < 27; i++)
            {
                coll.Add(new PropertyPOCO("Name " + i.ToString(), "Integer", i % 4 == 0 ? "Group " + i.ToString() : "", i % 4 == 0 ? true : false, i % 2 == 0 ? true : false, true));
            }

            mCheck.DataCell = new PropertyCustomCheckCell();
            mName.DataCell  = new TextBoxCell {
                Binding = Binding.Property <PropertyPOCO, string> (r => r.PropertyName)
            };
            mType.DataCell = new TextBoxCell {
                Binding = Binding.Property <PropertyPOCO, string> (r => r.PropertyType)
            };
            mPropertyGridView.DataStore = coll;
        }
Example #13
0
        public void Setup()
        {
            TestBase.Invoke(() =>
            {
                grid = new GridView();
                // Some platforms need at least one column for selection to work
                grid.Columns.Add(new GridColumn {
                    HeaderText = "Text", DataCell = new TextBoxCell("Id")
                });
                model = GridViewUtils.CreateModel();

                // create our filtered collection
                filtered = new SelectableFilterCollection <DataItem>(grid, model);
                filtered.SelectionChanged += (s, e) => modelSelectionChangedCount++;
                grid.DataStore             = filtered;
                grid.SelectionChanged     += (s, e) => viewSelectionChangedCount++;
                modelSelectionChangedCount = viewSelectionChangedCount = 0;
            });
        }
Example #14
0
        public GridViewSection()
        {
            var gridView          = CreateGrid();
            var selectionGridView = CreateGrid();

            // hook up selection of main grid to the selection grid
            gridView.SelectionChanged += (s, e) => selectionGridView.DataStore = gridView.SelectedItems.ToList();

            var filteredCollection = new SelectableFilterCollection <MyGridItem>(gridView, CreateItems().ToList());

            gridView.DataStore = filteredCollection;

            if (Platform.Supports <ContextMenu>())
            {
                gridView.ContextMenu = CreateContextMenu(gridView, filteredCollection);
            }

            Content = new TableLayout
            {
                Rows =
                {
                    new TableRow(
                        new Label {
                        Text = "Grid"
                    },
                        new TableLayout(
                            CreateOptions(gridView, filteredCollection),
                            gridView
                            )
                        )
                    {
                        ScaleHeight = true
                    },
                    new TableRow(
                        new Label {
                        Text = "Selected Items"
                    },
                        selectionGridView
                        )
                }
            };
        }
Example #15
0
 StackLayout CreateOptions(GridView grid, SelectableFilterCollection <MyGridItem> filtered)
 {
     return(new StackLayout
     {
         Spacing = 5,
         HorizontalContentAlignment = HorizontalAlignment.Stretch,
         Items =
         {
             new StackLayout
             {
                 Orientation = Orientation.Horizontal,
                 Spacing = 5,
                 Items =
                 {
                     null,
                     EnabledCheckBox(grid),
                     EditableCheckBox(grid),
                     AllowMultiSelectCheckBox(grid),
                     ShowHeaderCheckBox(grid),
                     GridLinesDropDown(grid),
                     null
                 }
             },
             new StackLayout
             {
                 Orientation = Orientation.Horizontal,
                 Spacing = 5,
                 Items =
                 {
                     null,
                     AddItemButton(filtered),
                     CreateScrollToRow(grid),
                     CreateBeginEditButton(grid),
                     null
                 }
             },
             CreateSearchBox(filtered)
         }
     });
 }
Example #16
0
		StackLayout CreateOptions(GridView grid, SelectableFilterCollection<MyGridItem> filtered)
		{
			return new StackLayout
			{
				Spacing = 5,
				HorizontalContentAlignment = HorizontalAlignment.Stretch,
				Items =
				{
					new StackLayout
					{
						Orientation = Orientation.Horizontal,
						Spacing = 5,
						Items =
						{
							null,
							EnabledCheckBox(grid),
							EditableCheckBox(grid),
							AllowMultiSelectCheckBox(grid),
							ShowHeaderCheckBox(grid),
							GridLinesDropDown(grid),
							null
						}
					},
					new StackLayout 
					{
						Orientation = Orientation.Horizontal,
						Spacing = 5,
						Items =
						{
							null,
							AddItemButton(filtered),
							CreateScrollToRow(grid),
							CreateBeginEditButton(grid),
							null
						}
					},
					CreateSearchBox(filtered)
				}
			};
		}
Example #17
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);
        }
Example #18
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;
		}
Example #19
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;
		}
        public BuildDependencyManagerDialog(string fileName = null)
        {
            Application.Instance.UnhandledException += OnUnhandledException;
            Application.Instance.Initialized        += OnApplicationInitialized;
            Application.Instance.Name = "Build Dependency Manager";
            _artifacts = new List <ArtifactTemplate>();
            Title      = "Build Dependency Manager";
            ClientSize = new Size(700, 400);

            Menu = new MenuBar
            {
                Items =
                {
                    new ButtonMenuItem
                    {
                        Text  = "&File",
                        Items =
                        {
                            new Command(OnFileNew)
                            {
                                MenuText = "&New"
                            },
                            new Command(OnFileOpen)
                            {
                                MenuText = "&Open..."
                            },
                            new Command(OnFileSave)
                            {
                                MenuText = "&Save"
                            },
                            new Command(OnFileSaveAs)
                            {
                                MenuText = "Save &As..."
                            },
                            new Command(OnFileImport)
                            {
                                MenuText = "&Import..."
                            },
                        }
                    },
                    new ButtonMenuItem
                    {
                        Text  = "&Tools",
                        Items =
                        {
                            new Command(OnToolsServers)
                            {
                                MenuText = "&Servers"
                            },
                            new Command(OnToolsSort)
                            {
                                MenuText = "S&ort"
                            }
                        }
                    },
                    new ButtonMenuItem
                    {
                        Text  = "&Help",
                        Items =
                        {
                            new Command(OnHelpAbout)
                            {
                                MenuText = "&About"
                            }
                        }
                    }
                },
                QuitItem = new Command((sender, e) => Application.Instance.Quit())
                {
                    MenuText = "E&xit",
                }
            };

            _spinner = new Spinner {
                Size = new Size(30, 30), Visible = false
            };
            _gridView = new GridView
            {
                GridLines  = GridLines.Both,
                ShowHeader = true,
                Size       = new Size(680, 350)
            };
            _dataStore                 = new SelectableFilterCollection <ArtifactTemplate>(_gridView, _artifacts);
            _gridView.DataStore        = _dataStore;
            _gridView.CellDoubleClick += OnEditArtifact;
            _gridView.Columns.Add(new GridColumn
            {
                HeaderText = "Artifacts source",
                DataCell   = new TextBoxCell("Source"),
                AutoSize   = true,
                Resizable  = true,
                Sortable   = true,
            });
            _gridView.Columns.Add(new GridColumn
            {
                HeaderText = "Artifacts path",
                DataCell   = new TextBoxCell("PathRules"),
                //AutoSize = true,
                Resizable = true,
                Sortable  = true
            });
            _gridView.ContextMenu = new ContextMenu(
                new ButtonMenuItem(new Command(OnEditArtifact)
            {
                MenuText = "&Edit"
            }),
                new ButtonMenuItem(new Command(OnDeleteArtifact)
            {
                MenuText = "&Delete"
            }));

            var button = new Button {
                Text = "Add Artifact"
            };

            button.Click += OnAddArtifact;

            var content = new TableLayout
            {
                Padding = new Padding(10, 10, 10, 5),
                Spacing = new Size(5, 5),
                Rows    =
                {
                    new TableRow(_gridView)
                    {
                        ScaleHeight = true
                    },
                    new StackLayout
                    {
                        Orientation = Orientation.Horizontal,
                        Spacing     = 5,
                        Items       = { _spinner, null, button }
                    }
                }
            };

            Content = content;

            if (string.IsNullOrEmpty(fileName))
            {
                OnFileNew(this, EventArgs.Empty);
            }
            else
            {
                FileName = fileName;
                _fileWaitingToBeLoaded = true;
            }
        }
Example #21
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);
        }
Example #22
0
 private void SetDataStore()
 {
     filteredCollection = new SelectableFilterCollection <MyGridItem>(gridView, CreateItems());
     gridView.DataStore = filteredCollection;
 }
Example #23
0
		Button AddItemButton(SelectableFilterCollection<MyGridItem> filtered)
		{
			var control = new Button { Text = "Add Item" };
			control.Click += (sender, e) => filtered.Add(new MyGridItem(new Random(), filtered.Count + 1));
			return control;
		}
Example #24
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);
        }
Example #25
0
        public MainView()
        {
            ProcessStartInfo mongoDbProcessInfo = new ProcessStartInfo();

            mongoDbProcessInfo.FileName  = "/usr/local/Cellar/mongodb-community/4.2.1/bin/mongod";
            mongoDbProcessInfo.Arguments = "--config /usr/local/etc/mongod.conf";

            //mongoDbProcessInfo.FileName = "/opt/local/bin/mongod";
            //mongoDbProcessInfo.Arguments = "--config /usr/local/etc/mongod.conf";

            mongoDbProcessInfo.UseShellExecute = false;
            mongoDbProcessInfo.CreateNoWindow  = true;
            mongoDbProcess = Process.Start(mongoDbProcessInfo);
            //p.WaitForExit();

            MainViewModel = new MainViewModel();

            this.DataContext = MainViewModel;

            Title      = "iTrip";
            ClientSize = new Size(1200, 600);

            var gridView = new GridView();

            JourneyList         = new SelectableFilterCollection <JourneyViewModel>(gridView, MainViewModel.Journeys);
            gridView.ShowHeader = false;
            gridView.DataStore  = JourneyList;
            gridView.SelectedItemBinding.BindDataContext((MainViewModel m) => m.SelectedJourney);
            gridView.ContextMenu            = CreateContextMenu();
            gridView.AllowMultipleSelection = true;
            gridView.Style = "journeyList";

            gridView.Columns.Add(new GridColumn
            {
                DataCell = new TextBoxCell {
                    Binding = Binding.Property <JourneyViewModel, string>(r => r.Text)
                },
                HeaderText = "Name",
                Editable   = false,
                Resizable  = false,
                Sortable   = false,
            });

            var searchBox = CreateSearchBox(JourneyList);

            var addButton = new Label();

            addButton.Text       = "+";
            addButton.Font       = new Font(FontFamilies.SansFamilyName, 30);
            addButton.TextColor  = Colors.DarkGray;
            addButton.MouseUp   += (sender, e) => { AddNewJourney(); ((Label)sender).TextColor = Colors.DarkGray; };
            addButton.MouseDown += (sender, e) => ((Label)sender).TextColor = Colors.Black;

            var deleteButton = new Label();

            deleteButton.Text       = "–";
            deleteButton.Font       = new Font(FontFamilies.SansFamilyName, 32);
            deleteButton.TextColor  = Colors.DarkGray;
            deleteButton.MouseUp   += (sender, e) => { DeleteSelectedJourney(); ((Label)sender).TextColor = Colors.DarkGray; };
            deleteButton.MouseDown += (sender, e) => ((Label)sender).TextColor = Colors.Black;

            TableLayout bottomBar = ViewHelper.AppendH(addButton, deleteButton) as TableLayout;

            bottomBar.Padding = new Padding(5, 0);

            var layout = new TableLayout
            {
                Rows =
                {
                    new TableRow(searchBox)
                    {
                        ScaleHeight = false
                    },
                    new TableRow(gridView)
                    {
                        ScaleHeight = true
                    },
                    new TableRow(bottomBar)
                    {
                        ScaleHeight = false
                    },
                    //new TableRow(new TableLayout { Rows = { new TableRow(addButton, deleteButton, null) } } ) { ScaleHeight = false }
                },
                Padding = new Padding(0, 20, 0, 0)
            };

            var splitter = new Splitter
            {
                Orientation = Orientation.Horizontal,
                Position    = 200,
                FixedPanel  = SplitterFixedPanel.Panel1,
                Panel1      = layout,
            };

            splitter.BindDataContext(c => c.Panel2, (MainViewModel m) => m.SelectedJourneyControl);


            var mainLayout = new TableLayout
            {
                Rows =
                {
                    new TableRow(splitter)
                    {
                        ScaleHeight = true
                    },
                    //new TableRow(GetStatusBar()) { ScaleHeight = false }
                },
                Padding = new Padding(0, 0, 0, 0),
            };


            Content = mainLayout;


            Style = "main";

            var addJourneyCommand = new Command {
                MenuText = "New Journey", Image = Icon.FromResource("iTrip.Images.AddIcon.png"), ToolBarText = "New Journey", Shortcut = Keys.Application | Keys.N
            };

            addJourneyCommand.Executed += (sender, e) => AddNewJourney();

            var saveJourneyCommand = new Command {
                MenuText = "Save Journey", ToolBarText = "Save Journey", Shortcut = Keys.Application | Keys.S
            };

            saveJourneyCommand.Executed += (sender, e) => MainViewModel.Save();

            var addEventCommand = new Command {
                MenuText = "Add Event", ToolBarText = "Add Event"
            };

            addEventCommand.Executed += (sender, e) => MainViewModel.SelectedJourney?.AddEvent();

            var addExpenseCommand = new Command {
                MenuText = "Add Expense", Image = Icon.FromResource("iTrip.Images.AddExpenseIcon.png"), ToolBarText = "Add Event"
            };

            addExpenseCommand.Executed += (sender, e) => MainViewModel.SelectedJourney?.AddSpending();

            var displayMapCommand = new Command {
                MenuText = "Map", ToolBarText = "Map"
            };

            displayMapCommand.Executed += (sender, e) => DisplayMap();

            var displayReporting = new Command {
                MenuText = "Reporting", ToolBarText = "Reporting"
            };

            displayReporting.Executed += (sender, e) => DisplaySummary();

            //var quitCommand = new Command { MenuText = "Quit", Shortcut = Application.Instance.CommonModifier | Keys.Q };
            //quitCommand.Executed += (sender, e) => Quit();

            var aboutCommand = new Command {
                MenuText = "About..."
            };

            aboutCommand.Executed += (sender, e) => MessageBox.Show(this, "iTrip v1.5");

            // create menu
            Menu = new MenuBar
            {
                Items =
                {
                    // File submenu
                    new ButtonMenuItem {
                        Text = "&File", Items ={ addJourneyCommand,          saveJourneyCommand, addEventCommand, addExpenseCommand }
                    },
                    new ButtonMenuItem {
                        Text = "&View", Items ={ displayMapCommand,          displayReporting }
                    }
                    // new ButtonMenuItem { Text = "&Edit", Items = { /* commands/items */ } },
                    // new ButtonMenuItem { Text = "&View", Items = { /* commands/items */ } },
                },
                ApplicationItems =
                {
                    // application (OS X) or file menu (others)
                    new ButtonMenuItem {
                        Text = "&Preferences..."
                    },
                },
                //QuitItem = quitCommand,
                AboutItem = aboutCommand
            };

            // create toolbar
            //ToolBar = new ToolBar { Items = { addJourneyCommand, new SeparatorToolItem() { Type = SeparatorToolItemType.FlexibleSpace }, saveJourneyCommand, addEventCommand, addExpenseCommand } };
        }