Skip to content

Commit

Permalink
refactored event_for calls out and added event_mappings hash to all e…
Browse files Browse the repository at this point in the history
…vent-modules with more than one event mapping.
  • Loading branch information
bakkdoor committed Nov 3, 2008
1 parent 1c9700d commit 62a0faa
Show file tree
Hide file tree
Showing 14 changed files with 112 additions and 38 deletions.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
RSwing is licensed under the GNU LGPL v3.
Copyright (C) 2008 Christopher Bertels, Waldemar Smirnow.
Copyright (C) 2008 Christopher Bertels.

=============================================================================================

Expand Down
15 changes: 11 additions & 4 deletions lib/rswing/components/events/component_events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,17 @@ module Events
module ComponentEvents
ComponentListener = java.awt.event.ComponentListener

event_for self => :on_component_hidden, ComponentListener => :componentHidden
event_for self => :on_component_moved, ComponentListener => :componentMoved
event_for self => :on_component_resized, ComponentListener => :componentResized
event_for self => :on_component_shown, ComponentListener => :componentShown
def ComponentEvents.event_mappings
{
:on_component_hidden => :componentHidden,
:on_component_moved => :componentMoved,
:on_component_resized => :componentResized,
:on_component_shown => :componentShown
}
end

Events.map self, ComponentListener, event_mappings

end
end
end
Expand Down
11 changes: 9 additions & 2 deletions lib/rswing/components/events/container_events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,15 @@ module Events
module ContainerEvents
ContainerListener = java.awt.event.ContainerListener

event_for self => :on_component_added, ContainerListener => :componentAdded
event_for self => :on_component_removed, ContainerListener => :componentRemoved
def ContainerEvents.event_mappings
{
:on_component_added => :componentAdded,
:on_component_removed => :componentRemoved
}
end

Events.map self, ContainerListener, event_mappings

end
end
end
Expand Down
9 changes: 9 additions & 0 deletions lib/rswing/components/events/event.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,15 @@ def #{event_name}(*args, &block)
end
end
end

# maps the events of a listener_class to a module, specified in a event_mappings_hash
# e.g. (in some Event-Module): <tt>Events::map self, FocusListener, FocusListener.event_mappings
def Events.map(module_to_map, listener_class_to_map, event_mappings_hash)
event_mappings_hash.each_pair do |ruby_event, java_method|
event_for module_to_map => ruby_event, listener_class_to_map => java_method
end
end

end
end
end
14 changes: 8 additions & 6 deletions lib/rswing/components/events/focus_events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,15 @@ module Events
module FocusEvents
FocusListener = java.awt.event.FocusListener

# Eventhandler for on_focus (focusGained) event.
# Takes a block, which will get executed, when this event is fired.
event_for self => :on_focus, FocusListener => :focusGained
def FocusEvents.event_mappings
{
:on_focus => :focusGained,
:on_focus_lost => :focusLost
}
end

Events.map self, FocusListener, event_mappings

# Eventhandler for focus_lost (focusLost) event.
# Takes a block, which will get executed, when this event is fired.
event_for self => :on_focus_lost, FocusListener => :focusLost
end
end
end
Expand Down
11 changes: 9 additions & 2 deletions lib/rswing/components/events/hierarchy_bounds_events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,15 @@ module Events
module HierarchyBoundsEvents
HierarchyBoundsListener = java.awt.event.HierarchyBoundsListener

event_for self => :on_ancestor_moved, HierarchyBoundsListener => :ancestorMoved
event_for self => :on_ancestor_resized, HierarchyBoundsListener => :ancestorResized
def HierarchyBoundsEvents.event_mappings
{
:on_ancestor_moved => :ancestorMoved,
:on_ancestor_resized => :ancestorResized
}
end

Events.map self, HierarchyBoundsListener, event_mappings

end
end
end
Expand Down
11 changes: 9 additions & 2 deletions lib/rswing/components/events/input_method_events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,15 @@ module Events
module InputMethodEvents
InputMethodListener = java.awt.event.InputMethodListener

event_for self => :on_input_method_text_changed, InputMethodListener => :inputMethodTextChanged
event_for self => :on_caret_position_changed, InputMethodListener => :caretPositionChanged
def InputMethodEvents.event_mappings
{
:on_input_method_text_changed => :inputMethodTextChanged,
:on_caret_position_changed => :caretPositionChanged
}
end

Events.map self, InputMethodListener, event_mappings

