protected override Control OnDefineLayout() { _container = new TableLayout(1, 2); var header = new Label { Text = "Visual Tree" }; var actionBar = new TableLayout(5, 1) { Spacing = new Size(5, 0), Padding = new Padding(0, 0, 0, 5) }; var refreshBtn = new ImageButton { ToolTip = "Refresh", Image = AppImages.Refresh, Width = 18, Height = 18 }; var addBtn = new ImageButton { ToolTip = "Register New View", Image = AppImages.AddView, Width = 18, Height = 18 }; var editBtn = new ButtonMenuList { ToolTip = "Edit View", Image = AppImages.Edit, Width = 18, Height = 18 }; if (_editMenuItems != null) { editBtn.AddRange(_editMenuItems); } // visual tree _tree = new TreeGridView { ShowHeader = false, ContextMenu = _contextMenu }; _tree.Columns.Add(new GridColumn { DataCell = new VisualTreeCell(), HeaderText = "Image and Text", AutoSize = true, Resizable = true, Editable = false }); _tree.SelectionChanged += (s, e) => { // An item has been selected var ti = _tree.SelectedItem as TreeGridItem; if (ti?.Tag != null) { // does this visual tree node have the data we need? var node = (VisualTreeNode)ti.Tag; if (_tree.SelectedRows.Any()) { _lastSelected = _tree.SelectedRows.First(); // notify outside views var evt = new VisualTreeNodeSelected(node); ToolboxApp.Bus.Notify(evt); } } else { ToolboxApp.Log.Error("The selected node did not have an attached widget."); } }; // layout actionBar.Add(header, 0, 0, true, false); actionBar.Add(addBtn, 1, 0, false, false); actionBar.Add(editBtn, 2, 0, false, false); actionBar.Add(refreshBtn, 3, 0, false, false); actionBar.Add(null, 4, 0, false, false); _container.Add(actionBar, 0, 0, false, false); _container.Add(_tree, 0, 1, false, true); addBtn.Click += OnAddViewClicked; refreshBtn.Click += (s, e) => { ToolboxApp.Bus.Notify(new ForceVisualTreeRefresh()); ToolboxApp.Bus.Notify(new ShowStatusMessage("Visual Tree refresh requested")); }; return(_container); }
protected override Control OnDefineLayout() { _grid = new PropertyEditorGridView(); var settingsBtn = new ButtonMenuList { Width = AppStyles.IconWidth, Height = AppStyles.IconHeight, Image = AppImages.Filter }; var addTypeBtn = new ImageButton { Image = AppImages.Plus, ToolTip = "Register New Property Type", Width = AppStyles.IconWidth, Height = AppStyles.IconHeight }; settingsBtn.AddCheckItem("Show Types", true, chkd => { var column = _grid.Columns[_grid.TypeNameColumnIndex]; column.Visible = chkd; }); addTypeBtn.Click += OnAddSupportedType; // actionbar layout var actionbar = new TableLayout(3, 1) { Spacing = new Size(5, 0) }; _pouchHeader = new Label(); actionbar.Add(_pouchHeader, 0, 0, true, false); actionbar.Add(addTypeBtn, 1, 0, false, false); actionbar.Add(settingsBtn, 2, 0, false, false); var layout = new TableLayout(1, 3) { Spacing = new Size(5, 5) }; // search _search = new SearchBox { PlaceholderText = "Search" }; _search.TextChanged += OnSearch; // positioning layout.Add(actionbar, 0, 0, true, false); layout.Add(_search, 0, 1, true, false); layout.Add(_grid, 0, 2, true, true); layout.Shown += (sender, args) => { ToolboxApp.AppEvents.RefreshWidget(PouchTypes.Properties); }; return(layout); }