コード例 #1
0
        public void SetRoot(IProjectItem item)
        {
            if (item == null)
            {
                _treeStore.Clear();
                _rootExists = false;

                _showContextMenu = false;
                PipelineController.Instance.SelectionChanged(new List <IProjectItem>());

                return;
            }

            if (!_rootExists)
            {
                _treeRoot = _treeStore.AddNode();

                _rootExists = true;
            }

            _treeRoot.SetValue(_dataImage, _iconRoot);
            _treeRoot.SetValue(_dataText, item.Name);
            _treeRoot.SetValue(_dataTag, item);

            _showContextMenu = true;
        }
コード例 #2
0
ファイル: MainWindow.cs プロジェクト: oxyplot/oxyplot-xwt
        public MainWindow()
        {
            this.Examples = ExampleLibrary.Examples.GetList().OrderBy(e => e.Category).ToList();

            this.plotView = new PlotView();
            this.plotView.MinHeight = 554;
            this.plotView.MinWidth = 625;
            this.plotView.DefaultTrackerSettings.Enabled = true;
            this.plotView.DefaultTrackerSettings.Background = Xwt.Drawing.Colors.AliceBlue.WithAlpha (0.9).ToOxyColor();

            this.treeView = new TreeView();
            this.treeView.MinWidth = 314;
            this.treeView.Visible = true;

            var treeModel = new TreeStore(nameCol);
            TreePosition categoryNode = null;
            string categoryName = null;
            foreach (var ex in this.Examples)
            {
                if (categoryName == null || categoryName != ex.Category)
                {
                    categoryNode = treeModel.AddNode ().SetValue (nameCol, ex.Category).CurrentPosition;
                    categoryName = ex.Category;
                }

                treeModel.AddNode (categoryNode).SetValue (nameCol, ex.Title);
            }

            treeView.Columns.Add ("Example", nameCol);
            this.treeView.DataSource = treeModel;

            this.treeView.SelectionChanged += (s, e) =>
            {

                if (treeView.SelectedRow != null) {
                    var sample = treeModel.GetNavigatorAt (treeView.SelectedRow).GetValue (nameCol);

                    var info = this.Examples.FirstOrDefault(ex => ex.Title == sample);
                    if (info != null)
                    {
                        this.SelectedExample = info;
                    }
                }
            };

            var hbox = new HBox();
            hbox.Spacing = 6;
            hbox.MinHeight = 554;
            hbox.MinWidth = 943;

            hbox.PackStart(this.treeView);
            hbox.PackStart(this.plotView, true);

            Content = hbox;

            this.SelectedExample = this.Examples.FirstOrDefault();

            this.Title = "OxyPlot.Xwt Example Browser";
            this.CloseRequested += (s, a) => Application.Exit ();
        }
コード例 #3
0
 void HandleRootChildAdded(object sender, IssueTreeNodeEventArgs e)
 {
     Application.Invoke(delegate {
         Debug.Assert(e.Parent == rootGroup);
         var navigator = store.AddNode();
         SetNode(navigator, e.Child);
         SyncNode(navigator);
     });
 }
コード例 #4
0
        TreePosition AddSample(TreePosition category, string name, Type sampleType)
        {
            Sample sample = new Sample(category, name, sampleType);

            TreeNavigator node            = store.AddNode(category);
            TreeNavigator nameNavigator   = node.SetValue(nameCol, name);
            TreeNavigator iconNavigator   = nameNavigator.SetValue(iconCol, icon);
            TreeNavigator sampleNavigator = iconNavigator.SetValue(sampleCol, sample);

            return(sampleNavigator.CurrentPosition);
        }
コード例 #5
0
        public TreeViews()
        {
            TreeView  view  = new TreeView();
            TreeStore store = new TreeStore(text, desc);

            view.Columns.Add("Item", text);
            view.Columns.Add("Desc", desc);

            store.AddNode().SetValue(text, "One").SetValue(desc, "First");
            store.AddNode().SetValue(text, "Two").SetValue(desc, "Second").AddChild()
            .SetValue(text, "Sub two").SetValue(desc, "Sub second");
            store.AddNode().SetValue(text, "Three").SetValue(desc, "Third").AddChild()
            .SetValue(text, "Sub three").SetValue(desc, "Sub third");
            PackStart(view);

            view.DataSource = store;

            Label la = new Label();

            PackStart(la);

            view.SetDragDropTarget(DragDropAction.All, TransferDataType.Text);
            view.SetDragSource(DragDropAction.All, TransferDataType.Text);

            view.DragDrop += delegate(object sender, DragEventArgs e) {
                TreePosition    node;
                RowDropPosition pos;
                view.GetDropTargetRow(e.Position.X, e.Position.Y, out pos, out node);
                var nav = store.GetNavigatorAt(node);
                la.Text  += "Dropped \"" + e.Data.Text + "\" into \"" + nav.GetValue(text) + "\" " + pos + "\n";
                e.Success = true;
            };
            view.DragOver += delegate(object sender, DragOverEventArgs e) {
                TreePosition    node;
                RowDropPosition pos;
                view.GetDropTargetRow(e.Position.X, e.Position.Y, out pos, out node);
                if (pos == RowDropPosition.Into)
                {
                    e.AllowedAction = DragDropAction.None;
                }
                else
                {
                    e.AllowedAction = e.Action;
                }
            };
            view.DragStarted += delegate(object sender, DragStartedEventArgs e) {
                var val = store.GetNavigatorAt(view.SelectedRow).GetValue(text);
                e.DragOperation.Data.AddValue(val);
                e.DragOperation.Finished += delegate(object s, DragFinishedEventArgs args) {
                    Console.WriteLine("D:" + args.DeleteSource);
                };
            };
        }
コード例 #6
0
        void LoadModes()
        {
            storeModes.Clear();
            var  currentMode  = SelectedExecutionMode;
            bool nodeSelected = false;
            var  ctx          = new CommandExecutionContext(item, h => item.CanExecute(new ExecutionContext(h, null, IdeApp.Workspace.ActiveExecutionTarget), IdeApp.Workspace.ActiveConfiguration, SelectedConfiguration));

            foreach (var modeSet in Runtime.ProcessService.GetExecutionModes())
            {
                TreeNavigator setNode = null;
                foreach (var mode in modeSet.ExecutionModes)
                {
                    if (ctx.CanExecute(mode.ExecutionHandler))
                    {
                        if (setNode == null)
                        {
                            setNode = storeModes.AddNode();
                            setNode.SetValue(modeNameField, modeSet.Name);
                            setNode.SetValue(modeField, mode);
                            setNode.SetValue(modeSetField, modeSet);
                            if (mode.Id == currentMode?.Id)
                            {
                                treeModes.SelectRow(setNode.CurrentPosition);
                                nodeSelected = true;
                            }
                        }
                        var node = storeModes.AddNode(setNode.CurrentPosition);
                        node.SetValue(modeNameField, mode.Name);
                        node.SetValue(modeField, mode);
                        node.SetValue(modeSetField, modeSet);
                        if (!nodeSelected && mode.Id == currentMode?.Id)
                        {
                            treeModes.SelectRow(node.CurrentPosition);
                            nodeSelected = true;
                        }
                    }
                }
                // If the mode only has one child, remove it, we don't need to show it
                if (setNode != null && setNode.MoveToChild())
                {
                    var pos = setNode.Clone();
                    if (!setNode.MoveNext())
                    {
                        pos.Remove();
                    }
                }
            }
            if (!nodeSelected && storeModes.GetFirstNode()?.CurrentPosition != null)
            {
                treeModes.SelectRow(storeModes.GetFirstNode().CurrentPosition);
            }
        }
コード例 #7
0
ファイル: TreeViews.cs プロジェクト: chkn/xwt
        public TreeViews()
        {
            TreeView view = new TreeView ();
            TreeStore store = new TreeStore (text, desc);

            view.Columns.Add ("Item", text);
            view.Columns.Add ("Desc", desc);

            store.AddNode ().SetValue (text, "One").SetValue (desc, "First");
            store.AddNode ().SetValue (text, "Two").SetValue (desc, "Second").AddChild ()
                .SetValue (text, "Sub two").SetValue (desc, "Sub second");
            store.AddNode ().SetValue (text, "Three").SetValue (desc, "Third").AddChild ()
                .SetValue (text, "Sub three").SetValue (desc, "Sub third");
            PackStart (view);

            view.DataSource = store;

            Label la = new Label ();
            PackStart (la);

            view.SetDragDropTarget (DragDropAction.All, TransferDataType.Text);
            view.SetDragSource (DragDropAction.All, TransferDataType.Text);

            view.DragDrop += delegate(object sender, DragEventArgs e) {
                TreePosition node;
                RowDropPosition pos;
                view.GetDropTargetRow (e.Position.X, e.Position.Y, out pos, out node);
                var nav = store.GetNavigatorAt (node);
                la.Text += "Dropped \"" + e.Data.Text + "\" into \"" + nav.GetValue (text) + "\" " + pos + "\n";
                e.Success = true;
            };
            view.DragOver += delegate(object sender, DragOverEventArgs e) {
                TreePosition node;
                RowDropPosition pos;
                view.GetDropTargetRow (e.Position.X, e.Position.Y, out pos, out node);
                if (pos == RowDropPosition.Into)
                    e.AllowedAction = DragDropAction.None;
                else
                    e.AllowedAction = e.Action;
            };
            view.DragStarted += delegate(object sender, DragStartedEventArgs e) {
                var val = store.GetNavigatorAt (view.SelectedRow).GetValue (text);
                e.DragOperation.Data.AddValue (val);
                e.DragOperation.Finished += delegate(object s, DragFinishedEventArgs args) {
                    Console.WriteLine ("D:" + args.DeleteSource);
                };
            };
        }
コード例 #8
0
        async Task Update()
        {
            if (cts != null)
            {
                cts.Cancel();
            }
            cts = new CancellationTokenSource();
            var ct = cts.Token;

            if (editorTracker.Document.AnalysisDocument == null)
            {
                store.Clear();
                lastSourceText = null;
                return;
            }

            var tree = await editorTracker.Document.AnalysisDocument.GetSyntaxTreeAsync(ct);

            var root = await tree.GetRootAsync(ct);

            var text = await editorTracker.Document.AnalysisDocument.GetTextAsync(ct);

            if (ct.IsCancellationRequested)
            {
                return;
            }

            store.Clear();

            AddNode(store.AddNode(), root);
            lastSourceText = text;

            SelectBestMatchForCaret();
        }
