class MyFRendererCombo
this file is part of manqod manqod is distributed under the CDDL licence the author of manqod is Dobai-Pataky Balint(dpblnt@gmail.com)
Public Class Methods
new(caller,header)
click to toggle source
Calls superclass method
# File lib/ListHolder/ListPanel/ListFilter/FRenderer/Combo.rb, line 8 def initialize(caller,header) @header=header @caller=caller @defval=get_conf(caller.list.get_id,header["id"],"filter") || "-1" @mycombomodel=Gtk::ListStore.new(String,String) @filter=Gtk::TreeModelFilter.new(@mycombomodel) @typed="" super() set_model(@filter) update() set_row_separator_func{|model, iter| iter[1]=='separator' or iter[0]=='---' } @filter.set_visible_func{|model, iter| if iter[0] and @typed ret=iter[0].upcase.index(@typed.upcase) # print iter[0],":",iter[0][0 .. @typed.length]," == ",@typed," = ",ret,"\n" ret end } # update signal_connect('changed'){|me| set_conf(caller.list.get_id,header['id'],"filter",self.active_iter[1]) @caller.list.refilter } signal_connect('key-press-event'){|me,key| case key.keyval when ?a .. ?z,?A .. ?Z, ?0 .. ?9 then @typed=@typed+key.keyval.chr when 65288 then @typed="" if @typed.length==1 @typed=@typed[0 .. @typed.length-2] if @typed.length>0 end # print "current filter: ",@typed,",",@typed.length,"\n" @filter.refilter } end
Public Instance Methods
append_row(cdata,cdisplay)
click to toggle source
# File lib/ListHolder/ListPanel/ListFilter/FRenderer/Combo.rb, line 60 def append_row(cdata,cdisplay) iter=@mycombomodel.append iter[0]=cdisplay iter[1]=cdata end
get_text_from_value(selected_combo_value)
click to toggle source
# File lib/ListHolder/ListPanel/ListFilter/FRenderer/Combo.rb, line 76 def get_text_from_value(selected_combo_value) selected_combo_text=nil @mycombomodel.each {|model, path, iter| if iter[0]==selected_combo_value selected_combo_text=iter[1] end } return selected_combo_text end
get_value_from_text(selected_combo_text)
click to toggle source
# File lib/ListHolder/ListPanel/ListFilter/FRenderer/Combo.rb, line 66 def get_value_from_text(selected_combo_text) selected_combo_value=nil @mycombomodel.each {|model, path, iter| if iter[1]==selected_combo_text selected_combo_value=iter[0] end } return selected_combo_value end
select_value(selected_value=@defval)
click to toggle source
# File lib/ListHolder/ListPanel/ListFilter/FRenderer/Combo.rb, line 90 def select_value(selected_value=@defval) @defval=selected_value @mycombomodel.each {|model, path, iter| self.set_active(path.indices[0]) if iter[1]==@defval } end
text()
click to toggle source
# File lib/ListHolder/ListPanel/ListFilter/FRenderer/Combo.rb, line 86 def text return self.active_iter[1] end
update(new_value=@defval)
click to toggle source
# File lib/ListHolder/ListPanel/ListFilter/FRenderer/Combo.rb, line 43 def update(new_value=@defval) set_model(nil) @defval=new_value @mycombomodel.clear if @header['wantnew'] append_row("-1","") append_row("---","---") end if @header['admin'] admin_rows(@header['querySQL'],@header['key'].include?(".")){|row| append_row(row[@header['key']],row[@header['display']])} else rows(@header['querySQL'],@header['key'].include?(".")){|row| append_row(row[@header['key']],row[@header['display']])} end unless @header['querySQL'].length == 0 set_model(@mycombomodel) select_value() end