Sha256: 3353fffda61c8737cbe621e736ba987943f602385ada46334c5f4f8ec0914662

Contents?: true

Size: 920 Bytes

Versions: 3

Compression:

Stored size: 920 Bytes

Contents

require 'clevic/swing/combo_delegate.rb'

module Clevic

# A Combo box which allows a set of values. May or may not
# be restricted to the set.
class SetDelegate < ComboDelegate
  # options must contain a :set => [ ... ] to specify the set of values.
  def initialize( field )
    raise "SetDelegate must have a :set in options" if field.set.nil?
    super
  end
  
  def needs_combo?
    true
  end
  
  def restricted?
    field.restricted || false
  end
  
  def population
    field.set_for( entity ).map do |item|
      if item.is_a?( Array )
        puts "#{__FILE__}:#{__LINE__}:probably can't deal with item: #{item.inspect}"
        # this is a hash-like set, so use key as db value
        # and value as display value
        class << item
          def toString; last; end
        end
      else
        class << item
          def toString; self; end
        end
      end
      item
    end
  end
end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
clevic-0.13.0.b3 lib/clevic/swing/set_delegate.rb
clevic-0.13.0.b2 lib/clevic/swing/set_delegate.rb
clevic-0.13.0.b1 lib/clevic/swing/set_delegate.rb