コード例 #9
0
 void LoadData(BaseTeamFoundationServer server)
 {
     server.LoadProjectConnections();
     server.ProjectCollections.ForEach(c => c.LoadProjects());
     foreach (var col in server.ProjectCollections)
     {
         var row = collectionStore.AddRow();
         collectionStore.SetValue(row, collectionName, col.Name);
         collectionStore.SetValue(row, collectionItem, col);
     }
     collectionsList.SelectionChanged += (sender, e) =>
     {
         if (collectionsList.SelectedRow > -1)
         {
             var collection = collectionStore.GetValue(collectionsList.SelectedRow, collectionItem);
             projectsStore.Clear();
             foreach (var project in collection.Projects)
             {
                 var node       = projectsStore.AddNode();
                 var project1   = project;
                 var isSelected = SelectedProjects.Any(x => string.Equals(x.Uri, project1.Uri, StringComparison.OrdinalIgnoreCase));
                 node.SetValue(isProjectSelected, isSelected);
                 node.SetValue(projectName, project.Name);
                 node.SetValue(projectItem, project);
             }
         }
     };
     if (server.ProjectCollections.Any())
     {
         collectionsList.SelectRow(0);
     }
 }
コード例 #10
0
ファイル: MainWindow.cs プロジェクト: oldmud0/AiroRom
        void UpdateList(object sender, EventArgs e)
        {
            store.Clear();

            foreach (AlgorithmInfo info in AlgorithmManager.Instance.AlgorithmList)
            {
                if (viewMode.SelectedIndex == 0)
                {
                    InsertAlgorithm(store.AddNode(), info);
                }
                else if (viewMode.SelectedIndex == 1)
                {
                    InsertInGameList(info);
                }
            }
        }
コード例 #11
0
        void Update(MSBuildRootDocument doc)
        {
            store.Clear();
            var shorten = GetDisplayElementFactory().CreateFilenameShortener(doc.RuntimeInformation);

            AddNode(store.AddNode(), doc, shorten);
            ExpandAll();
        }
コード例 #12
0
 void AddTreeViewItems()
 {
     foreach (BaseViewModel viewModel in rootViewModels)
     {
         TreeNavigator navigator = treeStore.AddNode();
         SetTreeNodeValues(navigator, viewModel);
         AddChildTreeNodes(navigator, viewModel);
     }
 }
コード例 #13
0
        Widget CreateSoundFontListPanel()
        {
            var sfList = new TreeView()
            {
                UseAlternatingRowColors = true, AnimationsEnabled = true
            };
            var nameCol       = new DataField <string> ();
            var bankCol       = new DataField <int> ();
            var fileCol       = new DataField <string> ();
            var presetCol     = new DataField <string> ();
            var namePresetCol = new DataField <string> ();
            var patchCol      = new DataField <int> ();
            var store         = new TreeStore(fileCol, nameCol, bankCol, patchCol, presetCol, namePresetCol);

            sfList.DataSource = store;
            //sfList.Columns.Add ("File", fileCol);
            //sfList.Columns.Add ("Name", nameCol);
            sfList.Columns.Add("Patch", patchCol);
            sfList.Columns.Add("Bank", bankCol);
            //sfList.Columns.Add ("Preset", presetCol);
            sfList.Columns.Add("Name/Preset", namePresetCol);

            update_soundfonts = () => {
                store.Clear();
                foreach (var sf in model.LoadedSoundFonts)
                {
                    sf.Load();
                }
                foreach (var sf in model.LoadedSoundFonts.Where(_ => _.Entity != null))
                {
                    foreach (var preset in sf.Entity.Presets.OrderBy(p => p.PatchNumber).ThenBy(p => p.Bank))
                    {
                        var node = store.AddNode();
                        node.SetValues(
                            fileCol, sf.FullPath,
                            nameCol, sf.Entity.FileInfo.BankName,
                            bankCol, preset.Bank,
                            patchCol, preset.PatchNumber,
                            presetCol, preset.Name,
                            namePresetCol, sf.Entity.FileInfo.BankName + " / " + preset.Name);
                    }
                }
            };
            model.SoundFontListUpdated += update_soundfonts;

            sfList.SelectionChanged += (o, e) => {
                var iter = store.GetNavigatorAt(sfList.SelectedRow);
                model.UpdateSelectedInstrument(new Model.SoundFontSelection {
                    File  = iter.GetValue(fileCol),
                    Patch = iter.GetValue(patchCol),
                    Bank  = iter.GetValue(bankCol),
                });
            };

            return(sfList);
        }
 void Update()
 {
     store.Clear();
     if (documentTracker.Document?.DocumentContext.ParsedDocument is MSBuildParsedDocument doc)
     {
         var shorten = DisplayElementFactory.CreateFilenameShortener(doc.Document.RuntimeInformation);
         AddNode(store.AddNode(), doc.Document, shorten);
         ExpandAll();
     }
 }
コード例 #15
0
        public CodeIssuePadControl()
        {
            var buttonRow = new HBox();

            runButton.Clicked += StartAnalyzation;
            buttonRow.PackStart(runButton);

            cancelButton.Clicked  += StopAnalyzation;
            cancelButton.Sensitive = false;
            buttonRow.PackStart(cancelButton);

            var groupingProvider = new CategoryGroupingProvider {
                Next = new ProviderGroupingProvider()
            };

            rootGroup = new IssueGroup(groupingProvider, "root group");
            var groupingProviderControl = new GroupingProviderChainControl(rootGroup, groupingProviders);

            buttonRow.PackStart(groupingProviderControl);

            PackStart(buttonRow);

            store               = new TreeStore(textField, nodeField);
            view.DataSource     = store;
            view.HeadersVisible = false;
            view.Columns.Add("Name", textField);
            view.SelectionMode = SelectionMode.Multiple;

            view.RowActivated   += OnRowActivated;
            view.RowExpanding   += OnRowExpanding;
            view.ButtonPressed  += HandleButtonPressed;
            view.ButtonReleased += HandleButtonReleased;
            PackStart(view, true);

            IIssueTreeNode node = rootGroup;

            node.ChildrenInvalidated += (sender, group) => {
                Application.Invoke(delegate {
                    ClearSiblingNodes(store.GetFirstNode());
                    store.Clear();
                    SyncStateToUi(runner.State);
                    foreach (var child in ((IIssueTreeNode)rootGroup).Children)
                    {
                        var navigator = store.AddNode();
                        SetNode(navigator, child);
                        SyncNode(navigator);
                    }
                });
            };
            node.ChildAdded += HandleRootChildAdded;

            runner.IssueSink             = rootGroup;
            runner.AnalysisStateChanged += HandleAnalysisStateChanged;
        }
コード例 #16
0
        TaskBindingTreeNode AddBindingsTreeNode(TaskRunnerBindEvent bindEvent)
        {
            var node = new TaskBindingTreeNode(bindEvent);

            TreeNavigator navigator = bindingsTreeStore.AddNode();

            navigator.SetValue(bindingNodeNameField, node.Name);
            navigator.SetValue(bindingNodeField, node);

            return(node);
        }
コード例 #17
0
        void BuildQueryView()
        {
            queryStore.Clear();
            foreach (var server in TFSVersionControlService.Instance.Servers)
            {
                var node = queryStore.AddNode().SetValue(titleField, server.Name);
                foreach (var pc in server.ProjectCollections)
                {
                    node.AddChild().SetValue(titleField, pc.Name);
                    var workItemManager = new WorkItemManager(pc);
                    foreach (var projectInfo in pc.Projects.OrderBy(x => x.Name))
                    {
                        var workItemProject = workItemManager.GetByGuid(projectInfo.Guid);
                        if (workItemProject == null)
                        {
                            continue;
                        }

                        node.AddChild().SetValue(titleField, projectInfo.Name);

                        var privateQueries = workItemManager.GetMyQueries(workItemProject);
                        if (privateQueries.Any())
                        {
                            node.AddChild().SetValue(titleField, "My Queries");
                            foreach (var query in privateQueries)
                            {
                                node.AddChild().SetValue(titleField, query.QueryName).SetValue(queryField, query);
                                node.MoveToParent();
                            }
                            node.MoveToParent();
                        }
                        var publicQueries = workItemManager.GetPublicQueries(workItemProject);
                        if (publicQueries.Any())
                        {
                            node.AddChild().SetValue(titleField, "Public");
                            foreach (var query in publicQueries)
                            {
                                node.AddChild().SetValue(titleField, query.QueryName).SetValue(queryField, query);
                                node.MoveToParent();
                            }
                            node.MoveToParent();
                        }
                        node.MoveToParent();
                    }
                    queryView.ExpandRow(node.CurrentPosition, true);
                }
            }
            var cursor = queryStore.GetFirstNode();

            if (cursor.MoveToChild()) //Move to Project Collections
            {
                queryView.ExpandToRow(cursor.CurrentPosition);
            }
        }
コード例 #18
0
        void Update()
        {
            store.Clear();

            if (documentTracker.Document?.ParsedDocument is MSBuildParsedDocument doc)
            {
                var shorten = DescriptionMarkupFormatter.CreateFilenameShortener(doc.Document.RuntimeInformation);
                AddNode(store.AddNode(), doc.Document, shorten);
                ExpandAll();
            }
        }
コード例 #19
0
        public TreeViewCellBounds()
        {
            MinHeight = 120;
            MinWidth  = 100;

            container = new VBox();
            TreeView  = new TreeView();
            TreeStore = new TreeStore(triState, check, text, desc);
            TreeView.GridLinesVisible = GridLines.Both;

            TreeView.Columns.Add("TriCheck", triState);
            TreeView.Columns.Add("Check", check);
            TreeView.Columns.Add("Item", text);
            TreeView.Columns.Add("Desc", desc, check, text);

            TreeView.DataSource = TreeStore;

            TreeStore.AddNode().SetValue(text, "One").SetValue(desc, "First").SetValue(triState, CheckBoxState.Mixed);
            TreeStore.AddNode().SetValue(text, "Two").SetValue(desc, "Second").AddChild()
            .SetValue(text, "Sub two").SetValue(desc, "Sub second");
            TreeStore.AddNode().SetValue(text, "Three").SetValue(desc, "Third").AddChild()
            .SetValue(text, "Sub three").SetValue(desc, "Sub third");

            TreeView.ExpandAll();


            TreeView.SelectionChanged += (sender, e) => UpdateTracker(TreeView.SelectedRow);
            TreeView.MouseMoved       += (sender, e) => UpdateTracker(TreeView.GetRowAtPosition(e.X, e.Y));

            drawer = new TreeTrackingCanvas(this);

            container.PackStart(TreeView, true);
            container.PackStart(drawer);
            AddChild(container);

            if (currentRow == null)
            {
                currentRow = TreeStore.GetFirstNode();
            }
        }
