]> source.dussan.org Git - vaadin-framework.git/commitdiff
Notifications instead of statusmessage&popups.
authorMarc Englund <marc.englund@itmill.com>
Mon, 26 Nov 2007 10:16:52 +0000 (10:16 +0000)
committerMarc Englund <marc.englund@itmill.com>
Mon, 26 Nov 2007 10:16:52 +0000 (10:16 +0000)
Layout fixes.
Fixes #972

svn changeset:2949/svn branch:trunk

src/com/itmill/toolkit/demo/reservation/ReservationApplication.java

index a3830f0483d636e2bed36a1f27649bcb73bac7c7..cac0cb1bc8e2ada7b929078179d866929f74af6c 100644 (file)
@@ -20,8 +20,8 @@ import com.itmill.toolkit.ui.TabSheet;
 import com.itmill.toolkit.ui.Table;\r
 import com.itmill.toolkit.ui.TextField;\r
 import com.itmill.toolkit.ui.Window;\r
-import com.itmill.toolkit.ui.Button.ClickEvent;\r
 import com.itmill.toolkit.ui.TabSheet.SelectedTabChangeEvent;\r
+import com.itmill.toolkit.ui.Window.Notification;\r
 \r
 public class ReservationApplication extends Application {\r
 \r
@@ -41,8 +41,6 @@ public class ReservationApplication extends Application {
 \r
     private Label resourceName;\r
 \r
-    private Label statusLabel;\r
-\r
     private TextField description;\r
 \r
     private Button reservationButton;\r
@@ -87,23 +85,23 @@ public class ReservationApplication extends Application {
         reservationTab.addComponent(reservationPanel);\r
 \r
         OrderedLayout infoLayout = new OrderedLayout();\r
+        infoLayout.setMargin(false, true, false, false);\r
         reservationPanel.addComponent(infoLayout);\r
         resourceName = new Label("From the list above");\r
         resourceName.setCaption("Choose resource");\r
         infoLayout.addComponent(resourceName);\r
         description = new TextField();\r
-        description.setColumns(45);\r
+        description.setColumns(20);\r
         description.setRows(5);\r
         infoLayout.addComponent(description);\r
         reservationButton = new Button("Make reservation", this,\r
                 "makeReservation");\r
         infoLayout.addComponent(reservationButton);\r
-        statusLabel = new Label("");\r
-        statusLabel.setCaption("");\r
-        infoLayout.addComponent(statusLabel);\r
 \r
         map = new GoogleMap();\r
-        map.setWidth(325);\r
+        // TODO support EM\r
+        // map.setWidthUnits(Sizeable.UNITS_EM);\r
+        map.setWidth(266);\r
         map.setHeight(210);\r
         map.setItemMarkerHtmlPropertyId(SampleDB.Resource.PROPERTY_ID_NAME);\r
         map.setItemMarkerXPropertyId(SampleDB.Resource.PROPERTY_ID_LOCATIONX);\r
@@ -156,7 +154,6 @@ public class ReservationApplication extends Application {
                 to.add(Calendar.MILLISECOND, (int) currentGapMillis);\r
                 reservedTo.setValue(to.getTime());\r
                 refreshSelectedResources();\r
-                resetStatus();\r
             }\r
         });\r
         reservedTo.addListener(new ValueChangeListener() {\r
@@ -171,7 +168,6 @@ public class ReservationApplication extends Application {
                     reservedTo.setValue(t.getTime());\r
                 }\r
                 refreshSelectedResources();\r
-                resetStatus();\r
             }\r
         });\r
 \r
