summaryrefslogtreecommitdiff
path: root/java/gjt/ImageButtonController.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/gjt/ImageButtonController.java')
-rw-r--r--java/gjt/ImageButtonController.java79
1 files changed, 79 insertions, 0 deletions
diff --git a/java/gjt/ImageButtonController.java b/java/gjt/ImageButtonController.java
new file mode 100644
index 00000000000..0f6aa6f4add
--- /dev/null
+++ b/java/gjt/ImageButtonController.java
@@ -0,0 +1,79 @@
+package gjt;
+import java.awt.Event;
+
+/**
+ * A controller for an ImageButton, this abstract class
+ * establishes the association between itself and an ImageButton
+ * and delivers events to its ImageButton.<p>
+ *
+ * ImageButtonControllers must be constructed with an
+ * ImageButton; the ImageButton's controller gets set by
+ * ImageButtonController's constructor.<p>
+ *
+ * The ImageButton passed into the constructor must not be null;
+ * this is enforced by an assertion.<p>
+ *
+ * Methods defined in the MouseController interface are left
+ * for subclasses to implement. ImageButtonController defines
+ * mouseMove(), mouseEnter() and mouseExit() as no-ops, so
+ * that extensions of ImageButtonController only have to
+ * implement mouseDown(), mouseUp() and mouseDrag(). Note
+ * that extensions are still free to override mouseMove(),
+ * mouseEnter() and mouseExit() if desired.<p>
+ *
+ * Subclasses should also call the protected XXXButton(Event)
+ * methods below, where XXX is either arm, disarm, activate, or
+ * deactivate as appropriate. SpringyImageButtonController is
+ * a good example of this (so is StickyImageButtonController,
+ * but it is more complicated than it's springy sibling).<p>
+ *
+ * @version 1.0, Apr 1 1996
+ * @author David Geary
+ * @see MouseController
+ * @see ImageButton
+ * @see ImageButtonEvent
+ * @see SpringyImageButtonController
+ * @see StickyImageButtonController
+ * @see gjt.test.ImageButtonTest
+ */
+public abstract class ImageButtonController
+ implements MouseController {
+ private ImageButton button;
+
+ ImageButtonController(ImageButton button) {
+ Assert.notNull(button);
+ this.button = button;
+ button.setController(this);
+ }
+ public ImageButton getButton() {
+ return button;
+ }
+ public boolean mouseEnter(Event event, int x, int y) {
+ return false;
+ }
+ public boolean mouseExit (Event event, int x, int y) {
+ return false;
+ }
+ public boolean mouseMove (Event event, int x, int y) {
+ return false;
+ }
+
+ protected void armButton(Event event) {
+ button.deliverEvent(
+ new ImageButtonEvent(button,
+ event,
+ ImageButtonEvent.ARM));
+ }
+ protected void disarmButton(Event event) {
+ button.deliverEvent(
+ new ImageButtonEvent(button,
+ event,
+ ImageButtonEvent.DISARM));
+ }
+ protected void activateButton(Event event) {
+ button.deliverEvent(
+ new ImageButtonEvent(button,
+ event,
+ ImageButtonEvent.ACTIVATE));
+ }
+}