| package groovy.swt.impl; |
| |
| import groovy.lang.Closure; |
| import groovy.swt.ClosureSupport; |
| |
| import org.eclipse.swt.browser.StatusTextEvent; |
| import org.eclipse.swt.browser.StatusTextListener; |
| |
| /** |
| * This implementation adds a StatusTextListener to a browser widget |
| * |
| * @author <a href="mailto:ckl@dacelo.nl">Christiaan ten Klooster</a> |
| */ |
| public class StatusTextListenerImpl implements StatusTextListener, ClosureSupport { |
| |
| private Closure closure; |
| |
| public Closure getClosure() |
| { |
| return closure; |
| } |
| |
| public void setClosure(Closure closure) |
| { |
| this.closure = closure; |
| } |
| |
| /* |
| * @see org.eclipse.swt.browser.StatusTextListener#changed(org.eclipse.swt.browser.StatusTextEvent) |
| */ |
| public void changed(StatusTextEvent event) |
| { |
| if (closure == null) { throw new NullPointerException( |
| "No closure has been configured for this Listener"); } |
| |
| closure.setProperty("event", new CustomStatusTextEvent(event)); |
| closure.call(event); |
| } |
| |
| public class CustomStatusTextEvent |
| { |
| private StatusTextEvent event; |
| |
| public CustomStatusTextEvent(StatusTextEvent event) |
| { |
| this.event = event; |
| } |
| |
| public String getText() |
| { |
| return event.text; |
| } |
| } |
| |
| |
| } |