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 {
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 = "?";
if (selectedPlace != null) {
// parameters += "placeid=" + selectedPlace.getId().getId();
if (selectedPlaces != null && selectedPlaces.size() > 0) {
parameters += "placeid=";
for (Place place : selectedPlaces) {
parameters += place.getId().getId() + ",";
}
if (parameters.endsWith(",")) {
parameters.substring(parameters.length() -1);
}
} else {
parameters += "mapid=" + activeMap.getId().getId();
}
......
......@@ -8,6 +8,7 @@ import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.util.Calendar;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
......@@ -20,23 +21,23 @@ import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;
/**
*
*/
@Entity
@Table(name = "places")
@NamedQueries({
@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.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.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.findByCode", query = "SELECT p FROM Place p WHERE p.code = :code") })
@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.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.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.findByCode", query = "SELECT p FROM Place p WHERE p.code = :code")})
public class Place implements EventChildInterface {
private static final long serialVersionUID = 1L;
......@@ -55,37 +56,35 @@ public class Place implements EventChildInterface {
private Integer width;
@Column(name = "height")
private Integer height;
@Column(name = "release_time")
@Temporal(TemporalType.TIMESTAMP)
private Calendar releaseTime;
@Column(name = "place_details")
@Lob
private String details;
@Column(name = "place_code")
private String code;
@OneToOne(mappedBy = "placeReservation")
private GroupMembership placeReserver;
/**
* Which group has bought the place
*/
@JoinColumns({
@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 = "group_id", referencedColumnName = "id", updatable = true, insertable = true),
@JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false)})
@ManyToOne
private PlaceGroup group;
@JoinColumns({
@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 = "map_id", referencedColumnName = "id", nullable = false, updatable = true, insertable = true),
@JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false)})
@ManyToOne(optional = false)
private EventMap map;
/**
* Which ticket type is this place sold as
*/
@JoinColumns({
@JoinColumn(name = "products_id", referencedColumnName = "id"),
@JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false) })
@JoinColumn(name = "products_id", referencedColumnName = "id"),
@JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false)})
@ManyToOne()
private Product product;
/**
......@@ -304,7 +303,6 @@ public class Place implements EventChildInterface {
return false;
}
private static final Color NORMAL_COLOR = Color.BLUE;
private static final Color RESERVED_COLOR = Color.RED;
private static final Color SELECTED_COLOR = Color.GREEN;
......@@ -313,7 +311,7 @@ public class Place implements EventChildInterface {
public void drawPlace(BufferedImage targetImage) {
Graphics2D g = targetImage.createGraphics();
if (group != null) {
if (isReserved()) {
g.setColor(RESERVED_COLOR);
g.fill(new Rectangle(mapX, mapY, width, height));
} else {
......@@ -335,4 +333,34 @@ public class Place implements EventChildInterface {
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 {
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>");
......
......@@ -32,6 +32,9 @@ public class MapView {
private Logger logger = LoggerFactory.getLogger(MapView.class);
@EJB
private PlaceMapBeanLocal placeMapBean;
@ManagedProperty("#{sessionHandler}")
private SessionHandler sessionHandler;
private EventMap activeMap = null;
......@@ -51,12 +54,15 @@ public class MapView {
Place place = getActiveMap().findPlace(x, y);
if (selectedPlaces.contains(place)) {
selectedPlaces.remove(place);
} else {
selectedPlaces.add(place);
if (place != null) {
if (selectedPlaces.contains(place)) {
selectedPlaces.remove(place);
} else {
selectedPlaces.add(place);
}
}
}
public String getSelectPlaceMapUrl() {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!