Sha256: 228ae35482fe16069ae40c488c855bbebd27438630c967908963822b72235425

Contents?: true

Size: 1.75 KB

Versions: 13

Compression:

Stored size: 1.75 KB

Contents

# frozen_string_literal: true

require 'glimmer-dsl-libui'

include Glimmer

data = [
  ['Lisa Sky', 'lisa@sky.com', '720-523-4329', 'Denver', 'CO', '80014'],
  ['Jordan Biggins', 'jordan@biggins.com', '617-528-5399', 'Boston', 'MA', '02101'],
  ['Mary Glass', 'mary@glass.com', '847-589-8788', 'Elk Grove Village', 'IL', '60007'],
  ['Darren McGrath', 'darren@mcgrath.com', '206-539-9283', 'Seattle', 'WA', '98101'],
  ['Melody Hanheimer', 'melody@hanheimer.com', '213-493-8274', 'Los Angeles', 'CA', '90001'],
]

window('Contacts', 600, 600) { |w|
  margined true
  
  vertical_box {
    form {
      stretchy false
      
      @name_entry = entry {
        label 'Name'
      }
      @email_entry = entry {
        label 'Email'
      }
      @phone_entry = entry {
        label 'Phone'
      }
      @city_entry = entry {
        label 'City'
      }
      @state_entry = entry {
        label 'State'
      }
    }
    
    button('Save Contact') {
      stretchy false
      
      on_clicked do
        new_row = [@name_entry.text, @email_entry.text, @phone_entry.text, @city_entry.text, @state_entry.text]
        if new_row.include?('')
          msg_box_error(w, 'Validation Error!', 'All fields are required! Please make sure to enter a value for all fields.')
        else
          data << new_row # automatically inserts a row into the table due to implicit data-binding
          @name_entry.text = ''
          @email_entry.text = ''
          @phone_entry.text = ''
          @city_entry.text = ''
          @state_entry.text = ''
        end
      end
    }
    
    table {
      text_column('Name')
      text_column('Email')
      text_column('Phone')
      text_column('City')
      text_column('State')

      cell_rows data # implicit data-binding
    }
  }
}.show

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
glimmer-dsl-libui-0.1.10 examples/form_table.rb
glimmer-dsl-libui-0.1.9 examples/form_table.rb
glimmer-dsl-libui-0.1.8 examples/form_table.rb
glimmer-dsl-libui-0.1.7 examples/form_table.rb
glimmer-dsl-libui-0.1.6 examples/form_table.rb
glimmer-dsl-libui-0.1.5 examples/form_table.rb
glimmer-dsl-libui-0.1.4 examples/form_table.rb
glimmer-dsl-libui-0.1.3 examples/form_table.rb
glimmer-dsl-libui-0.1.2 examples/form_table.rb
glimmer-dsl-libui-0.1.1 examples/form_table.rb
glimmer-dsl-libui-0.1.0 examples/form_table.rb
glimmer-dsl-libui-0.0.28 examples/form_table.rb
glimmer-dsl-libui-0.0.27 examples/form_table.rb