Class: Alexandria::UI::CompletionModels

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/alexandria/ui/completion_models.rb

Instance Method Summary collapse

Constructor Details

#initializeCompletionModels

Returns a new instance of CompletionModels.



96
97
98
99
100
101
102
# File 'lib/alexandria/ui/completion_models.rb', line 96

def initialize
  @models = []
  @libraries = []
  5.times { @models << Gtk::ListStore.new(String) }
  @models << Gtk::ListStore.new(String)
  touch
end

Instance Method Details

#add_source(library) ⇒ Object



104
105
106
107
108
# File 'lib/alexandria/ui/completion_models.rb', line 104

def add_source(library)
  @libraries << library
  library.add_observer(self)
  touch
end

#author_modelObject



131
132
133
134
# File 'lib/alexandria/ui/completion_models.rb', line 131

def author_model
  rebuild_models if dirty?
  @models[AUTHOR]
end

#borrower_modelObject



146
147
148
149
# File 'lib/alexandria/ui/completion_models.rb', line 146

def borrower_model
  rebuilds_models if dirty?
  @models[BORROWER]
end

#edition_modelObject



141
142
143
144
# File 'lib/alexandria/ui/completion_models.rb', line 141

def edition_model
  rebuild_models if dirty?
  @models[EDITION]
end

#modelsObject



121
122
123
124
# File 'lib/alexandria/ui/completion_models.rb', line 121

def models
  rebuild_models if dirty?
  @models
end

#publisher_modelObject



136
137
138
139
# File 'lib/alexandria/ui/completion_models.rb', line 136

def publisher_model
  rebuild_models if dirty?
  @models[PUBLISHER]
end

#remove_source(library) ⇒ Object



110
111
112
113
114
# File 'lib/alexandria/ui/completion_models.rb', line 110

def remove_source(library)
  @libraries.delete_if { |x| x.name == library.name }
  library.delete_observer(self)
  touch
end

#tag_modelObject



151
152
153
154
# File 'lib/alexandria/ui/completion_models.rb', line 151

def tag_model
  rebuilds_models if dirty?
  @models[TAG]
end

#title_modelObject



126
127
128
129
# File 'lib/alexandria/ui/completion_models.rb', line 126

def title_model
  rebuild_models if dirty?
  @models[TITLE]
end

#update(_library, _kind, _book) ⇒ Object



116
117
118
119
# File 'lib/alexandria/ui/completion_models.rb', line 116

def update(_library, _kind, _book)
  # FIXME: Do not rebuild all the models there.
  touch
end