glimmer-dsl-swt 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +1 -1
 - data/VERSION +1 -1
 - data/bin/girb +1 -1
 - data/bin/glimmer +1 -1
 - data/icons/scaffold_app.png +0 -0
 - data/lib/glimmer/dsl/swt/message_box_expression.rb +9 -1
 - data/lib/glimmer/dsl/swt/widget_expression.rb +1 -7
 - data/lib/glimmer/launcher.rb +5 -1
 - data/lib/glimmer/package.rb +26 -9
 - data/lib/glimmer/rake_task.rb +5 -4
 - data/lib/glimmer/scaffold.rb +47 -30
 - data/lib/glimmer/swt/display_proxy.rb +13 -2
 - data/lib/glimmer/swt/message_box_proxy.rb +23 -5
 - data/lib/glimmer/swt/table_proxy.rb +50 -2
 - data/lib/glimmer/swt/widget_proxy.rb +33 -6
 - metadata +7 -6
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: c4290c2587a5d74bdbd39df1e1459219628abd0f867df9c972ec766d1581e786
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: a422f8c8f1cad97b8c59f72eefdbdac2bfab5076e45b4d99bacbea063f683897
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: cfe72e5b9043ca482199ebcdb21ce5dfb3bcf5106b4adf2d1f5928d195b9ae99fbd1cd10b120ec14901052121a3cb82e5e45a203e235daaf2bd29addc6e29f60
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 9f1d1bd197e61a8a462f5afc8d84466b0a595f0ab225999571d9fb22c8f00e078928a675a4474fde34c1274aaac252c4d23f7c7fcd38fea155a0cac8e6769767
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for SWT 0.6. 
     | 
| 
      
 1 
     | 
    
         
            +
            # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for SWT 0.6.3 (Desktop GUI)
         
     | 
| 
       2 
2 
     | 
    
         
             
            [](http://badge.fury.io/rb/glimmer-dsl-swt)
         
     | 
| 
       3 
3 
     | 
    
         
             
            [](https://travis-ci.com/github/AndyObtiva/glimmer-dsl-swt)
         
     | 
| 
       4 
4 
     | 
    
         
             
            [](https://coveralls.io/github/AndyObtiva/glimmer-dsl-swt?branch=master)
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0.6. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.6.3
         
     | 
    
        data/bin/girb
    CHANGED
    
    
    
        data/bin/glimmer
    CHANGED
    
    
| 
         Binary file 
     | 
| 
         @@ -16,7 +16,15 @@ module Glimmer 
     | 
|
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
                    def interpret(parent, keyword, *args, &block)
         
     | 
| 
       18 
18 
     | 
    
         
             
                      potential_parent = args.first
         
     | 
| 
       19 
     | 
    
         
            -
                       
     | 
| 
      
 19 
     | 
    
         
            +
                      potential_parent = potential_parent.swt_widget if potential_parent.respond_to?(:swt_widget)
         
     | 
| 
      
 20 
     | 
    
         
            +
                      parent = nil          
         
     | 
| 
      
 21 
     | 
    
         
            +
                      if potential_parent.is_a?(Shell)
         
     | 
| 
      
 22 
     | 
    
         
            +
                        args.shift
         
     | 
| 
      
 23 
     | 
    
         
            +
                        parent = potential_parent
         
     | 
| 
      
 24 
     | 
    
         
            +
                      elsif potential_parent.is_a?(Widget)
         
     | 
| 
      
 25 
     | 
    
         
            +
                        args.shift
         
     | 
| 
      
 26 
     | 
    
         
            +
                        parent = potential_parent.shell
         
     | 
| 
      
 27 
     | 
    
         
            +
                      end
         
     | 
| 
       20 
28 
     | 
    
         
             
                      Glimmer::SWT::MessageBoxProxy.new(parent, Glimmer::SWT::SWTProxy[args])
         
     | 
| 
       21 
29 
     | 
    
         
             
                    end
         
     | 
| 
       22 
30 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -17,13 +17,7 @@ module Glimmer 
     | 
|
| 
       17 
17 
     | 
    
         
             
                    end
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                    def interpret(parent, keyword, *args, &block)
         
     | 
| 
       20 
     | 
    
         
            -
                       
     | 
| 
       21 
     | 
    
         
            -
                        class_name = "#{keyword.camelcase(:upper)}Proxy".to_sym
         
     | 
| 
       22 
     | 
    
         
            -
                        widget_class = Glimmer::SWT.const_get(class_name)
         
     | 
| 
       23 
     | 
    
         
            -
                      rescue
         
     | 
| 
       24 
     | 
    
         
            -
                        widget_class = Glimmer::SWT::WidgetProxy
         
     | 
| 
       25 
     | 
    
         
            -
                      end
         
     | 
| 
       26 
     | 
    
         
            -
                      widget_class.new(keyword, parent, args)
         
     | 
| 
      
 20 
     | 
    
         
            +
                      Glimmer::SWT::WidgetProxy.create(keyword, parent, args)
         
     | 
| 
       27 
21 
     | 
    
         
             
                    end
         
     | 
| 
       28 
22 
     | 
    
         | 
| 
       29 
23 
     | 
    
         
             
                    def add_content(parent, &block)
         
     | 
    
        data/lib/glimmer/launcher.rb
    CHANGED
    
    | 
         @@ -13,7 +13,7 @@ module Glimmer 
     | 
|
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                  When a task is specified, it runs via rake. Some tasks take arguments in square brackets.
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
                  Available tasks are below (you  
     | 
| 
      
 16 
     | 
    
         
            +
                  Available tasks are below (if you do not see any, please add `require 'glimmer/rake_task'` to Rakefile and rerun or run rake -T):
         
     | 
| 
       17 
17 
     | 
    
         
             
                MULTI_LINE_STRING
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                TEXT_USAGE_SUFFIX = <<~MULTI_LINE_STRING
         
     | 
| 
         @@ -96,6 +96,10 @@ module Glimmer 
     | 
|
| 
       96 
96 
     | 
    
         
             
                      devmode_require = '-r puts_debuggerer '
         
     | 
| 
       97 
97 
     | 
    
         
             
                    end
         
     | 
| 
       98 
98 
     | 
    
         
             
                    rake_tasks = Rake.application.tasks.map(&:to_s).map {|t| t.sub('glimmer:', '')}
         
     | 
| 
      
 99 
     | 
    
         
            +
                     
         
     | 
| 
      
 100 
     | 
    
         
            +
                    # handle a bash quirk with calling package[msi] while there is a "packages" directory locally (it passes package[msi] as packages)
         
     | 
| 
      
 101 
     | 
    
         
            +
                    application = 'package[msi]' if application == 'packages'
         
     | 
| 
      
 102 
     | 
    
         
            +
                    
         
     | 
| 
       99 
103 
     | 
    
         
             
                    potential_rake_task_parts = application.match(REGEX_RAKE_TASK_WITH_ARGS)
         
     | 
| 
       100 
104 
     | 
    
         
             
                    application = potential_rake_task_parts[1]
         
     | 
| 
       101 
105 
     | 
    
         
             
                    rake_task_args = potential_rake_task_parts[2].split(',')
         
     | 
    
        data/lib/glimmer/package.rb
    CHANGED
    
    | 
         @@ -6,6 +6,7 @@ module Glimmer 
     | 
|
| 
       6 
6 
     | 
    
         
             
              module Package
         
     | 
| 
       7 
7 
     | 
    
         
             
                class << self
         
     | 
| 
       8 
8 
     | 
    
         
             
                  attr_accessor :javapackager_extra_args
         
     | 
| 
      
 9 
     | 
    
         
            +
                  alias jpackage_extra_args :javapackager_extra_args
         
     | 
| 
       9 
10 
     | 
    
         | 
| 
       10 
11 
     | 
    
         
             
                  def clean
         
     | 
| 
       11 
12 
     | 
    
         
             
                    require 'fileutils'
         
     | 
| 
         @@ -42,14 +43,15 @@ module Glimmer 
     | 
|
| 
       42 
43 
     | 
    
         
             
                  end
         
     | 
| 
       43 
44 
     | 
    
         | 
| 
       44 
45 
     | 
    
         
             
                  def lock_jars
         
     | 
| 
       45 
     | 
    
         
            -
                    puts 'Locking  
     | 
| 
       46 
     | 
    
         
            -
                     
     | 
| 
      
 46 
     | 
    
         
            +
                    puts 'Locking gem jar-dependencies by downloading & storing in vendor/jars...'
         
     | 
| 
      
 47 
     | 
    
         
            +
                    FileUtils.mkdir_p('vendor/jars')
         
     | 
| 
      
 48 
     | 
    
         
            +
                    command = "lock_jars --vendor-dir vendor/jars"
         
     | 
| 
       47 
49 
     | 
    
         
             
                    puts command
         
     | 
| 
       48 
50 
     | 
    
         
             
                    system command      
         
     | 
| 
       49 
51 
     | 
    
         
             
                  end
         
     | 
| 
       50 
52 
     | 
    
         | 
| 
       51 
     | 
    
         
            -
                  def native(native_type=nil)
         
     | 
| 
       52 
     | 
    
         
            -
                    puts "Generating native executable with javapackager..."
         
     | 
| 
      
 53 
     | 
    
         
            +
                  def native(native_type=nil, native_extra_args)
         
     | 
| 
      
 54 
     | 
    
         
            +
                    puts "Generating native executable with javapackager/jpackage..."
         
     | 
| 
       53 
55 
     | 
    
         
             
                    require 'facets/string/titlecase'
         
     | 
| 
       54 
56 
     | 
    
         
             
                    require 'facets/string/underscore'
         
     | 
| 
       55 
57 
     | 
    
         
             
                    project_name = File.basename(File.expand_path('.'))
         
     | 
| 
         @@ -59,13 +61,28 @@ module Glimmer 
     | 
|
| 
       59 
61 
     | 
    
         
             
                    license = (File.read(license_file).strip if File.exists?(license_file) && File.file?(license_file)) rescue nil
         
     | 
| 
       60 
62 
     | 
    
         
             
                    copyright = license.split("\n").first
         
     | 
| 
       61 
63 
     | 
    
         
             
                    human_name = project_name.underscore.titlecase
         
     | 
| 
       62 
     | 
    
         
            -
                     
     | 
| 
       63 
     | 
    
         
            -
                     
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
      
 64 
     | 
    
         
            +
                    icon = "package/#{OS.mac? ? 'macosx' : 'windows'}/#{human_name}.#{OS.mac? ? 'icns' : 'ico'}"
         
     | 
| 
      
 65 
     | 
    
         
            +
                    if (`javapackager`.to_s.include?('Usage: javapackager') rescue nil)
         
     | 
| 
      
 66 
     | 
    
         
            +
                      command = "javapackager -deploy -native #{native_type} -outdir packages -outfile \"#{project_name}\" -srcfiles \"dist/#{project_name}.jar\" -appclass JarMain -name \"#{human_name}\" -title \"#{human_name}\" -Bmac.CFBundleName=\"#{human_name}\" -Bmac.CFBundleIdentifier=\"org.#{project_name}.application.#{project_name}\" -Bmac.category=\"public.app-category.business\" -BinstalldirChooser=true -Bvendor=\"#{human_name}\" -Bwin.menuGroup=\"#{human_name}\" "
         
     | 
| 
      
 67 
     | 
    
         
            +
                      command += " -BsystemWide=false " if OS.windows?
         
     | 
| 
      
 68 
     | 
    
         
            +
                      command += " -BjvmOptions=-XstartOnFirstThread " if OS.mac?
         
     | 
| 
      
 69 
     | 
    
         
            +
                      command += " -BappVersion=#{version} -Bmac.CFBundleVersion=#{version} " if version
         
     | 
| 
      
 70 
     | 
    
         
            +
                      command += " -srcfiles LICENSE.txt -BlicenseFile=LICENSE.txt " if license
         
     | 
| 
      
 71 
     | 
    
         
            +
                      command += " -Bcopyright=\"#{copyright}\" " if copyright
         
     | 
| 
      
 72 
     | 
    
         
            +
                    elsif (`jpackage`.to_s.include?('Usage: jpackage') rescue nil)
         
     | 
| 
      
 73 
     | 
    
         
            +
                      command = "jpackage --type #{native_type} --dest 'packages/bundles' --input 'dist' --main-class JarMain --main-jar '#{project_name}.jar' --name '#{human_name}' --vendor '#{human_name}' --icon '#{icon}' "
         
     | 
| 
      
 74 
     | 
    
         
            +
                      command += " --win-per-user-install --win-dir-chooser --win-menu --win-menu-group '#{human_name}' " if OS.windows?
         
     | 
| 
      
 75 
     | 
    
         
            +
                      command += " --java-options '-XstartOnFirstThread' --mac-package-name '#{human_name}' --mac-package-identifier 'org.#{project_name}.application.#{project_name}' " if OS.mac?
         
     | 
| 
      
 76 
     | 
    
         
            +
                      command += " --app-version \"#{version}\" " if version
         
     | 
| 
      
 77 
     | 
    
         
            +
                      command += " --license-file LICENSE.txt " if license
         
     | 
| 
      
 78 
     | 
    
         
            +
                      command += " --copyright \"#{copyright}\" " if copyright
         
     | 
| 
      
 79 
     | 
    
         
            +
                    else
         
     | 
| 
      
 80 
     | 
    
         
            +
                      puts "Neither javapackager nor jpackage exist in your Java installation. Please ensure javapackager or jpackage is available in PATH environment variable."
         
     | 
| 
      
 81 
     | 
    
         
            +
                      return
         
     | 
| 
      
 82 
     | 
    
         
            +
                    end
         
     | 
| 
       67 
83 
     | 
    
         
             
                    command += " #{javapackager_extra_args} " if javapackager_extra_args
         
     | 
| 
       68 
84 
     | 
    
         
             
                    command += " #{ENV['JAVAPACKAGER_EXTRA_ARGS']} " if ENV['JAVAPACKAGER_EXTRA_ARGS']
         
     | 
| 
      
 85 
     | 
    
         
            +
                    command += " #{native_extra_args} " if native_extra_args
         
     | 
| 
       69 
86 
     | 
    
         
             
                    puts command
         
     | 
| 
       70 
87 
     | 
    
         
             
                    system command      
         
     | 
| 
       71 
88 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/glimmer/rake_task.rb
    CHANGED
    
    | 
         @@ -24,18 +24,19 @@ namespace :glimmer do 
     | 
|
| 
       24 
24 
     | 
    
         
             
                  Glimmer::Package.lock_jars
         
     | 
| 
       25 
25 
     | 
    
         
             
                end
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
                desc 'Generate Native files  
     | 
| 
      
 27 
     | 
    
         
            +
                desc 'Generate Native files. type can be dmg/pkg on the Mac, msi/exe on Windows, and rpm/deb on Linux (type is optional)'
         
     | 
| 
       28 
28 
     | 
    
         
             
                task :native, [:type] do |t, args|
         
     | 
| 
       29 
     | 
    
         
            -
                   
     | 
| 
      
 29 
     | 
    
         
            +
                  extra_args = ARGV.partition {|arg| arg.include?('package:native')}.last.to_a.join(' ')
         
     | 
| 
      
 30 
     | 
    
         
            +
                  Glimmer::Package.native(args[:type], extra_args)
         
     | 
| 
       30 
31 
     | 
    
         
             
                end
         
     | 
| 
       31 
32 
     | 
    
         
             
              end
         
     | 
| 
       32 
33 
     | 
    
         | 
| 
       33 
34 
     | 
    
         
             
              desc 'Package app for distribution (generating config, jar, and native files) (type is optional)'
         
     | 
| 
       34 
35 
     | 
    
         
             
              task :package, [:type] do |t, args|
         
     | 
| 
      
 36 
     | 
    
         
            +
                Rake::Task['gemspec:generate'].execute
         
     | 
| 
      
 37 
     | 
    
         
            +
                Rake::Task['glimmer:package:lock_jars'].execute
         
     | 
| 
       35 
38 
     | 
    
         
             
                Rake::Task['glimmer:package:config'].execute
         
     | 
| 
       36 
39 
     | 
    
         
             
                Rake::Task['glimmer:package:jar'].execute
         
     | 
| 
       37 
     | 
    
         
            -
                Rake::Task['glimmer:package:lock_jars'].execute
         
     | 
| 
       38 
     | 
    
         
            -
                Rake::Task['gemspec:generate'].execute
         
     | 
| 
       39 
40 
     | 
    
         
             
                Rake::Task['glimmer:package:native'].execute(args)
         
     | 
| 
       40 
41 
     | 
    
         
             
              end
         
     | 
| 
       41 
42 
     | 
    
         | 
    
        data/lib/glimmer/scaffold.rb
    CHANGED
    
    | 
         @@ -73,7 +73,8 @@ class Scaffold 
     | 
|
| 
       73 
73 
     | 
    
         | 
| 
       74 
74 
     | 
    
         
             
                  # Glimmer
         
     | 
| 
       75 
75 
     | 
    
         
             
                  dist
         
     | 
| 
       76 
     | 
    
         
            -
                  packages 
     | 
| 
      
 76 
     | 
    
         
            +
                  packages
         
     | 
| 
      
 77 
     | 
    
         
            +
                  vendor/jars
         
     | 
| 
       77 
78 
     | 
    
         
             
                MULTI_LINE_STRING
         
     | 
| 
       78 
79 
     | 
    
         | 
| 
       79 
80 
     | 
    
         
             
                GEMFILE = <<~MULTI_LINE_STRING
         
     | 
| 
         @@ -109,7 +110,6 @@ class Scaffold 
     | 
|
| 
       109 
110 
     | 
    
         
             
                MULTI_LINE_STRING
         
     | 
| 
       110 
111 
     | 
    
         | 
| 
       111 
112 
     | 
    
         
             
                def app(app_name)
         
     | 
| 
       112 
     | 
    
         
            -
                  return puts('Namespace is required! Usage: glimmer scaffold:custom_shell_gem[custom_shell_name,namespace]') unless `git config --get github.user`.to_s.strip == 'AndyObtiva'
         
     | 
| 
       113 
113 
     | 
    
         
             
                  gem_name = file_name(app_name)
         
     | 
| 
       114 
114 
     | 
    
         
             
                  gem_summary = human_name(app_name)
         
     | 
| 
       115 
115 
     | 
    
         
             
                  system "jruby -r git-glimmer -S jeweler --rspec --summary '#{gem_summary}' --description '#{gem_summary}' #{gem_name}" 
         
     | 
| 
         @@ -127,17 +127,22 @@ class Scaffold 
     | 
|
| 
       127 
127 
     | 
    
         
             
                  mkdir 'app/models'
         
     | 
| 
       128 
128 
     | 
    
         
             
                  mkdir 'app/views'
         
     | 
| 
       129 
129 
     | 
    
         
             
                  custom_shell('AppView', current_dir_name, :app)
         
     | 
| 
       130 
     | 
    
         
            -
             
     | 
| 
       131 
     | 
    
         
            -
             
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
             
     | 
| 
       134 
     | 
    
         
            -
             
     | 
| 
       135 
     | 
    
         
            -
                   
     | 
| 
       136 
     | 
    
         
            -
             
     | 
| 
       137 
     | 
    
         
            -
             
     | 
| 
       138 
     | 
    
         
            -
             
     | 
| 
       139 
     | 
    
         
            -
             
     | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
      
 130 
     | 
    
         
            +
                    
         
     | 
| 
      
 131 
     | 
    
         
            +
                  mkdir_p 'package/windows'
         
     | 
| 
      
 132 
     | 
    
         
            +
                  icon_file = "package/windows/#{human_name(app_name)}.ico"
         
     | 
| 
      
 133 
     | 
    
         
            +
                  cp File.expand_path('../../../icons/scaffold_app.ico', __FILE__), icon_file
         
     | 
| 
      
 134 
     | 
    
         
            +
                  puts "Created #{current_dir_name}/#{icon_file}"
         
     | 
| 
      
 135 
     | 
    
         
            +
                  
         
     | 
| 
      
 136 
     | 
    
         
            +
                  mkdir_p 'package/macosx'
         
     | 
| 
      
 137 
     | 
    
         
            +
                  icon_file = "package/macosx/#{human_name(app_name)}.icns"
         
     | 
| 
      
 138 
     | 
    
         
            +
                  cp File.expand_path('../../../icons/scaffold_app.icns', __FILE__), icon_file
         
     | 
| 
      
 139 
     | 
    
         
            +
                  puts "Created #{current_dir_name}/#{icon_file}"
         
     | 
| 
      
 140 
     | 
    
         
            +
                
         
     | 
| 
      
 141 
     | 
    
         
            +
                  mkdir_p 'package/linux'
         
     | 
| 
      
 142 
     | 
    
         
            +
                  icon_file = "package/linux/#{human_name(app_name)}.png"
         
     | 
| 
      
 143 
     | 
    
         
            +
                  cp File.expand_path('../../../icons/scaffold_app.png', __FILE__), icon_file
         
     | 
| 
      
 144 
     | 
    
         
            +
                  puts "Created #{current_dir_name}/#{icon_file}"
         
     | 
| 
      
 145 
     | 
    
         
            +
                
         
     | 
| 
       141 
146 
     | 
    
         
             
                  mkdir 'bin'
         
     | 
| 
       142 
147 
     | 
    
         
             
                  write "bin/#{file_name(app_name)}", app_bin_file(app_name)
         
     | 
| 
       143 
148 
     | 
    
         
             
                  write 'spec/spec_helper.rb', spec_helper_file
         
     | 
| 
         @@ -147,9 +152,12 @@ class Scaffold 
     | 
|
| 
       147 
152 
     | 
    
         
             
                    system "\"packages/bundles/#{human_name(app_name)}/#{human_name(app_name)}.exe\""
         
     | 
| 
       148 
153 
     | 
    
         
             
                  else
         
     | 
| 
       149 
154 
     | 
    
         
             
                    system "bash -c '#{RVM_FUNCTION}\n cd .\n bundle\n glimmer package\n'"
         
     | 
| 
       150 
     | 
    
         
            -
                     
     | 
| 
      
 155 
     | 
    
         
            +
                    if OS.mac?
         
     | 
| 
      
 156 
     | 
    
         
            +
                      system "open packages/bundles/#{human_name(app_name).gsub(' ', '\ ')}.app"
         
     | 
| 
      
 157 
     | 
    
         
            +
                    else
         
     | 
| 
      
 158 
     | 
    
         
            +
                      system "glimmer bin/#{file_name(app_name)}"
         
     | 
| 
      
 159 
     | 
    
         
            +
                    end
         
     | 
| 
       151 
160 
     | 
    
         
             
                  end
         
     | 
| 
       152 
     | 
    
         
            -
                  # TODO generate rspec test suite
         
     | 
| 
       153 
161 
     | 
    
         
             
                end
         
     | 
| 
       154 
162 
     | 
    
         | 
| 
       155 
163 
     | 
    
         
             
                def custom_shell(custom_shell_name, namespace, shell_type = nil)
         
     | 
| 
         @@ -169,13 +177,13 @@ class Scaffold 
     | 
|
| 
       169 
177 
     | 
    
         
             
                end
         
     | 
| 
       170 
178 
     | 
    
         | 
| 
       171 
179 
     | 
    
         
             
                def custom_shell_gem(custom_shell_name, namespace)
         
     | 
| 
       172 
     | 
    
         
            -
                  return puts('Namespace is required! Usage: glimmer scaffold:custom_shell_gem[custom_shell_name,namespace]') unless `git config --get github.user`.to_s.strip == 'AndyObtiva'
         
     | 
| 
       173 
180 
     | 
    
         
             
                  gem_name = "glimmer-cs-#{compact_name(custom_shell_name)}"
         
     | 
| 
       174 
181 
     | 
    
         
             
                  gem_summary = "#{human_name(custom_shell_name)} - Glimmer Custom Shell"
         
     | 
| 
       175 
182 
     | 
    
         
             
                  if namespace
         
     | 
| 
       176 
183 
     | 
    
         
             
                    gem_name += "-#{compact_name(namespace)}"
         
     | 
| 
       177 
184 
     | 
    
         
             
                    gem_summary += " (#{human_name(namespace)})"
         
     | 
| 
       178 
185 
     | 
    
         
             
                  else
         
     | 
| 
      
 186 
     | 
    
         
            +
                    return puts('Namespace is required! Usage: glimmer scaffold:gem:customshell[name,namespace]') unless `git config --get github.user`.to_s.strip == 'AndyObtiva'
         
     | 
| 
       179 
187 
     | 
    
         
             
                    namespace = 'glimmer'
         
     | 
| 
       180 
188 
     | 
    
         
             
                  end
         
     | 
| 
       181 
189 
     | 
    
         
             
                  system "jruby -r git-glimmer -S jeweler --rspec --summary '#{gem_summary}' --description '#{gem_summary}' #{gem_name}" 
         
     | 
| 
         @@ -194,24 +202,33 @@ class Scaffold 
     | 
|
| 
       194 
202 
     | 
    
         
             
                  write "bin/#{file_name(custom_shell_name)}", gem_bin_command_file(gem_name)
         
     | 
| 
       195 
203 
     | 
    
         
             
                  FileUtils.chmod 0755, "bin/#{file_name(custom_shell_name)}"
         
     | 
| 
       196 
204 
     | 
    
         
             
                  write 'spec/spec_helper.rb', spec_helper_file
         
     | 
| 
       197 
     | 
    
         
            -
             
     | 
| 
       198 
     | 
    
         
            -
             
     | 
| 
       199 
     | 
    
         
            -
             
     | 
| 
       200 
     | 
    
         
            -
             
     | 
| 
       201 
     | 
    
         
            -
             
     | 
| 
       202 
     | 
    
         
            -
             
     | 
| 
       203 
     | 
    
         
            -
             
     | 
| 
       204 
     | 
    
         
            -
             
     | 
| 
       205 
     | 
    
         
            -
             
     | 
| 
       206 
     | 
    
         
            -
             
     | 
| 
       207 
     | 
    
         
            -
                   
     | 
| 
      
 205 
     | 
    
         
            +
             
     | 
| 
      
 206 
     | 
    
         
            +
                  mkdir_p 'package/windows'
         
     | 
| 
      
 207 
     | 
    
         
            +
                  icon_file = "package/windows/#{human_name(custom_shell_name)}.ico"
         
     | 
| 
      
 208 
     | 
    
         
            +
                  cp File.expand_path('../../../icons/scaffold_app.ico', __FILE__), icon_file
         
     | 
| 
      
 209 
     | 
    
         
            +
                  puts "Created #{current_dir_name}/#{icon_file}"
         
     | 
| 
      
 210 
     | 
    
         
            +
                    
         
     | 
| 
      
 211 
     | 
    
         
            +
                  mkdir_p 'package/macosx'
         
     | 
| 
      
 212 
     | 
    
         
            +
                  icon_file = "package/macosx/#{human_name(custom_shell_name)}.icns"
         
     | 
| 
      
 213 
     | 
    
         
            +
                  cp File.expand_path('../../../icons/scaffold_app.icns', __FILE__), icon_file
         
     | 
| 
      
 214 
     | 
    
         
            +
                  puts "Created #{current_dir_name}/#{icon_file}"
         
     | 
| 
      
 215 
     | 
    
         
            +
                  
         
     | 
| 
      
 216 
     | 
    
         
            +
                  mkdir_p 'package/linux'
         
     | 
| 
      
 217 
     | 
    
         
            +
                  icon_file = "package/linux/#{human_name(custom_shell_name)}.png"
         
     | 
| 
      
 218 
     | 
    
         
            +
                  cp File.expand_path('../../../icons/scaffold_app.png', __FILE__), icon_file
         
     | 
| 
      
 219 
     | 
    
         
            +
                  puts "Created #{current_dir_name}/#{icon_file}"
         
     | 
| 
      
 220 
     | 
    
         
            +
                  
         
     | 
| 
       208 
221 
     | 
    
         
             
                  if OS.windows?
         
     | 
| 
       209 
222 
     | 
    
         
             
                    system "bundle"
         
     | 
| 
       210 
223 
     | 
    
         
             
                    system "glimmer package[image]"
         
     | 
| 
       211 
224 
     | 
    
         
             
                    system "\"packages/bundles/#{human_name(custom_shell_name)}/#{human_name(custom_shell_name)}.exe\""
         
     | 
| 
       212 
225 
     | 
    
         
             
                  else
         
     | 
| 
       213 
226 
     | 
    
         
             
                    system "bash -c '#{RVM_FUNCTION}\n cd .\n bundle\n glimmer package\n'"
         
     | 
| 
       214 
     | 
    
         
            -
                     
     | 
| 
      
 227 
     | 
    
         
            +
                    if OS.mac?
         
     | 
| 
      
 228 
     | 
    
         
            +
                      system "open packages/bundles/#{human_name(custom_shell_name).gsub(' ', '\ ')}.app" if OS.mac?
         
     | 
| 
      
 229 
     | 
    
         
            +
                    else
         
     | 
| 
      
 230 
     | 
    
         
            +
                      system "bin/#{file_name(custom_shell_name)}"
         
     | 
| 
      
 231 
     | 
    
         
            +
                    end        
         
     | 
| 
       215 
232 
     | 
    
         
             
                  end
         
     | 
| 
       216 
233 
     | 
    
         
             
                  puts "Finished creating #{gem_name} Ruby gem."
         
     | 
| 
       217 
234 
     | 
    
         
             
                  puts 'Edit Rakefile to configure gem details.'
         
     | 
| 
         @@ -344,7 +361,7 @@ class Scaffold 
     | 
|
| 
       344 
361 
     | 
    
         | 
| 
       345 
362 
     | 
    
         
             
                def gem_bin_command_file(gem_name)
         
     | 
| 
       346 
363 
     | 
    
         
             
                  <<~MULTI_LINE_STRING
         
     | 
| 
       347 
     | 
    
         
            -
                    #!/usr/bin/env  
     | 
| 
      
 364 
     | 
    
         
            +
                    #!/usr/bin/env jruby
         
     | 
| 
       348 
365 
     | 
    
         | 
| 
       349 
366 
     | 
    
         
             
                    require 'glimmer/launcher'
         
     | 
| 
       350 
367 
     | 
    
         | 
| 
         @@ -489,7 +506,7 @@ class Scaffold 
     | 
|
| 
       489 
506 
     | 
    
         
             
                      menu {
         
     | 
| 
       490 
507 
     | 
    
         
             
                        text '&File'
         
     | 
| 
       491 
508 
     | 
    
         
             
                        menu_item {
         
     | 
| 
       492 
     | 
    
         
            -
                          text 'Preferences...'
         
     | 
| 
      
 509 
     | 
    
         
            +
                          text '&Preferences...'
         
     | 
| 
       493 
510 
     | 
    
         
             
                          on_widget_selected {
         
     | 
| 
       494 
511 
     | 
    
         
             
                            display_preferences_dialog
         
     | 
| 
       495 
512 
     | 
    
         
             
                          }
         
     | 
| 
         @@ -35,16 +35,26 @@ module Glimmer 
     | 
|
| 
       35 
35 
     | 
    
         
             
                    @swt_display = Display.new(*args)
         
     | 
| 
       36 
36 
     | 
    
         
             
                    @swt_display.set_data('proxy', self)
         
     | 
| 
       37 
37 
     | 
    
         
             
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
                  
         
     | 
| 
      
 39 
     | 
    
         
            +
                  def content(&block)
         
     | 
| 
      
 40 
     | 
    
         
            +
                    Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::SWT::DisplayExpression.new, &block)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  end      
         
     | 
| 
       38 
42 
     | 
    
         | 
| 
       39 
43 
     | 
    
         
             
                  def method_missing(method, *args, &block)
         
     | 
| 
       40 
     | 
    
         
            -
                     
     | 
| 
      
 44 
     | 
    
         
            +
                    if can_handle_observation_request?(method)
         
     | 
| 
      
 45 
     | 
    
         
            +
                      handle_observation_request(method, &block)
         
     | 
| 
      
 46 
     | 
    
         
            +
                    else
         
     | 
| 
      
 47 
     | 
    
         
            +
                      swt_display.send(method, *args, &block)
         
     | 
| 
      
 48 
     | 
    
         
            +
                    end
         
     | 
| 
       41 
49 
     | 
    
         
             
                  rescue => e
         
     | 
| 
       42 
50 
     | 
    
         
             
                    Glimmer::Config.logger.debug {"Neither DisplayProxy nor #{swt_display.class.name} can handle the method ##{method}"}
         
     | 
| 
       43 
51 
     | 
    
         
             
                    super
         
     | 
| 
       44 
52 
     | 
    
         
             
                  end
         
     | 
| 
       45 
53 
     | 
    
         | 
| 
       46 
54 
     | 
    
         
             
                  def respond_to?(method, *args, &block)
         
     | 
| 
       47 
     | 
    
         
            -
                    super ||  
     | 
| 
      
 55 
     | 
    
         
            +
                    super || 
         
     | 
| 
      
 56 
     | 
    
         
            +
                      can_handle_observation_request?(method) ||        
         
     | 
| 
      
 57 
     | 
    
         
            +
                      swt_display.respond_to?(method, *args, &block)
         
     | 
| 
       48 
58 
     | 
    
         
             
                  end
         
     | 
| 
       49 
59 
     | 
    
         | 
| 
       50 
60 
     | 
    
         
             
                  def can_handle_observation_request?(observation_request)
         
     | 
| 
         @@ -61,6 +71,7 @@ module Glimmer 
     | 
|
| 
       61 
71 
     | 
    
         
             
                  end
         
     | 
| 
       62 
72 
     | 
    
         | 
| 
       63 
73 
     | 
    
         
             
                  def handle_observation_request(observation_request, &block)
         
     | 
| 
      
 74 
     | 
    
         
            +
                    observation_request = observation_request.to_s
         
     | 
| 
       64 
75 
     | 
    
         
             
                    if observation_request.start_with?('on_swt_')
         
     | 
| 
       65 
76 
     | 
    
         
             
                      constant_name = observation_request.sub(/^on_swt_/, '')
         
     | 
| 
       66 
77 
     | 
    
         
             
                      add_swt_event_listener(constant_name, &block)
         
     | 
| 
         @@ -14,16 +14,22 @@ module Glimmer 
     | 
|
| 
       14 
14 
     | 
    
         
             
                  attr_reader :swt_widget
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
                  def initialize(parent, style)
         
     | 
| 
       17 
     | 
    
         
            -
                     
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
                     
     | 
| 
      
 17 
     | 
    
         
            +
                    if parent.nil?
         
     | 
| 
      
 18 
     | 
    
         
            +
                      @temporary_parent = parent = Glimmer::SWT::ShellProxy.new.swt_widget
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
                    @swt_widget = MessageBox.new(parent, style)        
         
     | 
| 
       20 
21 
     | 
    
         
             
                  end
         
     | 
| 
       21 
22 
     | 
    
         | 
| 
       22 
23 
     | 
    
         
             
                  def open
         
     | 
| 
       23 
     | 
    
         
            -
                    @swt_widget.open
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
      
 24 
     | 
    
         
            +
                    @swt_widget.open.tap do |result|
         
     | 
| 
      
 25 
     | 
    
         
            +
                      @temporary_parent&.dispose
         
     | 
| 
      
 26 
     | 
    
         
            +
                    end
         
     | 
| 
       25 
27 
     | 
    
         
             
                  end
         
     | 
| 
       26 
28 
     | 
    
         | 
| 
      
 29 
     | 
    
         
            +
                  def content(&block)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::SWT::MessageBoxExpression.new, &block)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end            
         
     | 
| 
      
 32 
     | 
    
         
            +
                  
         
     | 
| 
       27 
33 
     | 
    
         
             
                  # TODO refactor the following methods to put in a JavaBean mixin or somethin (perhaps contribute to OSS project too)
         
     | 
| 
       28 
34 
     | 
    
         | 
| 
       29 
35 
     | 
    
         
             
                  def attribute_setter(attribute_name)
         
     | 
| 
         @@ -44,6 +50,18 @@ module Glimmer 
     | 
|
| 
       44 
50 
     | 
    
         | 
| 
       45 
51 
     | 
    
         
             
                  def get_attribute(attribute_name)
         
     | 
| 
       46 
52 
     | 
    
         
             
                    @swt_widget.send(attribute_getter(attribute_name))
         
     | 
| 
      
 53 
     | 
    
         
            +
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
                  
         
     | 
| 
      
 55 
     | 
    
         
            +
                  def method_missing(method, *args, &block)
         
     | 
| 
      
 56 
     | 
    
         
            +
                    swt_widget.send(method, *args, &block)
         
     | 
| 
      
 57 
     | 
    
         
            +
                  rescue => e
         
     | 
| 
      
 58 
     | 
    
         
            +
                    Glimmer::Config.logger.debug {"Neither MessageBoxProxy nor #{swt_widget.class.name} can handle the method ##{method}"}
         
     | 
| 
      
 59 
     | 
    
         
            +
                    super
         
     | 
| 
      
 60 
     | 
    
         
            +
                  end
         
     | 
| 
      
 61 
     | 
    
         
            +
                  
         
     | 
| 
      
 62 
     | 
    
         
            +
                  def respond_to?(method, *args, &block)
         
     | 
| 
      
 63 
     | 
    
         
            +
                    super || 
         
     | 
| 
      
 64 
     | 
    
         
            +
                      swt_widget.respond_to?(method, *args, &block)
         
     | 
| 
       47 
65 
     | 
    
         
             
                  end      
         
     | 
| 
       48 
66 
     | 
    
         
             
                end
         
     | 
| 
       49 
67 
     | 
    
         
             
              end
         
     | 
| 
         @@ -85,7 +85,55 @@ module Glimmer 
     | 
|
| 
       85 
85 
     | 
    
         
             
                            }
         
     | 
| 
       86 
86 
     | 
    
         
             
                            table_editor_widget_proxy
         
     | 
| 
       87 
87 
     | 
    
         
             
                          end,
         
     | 
| 
       88 
     | 
    
         
            -
                        }
         
     | 
| 
      
 88 
     | 
    
         
            +
                        },
         
     | 
| 
      
 89 
     | 
    
         
            +
                        checkbox: {
         
     | 
| 
      
 90 
     | 
    
         
            +
                          widget_value_property: :selection,
         
     | 
| 
      
 91 
     | 
    
         
            +
                          editor_gui: lambda do |args, model, property, table_proxy|
         
     | 
| 
      
 92 
     | 
    
         
            +
                            first_time = true
         
     | 
| 
      
 93 
     | 
    
         
            +
                            table_proxy.table_editor.minimumHeight = 25
         
     | 
| 
      
 94 
     | 
    
         
            +
                            checkbox(*args) {
         
     | 
| 
      
 95 
     | 
    
         
            +
                              selection model.send(property)
         
     | 
| 
      
 96 
     | 
    
         
            +
                              focus true
         
     | 
| 
      
 97 
     | 
    
         
            +
                              on_widget_selected {
         
     | 
| 
      
 98 
     | 
    
         
            +
                                table_proxy.finish_edit! 
         
     | 
| 
      
 99 
     | 
    
         
            +
                              }
         
     | 
| 
      
 100 
     | 
    
         
            +
                              on_focus_lost {
         
     | 
| 
      
 101 
     | 
    
         
            +
                                table_proxy.finish_edit! 
         
     | 
| 
      
 102 
     | 
    
         
            +
                              }
         
     | 
| 
      
 103 
     | 
    
         
            +
                              on_key_pressed { |key_event|
         
     | 
| 
      
 104 
     | 
    
         
            +
                                if key_event.keyCode == swt(:cr)
         
     | 
| 
      
 105 
     | 
    
         
            +
                                  table_proxy.finish_edit!
         
     | 
| 
      
 106 
     | 
    
         
            +
                                elsif key_event.keyCode == swt(:esc)
         
     | 
| 
      
 107 
     | 
    
         
            +
                                  table_proxy.cancel_edit!
         
     | 
| 
      
 108 
     | 
    
         
            +
                                end
         
     | 
| 
      
 109 
     | 
    
         
            +
                              }              
         
     | 
| 
      
 110 
     | 
    
         
            +
                            }
         
     | 
| 
      
 111 
     | 
    
         
            +
                          end,
         
     | 
| 
      
 112 
     | 
    
         
            +
                        },
         
     | 
| 
      
 113 
     | 
    
         
            +
                        radio: {
         
     | 
| 
      
 114 
     | 
    
         
            +
                          widget_value_property: :selection,
         
     | 
| 
      
 115 
     | 
    
         
            +
                          editor_gui: lambda do |args, model, property, table_proxy|
         
     | 
| 
      
 116 
     | 
    
         
            +
                            first_time = true
         
     | 
| 
      
 117 
     | 
    
         
            +
                            table_proxy.table_editor.minimumHeight = 25
         
     | 
| 
      
 118 
     | 
    
         
            +
                            radio(*args) {
         
     | 
| 
      
 119 
     | 
    
         
            +
                              selection model.send(property)
         
     | 
| 
      
 120 
     | 
    
         
            +
                              focus true
         
     | 
| 
      
 121 
     | 
    
         
            +
                              on_widget_selected {
         
     | 
| 
      
 122 
     | 
    
         
            +
                                table_proxy.finish_edit! 
         
     | 
| 
      
 123 
     | 
    
         
            +
                              }
         
     | 
| 
      
 124 
     | 
    
         
            +
                              on_focus_lost {
         
     | 
| 
      
 125 
     | 
    
         
            +
                                table_proxy.finish_edit! 
         
     | 
| 
      
 126 
     | 
    
         
            +
                              }
         
     | 
| 
      
 127 
     | 
    
         
            +
                              on_key_pressed { |key_event|
         
     | 
| 
      
 128 
     | 
    
         
            +
                                if key_event.keyCode == swt(:cr)
         
     | 
| 
      
 129 
     | 
    
         
            +
                                  table_proxy.finish_edit!
         
     | 
| 
      
 130 
     | 
    
         
            +
                                elsif key_event.keyCode == swt(:esc)
         
     | 
| 
      
 131 
     | 
    
         
            +
                                  table_proxy.cancel_edit!
         
     | 
| 
      
 132 
     | 
    
         
            +
                                end
         
     | 
| 
      
 133 
     | 
    
         
            +
                              }              
         
     | 
| 
      
 134 
     | 
    
         
            +
                            }
         
     | 
| 
      
 135 
     | 
    
         
            +
                          end,
         
     | 
| 
      
 136 
     | 
    
         
            +
                        }            
         
     | 
| 
       89 
137 
     | 
    
         
             
                      }      
         
     | 
| 
       90 
138 
     | 
    
         
             
                    end
         
     | 
| 
       91 
139 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -276,7 +324,7 @@ module Glimmer 
     | 
|
| 
       276 
324 
     | 
    
         
             
                      new_value = @table_editor_widget_proxy&.swt_widget&.send(widget_value_property)
         
     | 
| 
       277 
325 
     | 
    
         
             
                      if table_item.isDisposed
         
     | 
| 
       278 
326 
     | 
    
         
             
                        @cancel_edit.call
         
     | 
| 
       279 
     | 
    
         
            -
                      elsif new_value && !action_taken && !@edit_in_progress && !@cancel_in_progress
         
     | 
| 
      
 327 
     | 
    
         
            +
                      elsif !new_value.nil? && !action_taken && !@edit_in_progress && !@cancel_in_progress
         
     | 
| 
       280 
328 
     | 
    
         
             
                        action_taken = true
         
     | 
| 
       281 
329 
     | 
    
         
             
                        @edit_in_progress = true
         
     | 
| 
       282 
330 
     | 
    
         
             
                        if new_value == model.send(model_editing_property)
         
     | 
| 
         @@ -67,18 +67,45 @@ module Glimmer 
     | 
|
| 
       67 
67 
     | 
    
         
             
                      group.setLayout(GridLayout.new)
         
     | 