コード例 #20
0
ファイル: TreeViewTests.cs プロジェクト: m13253/xwt
		public override IScrollableWidget CreateScrollableWidget ()
		{
			DataField<string> text = new DataField<string> ();
			TreeStore s = new TreeStore (text);
			var list = new TreeView (s);
			list.Columns.Add ("Hi", text);

			for (int n = 0; n < 100; n++) {
				var r = s.AddNode ();
				r.SetValue (text, n + new string ('.',100));
			}
			return list;
		}
コード例 #21
0
        public void FillTreeView()
        {
            _treeStore.Clear();
            var versionControl = this.projectCollection.GetService <RepositoryService>();
            var items          = versionControl.QueryItems(new ItemSpec(VersionControlPath.RootFolder, RecursionType.Full), VersionSpec.Latest, DeletedState.NonDeleted, ItemType.Folder, false);
            var root           = ItemSetToHierarchItemConverter.Convert(items);
            var node           = _treeStore.AddNode().SetValue(_name, root.Name).SetValue(_path, root.ServerPath);

            AddChilds(node, root.Children);
            var topNode = _treeStore.GetFirstNode();

            treeView.ExpandRow(topNode.CurrentPosition, false);
        }
コード例 #22
0
        public TreeViewEvents()
        {
            TreeStore store = new TreeStore(nodeField);
            var       tree  = new TreeView(store);

            tree.HeadersVisible    = false;
            tree.SelectionMode     = SelectionMode.None;
            tree.AnimationsEnabled = false;
            tree.ButtonPressed    += (s, e) =>
            {
                // disable internal selection/dragging logic, which might collide with the mouse handling in this example
                if (e.Button == PointerButton.Left)
                {
                    e.Handled = true;
                }
            };

            var col = new ListViewColumn()
            {
                Expands = true
            };
            var cellView = new ExpandableTextCellView();

            cellView.NodeField = nodeField;
            col.Views.Add(cellView, true);
            tree.Columns.Add(col);

            var node  = store.AddNode().SetValue(nodeField, new TextNode("Root 1"));
            var child = node.AddChild().SetValue(nodeField, new TextNode("Very long text. Very long text. Very long text. Very long text. Very long text. Very long text. Very long text. Very long text."));

            node  = store.AddNode().SetValue(nodeField, new TextNode("Root 2"));
            child = node.AddChild().SetValue(nodeField, new TextNode("Short text. Short text. Short text."));
            child.AddChild().SetValue(nodeField, new TextNode("Very long text. Very long text. Very long text. Very long text. Very long text. Very long text. Very long text. Very long text."));


            PackStart(tree, true);
        }
コード例 #23
0
        internal void FillData(List <Sample> samples)
        {
            _samplesStore.Clear();

            foreach (var sample in samples)
            {
                var row = _samplesStore.AddNode();
                row.SetValue(_nameField, sample.Name);
                row.SetValue(_sampleField, sample);
            }

            var firstNode = _samplesStore.GetFirstNode();

            if (firstNode != null)
            {
                _samplesView.SelectRow(firstNode.CurrentPosition);
            }
        }
コード例 #24
0
ファイル: TreeViewTests.cs プロジェクト: m13253/xwt
		public void HiddenTree ()
		{
			var f = new DataField<string> ();
			TreeStore ts = new TreeStore (f);
			var node = ts.AddNode ().SetValue (f, "1").AddChild ().SetValue (f, "2").AddChild ().SetValue (f, "3");
			var tree = new TreeView (ts);

			Window w = new Window ();
			Notebook nb = new Notebook ();
			nb.Add (new Label ("Hi"), "One");
			nb.Add (tree, "Two");
			w.Content = nb;
			ShowWindow (w);

			tree.ScrollToRow (node.CurrentPosition);

			tree.Columns.Add ("Hi", f);

			tree.ScrollToRow (node.CurrentPosition);
		}
コード例 #25
0
        void UpdateStore(List <IMappingTagSpan <ITag> > tags)
        {
            if (activeTags.Count == tags.Count && tags.All(t => activeTags.Contains(t)))
            {
                Console.WriteLine("up to date");
                return;
            }
            activeTags.Clear();
            foreach (var t in tags)
            {
                activeTags.Add(t);
            }

            var textView = editorTracker.TextView;

            store.Clear();

            if (tags.Count == 0)
            {
                return;
            }

            foreach (var mappingTag in tags)
            {
                var span = mappingTag.Span;
                var nav  = store.AddNode().SetValues(
                    tagNameMarkupField, GetTagMarkup(mappingTag.Tag),
                    spanField, $"[{GetPosition (span.Start)}-{GetPosition (span.End)}]",
                    tagField, mappingTag.Tag
                    );
            }

            treeView.SelectRow(store.GetFirstNode().CurrentPosition);

            string GetPosition(IMappingPoint mp)
            {
                var p = mp.GetPoint(textView.TextBuffer, PositionAffinity.Predecessor);

                return(p.HasValue ? p.Value.Position.ToString() : "?");
            }
        }
コード例 #26
0
        void FillTreeStore()
        {
            var groupNodes = new Dictionary <string, TreeNavigator> ();

            foreach (var item in viewModel.CodeStyleItems)
            {
                if (!groupNodes.TryGetValue(item.GroupName, out TreeNavigator groupNode))
                {
                    groupNode = store.AddNode();
                    groupNode.SetValue(descriptionField, item.GroupName);
                    groupNode.SetValue(itemField, null);
                    groupNode.SetValue(propertyNameField, "");
                    groupNode.SetValue(propertiesField, new ItemCollection());
                    groupNode.SetValue(notificationPreferenceField, "");
                    groupNode.SetValue(notificationPreferencesField, new ItemCollection());

                    groupNodes [item.GroupName] = groupNode;
                }
                var childNode = groupNode.AddChild();
                childNode.SetValue(itemField, item);
                childNode.SetValue(descriptionField, item.Description);
                childNode.SetValue(propertyNameField, item.SelectedPreference.Name);
                var itemCollection = new ItemCollection();
                foreach (var pref in item.Preferences)
                {
                    itemCollection.Add(pref.Name);
                }
                childNode.SetValue(propertiesField, itemCollection);

                childNode.SetValue(notificationPreferenceField, item.SelectedNotificationPreference.Name);
                itemCollection = new ItemCollection();
                foreach (var pref in item.NotificationPreferences)
                {
                    itemCollection.Add(pref.Name);
                }
                childNode.SetValue(notificationPreferencesField, itemCollection);
                groupNode.MoveToParent();
            }
            treeView.ExpandAll();
        }
コード例 #27
0
        void FillData(string path, Addin[] addins)
        {
            // TODO: add group by addin support.
            var allNodes = addins
                           .SelectMany(x => x.Description.AllModules)
                           .SelectMany(x => x.Extensions)
                           .Where(x => x.Path == path)
                           .Select(x => x.ExtensionNodes);

            var nav = treeStore.AddNode();

            int maxDepth = 0;
            int count    = 0;

            foreach (var node in allNodes)
            {
                int depth = BuildTree(nav, node, 1, ref count);
                maxDepth = Math.Max(maxDepth, depth);
            }

            summary.Text = $"'{path}' Count: {count} Depth: {maxDepth}";
        }
コード例 #28
0
        async Task Update()
        {
            if (cts != null)
            {
                cts.Cancel();
            }
            cts = new CancellationTokenSource();
            var ct = cts.Token;

            var      snapshot = editorTracker.TextView.TextBuffer.CurrentSnapshot;
            Document document = snapshot.GetOpenDocumentInCurrentContextWithChanges();

            if (document == null)
            {
                store.Clear();
                lastSourceText = null;
                return;
            }

            var tree = await document.GetSyntaxTreeAsync(ct);

            var root = await tree.GetRootAsync(ct);

            var text = await document.GetTextAsync(ct);

            if (ct.IsCancellationRequested)
            {
                return;
            }

            store.Clear();

            AddNode(store.AddNode(), root);
            lastSourceText = text;

            SelectBestMatchForCaret();
        }
コード例 #29
0
 TreePosition AddSample(TreePosition pos, string name, Type sampleType)
 {
     //if (page != null)
     //	page.Margin.SetAll (5);
     return(store.AddNode(pos).SetValue(nameCol, name).SetValue(iconCol, icon).SetValue(widgetCol, new Sample(sampleType)).CurrentPosition);
 }