end
end
end
Expand Down
13 changes: 10 additions & 3 deletions lib/rswing/components/events/key_events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,16 @@ module Events
module KeyEvents
KeyListener = java.awt.event.KeyListener

event_for self => :on_key_pressed, KeyListener => :keyPressed
event_for self => :on_key_released, KeyListener => :keyReleased
event_for self => :on_key_typed, KeyListener => :keyTyped
def KeyEvents.event_mappings
{
:on_key_pressed => :keyPressed,
:on_key_released => :keyReleased,
:on_key_typed => :keyTyped
}
end

Events.map self, KeyListener, event_mappings

end
end
end
Expand Down
17 changes: 12 additions & 5 deletions lib/rswing/components/events/mouse_events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,18 @@ module Events
module MouseEvents
MouseListener = java.awt.event.MouseListener

event_for self => :on_mouse_clicked, MouseListener => :mouseClicked
event_for self => :on_mouse_entered, MouseListener => :mouseEntered
event_for self => :on_mouse_exited, MouseListener => :mouseExited
event_for self => :on_mouse_pressed, MouseListener => :mousePressed
event_for self => :on_mouse_released, MouseListener => :mouseReleased
def MouseEvents.event_mappings
{
:on_mouse_clicked => :mouseClicked,
:on_mouse_entered => :mouseEntered,
:on_mouse_exited => :mouseExited,
:on_mouse_pressed => :mousePressed,
:on_mouse_released => :mouseReleased
}
end

Events.map self, MouseListener, event_mappings

end
end
end
Expand Down
11 changes: 9 additions & 2 deletions lib/rswing/components/events/mouse_motion_events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,15 @@ module Events
module MouseMotionEvents
MouseMotionListener = java.awt.event.MouseMotionListener

event_for self => :on_mouse_dragged, MouseMotionListener => :mouseDragged
event_for self => :on_mouse_moved, MouseMotionListener => :mouseMoved
def MouseMotionEvents.event_mappings
{
:on_mouse_dragged => :mouseDragged,
:on_mouse_moved => :mouseMoved
}
end

Events.map self, MouseMotionListener, event_mappings

end
end
end
Expand Down
21 changes: 14 additions & 7 deletions lib/rswing/components/events/window_events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,20 @@ module Events
module WindowEvents
WindowListener = java.awt.event.WindowListener

event_for self => :on_window_activated, WindowListener => :windowActivated
event_for self => :on_window_closed, WindowListener => :windowClosed
event_for self => :on_window_closing, WindowListener => :windowClosing
event_for self => :on_window_deactivated, WindowListener => :windowDeactivated
event_for self => :on_window_deiconified, WindowListener => :windowDeiconified
event_for self => :on_window_iconified, WindowListener => :windowIconified
event_for self => :on_window_opened, WindowListener => :windowOpened
def WindowEvents.event_mappings
{
:on_window_activated => :windowActivated,
:on_window_closed => :windowClosed,
:on_window_closing => :windowClosing,
:on_window_deactivated => :windowDeactivated,
:on_window_deiconified => :windowDeiconified,
:on_window_iconified => :windowIconified,
:on_window_opened => :windowOpened
}
end

Events.map self, WindowListener, event_mappings

end
end
end
Expand Down
11 changes: 9 additions & 2 deletions lib/rswing/components/events/window_focus.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,15 @@ module Events
module WindowFocus
WindowFocusListener = java.awt.event.WindowFocusListener

event_for self => :on_window_focus, WindowFocusListener => :windowGainedFocus
event_for self => :on_window_focus_lost, WindowFocusListener => :windowLostFocus
def WindowFocus.event_mappings
{
:on_window_focus => :windowGainedFocus,
:on_window_focus_lost => :windowLostFocus
}
end

Events.map self, WindowFocusListener, event_mappings

end
end
end
Expand Down
2 changes: 1 addition & 1 deletion test/test_button.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ def setup
end

def test_events
should_have_events @button => [:on_click, :on_focus, :on_focus_lost]
should_have_events @button => Events::ComponentEvents.event_mappings.keys
end
end
2 changes: 1 addition & 1 deletion test/test_container.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,6 @@ def test_components

def test_events
frame = Frame.new "my frame"
should_have_events frame => [:on_focus, :on_focus_lost, :on_property_changed]
should_have_events frame => Events::ContainerEvents.event_mappings.keys
end
end

0 comments on commit 62a0faa

Please sign in to comment.