Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }