Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A DSL for Java's SpringLayout
Ruby
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.document
.gitignore
.rspec
LICENSE
README.rdoc
Rakefile
VERSION
example.rb
example_frame.jpg
springlayout_dsl.gemspec

README.rdoc

springlayout_dsl

Usage

The code in example.rb would result in an JFrame looking like this:

Code:

require 'springlayout_dsl'
require 'java'

java_import javax.swing.JFrame
java_import javax.swing.JLabel
java_import javax.swing.JButton
java_import javax.swing.SpringLayout
java_import javax.swing.Spring
java_import java.awt.Color
java_import javax.swing.JTextField
java_import java.util.HashMap

frame = JFrame.new 'Test Frame'
frame.default_close_operation=JFrame::EXIT_ON_CLOSE

content = frame.content_pane
layout = SpringLayout.new
content.layout = layout

label1 = JLabel.new(" foo")
label2 = JLabel.new(" bar")
label3 = JLabel.new(" some long text")

text1 = JTextField.new()
text2 = JTextField.new()
text3 = JTextField.new()

[label1,label2,label3,text1,text2,text3].each {|component| content.add(component)}

SpringLayoutDSL::layout(layout) do
  label1.north = content.north + 5
  label2.north = label1.south + 5
  label3.north = label2.south + 5

  m = 5 + max(label1.width,label2.width,label3.width)
  label1.east = m
  label2.east = m
  label3.east = m

  content.south = label3.south + 7
  content.east = 300

  text1.north = label1.north
  text1.east = content.east - 5
  text1.west = label1.east + 5

  text2.north = label2.north
  text2.east = content.east - 5
  text2.west = label2.east +5

  text3.north = label3.north
  text3.east = content.east - 5
  text3.west = label3.east + 5
end

frame.pack
frame.visible=true

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright © 2010 Roman. See LICENSE for details.

Something went wrong with that request. Please try again.