Ejemplo n.º 1
0
        protected virtual int SortTreeStore(TreeModel model,
                                            Gtk.TreeIter iter1,
                                            Gtk.TreeIter iter2)
        {
            var server1 = (ServerModel)model.GetValue(iter1, 0);
            var server2 = (ServerModel)model.GetValue(iter2, 0);

            // protocol nodes don't have a ServerModel
            if (server1 == null && server2 == null)
            {
                return(0);
            }
            if (server2 == null)
            {
                return(1);
            }
            if (server1 == null)
            {
                return(-1);
            }
            var s1 = String.Format("{0}/{1}:{2} ({3})",
                                   server1.Protocol, server1.Hostname,
                                   server1.Port, server1.ServerID);
            var s2 = String.Format("{0}/{1}:{2} ({3})",
                                   server2.Protocol, server2.Hostname,
                                   server2.Port, server2.ServerID);

            return(s1.CompareTo(s2));
        }
Ejemplo n.º 2
0
        static void RenderFilterColumnTextFromBibtexRecords(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.ITreeModel model, Gtk.TreeIter iter)
        {
            Debug.WriteLine(10, "Rendering cell");
            string val = (string)model.GetValue(iter, 0);

            Debug.WriteLine(10, "Value = " + val);
            (cell as Gtk.CellRendererText).Text = StringOps.TeXToUnicode(val);
        }
Ejemplo n.º 3
0
        static void RenderColumnTextFromBibtexRecord(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.ITreeModel model, Gtk.TreeIter iter)
        {
            // See here for an example of how you can highlight cells
            // based on something todo with the entry
            //
            // TODO: extend this feature to highlight entries that
            // are missing required fields

            if ((model != null) && (column != null) && (column.Title != null))
            {
                var record = (BibtexRecord)model.GetValue(iter, 0);
                if (record != null)
                {
                    if (record.HasField(column.Title) && column.Title != "Author")
                    {
                        (cell as Gtk.CellRendererText).Text       = StringOps.TeXToUnicode(record.GetField(column.Title));
                        (cell as Gtk.CellRendererText).Background = "white";
                        (cell as Gtk.CellRendererText).Ellipsize  = Pango.EllipsizeMode.End;
                    }
                    else if (record.HasField(column.Title) && column.Title == "Author")
                    {
                        StringArrayList authors       = record.GetAuthors();
                        string          author_string = "";
                        foreach (string author in authors)
                        {
                            if (author_string == "")
                            {
                                author_string = author;
                            }
                            else
                            {
                                author_string = String.Concat(author_string, "; ", author);
                            }
                        }
                        (cell as Gtk.CellRendererText).Text       = StringOps.TeXToUnicode(author_string);
                        (cell as Gtk.CellRendererText).Background = "white";
                        (cell as Gtk.CellRendererText).Ellipsize  = Pango.EllipsizeMode.End;
                    }
                    else
                    {
                        (cell as Gtk.CellRendererText).Text = "";
                        // could highlight important fields that are missing data too,
                        // for e.g. the line below:
                        //(cell as Gtk.CellRendererText).Background = "green";
                    }
                    if (!BibtexRecordTypeLibrary.Contains(record.RecordType))
                    {
                        (cell as Gtk.CellRendererText).Foreground = "red";
                    }
                    else
                    {
                        (cell as Gtk.CellRendererText).Foreground = "black";
                    }
                }
            }
        }
Ejemplo n.º 4
0
        public int StringCompareAuthor(Gtk.ITreeModel model, Gtk.TreeIter tia, Gtk.TreeIter tib)
        {
            var    a = (BibtexRecord)model.GetValue(tia, 0);
            var    b = (BibtexRecord)model.GetValue(tib, 0);
            string A, B;

            if (a != null)
            {
                if (a.GetAuthors().Count > 0)
                {
                    A = a.GetAuthors()[0];
                }
                else
                {
                    A = "";
                }
            }
            else
            {
                A = "";
            }
            if (b != null)
            {
                if (b.GetAuthors().Count > 0)
                {
                    B = b.GetAuthors()[0];
                }
                else
                {
                    B = "";
                }
            }
            else
            {
                B = "";
            }
            Debug.WriteLine(10, "Comparing {1} and {2}", A, B);
            return(String.Compare(A.ToLower(), B.ToLower()));
        }
Ejemplo n.º 5
0
        static void RenderColumnPixbufFromBibtexRecord(Gtk.TreeViewColumn column, Gtk.CellRenderer cell, Gtk.ITreeModel model, Gtk.TreeIter iter)
        {
            if (model != null)
            {
                var record = (BibtexRecord)model.GetValue(iter, 0);

                var pixbuf = (Gdk.Pixbuf)record.GetCustomDataField("smallThumbnail");

                if ((cell != null) && (record != null))
                {
                    (cell as Gtk.CellRendererPixbuf).Pixbuf = pixbuf;
                }
            }
        }
Ejemplo n.º 6
0
        public int StringCompare(Gtk.ITreeModel model, Gtk.TreeIter tia, Gtk.TreeIter tib)
        {
            var    a = (BibtexRecord)model.GetValue(tia, 0);
            var    b = (BibtexRecord)model.GetValue(tib, 0);
            string A, B;
            string sortString = "";
            int    sortColumn;

            Gtk.SortType sortType;
            sorter.GetSortColumnId(out sortColumn, out sortType);

            switch (sortColumn)
            {
            case 1:
                sortString = "Author";
                break;

            case 2:
                sortString = "Title";
                break;

            case 3:
                sortString = "Year";
                break;

            case 4:
                sortString = "Journal";
                break;

            case 5:
                sortString = "Bibtex Key";
                break;

            case 6:
                sortString = "Volume";
                break;

            case 7:
                sortString = "Pages";
                break;
            }

            if (a != null)
            {
                if (a.HasField(sortString))
                {
                    A = a.GetField(sortString);
                }
                else
                {
                    A = "";
                }
            }
            else
            {
                A = "";
            }
            if (b != null)
            {
                if (b.HasField(sortString))
                {
                    B = b.GetField(sortString);
                }
                else
                {
                    B = "";
                }
            }
            else
            {
                B = "";
            }
            Debug.WriteLine(10, "sortString: {0} Comparing {1} and {2}", sortString, A, B);
            return(String.Compare(A.ToLower(), B.ToLower()));
        }