50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
# File 'lib/glimmer-dsl-opal/samples/elaborate/login.rb', line 50
def launch
presenter = LoginPresenter.new
@shell = shell {
text "Login"
composite {
grid_layout 2, false
label { text "Username:" } @user_name_text = text { text bind(presenter, :user_name)
enabled bind(presenter, :logged_out)
on_key_pressed { |event|
@password_text.set_focus if event.keyCode == swt(:cr)
}
}
label { text "Password:" }
@password_text = text(:password, :border) {
text bind(presenter, :password)
enabled bind(presenter, :logged_out)
on_key_pressed { |event|
presenter.login if event.keyCode == swt(:cr)
}
}
label { text "Status:" }
label { text bind(presenter, :status) }
button {
text "Login"
enabled bind(presenter, :logged_out)
on_widget_selected { presenter.login }
on_key_pressed { |event|
presenter.login if event.keyCode == swt(:cr)
}
}
button {
text "Logout"
enabled bind(presenter, :logged_in)
on_widget_selected { presenter.logout }
on_key_pressed { |event|
if event.keyCode == swt(:cr)
presenter.logout
@user_name_text.set_focus
end
}
}
}
}
@shell.open
end
|