From 080cf798fa5eab93387ded634864966e46126c51 Mon Sep 17 00:00:00 2001 From: Henri Sara Date: Wed, 7 Jul 2010 07:40:40 +0000 Subject: [PATCH] #4515 and #4516: header and footer click listeners instead of handlers svn changeset:14115/svn branch:6.4 --- ...andlers.gif => 75-TableClickListeners.gif} | Bin src/com/vaadin/ui/Table.java | 133 ++++++------------ .../tests/components/table/FooterClick.java | 6 +- .../tests/components/table/HeaderClick.java | 8 +- .../table/TestFooterClickHandlers.java | 83 ----------- .../table/TestHeaderClickHandlers.java | 83 ----------- 6 files changed, 50 insertions(+), 263 deletions(-) rename WebContent/VAADIN/themes/sampler/icons/sampleicons/{75-TableClickHandlers.gif => 75-TableClickListeners.gif} (100%) delete mode 100644 tests/src/com/vaadin/tests/server/component/table/TestFooterClickHandlers.java delete mode 100644 tests/src/com/vaadin/tests/server/component/table/TestHeaderClickHandlers.java diff --git a/WebContent/VAADIN/themes/sampler/icons/sampleicons/75-TableClickHandlers.gif b/WebContent/VAADIN/themes/sampler/icons/sampleicons/75-TableClickListeners.gif similarity index 100% rename from WebContent/VAADIN/themes/sampler/icons/sampleicons/75-TableClickHandlers.gif rename to WebContent/VAADIN/themes/sampler/icons/sampleicons/75-TableClickListeners.gif diff --git a/src/com/vaadin/ui/Table.java b/src/com/vaadin/ui/Table.java index 8162d72545..e86762f6b2 100644 --- a/src/com/vaadin/ui/Table.java +++ b/src/com/vaadin/ui/Table.java @@ -382,10 +382,6 @@ public class Table extends AbstractSelect implements Action.Container, private MultiSelectMode multiSelectMode = MultiSelectMode.DEFAULT; - private HeaderClickHandler headerClickHandler; - - private FooterClickHandler footerClickHandler; - /* Table constructors */ /** @@ -3761,8 +3757,8 @@ public class Table extends AbstractSelect implements Action.Container, static { try { // Set the header click method - HEADER_CLICK_METHOD = HeaderClickHandler.class - .getDeclaredMethod("handleHeaderClick", + HEADER_CLICK_METHOD = HeaderClickListener.class + .getDeclaredMethod("headerClick", new Class[] { HeaderClickEvent.class }); } catch (final java.lang.NoSuchMethodException e) { // This should never happen @@ -3801,8 +3797,8 @@ public class Table extends AbstractSelect implements Action.Container, static { try { // Set the header click method - FOOTER_CLICK_METHOD = FooterClickHandler.class - .getDeclaredMethod("handleFooterClick", + FOOTER_CLICK_METHOD = FooterClickListener.class + .getDeclaredMethod("footerClick", new Class[] { FooterClickEvent.class }); } catch (final java.lang.NoSuchMethodException e) { // This should never happen @@ -3840,11 +3836,10 @@ public class Table extends AbstractSelect implements Action.Container, } /** - * Interface for the handler listening to column header mouse click events. - * The handleHeaderClick method is called when the user presses a header - * column cell. + * Interface for the listener for column header mouse click events. The + * headerClick method is called when the user presses a header column cell. */ - public interface HeaderClickHandler extends Serializable { + public interface HeaderClickListener extends Serializable { /** * Called when a user clicks a header column cell @@ -3853,15 +3848,14 @@ public class Table extends AbstractSelect implements Action.Container, * The event which contains information about the column and * the mouse click event */ - public void handleHeaderClick(HeaderClickEvent event); + public void headerClick(HeaderClickEvent event); } /** - * Interface for the handler listening to column footer mouse click events. - * The handleHeaderClick method is called when the user presses a footer - * column cell. + * Interface for the listener for column footer mouse click events. The + * footerClick method is called when the user presses a footer column cell. */ - public interface FooterClickHandler extends Serializable { + public interface FooterClickListener extends Serializable { /** * Called when a user clicks a footer column cell @@ -3870,102 +3864,61 @@ public class Table extends AbstractSelect implements Action.Container, * The event which contains information about the column and * the mouse click event */ - public void handleFooterClick(FooterClickEvent event); + public void footerClick(FooterClickEvent event); } /** - * Sets the header click handler which handles the click events when the - * user clicks on a column header cell in the Table. + * Adds a header click listener which handles the click events when the user + * clicks on a column header cell in the Table. *

