class Feedcellar::Gtk::TreeView
Constants
- RESOURCE_AND_TITLE_COLUMN
Public Class Methods
new(records)
click to toggle source
Calls superclass method
# File lib/feedcellar/gtk/tree_view.rb, line 27 def initialize(records) super() @model = ::Gtk::ListStore.new(String, String, String, String, Time, String, String) create_tree(@model, records) end
Public Instance Methods
get_link(path)
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 46 def get_link(path) @model.get_iter(path).get_value(LINK_COLUMN) end
next()
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 33 def next move_cursor(::Gtk::MovementStep::DISPLAY_LINES, 1) end
prev()
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 37 def prev move_cursor(::Gtk::MovementStep::DISPLAY_LINES, -1) end
remove_selected_record()
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 41 def remove_selected_record return nil unless selected_iter @model.remove(selected_iter) end
selected_date()
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 70 def selected_date return nil unless selected_iter selected_iter.get_value(DATE_COLUMN) end
selected_description()
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 65 def selected_description return nil unless selected_iter selected_iter.get_value(DESCRIPTION_COLUMN) end
selected_iter()
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 75 def selected_iter selection.selected end
selected_key()
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 50 def selected_key return nil unless selected_iter selected_iter.get_value(KEY_COLUMN) end
selected_link()
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 60 def selected_link return nil unless selected_iter selected_iter.get_value(LINK_COLUMN) end
selected_title()
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 55 def selected_title return nil unless selected_iter selected_iter.get_value(TITLE_COLUMN) end
update_model(records)
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 79 def update_model(records) model = ::Gtk::ListStore.new(String, String, String, String, Time, String, String) records.each do |record| load_record(model, record) end set_model(model) @model = model end
Private Instance Methods
create_column(title, index)
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 111 def create_column(title, index) column = ::Gtk::TreeViewColumn.new column.title = title renderer = ::Gtk::CellRendererText.new column.pack_start(renderer, :expand => false) column.add_attribute(renderer, :text, index) column.set_sort_column_id(index) column end
create_tree(model, records)
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 89 def create_tree(model, records) set_model(model) self.search_column = TITLE_COLUMN self.enable_search = false self.rules_hint = true self.tooltip_column = DESCRIPTION_COLUMN selection.set_mode(:browse) records.each do |record| load_record(model, record) end column = create_column("Date", STRFTIME_COLUMN) append_column(column) column = create_column("Title", RESOURCE_AND_TITLE_COLUMN) append_column(column) expand_all end
load_record(model, record)
click to toggle source
# File lib/feedcellar/gtk/tree_view.rb, line 121 def load_record(model, record) iter = model.append iter.set_value(KEY_COLUMN, record._key) iter.set_value(TITLE_COLUMN, record.title) iter.set_value(LINK_COLUMN, record.link) escaped_description = ERB::Util.html_escape(record.description) iter.set_value(DESCRIPTION_COLUMN, escaped_description) iter.set_value(DATE_COLUMN, record.date) iter.set_value(STRFTIME_COLUMN, record.date.strftime("%Y-%m-%d\n%H:%M:%S")) text = [record.resource.title, record.title].join("\n") iter.set_value(RESOURCE_AND_TITLE_COLUMN, text) end