| 
       68 
68 
     | 
    
         
             
                    end,
         
     | 
| 
       69 
69 
     | 
    
         
             
                  }
         
     | 
| 
      
 70 
     | 
    
         
            +
                  
         
     | 
| 
      
 71 
     | 
    
         
            +
                  class << self
         
     | 
| 
      
 72 
     | 
    
         
            +
                    def create(keyword, parent, args)
         
     | 
| 
      
 73 
     | 
    
         
            +
                      widget_proxy_class(keyword).new(keyword, parent, args)
         
     | 
| 
      
 74 
     | 
    
         
            +
                    end
         
     | 
| 
      
 75 
     | 
    
         
            +
                    
         
     | 
| 
      
 76 
     | 
    
         
            +
                    def widget_proxy_class(keyword)
         
     | 
| 
      
 77 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 78 
     | 
    
         
            +
                        class_name = "#{keyword.camelcase(:upper)}Proxy".to_sym
         
     | 
| 
      
 79 
     | 
    
         
            +
                        Glimmer::SWT.const_get(class_name)
         
     | 
| 
      
 80 
     | 
    
         
            +
                      rescue
         
     | 
| 
      
 81 
     | 
    
         
            +
                        Glimmer::SWT::WidgetProxy
         
     | 
| 
      
 82 
     | 
    
         
            +
                      end        
         
     | 
