BioGTK  6.7.0
A .NET library & program for annotating, editing various microscopy imaging formats using Bioformats supported images. Including whole slide, pyramidal, and series.
Loading...
Searching...
No Matches
Search.cs
1using Gtk;
2using System;
3using System.Collections.Generic;
4using System.IO;
5using System.Linq;
6using System.Text;
7using System.Threading.Tasks;
8
9namespace BioGTK
10{
11 public class Search : Window
12 {
13 #region Properties
14 private Builder _builder;
15
16#pragma warning disable 649
17 [Builder.Object]
18 private Gtk.SearchEntry searchBox;
19 [Builder.Object]
20 private Gtk.TreeView treeView;
21#pragma warning restore 649
22
23 #endregion
24
25 #region Constructors / Destructors
26
30 public static Search Create()
31 {
32 Builder builder = new Builder(new FileStream(System.IO.Path.GetDirectoryName(Environment.ProcessPath) + "/" + "Glade/Search.glade", FileMode.Open));
33 return new Search(builder, builder.GetObject("search").Handle);
34 }
35
36 /* The constructor for the TextInput class. */
37 protected Search(Builder builder, IntPtr handle) : base(handle)
38 {
39 _builder = builder;
40 builder.Autoconnect(this);
41 App.ApplyStyles(this);
42
43 Gtk.TreeViewColumn coordCol = new Gtk.TreeViewColumn();
44 coordCol.Title = "Command";
45 Gtk.CellRendererText coordCell = new Gtk.CellRendererText();
46 coordCol.PackStart(coordCell, false);
47 treeView.AppendColumn(coordCol);
48 coordCol.AddAttribute(coordCell, "text", 0);
49
50 Gtk.TreeStore store = new Gtk.TreeStore(typeof(string));
51 foreach (Fiji.Macro.Command s in Fiji.Macro.Commands.Values)
52 {
53 Gtk.TreeIter iter = store.AppendValues(s.Name);
54 }
55 foreach (Scripting.Script s in Scripting.scripts.Values)
56 {
57 Gtk.TreeIter iter = store.AppendValues(s.name);
58 }
59 treeView.Model = store;
60 treeView.RowActivated += TreeView_RowActivated;
61 searchBox.Changed += SearchBox_Changed;
62 }
63 #endregion
64 private void TreeView_RowActivated(object o, RowActivatedArgs args)
65 {
66 TreeIter iter;
67 if (treeView.Model.GetIter(out iter, args.Path))
68 {
69 string itemName = (string)treeView.Model.GetValue(iter, 0);
70 if(!itemName.EndsWith(".txt") || !itemName.EndsWith(".ijm") && !itemName.EndsWith(".cs"))
71 {
72 Fiji.RunOnImage(ImageView.SelectedImage,"run(\"" + itemName + "\")",BioConsole.headless,BioConsole.onTab,BioConsole.useBioformats,BioConsole.resultInNewTab);
73 }
74 else
75 Scripting.RunByName(itemName);
76 }
77 }
78 private void SearchBox_Changed(object sender, EventArgs e)
79 {
80 ScrollToItem(treeView, treeView.Model, searchBox.Buffer.Text);
81 }
82 static void ScrollToItem(TreeView listView, ITreeModel listStore, string itemName)
83 {
84 TreeIter iter;
85 if (listStore.GetIterFirst(out iter))
86 {
87 do
88 {
89 if (((string)listStore.GetValue(iter, 0)).StartsWith(itemName))
90 {
91 TreePath path = listStore.GetPath(iter);
92 listView.ScrollToCell(path, null, true, 0, 0);
93 break;
94 }
95 }
96 while (listStore.IterNext(ref iter));
97 }
98 }
99 }
100}
static Search Create()
Definition Search.cs:30
Definition ML.cs:17