@@ -190,11 +186,11 @@ public class ReservationApplication extends Application {
         mainTabs.addTab(allLayout, "All reservations", null);\r
         mainTabs.addListener(new TabSheet.SelectedTabChangeListener() {\r
             public void selectedTabChange(SelectedTabChangeEvent event) {\r
-                refreshReservations();\r
+                refreshReservations(true);\r
             }\r
         });\r
 \r
-        refreshReservations();\r
+        refreshReservations(true);\r
     }\r
 \r
     public void makeReservation() {\r
@@ -204,40 +200,25 @@ public class ReservationApplication extends Application {
                 db.addReservation(resource, 0, (Date) reservedFrom.getValue(),\r
                         (Date) reservedTo.getValue(), (String) description\r
                                 .getValue());\r
-                statusLabel.setCaption("Success!");\r
-                statusLabel\r
-                        .setValue("You have reserved the resource for the selected period.");\r
+                getMainWindow()\r
+                        .showNotification(\r
+                                "Success!",\r
+                                "You have reserved the resource for the selected period.",\r
+                                Notification.TYPE_WARNING_MESSAGE);\r
+                refreshReservations(false);\r
             } else {\r
-                showMessage("No resource selected",\r
-                        "Please select a resource (or category) to reserve.");\r
+                getMainWindow().showNotification("Oops!",\r
+                        "Please select a resource (or category) to reserve.",\r
+                        Notification.TYPE_WARNING_MESSAGE);\r
             }\r
         } catch (ResourceNotAvailableException e) {\r
-            showMessage("Reservation failed",\r
-                    "The selected resource was not available for the selected period.");\r
-        }\r
-        refreshReservations();\r
-    }\r
-\r
-    public void showMessage(String caption, String message) {\r
-        if (popupWindow == null) {\r
-            popupWindow = new Window("No resource selected");\r
-            popupWindow.setHeight(50);\r
-            popupWindow.setPositionX(70);\r
-            popupWindow.setPositionY(400);\r
-            popupMessage = new Label(\r
-                    "Please select a resource (or category) to reserve.");\r
-            popupWindow.addComponent(popupMessage);\r
-            Button b = new Button("Ok", new Button.ClickListener() {\r
-                public void buttonClick(ClickEvent event) {\r
-                    getMainWindow().removeWindow(popupWindow);\r
-                }\r
-            });\r
-            popupWindow.addComponent(b);\r
-        } else {\r
-            popupMessage.setValue(message);\r
-            popupWindow.setCaption(caption);\r
+            getMainWindow()\r
+                    .showNotification(\r
+                            "Not available!",\r
+                            "The selected resource is already reserved for the selected period.",\r
+                            Notification.TYPE_ERROR_MESSAGE);\r
+            refreshReservations(false);\r
         }\r
-        getMainWindow().addWindow(popupWindow);\r
     }\r
 \r
     private Item getActiveResource() throws ResourceNotAvailableException {\r
@@ -253,18 +234,20 @@ public class ReservationApplication extends Application {
                     return resource;\r
                 }\r
             }\r
-            throw new ResourceNotAvailableException("No available resource");\r
+            throw new ResourceNotAvailableException("No available resources");\r
         } else {\r
             return null;\r
         }\r
     }\r
 \r
-    private void refreshReservations() {\r
+    private void refreshReservations(boolean alsoResources) {\r
         Container reservations = db.getReservations(resourcePanel\r
                 .getSelectedResources());\r
         reservedFrom.setContainerDataSource(reservations);\r
         reservedTo.setContainerDataSource(reservations);\r
-        refreshSelectedResources();\r
+        if (alsoResources) {\r
+            refreshSelectedResources();\r
+        }\r
         Container allReservations = db.getReservations(null);\r
         allTable.setContainerDataSource(allReservations);\r
         if (allReservations != null && allReservations.size() > 0) {\r
@@ -285,16 +268,21 @@ public class ReservationApplication extends Application {
         try {\r
             resource = getActiveResource();\r
         } catch (ResourceNotAvailableException e) {\r
-            resourceName.setCaption("Not available");\r
-            resourceName\r
-                    .setValue("Please choose another time period or resource");\r
+            /*\r
+             * resourceName.setCaption("Not available"); resourceName\r
+             * .setValue("Please choose another time period or resource");\r
+             */\r
+            getMainWindow().showNotification("Not available",\r
+                    "Please choose another resource or time period.",\r
+                    Notification.TYPE_HUMANIZED_MESSAGE);\r
+\r
             // reservationButton.setEnabled(false);\r
             return;\r
         }\r
         map.clear();\r
         if (resource == null) {\r
-            resourceName.setCaption("Choose resource");\r
-            resourceName.setValue("from the list above");\r
+            resourceName.setCaption("Choose resource above");\r
+            resourceName.setValue("");\r
             // reservationButton.setEnabled(false);\r
             map.setContainerDataSource(db.getResources(null));\r
             map.setZoomLevel(1);\r
@@ -342,15 +330,9 @@ public class ReservationApplication extends Application {
                 .setItemDescriptionPropertyId(SampleDB.Reservation.PROPERTY_ID_DESCRIPTION);\r
     }\r
 \r
-    private void resetStatus() {\r
-        statusLabel.setCaption("");\r
-        statusLabel.setValue("");\r
-    }\r
-\r
     public void selectedResourcesChanged(\r
             ResourceSelectorPanel.SelectedResourcesChangedEvent event) {\r
-        refreshReservations();\r
-        resetStatus();\r
+        refreshReservations(true);\r
     }\r
 \r
 }\r