| 
      
 83 
     | 
    
         
            +
                    end
         
     | 
| 
      
 84 
     | 
    
         
            +
                    
         
     | 
| 
      
 85 
     | 
    
         
            +
                    def underscored_widget_name(swt_widget)
         
     | 
| 
      
 86 
     | 
    
         
            +
                      swt_widget.class.name.split(/::|\./).last.underscore        
         
     | 
| 
      
 87 
     | 
    
         
            +
                    end
         
     | 
| 
      
 88 
     | 
    
         
            +
                  end
         
     | 
| 
       70 
89 
     | 
    
         | 
| 
       71 
90 
     | 
    
         
             
                  attr_reader :parent_proxy, :swt_widget, :drag_source_proxy, :drop_target_proxy, :drag_source_style, :drag_source_transfer, :drop_target_transfer
         
     | 
| 
       72 
91 
     | 
    
         | 
| 
       73 
92 
     | 
    
         
             
                  # Initializes a new SWT Widget
         
     | 
| 
       74 
93 
     | 
    
         
             
                  #
         
     | 
| 
       75 
94 
     | 
    
         
             
                  # Styles is a comma separate list of symbols representing SWT styles in lower case
         
     | 
| 
       76 
     | 
    
         
            -
                  def initialize( 
     | 
| 
       77 
     | 
    
         
            -
                     
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
      
 95 
     | 
    
         
            +
                  def initialize(*init_args, swt_widget: nil)      
         
     | 
| 
      
 96 
     | 
    
         
            +
                    if swt_widget.nil?
         
     | 
| 
      
 97 
     | 
    
         
            +
                      underscored_widget_name, parent, args = init_args
         
     | 
| 
      
 98 
     | 
    
         
            +
                      @parent_proxy = parent
         
     | 
| 
      
 99 
     | 
    
         
            +
                      styles, extra_options = extract_args(underscored_widget_name, args)
         
     | 
| 
      
 100 
     | 
    
         
            +
                      swt_widget_class = self.class.swt_widget_class_for(underscored_widget_name)
         
     | 
| 
      
 101 
     | 
    
         
            +
                      @swt_widget = swt_widget_class.new(@parent_proxy.swt_widget, style(underscored_widget_name, styles), *extra_options)
         
     | 
| 
      
 102 
     | 
    
         
            +
                    else
         
     | 
| 
      
 103 
     | 
    
         
            +
                      @swt_widget = swt_widget
         
     | 
| 
      
 104 
     | 
    
         
            +
                      underscored_widget_name = self.class.underscored_widget_name(@swt_widget)
         
     | 
| 
      
 105 
     | 
    
         
            +
                      parent_proxy_class = self.class.widget_proxy_class(self.class.underscored_widget_name(@swt_widget.parent))
         
     | 
| 
      
 106 
     | 
    
         
            +
                      @parent_proxy = parent_proxy_class.new(swt_widget: swt_widget.parent)
         
     | 
| 
      
 107 
     | 
    
         
            +
                    end
         
     | 
| 
      
 108 
     | 
    
         
            +
                    @swt_widget.set_data('proxy', self)          
         
     | 
| 
       82 
109 
     | 
    
         
             
                    DEFAULT_INITIALIZERS[underscored_widget_name]&.call(@swt_widget)
         
     | 
| 
       83 
110 
     | 
    
         
             
                    @parent_proxy.post_initialize_child(self)
         
     | 
| 
       84 
111 
     | 
    
         
             
                  end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,21 +1,21 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: glimmer-dsl-swt
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.6. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.6.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - AndyMaleh
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2020- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-09-01 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       15 
15 
     | 
    
         
             
                requirements:
         
     | 
| 
       16 
16 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       17 
17 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       18 
     | 
    
         
            -
                    version: 0.10. 
     | 
| 
      
 18 
     | 
    
         
            +
                    version: 0.10.2
         
     | 
| 
       19 
19 
     | 
    
         
             
              name: glimmer
         
     | 
| 
       20 
20 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       21 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
         @@ -23,7 +23,7 @@ dependencies: 
     | 
|
| 
       23 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
24 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: 0.10. 
     | 
| 
      
 26 
     | 
    
         
            +
                    version: 0.10.2
         
     | 
| 
       27 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
28 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       29 
29 
     | 
    
         
             
                requirements:
         
     | 
| 
         @@ -57,7 +57,7 @@ dependencies: 
     | 
|
| 
       57 
57 
     | 
    
         
             
                requirements:
         
     | 
| 
       58 
58 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       59 
59 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       60 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 60 
     | 
    
         
            +
                    version: 0.10.0
         
     | 
| 
       61 
61 
     | 
    
         
             
              name: puts_debuggerer
         
     | 
| 
       62 
62 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       63 
63 
     | 
    
         
             
              prerelease: false
         
     | 
| 
         @@ -65,7 +65,7 @@ dependencies: 
     | 
|
| 
       65 
65 
     | 
    
         
             
                requirements:
         
     | 
| 
       66 
66 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       67 
67 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       68 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 68 
     | 
    
         
            +
                    version: 0.10.0
         
     | 
| 
       69 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       70 
70 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       71 
71 
     | 
    
         
             
                requirements:
         
     | 
| 
         @@ -309,6 +309,7 @@ files: 
     | 
|
| 
       309 
309 
     | 
    
         
             
            - bin/glimmer
         
     | 
| 
       310 
310 
     | 
    
         
             
            - icons/scaffold_app.icns
         
     | 
| 
       311 
311 
     | 
    
         
             
            - icons/scaffold_app.ico
         
     | 
| 
      
 312 
     | 
    
         
            +
            - icons/scaffold_app.png
         
     | 
| 
       312 
313 
     | 
    
         
             
            - lib/ext/glimmer.rb
         
     | 
| 
       313 
314 
     | 
    
         
             
            - lib/ext/glimmer/config.rb
         
     | 
| 
       314 
315 
     | 
    
         
             
            - lib/glimmer-dsl-swt.rb
         
     |