コード例 #1
0
        public override object EditValue(ITypeDescriptorContext context,
                                         IServiceProvider provider, object Value)
        {
            edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

            Base c = context.Instance is Base ? context.Instance as Base : ((object[])context.Instance)[0] as Base;

            if (c != null && c.Report != null)
            {
                DataTreeView tree = new DataTreeView();
                tree.BorderStyle     = BorderStyle.None;
                tree.ShowDataSources = false;
                tree.ShowRelations   = false;
                tree.ShowColumns     = false;
                tree.ShowNone        = true;
                tree.ShowVariables   = false;
                tree.ShowParameters  = true;
                tree.ShowTotals      = false;
                tree.CreateNodes(c.Report.Dictionary);
                tree.SelectedItem = (string)Value;
                tree.AfterSelect += new TreeViewEventHandler(tree_AfterSelect);
                if (FSize.Width > 0)
                {
                    tree.Size = FSize;
                }
                edSvc.DropDownControl(tree);

                FSize = tree.Size;
                return(tree.SelectedItem);
            }

            return(Value);
        }
コード例 #2
0
 public override object EditValue(ITypeDescriptorContext context,
                                  IServiceProvider provider, object Value)
 {
     // this method is called when we click on drop-down arrow
     edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
     if (context != null && context.Instance != null)
     {
         Base         component = context.Instance is Base ? context.Instance as Base : ((object[])context.Instance)[0] as Base;
         DataTreeView tree      = new DataTreeView();
         tree.BorderStyle     = BorderStyle.None;
         tree.ShowEnabledOnly = true;
         tree.ShowNone        = true;
         tree.ShowRelations   = true;
         tree.ShowDataSources = false;
         tree.ShowVariables   = false;
         tree.ShowParameters  = false;
         tree.ShowTotals      = false;
         tree.CreateNodes(component.Report.Dictionary);
         tree.SelectedItem    = Value == null ? "" : (Value as Relation).Alias;
         tree.NodeMouseClick += new TreeNodeMouseClickEventHandler(tree_NodeMouseClick);
         if (FSize.Width > 0)
         {
             tree.Size = FSize;
         }
         edSvc.DropDownControl(tree);
         FSize = tree.Size;
         return(tree.SelectedNode.Tag as Relation);
     }
     else
     {
         return(Value);
     }
 }
コード例 #3
0
 /// <inheritdoc/>
 public override object EditValue(ITypeDescriptorContext context,
                                  IServiceProvider provider, object Value)
 {
     // this method is called when we click on drop-down arrow
     edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
     if (context != null && context.Instance is Base)
     {
         Base         component = context.Instance as Base;
         DataTreeView tree      = new DataTreeView();
         tree.BorderStyle     = BorderStyle.None;
         tree.ShowRelations   = true;
         tree.ShowColumns     = true;
         tree.ShowEnabledOnly = true;
         tree.ShowNone        = true;
         tree.CreateNodes(component.Report.Dictionary);
         tree.SelectedItem    = (string)Value;
         tree.NodeMouseClick += new TreeNodeMouseClickEventHandler(tree_NodeMouseClick);
         if (FSize.Width > 0)
         {
             tree.Size = FSize;
         }
         edSvc.DropDownControl(tree);
         FSize = tree.Size;
         return(tree.SelectedItem);
     }
     else
     {
         return(Value);
     }
 }
コード例 #4
0
        private static void MoveElementInsideTree(DataTreeView target, BranchView branchItem)
        {
            if (target.Tree.Children.Count == 0)
            {
                return;
            }

            if (branchItem.Element.DataStructure == null)
            {
                Debug.Write("Can not remove datapoints, only datastructures");
                return;
            }

            var ix = target.Tree.Children.IndexOf(branchItem.Element.DataStructure);

            if (ix != -1)
            {
                if (ix == target.Tree.Children.Count - 1)
                {
                    return;
                }

                target.Tree.Children.Move(ix, target.Tree.Children.Count - 1);
                return;
            }

            var branchParent = XamarinHelpers.GetTypedElementFromParents <BranchView>(branchItem.Parent);

            branchParent.Element.DataStructure.Children.Remove(branchItem.Element.DataStructure);
            target.Tree.Children.Add(branchItem.Element.DataStructure);
        }