コード例 #30
0
        public TreeViews()
        {
            TreeView  view  = new TreeView();
            TreeStore store = new TreeStore(triState, check, option1, option2, option3, text, desc);

            view.GridLinesVisible = GridLines.Both;

            var triStateCellView = new CheckBoxCellView(triState)
            {
                Editable = true, AllowMixed = true
            };

            triStateCellView.Toggled += (object sender, WidgetEventArgs e) => {
                if (view.CurrentEventRow == null)
                {
                    MessageDialog.ShowError("CurrentEventRow is null. This is not supposed to happen");
                }
                else
                {
                    store.GetNavigatorAt(view.CurrentEventRow).SetValue(text, "TriState Toggled");
                }
            };
            var checkCellView = new CheckBoxCellView(check)
            {
                Editable = true
            };

            checkCellView.Toggled += (object sender, WidgetEventArgs e) => {
                if (view.CurrentEventRow == null)
                {
                    MessageDialog.ShowError("CurrentEventRow is null. This is not supposed to happen");
                }
                else
                {
                    store.GetNavigatorAt(view.CurrentEventRow).SetValue(text, "Toggled " + checkCellView.Active);
                }
            };
            var optionCellView1 = new RadioButtonCellView(option1)
            {
                Editable = true
            };

            optionCellView1.Toggled += (object sender, WidgetEventArgs e) => {
                if (view.CurrentEventRow == null)
                {
                    MessageDialog.ShowError("CurrentEventRow is null. This is not supposed to happen");
                }
                else
                {
                    store.GetNavigatorAt(view.CurrentEventRow).SetValue(option2, optionCellView1.Active);
                }
            };
            var optionCellView2 = new RadioButtonCellView(option2)
            {
                Editable = true
            };

            optionCellView2.Toggled += (object sender, WidgetEventArgs e) => {
                if (view.CurrentEventRow == null)
                {
                    MessageDialog.ShowError("CurrentEventRow is null. This is not supposed to happen");
                }
                else
                {
                    store.GetNavigatorAt(view.CurrentEventRow).SetValue(option1, optionCellView2.Active);
                }
            };

            TreePosition initialActive   = null;
            var          optionCellView3 = new RadioButtonCellView(option3)
            {
                Editable = true
            };

            optionCellView3.Toggled += (object sender, WidgetEventArgs e) => {
                if (view.CurrentEventRow == null)
                {
                    MessageDialog.ShowError("CurrentEventRow is null. This is not supposed to happen");
                }
                else
                {
                    if (initialActive != null)
                    {
                        store.GetNavigatorAt(initialActive).SetValue(option3, false);
                    }
                    initialActive = view.CurrentEventRow;
                }
            };

            view.Columns.Add("TriCheck", triStateCellView);
            view.Columns.Add("Check", checkCellView);
            view.Columns.Add("Radio", optionCellView1, optionCellView2, optionCellView3);
            view.Columns.Add("Item", text);
            view.Columns.Add("Desc", desc);
            view.Columns[2].Expands   = true;           // expand third column, aligning last column to the right side
            view.Columns[2].CanResize = true;
            view.Columns[3].CanResize = true;

            store.AddNode().SetValue(text, "One").SetValue(desc, "First").SetValue(triState, CheckBoxState.Mixed);
            store.AddNode().SetValue(text, "Two").SetValue(desc, "Second").AddChild()
            .SetValue(text, "Sub two").SetValue(desc, "Sub second");
            store.AddNode().SetValue(text, "Three").SetValue(desc, "Third").AddChild()
            .SetValue(text, "Sub three").SetValue(desc, "Sub third");
            PackStart(view, true);

            Menu contextMenu = new Menu();

            contextMenu.Items.Add(new MenuItem("Test menu"));
            view.ButtonPressed += delegate(object sender, ButtonEventArgs e) {
                TreePosition    tmpTreePos;
                RowDropPosition tmpRowDrop;
                if ((e.Button == PointerButton.Right) && view.GetDropTargetRow(e.X, e.Y, out tmpRowDrop, out tmpTreePos))
                {
                    // Set actual row to selected
                    view.SelectRow(tmpTreePos);
                    contextMenu.Popup(view, e.X, e.Y);
                }
            };

            view.DataSource = store;

            Label la = new Label();

            PackStart(la);

            view.SetDragDropTarget(DragDropAction.All, TransferDataType.Text);
            view.SetDragSource(DragDropAction.All, TransferDataType.Text);

            view.DragDrop += delegate(object sender, DragEventArgs e) {
                TreePosition    node;
                RowDropPosition pos;
                view.GetDropTargetRow(e.Position.X, e.Position.Y, out pos, out node);
                var nav = store.GetNavigatorAt(node);
                la.Text  += "Dropped \"" + e.Data.Text + "\" into \"" + nav.GetValue(text) + "\" " + pos + "\n";
                e.Success = true;
            };
            view.DragOver += delegate(object sender, DragOverEventArgs e) {
                TreePosition    node;
                RowDropPosition pos;
                view.GetDropTargetRow(e.Position.X, e.Position.Y, out pos, out node);
                if (pos == RowDropPosition.Into)
                {
                    e.AllowedAction = DragDropAction.None;
                }
                else
                {
                    e.AllowedAction = e.Action;
                }
            };
            view.DragStarted += delegate(object sender, DragStartedEventArgs e) {
                var val = store.GetNavigatorAt(view.SelectedRow).GetValue(text);
                e.DragOperation.Data.AddValue(val);
                var img = Image.FromResource(GetType(), "class.png");
                e.DragOperation.SetDragImage(img, (int)img.Size.Width, (int)img.Size.Height);
                e.DragOperation.Finished += delegate(object s, DragFinishedEventArgs args) {
                    Console.WriteLine("D:" + args.DeleteSource);
                };
            };
            view.RowExpanding += delegate(object sender, TreeViewRowEventArgs e) {
                var val = store.GetNavigatorAt(e.Position).GetValue(text);
                Console.WriteLine("Expanding: " + val);
            };
            view.RowExpanded += delegate(object sender, TreeViewRowEventArgs e) {
                var val = store.GetNavigatorAt(e.Position).GetValue(text);
                Console.WriteLine("Expanded: " + val);
            };
            view.RowCollapsing += delegate(object sender, TreeViewRowEventArgs e) {
                var val = store.GetNavigatorAt(e.Position).GetValue(text);
                Console.WriteLine("Collapsing: " + val);
            };
            view.RowCollapsed += delegate(object sender, TreeViewRowEventArgs e) {
                var val = store.GetNavigatorAt(e.Position).GetValue(text);
                Console.WriteLine("Collapsed: " + val);
            };

            RadioButtonGroup group = new RadioButtonGroup();

            foreach (SelectionMode mode in Enum.GetValues(typeof(SelectionMode)))
            {
                var radio = new RadioButton(mode.ToString());
                radio.Group      = group;
                radio.Activated += delegate {
                    view.SelectionMode = mode;
                };
                PackStart(radio);
            }

            int addCounter = 0;

            view.KeyPressed += (sender, e) => {
                if (e.Key == Key.Insert)
                {
                    TreeNavigator n;
                    if (view.SelectedRow != null)
                    {
                        n = store.InsertNodeAfter(view.SelectedRow).SetValue(text, "Inserted").SetValue(desc, "Desc");
                    }
                    else
                    {
                        n = store.AddNode().SetValue(text, "Inserted").SetValue(desc, "Desc");
                    }
                    view.ExpandToRow(n.CurrentPosition);
                    view.ScrollToRow(n.CurrentPosition);
                    view.UnselectAll();
                    view.SelectRow(n.CurrentPosition);
                    view.FocusedRow = n.CurrentPosition;
                }
            };
            Button addButton = new Button("Add");

            addButton.Clicked += delegate(object sender, EventArgs e) {
                addCounter++;
                TreeNavigator n;
                if (view.SelectedRow != null)
                {
                    n = store.AddNode(view.SelectedRow).SetValue(text, "Added " + addCounter).SetValue(desc, "Desc");
                }
                else
                {
                    n = store.AddNode().SetValue(text, "Added " + addCounter).SetValue(desc, "Desc");
                }
                view.ExpandToRow(n.CurrentPosition);
                view.ScrollToRow(n.CurrentPosition);
                view.SelectRow(n.CurrentPosition);
            };
            PackStart(addButton);

            Button removeButton = new Button("Remove Selection");

            removeButton.Clicked += delegate(object sender, EventArgs e) {
                foreach (TreePosition row in view.SelectedRows)
                {
                    store.GetNavigatorAt(row).Remove();
                }
            };
            PackStart(removeButton);

            Button clearButton = new Button("Clear");

            clearButton.Clicked += delegate(object sender, EventArgs e) {
                store.Clear();
            };
            PackStart(clearButton);

            var label = new Label();

            PackStart(label);

            view.RowExpanded += (sender, e) => label.Text = "Row expanded: " + store.GetNavigatorAt(e.Position).GetValue(text);
        }
コード例 #31
0
ファイル: TreeViews.cs プロジェクト: nite2006/xwt
        public TreeViews()
        {
            TreeView view = new TreeView ();
            TreeStore store = new TreeStore (triState, check, text, desc);

            var triStateCellView = new CheckBoxCellView (triState) { Editable = true, AllowMixed = true };
            triStateCellView.Toggled += (object sender, WidgetEventArgs e) => {
                if (view.CurrentEventRow == null) {
                    MessageDialog.ShowError("CurrentEventRow is null. This is not supposed to happen");
                }
                else {
                    store.GetNavigatorAt(view.CurrentEventRow).SetValue(text, "TriState Toggled");
                }
            };
            var checkCellView = new CheckBoxCellView (check) { Editable = true };
            checkCellView.Toggled += (object sender, WidgetEventArgs e) => {
                if (view.CurrentEventRow == null) {
                    MessageDialog.ShowError("CurrentEventRow is null. This is not supposed to happen");
                }
                else {
                    store.GetNavigatorAt(view.CurrentEventRow).SetValue(text, "Toggled");
                }
            };
            view.Columns.Add ("TriCheck", triStateCellView);
            view.Columns.Add ("Check", checkCellView);
            view.Columns.Add ("Item", text);
            view.Columns.Add ("Desc", desc);

            store.AddNode ().SetValue (text, "One").SetValue (desc, "First").SetValue (triState, CheckBoxState.Mixed);
            store.AddNode ().SetValue (text, "Two").SetValue (desc, "Second").AddChild ()
                .SetValue (text, "Sub two").SetValue (desc, "Sub second");
            store.AddNode ().SetValue (text, "Three").SetValue (desc, "Third").AddChild ()
                .SetValue (text, "Sub three").SetValue (desc, "Sub third");
            PackStart (view, true);

            view.DataSource = store;

            Label la = new Label ();
            PackStart (la);

            view.SetDragDropTarget (DragDropAction.All, TransferDataType.Text);
            view.SetDragSource (DragDropAction.All, TransferDataType.Text);

            view.DragDrop += delegate(object sender, DragEventArgs e) {
                TreePosition node;
                RowDropPosition pos;
                view.GetDropTargetRow (e.Position.X, e.Position.Y, out pos, out node);
                var nav = store.GetNavigatorAt (node);
                la.Text += "Dropped \"" + e.Data.Text + "\" into \"" + nav.GetValue (text) + "\" " + pos + "\n";
                e.Success = true;
            };
            view.DragOver += delegate(object sender, DragOverEventArgs e) {
                TreePosition node;
                RowDropPosition pos;
                view.GetDropTargetRow (e.Position.X, e.Position.Y, out pos, out node);
                if (pos == RowDropPosition.Into)
                    e.AllowedAction = DragDropAction.None;
                else
                    e.AllowedAction = e.Action;
            };
            view.DragStarted += delegate(object sender, DragStartedEventArgs e) {
                var val = store.GetNavigatorAt (view.SelectedRow).GetValue (text);
                e.DragOperation.Data.AddValue (val);
                e.DragOperation.Finished += delegate(object s, DragFinishedEventArgs args) {
                    Console.WriteLine ("D:" + args.DeleteSource);
                };
            };

            Button addButton = new Button ("Add");
            addButton.Clicked += delegate(object sender, EventArgs e) {
                store.AddNode ().SetValue (text, "Added").SetValue (desc, "Desc");
            };
            PackStart (addButton);

            Button removeButton = new Button ("Remove Selection");
            removeButton.Clicked += delegate(object sender, EventArgs e) {
                foreach (TreePosition row in view.SelectedRows) {
                    store.GetNavigatorAt (row).Remove ();
                }
            };
            PackStart (removeButton);

            var label = new Label ();
            PackStart (label);

            view.RowExpanded += (sender, e) => label.Text = "Row expanded: " + store.GetNavigatorAt (e.Position).GetValue (text);
        }
