Class: RubyCurses::ListDataModel
- Inherits:
-
Object
- Object
- RubyCurses::ListDataModel
- Includes:
- Enumerable, EventHandler
- Defined in:
- lib/rbcurse/rlistbox.rb
Overview
www.java2s.com/Code/JavaAPI/javax.swing.event/ListDataEventCONTENTSCHANGED.htm should we extend array of will that open us to misuse
Instance Attribute Summary collapse
-
#last_regex ⇒ Object
readonly
should i really keep here as public or maintain in listbox.
-
#selected_index ⇒ Object
Returns the value of attribute selected_index.
Instance Method Summary collapse
- #[](off0) ⇒ Object
- #[]=(off0, data) ⇒ Object
- #append(data) ⇒ Object
- #delete(obj) ⇒ Object
- #delete_at(off0) ⇒ Object
-
#each(&blk) ⇒ Object
changd on 2009-01-14 12:28 based on ..
-
#find_match(regex, ix0 = 0, ix1 = length()) ⇒ Object
## added 2009-01-14 01:00 searches between given range of rows (def 0 and end) returns row index of first match of given regex (or nil if not found).
-
#find_next ⇒ Object
continues previous search.
-
#find_prev(regex = @last_regex, start = @search_found_ix) ⇒ Object
find backwards, list_data_model Using this to start a search or continue search.
- #include?(obj) ⇒ Boolean
-
#index(obj) ⇒ Object
def each @list.each { |item| yield item } end not sure how to do this XXX removed on 2009-01-14 12:28 def <=>(other) @list <=> other end.
-
#initialize(anarray) ⇒ ListDataModel
constructor
A new instance of ListDataModel.
- #insert(off0, *data) ⇒ Object
- #length ⇒ Object (also: #size)
- #on_enter_row(object) ⇒ Object
- #remove_all ⇒ Object
-
#slice!(line, howmany) ⇒ Object
added 2010-05-23 12:10 for listeditable.
- #update(off0, data) ⇒ Object
- #values ⇒ Object (also: #to_array)
Methods included from EventHandler
#bind, #fire_handler, #fire_property_change
Constructor Details
#initialize(anarray) ⇒ ListDataModel
Returns a new instance of ListDataModel.
49 50 51 |
# File 'lib/rbcurse/rlistbox.rb', line 49 def initialize anarray @list = anarray.dup end |
Instance Attribute Details
#last_regex ⇒ Object (readonly)
should i really keep here as public or maintain in listbox
47 48 49 |
# File 'lib/rbcurse/rlistbox.rb', line 47 def last_regex @last_regex end |
#selected_index ⇒ Object
Returns the value of attribute selected_index.
46 47 48 |
# File 'lib/rbcurse/rlistbox.rb', line 46 def selected_index @selected_index end |
Instance Method Details
#[](off0) ⇒ Object
88 89 90 |
# File 'lib/rbcurse/rlistbox.rb', line 88 def [](off0) @list[off0] end |
#[]=(off0, data) ⇒ Object
85 86 87 |
# File 'lib/rbcurse/rlistbox.rb', line 85 def []=(off0, data) update off0, data end |
#append(data) ⇒ Object
75 76 77 78 79 |
# File 'lib/rbcurse/rlistbox.rb', line 75 def append data @list << data lde = ListDataEvent.new(@list.length-1, @list.length-1, self, :INTERVAL_ADDED) fire_handler :LIST_DATA_EVENT, lde end |
#delete(obj) ⇒ Object
102 103 104 105 106 107 108 109 |
# File 'lib/rbcurse/rlistbox.rb', line 102 def delete obj off0 = @list.index obj return nil if off0.nil? ret=@list.delete_at off0 lde = ListDataEvent.new(off0, off0, self, :INTERVAL_REMOVED) fire_handler :LIST_DATA_EVENT, lde return ret end |
#delete_at(off0) ⇒ Object
91 92 93 94 95 96 |
# File 'lib/rbcurse/rlistbox.rb', line 91 def delete_at off0 ret=@list.delete_at off0 lde = ListDataEvent.new(off0, off0, self, :INTERVAL_REMOVED) fire_handler :LIST_DATA_EVENT, lde return ret end |
#each(&blk) ⇒ Object
changd on 2009-01-14 12:28 based on .. www.ruby-forum.com/topic/175637#769030
54 55 56 |
# File 'lib/rbcurse/rlistbox.rb', line 54 def each(&blk) @list.each(&blk) end |
#find_match(regex, ix0 = 0, ix1 = length()) ⇒ Object
## added 2009-01-14 01:00 searches between given range of rows (def 0 and end) returns row index of first match of given regex (or nil if not found)
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/rbcurse/rlistbox.rb', line 124 def find_match regex, ix0=0, ix1=length() $log.debug " find_match got #{regex} #{ix0} #{ix1}" @last_regex = regex @search_start_ix = ix0 @search_end_ix = ix1 #@search_found_ix = nil @list.each_with_index do |row, ix| next if ix < ix0 break if ix > ix1 if !row.match(regex).nil? @search_found_ix = ix return ix end end return nil end |
#find_next ⇒ Object
continues previous search
142 143 144 145 146 |
# File 'lib/rbcurse/rlistbox.rb', line 142 def find_next raise "No previous search" if @last_regex.nil? start = @search_found_ix && @search_found_ix+1 || 0 return find_match @last_regex, start, @search_end_ix end |
#find_prev(regex = @last_regex, start = @search_found_ix) ⇒ Object
find backwards, list_data_model Using this to start a search or continue search
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/rbcurse/rlistbox.rb', line 150 def find_prev regex=@last_regex, start = @search_found_ix raise "No previous search" if regex.nil? # @last_regex.nil? $log.debug " find_prev #{@search_found_ix} : #{@current_index}" start -= 1 unless start == 0 @last_regex = regex @search_start_ix = start start.downto(0) do |ix| row = @list[ix] if !row.match(regex).nil? @search_found_ix = ix return ix end end return nil #return find_match @last_regex, start, @search_end_ix end |
#include?(obj) ⇒ Boolean
110 111 112 |
# File 'lib/rbcurse/rlistbox.rb', line 110 def include?(obj) return @list.include?(obj) end |
#index(obj) ⇒ Object
def each
@list.each { |item| yield item }
end not sure how to do this XXX removed on 2009-01-14 12:28 def <=>(other)
@list <=> other
end
64 65 66 |
# File 'lib/rbcurse/rlistbox.rb', line 64 def index obj @list.index(obj) end |
#insert(off0, *data) ⇒ Object
70 71 72 73 74 |
# File 'lib/rbcurse/rlistbox.rb', line 70 def insert off0, *data @list.insert off0, *data lde = ListDataEvent.new(off0, off0+data.length-1, self, :INTERVAL_ADDED) fire_handler :LIST_DATA_EVENT, lde end |
#length ⇒ Object Also known as: size
67 |
# File 'lib/rbcurse/rlistbox.rb', line 67 def length ; @list.length; end |
#on_enter_row(object) ⇒ Object
116 117 118 119 |
# File 'lib/rbcurse/rlistbox.rb', line 116 def on_enter_row object #$log.debug " XXX on_enter_row of list_data" fire_handler :ENTER_ROW, object end |
#remove_all ⇒ Object
97 98 99 100 101 |
# File 'lib/rbcurse/rlistbox.rb', line 97 def remove_all lde = ListDataEvent.new(0, @list.size, self, :INTERVAL_REMOVED) @list = [] fire_handler :LIST_DATA_EVENT, lde end |
#slice!(line, howmany) ⇒ Object
added 2010-05-23 12:10 for listeditable
168 169 170 171 172 173 |
# File 'lib/rbcurse/rlistbox.rb', line 168 def slice!(line, howmany) ret = @list.slice!(line, howmany) lde = ListDataEvent.new(line, line+howmany-1, self, :INTERVAL_REMOVED) fire_handler :LIST_DATA_EVENT, lde return ret end |
#update(off0, data) ⇒ Object
80 81 82 83 84 |
# File 'lib/rbcurse/rlistbox.rb', line 80 def update off0, data @list[off0] = data lde = ListDataEvent.new(off0, off0, self, :CONTENTS_CHANGED) fire_handler :LIST_DATA_EVENT, lde end |
#values ⇒ Object Also known as: to_array
113 114 115 |
# File 'lib/rbcurse/rlistbox.rb', line 113 def values @list.dup end |