]> source.dussan.org Git - vaadin-framework.git/commitdiff
Allow overriding settings menu items
authorArtur Signell <artur.signell@itmill.com>
Mon, 7 Feb 2011 13:56:30 +0000 (13:56 +0000)
committerArtur Signell <artur.signell@itmill.com>
Mon, 7 Feb 2011 13:56:30 +0000 (13:56 +0000)
svn changeset:17189/svn branch:6.5

tests/src/com/vaadin/tests/components/AbstractComponentTest.java
tests/src/com/vaadin/tests/components/abstractfield/AbstractFieldTest.java

index 47a1d6c90517908942fcf95b837a83f129806d11..b00ca3025b3a9ee3e7844ae7ca7f6e444ba14cf1 100644 (file)
@@ -92,12 +92,22 @@ public abstract class AbstractComponentTest<T extends AbstractComponent>
         menu.setDebugId("menu");\r
         mainMenu = menu.addItem("Component", null);\r
         settingsMenu = menu.addItem("Settings", null);\r
-        createSettingsMenu();\r
+        populateSettingsMenu(settingsMenu);\r
 \r
         return menu;\r
     }\r
 \r
-    private void createSettingsMenu() {\r
+    /**\r
+     * Override to add items to the "settings" menu.\r
+     * \r
+     * NOTE, Call super class first to preserve current order. If you override\r
+     * this in a class and another class overrides it you might break tests\r
+     * because the wrong items will be selected.\r
+     * \r
+     * @param settingsMenu\r
+     */\r
+    protected void populateSettingsMenu(MenuItem settingsMenu) {\r
+\r
         MenuItem showEventLog = settingsMenu.addItem("Show event log",\r
                 new MenuBar.Command() {\r
 \r
index dc0f01f714f7b7721cf9d002ab224e2d55aa20aa..79ec0d1bf64e0f29e7875ca18c9954b607b6352b 100644 (file)
@@ -9,6 +9,7 @@ import java.util.LinkedHashMap;
 import java.util.List;\r
 import java.util.Locale;\r
 \r
+import com.vaadin.data.Property;\r
 import com.vaadin.data.Property.ReadOnlyStatusChangeEvent;\r
 import com.vaadin.data.Property.ReadOnlyStatusChangeListener;\r
 import com.vaadin.data.Property.ValueChangeListener;\r
@@ -20,6 +21,8 @@ import com.vaadin.event.FieldEvents.FocusListener;
 import com.vaadin.event.FieldEvents.FocusNotifier;\r
 import com.vaadin.tests.components.AbstractComponentTest;\r
 import com.vaadin.ui.AbstractField;\r
+import com.vaadin.ui.MenuBar;\r
+import com.vaadin.ui.MenuBar.MenuItem;\r
 \r
 public abstract class AbstractFieldTest<T extends AbstractField> extends\r
         AbstractComponentTest<T> implements ValueChangeListener,\r
@@ -50,6 +53,25 @@ public abstract class AbstractFieldTest<T extends AbstractField> extends
 \r
     }\r
 \r
+    @Override\r
+    protected void populateSettingsMenu(MenuItem settingsMenu) {\r
+        super.populateSettingsMenu(settingsMenu);\r
+\r
+        if (AbstractField.class.isAssignableFrom(getTestClass())) {\r
+            MenuItem abstractField = settingsMenu\r
+                    .addItem("AbstractField", null);\r
+            abstractField.addItem("Show value", new MenuBar.Command() {\r
+\r
+                public void menuSelected(MenuItem selectedItem) {\r
+                    for (T a : getTestComponents()) {\r
+                        log(a.getClass().getSimpleName() + " value: "\r
+                                + getValue(a));\r
+                    }\r
+                }\r
+            });\r
+        }\r
+    }\r
+\r
     private void createRequiredErrorSelect(String category) {\r
         LinkedHashMap<String, String> options = new LinkedHashMap<String, String>();\r
         options.put("-", null);\r
@@ -141,9 +163,14 @@ public abstract class AbstractFieldTest<T extends AbstractField> extends
         }\r
     };\r
 \r
-    @SuppressWarnings({ "rawtypes", "unchecked" })\r
     public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {\r
-        Object o = event.getProperty().getValue();\r
+        log(event.getClass().getSimpleName() + ", new value: "\r
+                + getValue(event.getProperty()));\r
+    };\r
+\r
+    @SuppressWarnings({ "rawtypes", "unchecked" })\r
+    private String getValue(Property property) {\r
+        Object o = property.getValue();\r
         if (o instanceof Collection) {\r
             // Sort collections to avoid problems with values printed in\r
             // different order\r
@@ -173,8 +200,9 @@ public abstract class AbstractFieldTest<T extends AbstractField> extends
             }\r
         }\r
 \r
-        log(event.getClass().getSimpleName() + ", new value: " + value);\r
-    };\r
+        return value;\r
+\r
+    }\r
 \r
     public void readOnlyStatusChange(ReadOnlyStatusChangeEvent event) {\r
         log(event.getClass().getSimpleName());\r