コード例 #5
0
		public void loadDataInGui()
		{
			DataTreeView.clear();
			foreach(var file in AstData.files())
				DataTreeView.add_Node(file.fileName(), AstData.compilationUnit(file),true);
			if (DataTreeView.nodes().size()>0)
				DataTreeView.nodes()[0].expand();
		}								
コード例 #6
0
        public override object EditValue(ITypeDescriptorContext context,
                                         IServiceProvider provider, object Value)
        {
            edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
            Hyperlink hyperlink = context.Instance is Hyperlink ?
                                  context.Instance as Hyperlink : ((object[])context.Instance)[0] as Hyperlink;

            if (hyperlink != null &&
                (hyperlink.Kind == HyperlinkKind.DetailReport ||
                 hyperlink.Kind == HyperlinkKind.DetailPage))
            {
                Report report          = null;
                bool   isAnotherReport = hyperlink.Kind == HyperlinkKind.DetailReport &&
                                         !String.IsNullOrEmpty(hyperlink.DetailReportName);
                if (isAnotherReport)
                {
                    report = hyperlink.GetReport(false);
                }
                else
                {
                    report = hyperlink.Report;
                }

                DataTreeView tree = new DataTreeView();
                tree.BorderStyle     = BorderStyle.None;
                tree.ShowDataSources = false;
                tree.ShowRelations   = false;
                tree.ShowColumns     = false;
                tree.ShowNone        = true;
                tree.ShowVariables   = false;
                tree.ShowParameters  = true;
                tree.ShowTotals      = false;
                tree.CreateNodes(report.Dictionary);
                tree.SelectedItem = (string)Value;
                tree.AfterSelect += new TreeViewEventHandler(tree_AfterSelect);
                if (FSize.Width > 0)
                {
                    tree.Size = FSize;
                }
                edSvc.DropDownControl(tree);

                if (isAnotherReport)
                {
                    report.Dispose();
                }
                FSize = tree.Size;
                return(tree.SelectedItem);
            }

            return(Value);
        }
コード例 #7
0
        public static void TestShow()
        {
            IDataTreeViewModel viewModel = new TestDataTreeViewModel();

            DataTreeView view = new DataTreeView(viewModel)
            {
                HorizontalAlignment = HorizontalAlignment.Stretch,
                VerticalAlignment   = VerticalAlignment.Stretch,
            };

            Window testWindow = new Window
            {
                Content = view,
            };

            _ = testWindow.ShowDialog();
        }
コード例 #8
0
        /// <summary>
        /// 转换成树转换成树试图
        /// </summary>
        /// <param name="rights"></param>
        /// <returns></returns>
        public static IList <DataTree> ConvertToDataTreeView(this IEnumerable <Rights> rights)
        {
            IList <DataTree> reslut = new List <DataTree>();

            foreach (Rights item in rights)
            {
                if (item.Child.Count > 0)
                {
                    DataTreeView reslutChild = new DataTreeView();
                    reslutChild.value    = item.Id.ToString();
                    reslutChild.label    = item.Name;
                    reslutChild.children = ConvertToDataTreeView(item.Child);
                    reslut.Add(reslutChild);
                }
                else
                {
                    reslut.Add(item.ConvertToDataTree());
                }
            }
            return(reslut);
        }
コード例 #9
0
        private void tvFolders_DragDrop(object sender, DragEventArgs e)
        {
            DataTreeView tv = (DataTreeView)sender;

            if (e.Data.GetDataPresent(typeof(DataGridViewSelectedRowCollection)))
            {
                Point      clientPoint  = tv.PointToClient(new Point(e.X, e.Y));
                TreeNode   selectedNode = tv.GetNodeAt(clientPoint);
                ITreeItems treeItems    = (ITreeItems)dgvTreeItems.DataSource;
                ITreeItem  selectedItem = treeItems.FirstOrDefault(i => i.IdString == selectedNode.Tag.ToString());
                if (selectedItem is IFolder)
                {
                    IFolder   parent   = selectedItem as IFolder;
                    IContacts contacts = (IContacts)dgvContacts.DataSource;
                    foreach (DataGridViewRow dgvr in (DataGridViewSelectedRowCollection)e.Data.GetData(typeof(DataGridViewSelectedRowCollection)))
                    {
                        IContact         contact = (IContact)dgvr.DataBoundItem;
                        List <ITreeItem> items   = contacts.CreateLink(parent, contact);
                    }
                }
            }
        }
