Commit d0093a9b by Tuukka Kivilahti

this will not work, don't try this, I'm just commiting my status (not pushing, s…

…o when you get this code, it should "work").
1 parent 80dd17e4
...@@ -91,12 +91,21 @@ public class PlaceMapBean implements PlaceMapBeanLocal { ...@@ -91,12 +91,21 @@ public class PlaceMapBean implements PlaceMapBeanLocal {
ImageIO.write(image, filetype, outputStream); ImageIO.write(image, filetype, outputStream);
} }
public String getSelectPlaceMapUrl(EventMap activeMap, List<Place> selectedPlace, User user) { public String getSelectPlaceMapUrl(EventMap activeMap, List<Place> selectedPlaces, User user) {
String parameters = "?"; String parameters = "?";
if (selectedPlace != null) { if (selectedPlaces != null && selectedPlaces.size() > 0) {
// parameters += "placeid=" + selectedPlace.getId().getId(); parameters += "placeid=";
for (Place place : selectedPlaces) {
parameters += place.getId().getId() + ",";
}
if (parameters.endsWith(",")) {
parameters.substring(parameters.length() -1);
}
} else { } else {
parameters += "mapid=" + activeMap.getId().getId(); parameters += "mapid=" + activeMap.getId().getId();
} }
......
...@@ -8,6 +8,7 @@ import java.awt.Color; ...@@ -8,6 +8,7 @@ import java.awt.Color;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.util.Calendar;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.EmbeddedId; import javax.persistence.EmbeddedId;
...@@ -20,23 +21,23 @@ import javax.persistence.NamedQueries; ...@@ -20,23 +21,23 @@ import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery; import javax.persistence.NamedQuery;
import javax.persistence.OneToOne; import javax.persistence.OneToOne;
import javax.persistence.Table; import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version; import javax.persistence.Version;
/** /**
* *
*/ */
@Entity @Entity
@Table(name = "places") @Table(name = "places")
@NamedQueries({ @NamedQueries({
@NamedQuery(name = "Place.findAll", query = "SELECT p FROM Place p"), @NamedQuery(name = "Place.findAll", query = "SELECT p FROM Place p"),
@NamedQuery(name = "Place.findByDescription", query = "SELECT p FROM Place p WHERE p.description = :description"), @NamedQuery(name = "Place.findByDescription", query = "SELECT p FROM Place p WHERE p.description = :description"),
@NamedQuery(name = "Place.findByName", query = "SELECT p FROM Place p WHERE p.name = :name"), @NamedQuery(name = "Place.findByName", query = "SELECT p FROM Place p WHERE p.name = :name"),
@NamedQuery(name = "Place.findByMapX", query = "SELECT p FROM Place p WHERE p.mapX = :mapX"), @NamedQuery(name = "Place.findByMapX", query = "SELECT p FROM Place p WHERE p.mapX = :mapX"),
@NamedQuery(name = "Place.findByMapY", query = "SELECT p FROM Place p WHERE p.mapY = :mapY"), @NamedQuery(name = "Place.findByMapY", query = "SELECT p FROM Place p WHERE p.mapY = :mapY"),
@NamedQuery(name = "Place.findByDetails", query = "SELECT p FROM Place p WHERE p.details = :details"), @NamedQuery(name = "Place.findByDetails", query = "SELECT p FROM Place p WHERE p.details = :details"),
@NamedQuery(name = "Place.findByCode", query = "SELECT p FROM Place p WHERE p.code = :code") }) @NamedQuery(name = "Place.findByCode", query = "SELECT p FROM Place p WHERE p.code = :code")})
public class Place implements EventChildInterface { public class Place implements EventChildInterface {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -55,37 +56,35 @@ public class Place implements EventChildInterface { ...@@ -55,37 +56,35 @@ public class Place implements EventChildInterface {
private Integer width; private Integer width;
@Column(name = "height") @Column(name = "height")
private Integer height; private Integer height;
@Column(name = "release_time")
@Temporal(TemporalType.TIMESTAMP)
private Calendar releaseTime;
@Column(name = "place_details") @Column(name = "place_details")
@Lob @Lob
private String details; private String details;
@Column(name = "place_code") @Column(name = "place_code")
private String code; private String code;
@OneToOne(mappedBy = "placeReservation") @OneToOne(mappedBy = "placeReservation")
private GroupMembership placeReserver; private GroupMembership placeReserver;
/** /**
* Which group has bought the place * Which group has bought the place
*/ */
@JoinColumns({ @JoinColumns({
@JoinColumn(name = "group_id", referencedColumnName = "id", updatable = true, insertable = true), @JoinColumn(name = "group_id", referencedColumnName = "id", updatable = true, insertable = true),
@JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false) }) @JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false)})
@ManyToOne @ManyToOne
private PlaceGroup group; private PlaceGroup group;
@JoinColumns({ @JoinColumns({
@JoinColumn(name = "map_id", referencedColumnName = "id", nullable = false, updatable = true, insertable = true), @JoinColumn(name = "map_id", referencedColumnName = "id", nullable = false, updatable = true, insertable = true),
@JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false) }) @JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false)})
@ManyToOne(optional = false) @ManyToOne(optional = false)
private EventMap map; private EventMap map;
/** /**
* Which ticket type is this place sold as * Which ticket type is this place sold as
*/ */
@JoinColumns({ @JoinColumns({
@JoinColumn(name = "products_id", referencedColumnName = "id"), @JoinColumn(name = "products_id", referencedColumnName = "id"),
@JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false) }) @JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false)})
@ManyToOne() @ManyToOne()
private Product product; private Product product;
/** /**
...@@ -304,7 +303,6 @@ public class Place implements EventChildInterface { ...@@ -304,7 +303,6 @@ public class Place implements EventChildInterface {
return false; return false;
} }
private static final Color NORMAL_COLOR = Color.BLUE; private static final Color NORMAL_COLOR = Color.BLUE;
private static final Color RESERVED_COLOR = Color.RED; private static final Color RESERVED_COLOR = Color.RED;
private static final Color SELECTED_COLOR = Color.GREEN; private static final Color SELECTED_COLOR = Color.GREEN;
...@@ -313,7 +311,7 @@ public class Place implements EventChildInterface { ...@@ -313,7 +311,7 @@ public class Place implements EventChildInterface {
public void drawPlace(BufferedImage targetImage) { public void drawPlace(BufferedImage targetImage) {
Graphics2D g = targetImage.createGraphics(); Graphics2D g = targetImage.createGraphics();
if (group != null) { if (isReserved()) {
g.setColor(RESERVED_COLOR); g.setColor(RESERVED_COLOR);
g.fill(new Rectangle(mapX, mapY, width, height)); g.fill(new Rectangle(mapX, mapY, width, height));
} else { } else {
...@@ -335,4 +333,34 @@ public class Place implements EventChildInterface { ...@@ -335,4 +333,34 @@ public class Place implements EventChildInterface {
g.fill(new Rectangle(mapX, mapY, width, height)); g.fill(new Rectangle(mapX, mapY, width, height));
} }
private boolean isReserved() {
if (releaseTime != null) {
if (System.currentTimeMillis() > releaseTime.getTimeInMillis()) {
setReserved(false);
} else {
return true;
}
}
if(group != null) {
return true;
}
return false;
}
public static final long RESERVE_TIME = 1000*60*20; // 20min.
private void setReserved(boolean reserved) {
if(reserved) {
releaseTime = Calendar.getInstance();
releaseTime.setTimeInMillis(System.currentTimeMillis()+RESERVE_TIME);
} else {
releaseTime = null;
}
}
} }
...@@ -68,9 +68,9 @@ public class PlaceMap extends HttpServlet { ...@@ -68,9 +68,9 @@ public class PlaceMap extends HttpServlet {
Integer userId = getIntegerParameter(request, PARAMETER_CURRENT_USER_ID); Integer userId = getIntegerParameter(request, PARAMETER_CURRENT_USER_ID);
response.setContentType("image/png"); response.setContentType("image/jpeg");
placemapBean.printPlaceMapToStream(ostream, "png", getEvent(request), mapId, userId, placeIds); placemapBean.printPlaceMapToStream(ostream, "jpeg", getEvent(request), mapId, userId, placeIds);
/* /*
* TODO output your page here out.println("<html>"); * TODO output your page here out.println("<html>");
......
...@@ -32,6 +32,9 @@ public class MapView { ...@@ -32,6 +32,9 @@ public class MapView {
private Logger logger = LoggerFactory.getLogger(MapView.class); private Logger logger = LoggerFactory.getLogger(MapView.class);
@EJB @EJB
private PlaceMapBeanLocal placeMapBean; private PlaceMapBeanLocal placeMapBean;
@ManagedProperty("#{sessionHandler}") @ManagedProperty("#{sessionHandler}")
private SessionHandler sessionHandler; private SessionHandler sessionHandler;
private EventMap activeMap = null; private EventMap activeMap = null;
...@@ -51,12 +54,15 @@ public class MapView { ...@@ -51,12 +54,15 @@ public class MapView {
Place place = getActiveMap().findPlace(x, y); Place place = getActiveMap().findPlace(x, y);
if (selectedPlaces.contains(place)) { if (place != null) {
selectedPlaces.remove(place); if (selectedPlaces.contains(place)) {
} else { selectedPlaces.remove(place);
selectedPlaces.add(place);
} else {
selectedPlaces.add(place);
}
} }
} }
public String getSelectPlaceMapUrl() { public String getSelectPlaceMapUrl() {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!