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
\r
private Label resourceName;\r
\r
- private Label statusLabel;\r
-\r
private TextField description;\r
\r
private Button reservationButton;\r
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
to.add(Calendar.MILLISECOND, (int) currentGapMillis);\r
reservedTo.setValue(to.getTime());\r
refreshSelectedResources();\r
- resetStatus();\r
}\r
});\r
reservedTo.addListener(new ValueChangeListener() {\r
reservedTo.setValue(t.getTime());\r
}\r
refreshSelectedResources();\r
- resetStatus();\r
}\r
});\r
\r
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
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
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
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
.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