コード例 #10
0
        public void buildGui()
        {
            var topPanel = this;

            CodeViewer   = topPanel.add_SourceCodeViewer();
            DataTreeView = CodeViewer.insert_Left <TreeView>(200).showSelection().sort();
            Options      = DataTreeView.insert_Below <Panel>(40);
            Options.add_CheckBox("View AST", 0, 0, (value) => { this.Show_Ast = value; }).check();
            Options.add_CheckBox("View CodeDom", 0, 95, (value) => { this.Show_CodeDom = value; }).front();
            Options.add_CheckBox("View NRefactory", 20, 0, (value) => { this.Show_NRefactory = value; }).front().autoSize();

            DataTreeView.showSelection();
            DataTreeView.configureTreeViewForCodeDomViewAndNRefactoryDom();
            AstData.afterSelect_ShowInSourceCodeEditor(DataTreeView, CodeViewer.editor());

            DataTreeView.onDrop(
                (fileOrFolder) => {
                DataTreeView.backColor(Color.LightPink);
                O2Thread.mtaThread(
                    () => {
                    AstData.dispose();
                    AstData = new O2MappedAstData();
                    if (fileOrFolder.fileExists())
                    {
                        AstData.loadFile(fileOrFolder);
                    }
                    else
                    {
                        AstData.loadFiles(fileOrFolder.files("*.cs", true));
                    }
                    loadDataInGui();
                    DataTreeView.backColor(Color.White);
                });
            });
            DataTreeView.afterSelect <string>(
                (file) => {
                if (file.fileExists())
                {
                    CodeViewer.open(file);
                }
            });


            DataTreeView.beforeExpand <CompilationUnit>(
                (compilationUnit) => {
                var treeNode = DataTreeView.selected();
                treeNode.clear();

                if (Show_Ast)
                {
                    if (compilationUnit != null)
                    {
                        treeNode.add_Node("AST", null)
                        .show_Ast(compilationUnit)
                        .show_Asts(compilationUnit.types(true))
                        .show_Asts(compilationUnit.methods());
                    }
                    //treeNode.show_Ast(compilationUnit);
                }

                if (Show_CodeDom)
                {
                    var codeNamespace = AstData.MapAstToDom.CompilationUnitToNameSpaces[compilationUnit];
                    var domNode       = treeNode.add_Node("CodeDom");
                    domNode.add_Node("CodeNamespaces").show_CodeDom(codeNamespace);
                    domNode.add_Node("CodeTypeDeclarations").show_CodeDom(AstData.codeTypeDeclarations());
                    domNode.add_Node("CodeMemberMethods").show_CodeDom(AstData.codeMemberMethods());
                    //domNode.add_Node("CodeMemberMethods").show_CodeDom(o2MappedAstData.codeMemberMethods());
                }
                if (Show_NRefactory)
                {
                    var iCompilationUnit = AstData.MapAstToNRefactory.CompilationUnitToICompilationUnit[compilationUnit];
                    treeNode.add_Node("NRefactory")
                    .add_Nodes_WithPropertiesAsChildNodes <ICompilationUnit>(iCompilationUnit);
                    //.show_NRefactoryDom(o2MappedAstData.iClasses())
                    //.show_NRefactoryDom(o2MappedAstData.iMethods());
                }
            });
        }
コード例 #11
0
 internal TreeViewFileDropTarget(DataTreeView treeView) : base(treeView)
 {
     disposable = treeView.AdviseDrop(DragOver, Drop);
 }
コード例 #12
0
 internal ListItemsNodeDropTarget(DataTreeView treeView, IList <ListItem> listItems) : base(treeView)
 {
     this.listItems = listItems;
 }
コード例 #13
0
 internal WebNodeDragTarget(DataTreeView treeView, WebNode webNode)
 {
     this.treeView = treeView;
     this.webNode  = webNode;
     canMove       = webNode.RootNode != null && !webNode.RootNode.IsCurrent;
 }