Sha256: b5ebd961b7c545f35351037dde1d241247994187ff4a6c38066587aeebfadb32

Contents?: true

Size: 909 Bytes

Versions: 3

Compression:

Stored size: 909 Bytes

Contents

module RubyApp

  module Elements

    module Lists
      require 'ruby_app/elements/list'

      class Select < RubyApp::Elements::List

        template_path(:all, File.dirname(__FILE__))

        exclude_parent_template(:html, :css, :js)

        attr_accessor :selected_index, :selected_item

        event :selected

        def initialize
          super
        end

        def selected_index=(index)
          @selected_index = index
          @selected_item = @items[index]
        end

        def selected_item=(item)
          @selected_index = @items.index(item)
          @selected_item = @selected_index ? @items[@selected_index] : nil
        end

        protected

          def on_selected(event)
            @selected_index = event.index
            @selected_item = event.item
            event.update_element(self)
            super(event)
          end

      end

    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
RubyApp-0.0.8 lib/ruby_app/elements/lists/select.rb
RubyApp-0.0.7 lib/ruby_app/elements/lists/select.rb
RubyApp-0.0.6 lib/ruby_app/elements/lists/select.rb