コード例 #32
0
        public TreeViews()
        {
            TreeView  view  = new TreeView();
            TreeStore store = new TreeStore(triState, check, text, desc);

            view.GridLinesVisible = GridLines.Both;

            var triStateCellView = new CheckBoxCellView(triState)
            {
                Editable = true, AllowMixed = true
            };

            triStateCellView.Toggled += (object sender, WidgetEventArgs e) => {
                if (view.CurrentEventRow == null)
                {
                    MessageDialog.ShowError("CurrentEventRow is null. This is not supposed to happen");
                }
                else
                {
                    store.GetNavigatorAt(view.CurrentEventRow).SetValue(text, "TriState Toggled");
                }
            };
            var checkCellView = new CheckBoxCellView(check)
            {
                Editable = true
            };

            checkCellView.Toggled += (object sender, WidgetEventArgs e) => {
                if (view.CurrentEventRow == null)
                {
                    MessageDialog.ShowError("CurrentEventRow is null. This is not supposed to happen");
                }
                else
                {
                    store.GetNavigatorAt(view.CurrentEventRow).SetValue(text, "Toggled");
                }
            };
            view.Columns.Add("TriCheck", triStateCellView);
            view.Columns.Add("Check", checkCellView);
            view.Columns.Add("Item", text);
            view.Columns.Add("Desc", desc);

            store.AddNode().SetValue(text, "One").SetValue(desc, "First").SetValue(triState, CheckBoxState.Mixed);
            store.AddNode().SetValue(text, "Two").SetValue(desc, "Second").AddChild()
            .SetValue(text, "Sub two").SetValue(desc, "Sub second");
            store.AddNode().SetValue(text, "Three").SetValue(desc, "Third").AddChild()
            .SetValue(text, "Sub three").SetValue(desc, "Sub third");
            PackStart(view, true);

            Menu contextMenu = new Menu();

            contextMenu.Items.Add(new MenuItem("Test menu"));
            view.ButtonPressed += delegate(object sender, ButtonEventArgs e) {
                TreePosition    tmpTreePos;
                RowDropPosition tmpRowDrop;
                if ((e.Button == PointerButton.Right) && view.GetDropTargetRow(e.X, e.Y, out tmpRowDrop, out tmpTreePos))
                {
                    // Set actual row to selected
                    view.SelectRow(tmpTreePos);
                    contextMenu.Popup(view, e.X, e.Y);
                }
            };

            view.DataSource = store;

            Label la = new Label();

            PackStart(la);

            view.SetDragDropTarget(DragDropAction.All, TransferDataType.Text);
            view.SetDragSource(DragDropAction.All, TransferDataType.Text);

            view.DragDrop += delegate(object sender, DragEventArgs e) {
                TreePosition    node;
                RowDropPosition pos;
                view.GetDropTargetRow(e.Position.X, e.Position.Y, out pos, out node);
                var nav = store.GetNavigatorAt(node);
                la.Text  += "Dropped \"" + e.Data.Text + "\" into \"" + nav.GetValue(text) + "\" " + pos + "\n";
                e.Success = true;
            };
            view.DragOver += delegate(object sender, DragOverEventArgs e) {
                TreePosition    node;
                RowDropPosition pos;
                view.GetDropTargetRow(e.Position.X, e.Position.Y, out pos, out node);
                if (pos == RowDropPosition.Into)
                {
                    e.AllowedAction = DragDropAction.None;
                }
                else
                {
                    e.AllowedAction = e.Action;
                }
            };
            view.DragStarted += delegate(object sender, DragStartedEventArgs e) {
                var val = store.GetNavigatorAt(view.SelectedRow).GetValue(text);
                e.DragOperation.Data.AddValue(val);
                e.DragOperation.Finished += delegate(object s, DragFinishedEventArgs args) {
                    Console.WriteLine("D:" + args.DeleteSource);
                };
            };
            view.RowExpanding += delegate(object sender, TreeViewRowEventArgs e) {
                var val = store.GetNavigatorAt(e.Position).GetValue(text);
                Console.WriteLine("Expanding: " + val);
            };
            view.RowExpanded += delegate(object sender, TreeViewRowEventArgs e) {
                var val = store.GetNavigatorAt(e.Position).GetValue(text);
                Console.WriteLine("Expanded: " + val);
            };
            view.RowCollapsing += delegate(object sender, TreeViewRowEventArgs e) {
                var val = store.GetNavigatorAt(e.Position).GetValue(text);
                Console.WriteLine("Collapsing: " + val);
            };
            view.RowCollapsed += delegate(object sender, TreeViewRowEventArgs e) {
                var val = store.GetNavigatorAt(e.Position).GetValue(text);
                Console.WriteLine("Collapsed: " + val);
            };

            int addCounter = 0;

            view.KeyPressed += (sender, e) => {
                if (e.Key == Key.Insert)
                {
                    TreeNavigator n;
                    if (view.SelectedRow != null)
                    {
                        n = store.InsertNodeAfter(view.SelectedRow).SetValue(text, "Inserted").SetValue(desc, "Desc");
                    }
                    else
                    {
                        n = store.AddNode().SetValue(text, "Inserted").SetValue(desc, "Desc");
                    }
                    view.ExpandToRow(n.CurrentPosition);
                    view.ScrollToRow(n.CurrentPosition);
                    view.UnselectAll();
                    view.SelectRow(n.CurrentPosition);
                    view.FocusedRow = n.CurrentPosition;
                }
            };
            Button addButton = new Button("Add");

            addButton.Clicked += delegate(object sender, EventArgs e) {
                addCounter++;
                TreeNavigator n;
                if (view.SelectedRow != null)
                {
                    n = store.AddNode(view.SelectedRow).SetValue(text, "Added " + addCounter).SetValue(desc, "Desc");
                }
                else
                {
                    n = store.AddNode().SetValue(text, "Added " + addCounter).SetValue(desc, "Desc");
                }
                view.ExpandToRow(n.CurrentPosition);
                view.ScrollToRow(n.CurrentPosition);
                view.SelectRow(n.CurrentPosition);
            };
            PackStart(addButton);

            Button removeButton = new Button("Remove Selection");

            removeButton.Clicked += delegate(object sender, EventArgs e) {
                foreach (TreePosition row in view.SelectedRows)
                {
                    store.GetNavigatorAt(row).Remove();
                }
            };
            PackStart(removeButton);

            var label = new Label();

            PackStart(label);

            view.RowExpanded += (sender, e) => label.Text = "Row expanded: " + store.GetNavigatorAt(e.Position).GetValue(text);
        }
コード例 #33
0
ファイル: TreeViews.cs プロジェクト: jbeaurain/xwt
        public TreeViews()
        {
            TreeView view = new TreeView ();
            TreeStore store = new TreeStore (text, desc);

            view.Columns.Add ("Item", text);
            view.Columns.Add ("Desc", desc);

            store.AddNode ().SetValue (text, "One").SetValue (desc, "First");
            store.AddNode ().SetValue (text, "Two").SetValue (desc, "Second").AddChild ()
                .SetValue (text, "Sub two").SetValue (desc, "Sub second");
            store.AddNode ().SetValue (text, "Three").SetValue (desc, "Third").AddChild ()
                .SetValue (text, "Sub three").SetValue (desc, "Sub third");
            PackStart (view, BoxMode.FillAndExpand);

            view.DataSource = store;

            Label la = new Label ();
            PackStart (la);

            view.SetDragDropTarget (DragDropAction.All, TransferDataType.Text);
            view.SetDragSource (DragDropAction.All, TransferDataType.Text);

            view.DragDrop += delegate(object sender, DragEventArgs e) {
                TreePosition node;
                RowDropPosition pos;
                view.GetDropTargetRow (e.Position.X, e.Position.Y, out pos, out node);
                var nav = store.GetNavigatorAt (node);
                la.Text += "Dropped \"" + e.Data.Text + "\" into \"" + nav.GetValue (text) + "\" " + pos + "\n";
                e.Success = true;
            };
            view.DragOver += delegate(object sender, DragOverEventArgs e) {
                TreePosition node;
                RowDropPosition pos;
                view.GetDropTargetRow (e.Position.X, e.Position.Y, out pos, out node);
                if (pos == RowDropPosition.Into)
                    e.AllowedAction = DragDropAction.None;
                else
                    e.AllowedAction = e.Action;
            };
            view.DragStarted += delegate(object sender, DragStartedEventArgs e) {
                var val = store.GetNavigatorAt (view.SelectedRow).GetValue (text);
                e.DragOperation.Data.AddValue (val);
                e.DragOperation.Finished += delegate(object s, DragFinishedEventArgs args) {
                    Console.WriteLine ("D:" + args.DeleteSource);
                };
            };

            Button addButton = new Button ("Add");
            addButton.Clicked += delegate(object sender, EventArgs e) {
                store.AddNode ().SetValue (text, "Added").SetValue (desc, "Desc");
            };
            PackStart (addButton);

            Button removeButton = new Button ("Remove Selection");
            removeButton.Clicked += delegate(object sender, EventArgs e) {
                foreach (TreePosition row in view.SelectedRows) {
                    store.GetNavigatorAt (row).Remove ();
                }
            };
            PackStart (removeButton);

            var label = new Label ();
            PackStart (label);

            view.RowExpanded += (sender, e) => label.Text = "Row expanded: " + store.GetNavigatorAt (e.Position).GetValue (text);
        }