- * The handler will receive events which contains information about which + * The listener will receive events which contain information about which * column was clicked and some details about the mouse event. *

* - * @param handler + * @param listener * The handler which should handle the header click events. */ - public void setHeaderClickHandler(HeaderClickHandler handler) { - if (headerClickHandler != handler) { - if (handler == null && headerClickHandler != null) { - // Remove header click handler - removeListener(VScrollTable.HEADER_CLICK_EVENT_ID, - HeaderClickEvent.class, headerClickHandler); - - headerClickHandler = handler; - } else if (headerClickHandler != null) { - // Replace header click handler - removeListener(VScrollTable.HEADER_CLICK_EVENT_ID, - HeaderClickEvent.class, headerClickHandler); - - headerClickHandler = handler; - - addListener(VScrollTable.HEADER_CLICK_EVENT_ID, - HeaderClickEvent.class, headerClickHandler, - HeaderClickEvent.HEADER_CLICK_METHOD); - } else if (handler != null) { - // Set a new header click handler - headerClickHandler = handler; - addListener(VScrollTable.HEADER_CLICK_EVENT_ID, - HeaderClickEvent.class, headerClickHandler, - HeaderClickEvent.HEADER_CLICK_METHOD); - } - } + public void addListener(HeaderClickListener listener) { + addListener(VScrollTable.HEADER_CLICK_EVENT_ID, HeaderClickEvent.class, + listener, HeaderClickEvent.HEADER_CLICK_METHOD); } /** - * Sets the footer click handler which handles the click events when the - * user clicks on a column footer cell in the Table. - *

- * The handler will recieve events which contains information about which - * column was clicked and some details about the mouse event. - *

+ * Removes a header click listener * - * @param handler - * The handler which should handle the footer click events - */ - public void setFooterClickHandler(FooterClickHandler handler) { - if (footerClickHandler != handler) { - if (handler == null && footerClickHandler != null) { - // Remove header click handler - removeListener(VScrollTable.FOOTER_CLICK_EVENT_ID, - FooterClickEvent.class, footerClickHandler); - footerClickHandler = handler; - } else if (footerClickHandler != null) { - // Replace footer click handler - removeListener(VScrollTable.FOOTER_CLICK_EVENT_ID, - FooterClickEvent.class, footerClickHandler); - footerClickHandler = handler; - addListener(VScrollTable.FOOTER_CLICK_EVENT_ID, - FooterClickEvent.class, footerClickHandler, - FooterClickEvent.FOOTER_CLICK_METHOD); - } else if (handler != null) { - // Set a new footer click handler - footerClickHandler = handler; - addListener(VScrollTable.FOOTER_CLICK_EVENT_ID, - FooterClickEvent.class, footerClickHandler, - FooterClickEvent.FOOTER_CLICK_METHOD); - } - } + * @param listener + * The listener to remove. + */ + public void removeListener(HeaderClickListener listener) { + removeListener(VScrollTable.HEADER_CLICK_EVENT_ID, + HeaderClickEvent.class, listener); } /** - * Returns the header click handler which receives click events from the - * columns header cells when they are clicked on. + * Adds a footer click listener which handles the click events when the user + * clicks on a column footer cell in the Table. + *

+ * The listener will receive events which contain information about which + * column was clicked and some details about the mouse event. + *

* - * @return + * @param listener + * The handler which should handle the footer click events. */ - public HeaderClickHandler getHeaderClickHandler() { - return headerClickHandler; + public void addListener(FooterClickListener listener) { + addListener(VScrollTable.FOOTER_CLICK_EVENT_ID, FooterClickEvent.class, + listener, FooterClickEvent.FOOTER_CLICK_METHOD); } /** - * Returns the footer click handler which recieves click events from the - * columns footer cells when they are clicked on. + * Removes a footer click listener * - * @return + * @param listener + * The listener to remove. */ - public FooterClickHandler getFooterClickHandler() { - return footerClickHandler; + public void removeListener(FooterClickListener listener) { + removeListener(VScrollTable.FOOTER_CLICK_EVENT_ID, + FooterClickEvent.class, listener); } /** diff --git a/tests/src/com/vaadin/tests/components/table/FooterClick.java b/tests/src/com/vaadin/tests/components/table/FooterClick.java index f6fa4a094e..842e4fdffe 100644 --- a/tests/src/com/vaadin/tests/components/table/FooterClick.java +++ b/tests/src/com/vaadin/tests/components/table/FooterClick.java @@ -35,9 +35,9 @@ public class FooterClick extends TestBase { final TextField columnField = new TextField( "ProperyId of clicked column"); - // Set the footer click handler - table.setFooterClickHandler(new Table.FooterClickHandler() { - public void handleFooterClick(FooterClickEvent event) { + // Add a footer click listener + table.addListener(new Table.FooterClickListener() { + public void footerClick(FooterClickEvent event) { columnField.setValue(event.getPropertyId()); } }); diff --git a/tests/src/com/vaadin/tests/components/table/HeaderClick.java b/tests/src/com/vaadin/tests/components/table/HeaderClick.java index 31ef73b84c..9be8426e19 100644 --- a/tests/src/com/vaadin/tests/components/table/HeaderClick.java +++ b/tests/src/com/vaadin/tests/components/table/HeaderClick.java @@ -26,9 +26,9 @@ public class HeaderClick extends TestBase { final TextField columnField = new TextField( "ProperyId of clicked column"); - // Add header click handler - table.setHeaderClickHandler(new Table.HeaderClickHandler() { - public void handleHeaderClick(HeaderClickEvent event) { + // Add a header click listener + table.addListener(new Table.HeaderClickListener() { + public void headerClick(HeaderClickEvent event) { columnField.setValue(event.getPropertyId()); } }); @@ -75,7 +75,7 @@ public class HeaderClick extends TestBase { @Override protected String getDescription() { - return "Tests the header click handler"; + return "Tests the header click listener"; } @Override diff --git a/tests/src/com/vaadin/tests/server/component/table/TestFooterClickHandlers.java b/tests/src/com/vaadin/tests/server/component/table/TestFooterClickHandlers.java deleted file mode 100644 index 70a2c4dda1..0000000000 --- a/tests/src/com/vaadin/tests/server/component/table/TestFooterClickHandlers.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.vaadin.tests.server.component.table; - -import junit.framework.TestCase; - -import com.vaadin.ui.Table; -import com.vaadin.ui.Table.FooterClickEvent; -import com.vaadin.ui.Table.FooterClickHandler; - -/** - * Tests the footer click handler - */ -public class TestFooterClickHandlers extends TestCase { - - /** - * Tests setting the click handler - */ - public void testAddingClickHandler() { - final Table table = new Table(); - - // Create click handler - FooterClickHandler handler = new FooterClickHandler() { - public void handleFooterClick(FooterClickEvent event) { - } - }; - - // No predefined footer click listeners should be present - assertNull(table.getFooterClickHandler()); - - // Set the click handler - table.setFooterClickHandler(handler); - assertEquals(handler, table.getFooterClickHandler()); - } - - /** - * Tests changing the click handler to another one - */ - public void testChangingClickHandler() { - final Table table = new Table(); - - // Create 2 click handlers - FooterClickHandler handler1 = new FooterClickHandler() { - public void handleFooterClick(FooterClickEvent event) { - } - }; - - FooterClickHandler handler2 = new FooterClickHandler() { - public void handleFooterClick(FooterClickEvent event) { - } - }; - - // Set the click handler - table.setFooterClickHandler(handler1); - assertEquals(handler1, table.getFooterClickHandler()); - - // Change the click handler to another one - table.setFooterClickHandler(handler2); - assertEquals(handler2, table.getFooterClickHandler()); - } - - /** - * Tests if click handler is removed - */ - public void testRemovingClickHandler() { - final Table table = new Table(); - - // Create click handler - FooterClickHandler handler = new FooterClickHandler() { - public void handleFooterClick(FooterClickEvent event) { - } - }; - - // No predefined footer click listeners should be present - assertNull(table.getFooterClickHandler()); - - // Set the click handler - table.setFooterClickHandler(handler); - assertEquals(handler, table.getFooterClickHandler()); - - // Remove the click handler - table.setFooterClickHandler(null); - assertNull(table.getFooterClickHandler()); - } -} diff --git a/tests/src/com/vaadin/tests/server/component/table/TestHeaderClickHandlers.java b/tests/src/com/vaadin/tests/server/component/table/TestHeaderClickHandlers.java deleted file mode 100644 index 7365e4ae2d..0000000000 --- a/tests/src/com/vaadin/tests/server/component/table/TestHeaderClickHandlers.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.vaadin.tests.server.component.table; - -import junit.framework.TestCase; - -import com.vaadin.ui.Table; -import com.vaadin.ui.Table.HeaderClickEvent; -import com.vaadin.ui.Table.HeaderClickHandler; - -/** - * Tests the header click handler - */ -public class TestHeaderClickHandlers extends TestCase { - - /** - * Tests setting the click handler - */ - public void testAddingClickHandler() { - final Table table = new Table(); - - // Create click handler - HeaderClickHandler handler = new HeaderClickHandler() { - public void handleHeaderClick(HeaderClickEvent event) { - } - }; - - // No predefined header click listeners should be present - assertNull(table.getHeaderClickHandler()); - - // Set the click handler - table.setHeaderClickHandler(handler); - assertEquals(handler, table.getHeaderClickHandler()); - } - - /** - * Tests changing the click handler to another one - */ - public void testChangingClickHandler() { - final Table table = new Table(); - - // Create 2 click handlers - HeaderClickHandler handler1 = new HeaderClickHandler() { - public void handleHeaderClick(HeaderClickEvent event) { - } - }; - - HeaderClickHandler handler2 = new HeaderClickHandler() { - public void handleHeaderClick(HeaderClickEvent event) { - } - }; - - // Set the click handler - table.setHeaderClickHandler(handler1); - assertEquals(handler1, table.getHeaderClickHandler()); - - // Change the click handler to another one - table.setHeaderClickHandler(handler2); - assertEquals(handler2, table.getHeaderClickHandler()); - } - - /** - * Tests if click handler is removed - */ - public void testRemovingClickHandler() { - final Table table = new Table(); - - // Create click handler - HeaderClickHandler handler = new HeaderClickHandler() { - public void handleHeaderClick(HeaderClickEvent event) { - } - }; - - // No predefined header click listeners should be present - assertNull(table.getHeaderClickHandler()); - - // Set the click handler - table.setHeaderClickHandler(handler); - assertEquals(handler, table.getHeaderClickHandler()); - - // Remove the click handler - table.setHeaderClickHandler(null); - assertNull(table.getHeaderClickHandler()); - } -} -- 2.39.5