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; }
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 (); }
void HandleRootChildAdded(object sender, IssueTreeNodeEventArgs e) { Application.Invoke(delegate { Debug.Assert(e.Parent == rootGroup); var navigator = store.AddNode(); SetNode(navigator, e.Child); SyncNode(navigator); }); }
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); }
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); }; }; }
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); } }
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); }; }; }
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(); }
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); } }
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); } } }
void Update(MSBuildRootDocument doc) { store.Clear(); var shorten = GetDisplayElementFactory().CreateFilenameShortener(doc.RuntimeInformation); AddNode(store.AddNode(), doc, shorten); ExpandAll(); }
void AddTreeViewItems() { foreach (BaseViewModel viewModel in rootViewModels) { TreeNavigator navigator = treeStore.AddNode(); SetTreeNodeValues(navigator, viewModel); AddChildTreeNodes(navigator, viewModel); } }
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(); } }
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; }
TaskBindingTreeNode AddBindingsTreeNode(TaskRunnerBindEvent bindEvent) { var node = new TaskBindingTreeNode(bindEvent); TreeNavigator navigator = bindingsTreeStore.AddNode(); navigator.SetValue(bindingNodeNameField, node.Name); navigator.SetValue(bindingNodeField, node); return(node); }
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); } }
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(); } }
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(); } }
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; }
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); }
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); }
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); } }
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); }
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() : "?"); } }
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(); }
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}"; }
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(); }
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); }
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); }
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); }
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); }
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); }
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); } } } } } } }
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; }
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()); }
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; }
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); }
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(); }
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 (); }
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); }