コード例 #34
0
        public void LoadQuery(StoredQuery query)
        {
            listView.Columns.Clear();
            using (var progress = new MonoDevelop.Ide.ProgressMonitoring.MessageDialogProgressMonitor(true, false, false))
            {
                var fields = CachedMetaData.Instance.Fields;
                WorkItemStore store = new WorkItemStore(query);
                var data = store.LoadByPage(progress);
                if (data.Count > 0)
                {
                    var firstItem = data[0];
                    List<IDataField> dataFields = new List<IDataField>();
                    var mapping = new Dictionary<Field, IDataField<object>>();
                    foreach (var item in firstItem.WorkItemInfo.Keys)
                    {
                        var field = fields[item];
                        var dataField = new DataField<object>();
                        dataFields.Add(dataField);
                        mapping.Add(field, dataField);
                    }

                    if (dataFields.Any())
                    {
                        if (ShowCheckboxes)
                        {
                            isCheckedField = new DataField<bool>();
                            dataFields.Insert(0, isCheckedField);
                            var checkColumn = new CheckBoxCellView(isCheckedField) { Editable = true };
                            checkColumn.Toggled += (sender, e) => 
                            {
                                var astore = (TreeStore)listView.DataSource;
                                var node = astore.GetNavigatorAt(listView.CurrentEventRow);
                                var workItem = node.GetValue(workItemField);
                                if (!node.GetValue(isCheckedField))
                                {
                                    if (OnSelectWorkItem != null)
                                        OnSelectWorkItem(workItem);
                                }
                                else
                                {
                                    if (OnRemoveWorkItem != null)
                                        OnRemoveWorkItem(workItem);
                                }
                            };
                            listView.Columns.Add("", checkColumn);
                        }
                        workItemField = new DataField<WorkItem>();
                        dataFields.Insert(0, workItemField);
                        var listStore = new TreeStore(dataFields.ToArray());
                        foreach (var map in mapping)
                        {
                            listView.Columns.Add(map.Key.Name, map.Value);
                        }
                        listView.DataSource = listStore;
                        foreach (var workItem in data)
                        {
                            var row = listStore.AddNode();
                            row.SetValue(workItemField, workItem);
                            foreach (var map in mapping)
                            {
                                object value;
                                if (workItem.WorkItemInfo.TryGetValue(map.Key.ReferenceName, out value))
                                {
                                    row.SetValue(map.Value, value);
                                }
                                else
                                {
                                    row.SetValue(map.Value, null);
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #35
0
		public CodeIssuePadControl ()
		{
			var buttonRow = new HBox();
			runButton.Image = ImageService.GetIcon (Ide.Gui.Stock.Execute, IconSize.Menu);
			runButton.Clicked += StartAnalyzation;
			buttonRow.PackStart (runButton);

			cancelButton.Image = ImageService.GetIcon (Ide.Gui.Stock.Stop, IconSize.Menu);
			cancelButton.Clicked += StopAnalyzation;
			cancelButton.Sensitive = false;
			buttonRow.PackStart (cancelButton);
			var groupingProvider = new CategoryGroupingProvider {
				Next = new ProviderGroupingProvider()
			};
			rootGroup = new IssueGroup (groupingProvider, "root group");
			var groupingProviderControl = new GroupingProviderChainControl (rootGroup, groupingProviders);
			buttonRow.PackStart (groupingProviderControl);
			
			PackStart (buttonRow);

			store = new TreeStore (textField, nodeField);
			view.DataSource = store;
			view.HeadersVisible = false;
			view.Columns.Add ("Name", textField);
			view.SelectionMode = SelectionMode.Multiple;

			view.RowActivated += OnRowActivated;
			view.RowExpanding += OnRowExpanding;
			view.ButtonPressed += HandleButtonPressed;
			view.ButtonReleased += HandleButtonReleased;
			PackStart (view, true);
			
			IIssueTreeNode node = rootGroup;
			node.ChildrenInvalidated += (sender, group) => {
				Application.Invoke (delegate {
					ClearSiblingNodes (store.GetFirstNode ());
					store.Clear ();
					foreach(var child in ((IIssueTreeNode)rootGroup).Children) {
						var navigator = store.AddNode ();
						SetNode (navigator, child);
						SyncNode (navigator);
					}
				});
			};
			node.ChildAdded += HandleRootChildAdded;

			IdeApp.Workspace.LastWorkspaceItemClosed += HandleLastWorkspaceItemClosed;
		}
コード例 #36
0
        public MainWindow()
        {
            Width  = 800;
            Height = 600;

            Controller = new Controller(Model, State);

            MainMenu = BuildMainMenu();

            var layout = new VBox();

            // package ID entry
            var packageRow = new HBox();

            layout.PackStart(packageRow);
            packageRow.PackStart(new Label {
                Text = "POM"
            });
            var packageIdEntry = new ComboBoxEntry();

            Model.PomHistory.Updated += (o, e) => Application.Invoke(() => {
                foreach (var entry in Model.PomHistory.Entries)
                {
                    packageIdEntry.Items.Add(entry);
                }
            });
            Action updatePoms = () => State.PomEntry = packageIdEntry.TextEntry.Text;

            packageIdEntry.TextInput        += (sender, e) => updatePoms();
            packageIdEntry.SelectionChanged += (sender, e) => updatePoms();

            packageRow.PackStart(packageIdEntry, true);

            // Maven download directory entry
            var downloadDirectoryRow = new HBox();

            layout.PackStart(downloadDirectoryRow);
            downloadDirectoryRow.PackStart(new Label {
                Text = "Downloads"
            });
            var downloadDirectoryEntry = new ComboBoxEntry();

            Model.DownloadDirectoryHistory.Updated += (o, e) => Application.Invoke(() => {
                foreach (var entry in Model.DownloadDirectoryHistory.Entries)
                {
                    downloadDirectoryEntry.Items.Add(entry);
                }
            });
            Action updateDownload = () => State.DownloadDirectory = downloadDirectoryEntry.TextEntry.Text;

            downloadDirectoryEntry.TextInput        += (sender, e) => updateDownload();
            downloadDirectoryEntry.SelectionChanged += (sender, e) => updateDownload();

            downloadDirectoryRow.PackStart(downloadDirectoryEntry, true);

            var downloadDirectoryPickerButton = new Button()
            {
                Label = "Choose..."
            };

            downloadDirectoryPickerButton.Clicked += delegate {
                var chooser = new SelectFolderDialog("Choose directory to store downloads.")
                {
                    CanCreateFolders = true
                };
                if (chooser.Run())
                {
                    downloadDirectoryEntry.TextEntry.Text = chooser.Folder;
                }
            };
            downloadDirectoryRow.PackStart(downloadDirectoryPickerButton);

            // solution directory entry
            var solutionDirectoryRow = new HBox();

            layout.PackStart(solutionDirectoryRow);
            solutionDirectoryRow.PackStart(new Label {
                Text = "Projects"
            });
            var solutionDirectoryEntry = new ComboBoxEntry();

            Model.SolutionDirectoryHistory.Updated += (o, e) => Application.Invoke(() => {
                foreach (var entry in Model.SolutionDirectoryHistory.Entries)
                {
                    solutionDirectoryEntry.Items.Add(entry);
                }
            });
            Action updateSolutionDirectory = () => State.SolutionDirectory = solutionDirectoryEntry.TextEntry.Text;

            solutionDirectoryEntry.TextInput        += (sender, e) => updateSolutionDirectory();
            solutionDirectoryEntry.SelectionChanged += (sender, e) => updateSolutionDirectory();
            solutionDirectoryRow.PackStart(solutionDirectoryEntry, true);

            var solutionDirectoryPickerButton = new Button()
            {
                Label = "Choose..."
            };

            solutionDirectoryPickerButton.Clicked += delegate {
                var chooser = new SelectFolderDialog("Choose directory to create projects.")
                {
                    CanCreateFolders = true
                };
                if (chooser.Run())
                {
                    solutionDirectoryEntry.TextEntry.Text = chooser.Folder;
                }
            };
            solutionDirectoryRow.PackStart(solutionDirectoryPickerButton);

            // import button
            import_button = new Button {
                Label = "Import"
            };
            import_button.Clicked += (sender, e) => {
                // switch to importing state
                import_button.Sensitive = false;
                this.Content.Cursor     = CursorType.Wait;             // does not seem to make much sense...

                Controller.SaveHistories();
                Controller.PerformImport();
            };
            layout.PackStart(import_button);

            var tree = new TreeView();

            package_field   = new DataField <string> ();
            tree_store      = new TreeStore(package_field);
            tree.DataSource = tree_store;
            tree.Columns.Add("Packages", package_field);
            layout.PackStart(tree, true);
            Model.PackageListUpdated += packages => {
                Application.Invoke(() => {
                    var nav = tree_store.AddNode();
                    foreach (var package in packages)
                    {
                        nav.AddChild().SetValue(package_field, package.ToString()).MoveToParent();
                    }

                    // restore default state
                    Content.Cursor          = CursorType.Arrow;
                    import_button.Sensitive = true;
                });
            };

            Content = layout;

            Application.InvokeAsync(() => Controller.Start());
        }
コード例 #37
0
ファイル: MainWindow.cs プロジェクト: stangelandcl/Actors
 void CreateTreeView(HPaned panel)
 {
     store = new TreeStore (nameCol);
     tree = new TreeView (store);
     tree.Columns.Add ("Name", nameCol);
     panel.Panel1.Content = tree;
     var conns = store.AddNode (null).SetValue (nameCol, "Nodes").CurrentPosition;
     vm.ConnectionAdded += (a, b) =>
         store.AddNode (conns).SetValue (nameCol, a + "-" + b.Id);
     tree.SelectionChanged +=
         HandleSelectionChanged;
 }
コード例 #38
0
ファイル: ListViews.cs プロジェクト: sergueik/xwt_swd
        public TreeViews()
        {
            TreeView view = new TreeView();
            TreeStore store = new TreeStore(triState, check, text, desc);
            view.GridLinesVisible = GridLines.Both;

            var triStateCellView = new CheckBoxCellView(triState) { Editable = true, AllowMixed = true };
            triStateCellView.Toggled += (object sender, WidgetEventArgs e) =>
            {
                if (view.CurrentEventRow == null)
                {
                    MessageDialog.ShowError("CurrentEventRow is null. This is not supposed to happen");
                }
                else
                {
                    store.GetNavigatorAt(view.CurrentEventRow).SetValue(text, "TriState Toggled");
                }
            };
            var checkCellView = new CheckBoxCellView(check) { Editable = true };
            checkCellView.Toggled += (object sender, WidgetEventArgs e) =>
            {
                if (view.CurrentEventRow == null)
                {
                    MessageDialog.ShowError("CurrentEventRow is null. This is not supposed to happen");
                }
                else
                {
                    store.GetNavigatorAt(view.CurrentEventRow).SetValue(text, "Toggled");
                }
            };
            view.Columns.Add("TriCheck", triStateCellView);
            view.Columns.Add("Check", checkCellView);
            view.Columns.Add("Item", text);
            view.Columns.Add("Desc", desc);

            store.AddNode().SetValue(text, "One").SetValue(desc, "First").SetValue(triState, CheckBoxState.Mixed);
            store.AddNode().SetValue(text, "Two").SetValue(desc, "Second").AddChild()
                .SetValue(text, "Sub two").SetValue(desc, "Sub second");
            store.AddNode().SetValue(text, "Three").SetValue(desc, "Third").AddChild()
                .SetValue(text, "Sub three").SetValue(desc, "Sub third");
            PackStart(view, true);

            Menu contextMenu = new Menu();
            contextMenu.Items.Add(new MenuItem("Test menu"));
            view.ButtonPressed += delegate(object sender, ButtonEventArgs e)
            {
                TreePosition tmpTreePos;
                RowDropPosition tmpRowDrop;
                if ((e.Button == PointerButton.Right) && view.GetDropTargetRow(e.X, e.Y, out tmpRowDrop, out tmpTreePos))
                {
                    // Set actual row to selected
                    view.SelectRow(tmpTreePos);
                    contextMenu.Popup(view, e.X, e.Y);
                }
            };

            view.DataSource = store;

            Label la = new Label();
            PackStart(la);

            view.SetDragDropTarget(DragDropAction.All, TransferDataType.Text);
            view.SetDragSource(DragDropAction.All, TransferDataType.Text);

            view.DragDrop += delegate(object sender, DragEventArgs e)
            {
                TreePosition node;
                RowDropPosition pos;
                view.GetDropTargetRow(e.Position.X, e.Position.Y, out pos, out node);
                var nav = store.GetNavigatorAt(node);
                la.Text += "Dropped \"" + e.Data.Text + "\" into \"" + nav.GetValue(text) + "\" " + pos + "\n";
                e.Success = true;
            };
            view.DragOver += delegate(object sender, DragOverEventArgs e)
            {
                TreePosition node;
                RowDropPosition pos;
                view.GetDropTargetRow(e.Position.X, e.Position.Y, out pos, out node);
                if (pos == RowDropPosition.Into)
                    e.AllowedAction = DragDropAction.None;
                else
                    e.AllowedAction = e.Action;
            };
            view.DragStarted += delegate(object sender, DragStartedEventArgs e)
            {
                var val = store.GetNavigatorAt(view.SelectedRow).GetValue(text);
                e.DragOperation.Data.AddValue(val);
                e.DragOperation.Finished += delegate(object s, DragFinishedEventArgs args)
                {
                    Console.WriteLine("D:" + args.DeleteSource);
                };
            };
            view.RowExpanding += delegate(object sender, TreeViewRowEventArgs e)
            {
                var val = store.GetNavigatorAt(e.Position).GetValue(text);
                Console.WriteLine("Expanding: " + val);
            };
            view.RowExpanded += delegate(object sender, TreeViewRowEventArgs e)
            {
                var val = store.GetNavigatorAt(e.Position).GetValue(text);
                Console.WriteLine("Expanded: " + val);
            };
            view.RowCollapsing += delegate(object sender, TreeViewRowEventArgs e)
            {
                var val = store.GetNavigatorAt(e.Position).GetValue(text);
                Console.WriteLine("Collapsing: " + val);
            };
            view.RowCollapsed += delegate(object sender, TreeViewRowEventArgs e)
            {
                var val = store.GetNavigatorAt(e.Position).GetValue(text);
                Console.WriteLine("Collapsed: " + val);
            };

            int addCounter = 0;
            view.KeyPressed += (sender, e) =>
            {
                if (e.Key == Key.Insert)
                {
                    TreeNavigator n;
                    if (view.SelectedRow != null)
                        n = store.InsertNodeAfter(view.SelectedRow).SetValue(text, "Inserted").SetValue(desc, "Desc");
                    else
                        n = store.AddNode().SetValue(text, "Inserted").SetValue(desc, "Desc");
                    view.ExpandToRow(n.CurrentPosition);
                    view.ScrollToRow(n.CurrentPosition);
                    view.UnselectAll();
                    view.SelectRow(n.CurrentPosition);
                    view.FocusedRow = n.CurrentPosition;
                }
            };
            Button addButton = new Button("Add");
            addButton.Clicked += delegate(object sender, EventArgs e)
            {
                addCounter++;
                TreeNavigator n;
                if (view.SelectedRow != null)
                    n = store.AddNode(view.SelectedRow).SetValue(text, "Added " + addCounter).SetValue(desc, "Desc");
                else
                    n = store.AddNode().SetValue(text, "Added " + addCounter).SetValue(desc, "Desc");
                view.ExpandToRow(n.CurrentPosition);
                view.ScrollToRow(n.CurrentPosition);
                view.SelectRow(n.CurrentPosition);
            };
            PackStart(addButton);

            Button removeButton = new Button("Remove Selection");
            removeButton.Clicked += delegate(object sender, EventArgs e)
            {
                foreach (TreePosition row in view.SelectedRows)
                {
                    store.GetNavigatorAt(row).Remove();
                }
            };
            PackStart(removeButton);

            var label = new Label();
            PackStart(label);

            view.RowExpanded += (sender, e) => label.Text = "Row expanded: " + store.GetNavigatorAt(e.Position).GetValue(text);
        }
コード例 #39
0
        public MainWindow()
        {
            var vbox = new VBox()
            {
                WidthRequest = 800, HeightRequest = 800
            };

            var menu         = new Menu();
            var commands     = new List <KeyValuePair <string, List <KeyValuePair <Command, Action> > > > ();
            var fileCommands = new List <KeyValuePair <Command, Action> > ();

            fileCommands.Add(new KeyValuePair <Command, Action> (new Command("_Open"), () => OpenJavaLibraries()));
            fileCommands.Add(new KeyValuePair <Command, Action> (new Command("Clear"), () => ClearJavaLibraries()));
            fileCommands.Add(new KeyValuePair <Command, Action> (new Command("_Exit"), () => CloseApplicationWindow()));
            commands.Add(new KeyValuePair <string, List <KeyValuePair <Command, Action> > > ("_File", fileCommands));

            foreach (var cl in commands)
            {
                var submenu = new Menu();
                foreach (var item in cl.Value)
                {
                    var mi = new MenuItem(item.Key);
                    mi.Clicked += (sender, e) => item.Value();
                    submenu.Items.Add(mi);
                }
                menu.Items.Add(new MenuItem()
                {
                    Label = cl.Key, SubMenu = submenu
                });
            }

            var quickLoadMenu = new Menu();
            Func <string, string> genMenuItemNameSdk = s => Path.Combine(Path.GetFileName(Path.GetDirectoryName(s)), Path.GetFileName(s));
            Func <string, Action> genLoad            = s => () => ThreadPool.QueueUserWorkItem((state) => model.LoadApiFromFiles(new string [] { s }), null);
            Func <string, Func <string, string>, MenuItem> genMenuItem = (s, genMenuItemName) => {
                var mi = new MenuItem(genMenuItemName(s));
                mi.Clicked += (sender, e) => genLoad(s) ();
                return(mi);
            };
            var androidLibs = new MenuItem()
            {
                Label = "_Android SDK", SubMenu = new Menu()
            };

            foreach (var s in model.PredefinedLibraries.AndroidLibraries)
            {
                androidLibs.SubMenu.Items.Add(genMenuItem(s, genMenuItemNameSdk));
            }
            quickLoadMenu.Items.Add(androidLibs);

            var extrasLibs = new MenuItem()
            {
                Label = "_Android SDK Extras", SubMenu = new Menu()
            };
            Func <string, string> genMenuItemNameExtras = s => Path.Combine(Path.GetFileName(Path.GetDirectoryName(s)), Path.GetFileName(s));
            var extraCategories = new Dictionary <string, string> {
                { "databinding", "android/m2repository/com/android/databinding" },
                { "support library", "android/m2repository/com/android/support" },
                { "constraint layout", "m2repository/com/android/support/constraint" },
                { "google (play)", "google/m2repository/com/google/android" },
                { "firebase", "google/m2repository/com/google/firebase" },
            };
            var extraSubdirs = model.PredefinedLibraries.AndroidSdkExtraAars.Select(s => Path.GetDirectoryName(Path.GetDirectoryName(s))).Distinct().ToList();
            var populated    = new List <string> ();
            var extraAars    = model.PredefinedLibraries.AndroidSdkExtraAars.ToList();

            foreach (var categoryPair in extraCategories)
            {
                var category    = categoryPair.Value.Replace('/', Path.DirectorySeparatorChar);
                var catFullPath = Path.Combine(model.PredefinedLibraries.AndroidSdkPath, "extras", category);
                var cmi         = new MenuItem(categoryPair.Key)
                {
                    SubMenu = new Menu()
                };
                var matchSubdirs = extraSubdirs.Where(_ => _.StartsWith(catFullPath, StringComparison.OrdinalIgnoreCase)).ToList();
                foreach (var subdirFullPath in matchSubdirs)
                {
                    var subdir = subdirFullPath.Substring(catFullPath.Length + 1);
                    var smi    = new MenuItem(subdir)
                    {
                        SubMenu = new Menu()
                    };
                    foreach (var s in extraAars.Where(_ => _.StartsWith(subdirFullPath, StringComparison.OrdinalIgnoreCase)))
                    {
                        smi.SubMenu.Items.Add(genMenuItem(s, genMenuItemNameExtras));
                        populated.Add(s);
                    }
                    cmi.SubMenu.Items.Add(smi);
                }
                extrasLibs.SubMenu.Items.Add(cmi);
            }
            var miscSmi = new MenuItem("(others)")
            {
                SubMenu = new Menu()
            };

            foreach (var s in model.PredefinedLibraries.AndroidSdkExtraAars.Except(populated))
            {
                miscSmi.SubMenu.Items.Add(genMenuItem(s, _ => _.Substring(Path.Combine(model.PredefinedLibraries.AndroidSdkPath, "extras").Length + 1)));
            }
            extrasLibs.SubMenu.Items.Add(miscSmi);
            quickLoadMenu.Items.Add(extrasLibs);

            var xaLibs = new MenuItem()
            {
                Label = "_Xamarin Android SDK", SubMenu = new Menu()
            };

            foreach (var s in model.PredefinedLibraries.XamarinAndroidLibraries)
            {
                xaLibs.SubMenu.Items.Add(genMenuItem(s, genMenuItemNameSdk));
            }
            quickLoadMenu.Items.Add(xaLibs);

            menu.Items.Add(new MenuItem()
            {
                Label = "_Quick Load", SubMenu = quickLoadMenu
            });

            this.MainMenu = menu;

            var vpaned = new VPaned();

            var idList = new ListView()
            {
                ExpandHorizontal = true, HeightRequest = 30
            };
            var selectedField = new DataField <bool> ();
            var idField       = new DataField <string> ();
            var fileField     = new DataField <string> ();
            var listModel     = new ListStore(selectedField, idField, fileField);

            idList.DataSource = listModel;
            idList.Columns.Add(" ", new CheckBoxCellView(selectedField)
            {
                Editable = true
            });
            idList.Columns.Add("ID", idField);
            idList.Columns.Add("File", fileField);
            foreach (var c in idList.Columns)
            {
                c.CanResize = true;
            }
            model.ApiSetUpdated += (sender, e) => {
                Application.InvokeAsync(() => {
                    listModel.Clear();
                    foreach (var i in model.LoadedApiInfos)
                    {
                        listModel.SetValues(listModel.AddRow(), selectedField, i.Selected, idField, i.FileId, fileField, i.ApiFullPath);
                    }
                });
            };
            vpaned.Panel1.Resize  = true;
            vpaned.Panel1.Shrink  = true;
            vpaned.Panel1.Content = idList;


            var tree = new TreeView()
            {
                ExpandVertical = true, ExpandHorizontal = true, HeightRequest = 300
            };
            var nameField    = new DataField <string> ();
            var sourceField  = new DataField <string> ();
            var bindingField = new DataField <string> ();
            var treeModel    = new TreeStore(nameField, sourceField, bindingField);

            tree.DataSource = treeModel;
            tree.Columns.Add("Name", nameField);
            tree.Columns.Add("Source", sourceField);
            tree.Columns.Add("Binding", bindingField);
            foreach (var c in tree.Columns)
            {
                c.CanResize = true;
            }
            model.ApiSetUpdated += (sender, e) => {
                Application.InvokeAsync(() => {
                    treeModel.Clear();
                    foreach (var pkg in model.Api.Packages.OrderBy(p => p.Name))
                    {
                        Application.InvokeAsync(() => {
                            var pkgNode = treeModel.AddNode();
                            pkgNode.SetValue(nameField, pkg.Name);
                            foreach (var type in pkg.Types)
                            {
                                var typeNode = pkgNode.AddChild();
                                typeNode.SetValue(nameField, (type is JavaInterface ? "[IF]" : "[CLS]") + type.Name);
                                typeNode.SetValue(sourceField, type.GetExtension <SourceIdentifier> ()?.SourceUri);
                                typeNode.SetValue(bindingField, type.GetExtension <TypeDefinition> ()?.FullName);
                                foreach (var fld in type.Members.OfType <JavaField> ())
                                {
                                    var fieldNode = typeNode.AddChild();
                                    fieldNode.SetValue(nameField, fld.ToString());
                                    fieldNode.SetValue(sourceField, fld.GetExtension <SourceIdentifier> ()?.SourceUri);
                                    fieldNode.SetValue(bindingField, fld.GetExtension <PropertyDefinition> ()?.Name ?? fld.GetExtension <FieldDefinition> ()?.Name);
                                    fieldNode.MoveToParent();
                                }
                                foreach (var ctor in type.Members.OfType <JavaConstructor> ())
                                {
                                    var ctorNode = typeNode.AddChild();
                                    ctorNode.SetValue(nameField, ctor.ToString());
                                    ctorNode.SetValue(sourceField, ctor.GetExtension <SourceIdentifier> ()?.SourceUri);
                                    ctorNode.SetValue(bindingField, ctor.GetExtension <MethodDefinition> ()?.ToString());
                                    ctorNode.MoveToParent();
                                }
                                foreach (var method in type.Members.OfType <JavaMethod> ())
                                {
                                    var methodNode = typeNode.AddChild();
                                    methodNode.SetValue(nameField, method.ToString());
                                    methodNode.SetValue(sourceField, method.GetExtension <SourceIdentifier> ()?.SourceUri);
                                    methodNode.SetValue(bindingField, method.GetExtension <MethodDefinition> ()?.ToString());
                                    methodNode.MoveToParent();
                                }
                                typeNode.MoveToParent();
                            }
                        });
                    }
                });
            };

            vpaned.Panel2.Content = tree;

            var buttonCompare = new Button("Compare");
            var textReport    = new MarkdownView()
            {
                HeightRequest = 200, ExpandHorizontal = true
            };

            buttonCompare.Clicked += (sender, e) => {
                string reports = "";
                if (model.ApiSet.Count > 1)
                {
                    var refApi = model.ApiSet.ElementAt(model.ApiSet.Count - 2);
                    foreach (var report in new JavaApiComparer()
                    {
                        IgnoreSystemObjectOverrides = true
                    }.Compare(refApi, model.Api))
                    {
                        reports += "- " + report.Message + "\n";
                    }
                }
                textReport.LoadText(reports, new Xwt.Formats.MarkdownTextFormat());
            };
            vbox.PackStart(buttonCompare);
            vbox.PackStart(vpaned, true, true);
            vbox.PackEnd(new ScrollView()
            {
                ExpandHorizontal = true, Content = textReport
            });

            Content = vbox;

            this.Closed += (sender, e) => Application.Exit();
        }
コード例 #40
0
ファイル: TreeViewCellBounds.cs プロジェクト: m13253/xwt
		public TreeViewCellBounds ()
		{
			MinHeight = 120;
			MinWidth = 100;

			container = new VBox ();
			TreeView = new TreeView ();
			TreeStore = new TreeStore (triState, check, text, desc);
			TreeView.GridLinesVisible = GridLines.Both;

			TreeView.Columns.Add ("TriCheck", triState);
			TreeView.Columns.Add ("Check", check);
			TreeView.Columns.Add ("Item", text);
			TreeView.Columns.Add ("Desc", desc, check, text);

			TreeView.DataSource = TreeStore;

			TreeStore.AddNode ().SetValue (text, "One").SetValue (desc, "First").SetValue (triState, CheckBoxState.Mixed);
			TreeStore.AddNode ().SetValue (text, "Two").SetValue (desc, "Second").AddChild ()
				.SetValue (text, "Sub two").SetValue (desc, "Sub second");
			TreeStore.AddNode ().SetValue (text, "Three").SetValue (desc, "Third").AddChild ()
				.SetValue (text, "Sub three").SetValue (desc, "Sub third");

			TreeView.ExpandAll ();


			TreeView.SelectionChanged += (sender, e) => UpdateTracker (TreeView.SelectedRow);
			TreeView.MouseMoved += (sender, e) => UpdateTracker (TreeView.GetRowAtPosition (e.X, e.Y));

			drawer = new TreeTrackingCanvas (this);

			container.PackStart (TreeView, true);
			container.PackStart (drawer);
			AddChild (container);

			if (currentRow == null)
				currentRow = TreeStore.GetFirstNode ();
		}
コード例 #41
0
        public FixAllPreviewDialog(string diagnosticId, string scopeLabel, FixAllScope scope, ImmutableArray <CodeActionOperation> operations, TextEditor baseEditor)
        {
            Width  = 800;
            Height = 600;

            this.baseEditor = baseEditor;
            this.operations = operations;

            // TODO: checkbox dependencies
            store    = new TreeStore(nodeCheck, nodeLabel, nodeIcon, nodeIconVisible, nodeEditor, nodeOffset);
            treeView = new TreeView {
                DataSource     = store,
                HeadersVisible = false,
            };
            changedEditor         = TextEditorFactory.CreateNewEditor(baseEditor.FileName, baseEditor.MimeType);
            changedEditor.Options = new CustomEditorOptions(DefaultSourceEditorOptions.PlainEditor)
            {
                ShowLineNumberMargin = true,
            };
            changedEditor.IsReadOnly = true;

            if (scope != FixAllScope.Document)
            {
                // No implementation yet for project/solution scopes
                // Requires global undo and a lot more work
                throw new NotImplementedException();
            }

            var mainBox = new VBox {
                MarginTop    = 6,
                MarginLeft   = 8,
                MarginRight  = 8,
                MarginBottom = 8,
            };

            // scopeLabel can be document filename, project/solution name.
            var treeViewHeaderText = GettextCatalog.GetString(
                "Fix all '{0}' in '{1}'",
                string.Format("<b>{0}</b>", diagnosticId),
                string.Format("<b>{0}</b>", scopeLabel)
                );

            mainBox.PackStart(new Label {
                Markup = treeViewHeaderText,
            });

            var col = new ListViewColumn();

            checkBox = new CheckBoxCellView(nodeCheck)
            {
                Editable = true,
            };
            checkBox.Toggled += OnCheckboxToggled;
            col.Views.Add(checkBox);
            col.Views.Add(new ImageCellView(nodeIcon)
            {
                VisibleField = nodeIconVisible,
            });
            col.Views.Add(new TextCellView(nodeLabel));
            treeView.Columns.Add(col);

            treeView.SelectionChanged += OnSelectionChanged;

            mainBox.PackStart(new ScrollView(treeView), true);

            var previewHeaderText = GettextCatalog.GetString("Preview Code Changes:");

            mainBox.PackStart(new Label(previewHeaderText)
            {
                MarginTop = 12,
            });

            mainBox.PackStart(new FrameBox(changedEditor)
            {
                BorderWidth = 2,
                BorderColor = Ide.Gui.Styles.FrameBoxBorderColor,
            }, true);

            Content = mainBox;
            Buttons.Add(Command.Cancel, Command.Apply);

            var rootNode             = store.AddNode();
            var fixAllOccurencesText = GettextCatalog.GetString("Fix all occurrences");

            rootNode.SetValues(nodeCheck, CheckBoxState.On, nodeLabel, fixAllOccurencesText, nodeIcon, ImageService.GetIcon("md-csharp-file"), nodeIconVisible, true);
        }