private int width = 400;\r
private int height = 300;\r
private int zoomLevel = 15;\r
- private Point2D.Float mapCenter;\r
+ private Point2D.Double mapCenter;\r
\r
private Container dataSource;\r
private Object itemMarkerHtmlPropertyId = new Object();\r
Object itemId = it.next();\r
Item item = this.dataSource.getItem(itemId);\r
Property p = item.getItemProperty(getItemMarkerXPropertyId());\r
- Float x = (Float) (p != null ? p.getValue() : null);\r
+ Double x = (Double) (p != null ? p.getValue() : null);\r
p = item.getItemProperty(getItemMarkerYPropertyId());\r
- Float y = (Float) (p != null ? p.getValue() : null);\r
+ Double y = (Double) (p != null ? p.getValue() : null);\r
if (x == null || y == null) {\r
continue;\r
}\r
target.startTag(TAG_MARKER);\r
- target.addAttribute("x", x.floatValue());\r
- target.addAttribute("y", y.floatValue());\r
+ target.addAttribute("x", x.doubleValue());\r
+ target.addAttribute("y", y.doubleValue());\r
p = item.getItemProperty(getItemMarkerHtmlPropertyId());\r
String h = (String) (p != null ? p.getValue() : null);\r
target.addAttribute("html", h);\r
throw new UnsupportedOperationException();\r
}\r
\r
- public void setMapCenter(Point2D.Float center) {\r
+ public void setMapCenter(Point2D.Double center) {\r
this.mapCenter = center;\r
}\r
\r
- public Point2D.Float getMapCenter() {\r
+ public Point2D.Double getMapCenter() {\r
return this.mapCenter;\r
}\r
\r
\r
// Marker add\r
\r
- public Object addMarker(String html, Point2D.Float location) {\r
+ public Object addMarker(String html, Point2D.Double location) {\r
if (location == null) {\r
throw new IllegalArgumentException("Location must be non-null");\r
}\r
}\r
Item marker = this.dataSource.getItem(markerId);\r
Property p = marker.getItemProperty(getItemMarkerXPropertyId());\r
- p.setValue(new Float(location.x));\r
+ p.setValue(new Double(location.x));\r
p = marker.getItemProperty(getItemMarkerYPropertyId());\r
- p.setValue(new Float(location.y));\r
+ p.setValue(new Double(location.y));\r
p = marker.getItemProperty(getItemMarkerHtmlPropertyId());\r
p.setValue(html);\r
\r
this.dataSource.addContainerProperty(this.itemMarkerHtmlPropertyId,\r
String.class, null);\r
this.dataSource.addContainerProperty(this.itemMarkerXPropertyId,\r
- Float.class, new Float(0));\r
+ Double.class, new Double(0));\r
this.dataSource.addContainerProperty(this.itemMarkerYPropertyId,\r
- Float.class, new Float(0));\r
+ Double.class, new Double(0));\r
+ }\r
+ \r
+ public void clear() {\r
+ setContainerDataSource(null);\r
}\r
}
\ No newline at end of file
package com.itmill.toolkit.demo.reservation;\r
\r
import java.awt.Point;\r
+import java.awt.geom.Point2D;\r
import java.util.Date;\r
import java.util.Iterator;\r
import java.util.List;\r
private Table allTable;\r
private CalendarField allCalendar;\r
\r
+ private GoogleMap map;\r
+\r
public void init() {\r
db = new SampleDB(true);\r
db.generateResources();\r
infoLayout.addComponent(reservationButton);\r
statusLabel = new Label();\r
infoLayout.addComponent(statusLabel);\r
- \r
+\r
// TODO map\r
- GoogleMap map = new GoogleMap();\r
+ map = new GoogleMap();\r
map.setWidth(290);\r
map.setHeight(150);\r
- map.setZoomLevel(2);\r
- //map.setMapCenter(new Point.Float(60.453380f, 22.301850f));\r
+ map.setZoomLevel(12);\r
+ map.setItemMarkerHtmlPropertyId(SampleDB.Resource.PROPERTY_ID_NAME);\r
+ map.setItemMarkerXPropertyId(SampleDB.Resource.PROPERTY_ID_LOCATIONX);\r
+ map.setItemMarkerYPropertyId(SampleDB.Resource.PROPERTY_ID_LOCATIONY);\r
+ map.setContainerDataSource(db.getResources(null));\r
infoLayout.addComponent(map);\r
- \r
- map.addMarker("IT Mill", new Point.Float(60.453380f, 22.301850f));\r
- map.addMarker("Romson a.k.a Rodskar", new Point.Float(63.509433f,22.276711f));\r
- \r
+\r
// TODO Use calendar, set following hour\r
Date now = new Date();\r
reservedFrom = new CalendarField();\r
reservedTo.setImmediate(true);\r
reservedTo.setValue(now);\r
\r
- OrderedLayout allLayout = new OrderedLayout(OrderedLayout.ORIENTATION_HORIZONTAL);\r
+ OrderedLayout allLayout = new OrderedLayout(\r
+ OrderedLayout.ORIENTATION_HORIZONTAL);\r
allCalendar = new CalendarField();\r
initCalendarFieldPropertyIds(allCalendar);\r
allLayout.addComponent(allCalendar);\r
Container allReservations = db.getReservations(null);\r
allTable.setContainerDataSource(allReservations);\r
allCalendar.setContainerDataSource(allReservations);\r
- \r
+\r
}\r
\r
private void refreshSelectedResources() {\r
reservationButton.setEnabled(false);\r
return;\r
}\r
+ map.clear();\r
if (resource == null) {\r
resourceName.setValue("Choose resource");\r
reservationButton.setEnabled(false);\r
+ map.setContainerDataSource(db.getResources(null));\r
+ map.setZoomLevel(12);\r
} else {\r
- resourceName.setValue((String) resource.getItemProperty(\r
- SampleDB.Resource.PROPERTY_ID_NAME).getValue());\r
+ String name = (String) resource.getItemProperty(\r
+ SampleDB.Resource.PROPERTY_ID_NAME).getValue();\r
+ String desc = (String) resource.getItemProperty(\r
+ SampleDB.Resource.PROPERTY_ID_DESCRIPTION).getValue();\r
+ resourceName.setValue(name);\r
+ Double x = (Double) resource.getItemProperty(\r
+ SampleDB.Resource.PROPERTY_ID_LOCATIONX).getValue();\r
+ Double y = (Double) resource.getItemProperty(\r
+ SampleDB.Resource.PROPERTY_ID_LOCATIONY).getValue();\r
+ if (x != null && y != null) {\r
+ map.addMarker(name + "<br/>" + desc, new Point2D.Double(x\r
+ .doubleValue(), y.doubleValue()));\r
+ map.setZoomLevel(14);\r
+ }\r
+\r
reservationButton.setEnabled(true);\r
}\r
\r
cal\r
.setItemStartPropertyId(SampleDB.Reservation.PROPERTY_ID_RESERVED_FROM);\r
cal.setItemEndPropertyId(SampleDB.Reservation.PROPERTY_ID_RESERVED_TO);\r
- cal\r
- .setItemTitlePropertyId(SampleDB.Resource.PROPERTY_ID_NAME);\r
+ cal.setItemTitlePropertyId(SampleDB.Resource.PROPERTY_ID_NAME);\r
cal\r
.setItemDescriptionPropertyId(SampleDB.Reservation.PROPERTY_ID_DESCRIPTION);\r
}\r
}
public void generateResources() {
- String[][] resources = {
- { "IT Mill Toolkit Manual", "the manual", "Books" },
+ /*
+ * map.addMarker("Old Mill", new Point.Double(60.452224f,22.299929f));
+ * map.addMarker("ICT", new Point.Double(60.449007f,22.295508f));
+ * map.addMarker("DataCity", new Point.Double(60.448329f,22.295165f));
+ * map.addMarker("BioCity", new Point.Double(60.449451f,22.293105f));
+ * map.addMarker("PharmaCity", new Point.Double(60.44888f,22.292032f));
+ * map.addMarker("Intelligate", new Point.Double(60.450403f,22.29495f));
+ * map.addMarker("Paviljonki", new Point.Double(60.445408f,22.290831f));
+ * map.addMarker("Trivium", new Point.Double(60.44641962165445f,
+ * 22.301753170493f)); map.addMarker("Linja-auto asema", new
+ * Point.Double(60.457049f,22.267957f));
+ */
+
+ Object[][] resources = {
+ { "IT Mill Toolkit Manual", "the manual", "Books", new Double(60.452224),new Double(22.299929)},
{ "IT Mill Toolkit for Dummies", "the hardcover version",
- "Books" },
- { "Sony", "Old Sony video projector", "AV equipment" },
- { "Sanyo", "Brand new hd-ready video projector", "AV equipment" },
- { "Room 7", "Converence room in the lobby", "Conference rooms" },
+ "Books", new Double(60.452224),new Double(22.299929) },
+ { "Sony", "Old Sony video projector", "AV equipment", new Double(60.449007),new Double(22.295508) },
+ { "Sanyo", "Brand new hd-ready video projector", "AV equipment", new Double(60.452224),new Double(22.299929) },
+ { "Room 7", "Conference room in the lobby", "Conference rooms", new Double(60.449451),new Double(22.292032) },
{ "Luokkahuone", "Classroom right next to IT Mill",
- "Conference rooms" },
- { "Nintendo Wii", "Teh uber fun", "Entertainment" },
- { "Playstation", "We don't actually have one", "Entertainment" } };
+ "Conference rooms", new Double(60.44888),new Double(22.292032) },
+ { "Nintendo Wii", "Teh uber fun", "Entertainment", new Double(60.445408),new Double(22.290831) },
+ { "Playstation", "We don't actually have one", "Entertainment", new Double(60.44641962165445),new Double(22.301753170493) } };
String q = "INSERT INTO " + Resource.TABLE + "("
+ Resource.PROPERTY_ID_NAME + ","
+ Resource.PROPERTY_ID_DESCRIPTION + ","
- + Resource.PROPERTY_ID_CATEGORY + ")" + " VALUES (?,?,?)";
+ + Resource.PROPERTY_ID_CATEGORY + ","
+ + Resource.PROPERTY_ID_LOCATIONX + ","
+ + Resource.PROPERTY_ID_LOCATIONY
+ + ")" + " VALUES (?,?,?,?,?)";
try {
PreparedStatement stmt = connection.prepareStatement(q);
for (int i = 0; i < resources.length; i++) {
- stmt.setString(1, resources[i][0]);
- stmt.setString(2, resources[i][1]);
- stmt.setString(3, resources[i][2]);
+ int j=0;
+ stmt.setString(j+1, (String)resources[i][j++]);
+ stmt.setString(j+1, (String)resources[i][j++]);
+ stmt.setString(j+1, (String)resources[i][j++]);
+ stmt.setDouble(j+1, ((Double)resources[i][j++]).doubleValue());
+ stmt.setDouble(j+1, ((Double)resources[i][j++]).doubleValue());
stmt.execute();
}
} catch (SQLException e) {
}\r
\r
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {\r
+ map.clearOverlays();\r
GLatLng pos = null;\r
for (Iterator it = uidl.getChildIterator(); it.hasNext();) {\r
UIDL u = (UIDL) it.next();\r
for (Iterator m = u.getChildIterator(); m.hasNext();) {\r
UIDL umarker = (UIDL) m.next();\r
String html = umarker.getStringAttribute("html");\r
- float x = umarker.getFloatAttribute("x");\r
- float y = umarker.getFloatAttribute("y");\r
+ double x = umarker.getDoubleAttribute("x");\r
+ double y = umarker.getDoubleAttribute("y");\r
pos = new GLatLng(x, y);\r
GMarker marker = new GMarker(pos);\r
map.addOverlay(marker);\r
map.setZoom(uidl.getIntAttribute("zoom"));\r
}\r
if (uidl.hasAttribute("centerX") && uidl.hasAttribute("centerY")) {\r
- GLatLng center = new GLatLng(uidl.getFloatAttribute("centerX"),\r
- uidl.getFloatAttribute("centerY"));\r
+ GLatLng center = new GLatLng(uidl.getDoubleAttribute("centerX"),\r
+ uidl.getDoubleAttribute("centerY"));\r
map.setCenter(center);\r
} else if (pos!=null) {\r
// use last marker position\r