Commit 8557d61a by Tuomas Riihimäki

Merge branch 'vectoinfo' into 'master'

Vectoinfo

Lisää vectoinfoilua, tän jälkeen siirryn omaan kivaan branchiin jne.

Reviewed-by: @tuomari
2 parents 8b3780fd 3d4f036b
......@@ -21,6 +21,7 @@ import org.slf4j.LoggerFactory;
import fi.codecrew.moya.enums.CardState;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.facade.CardCodeFacade;
import fi.codecrew.moya.facade.CardObjectDataFacade;
import fi.codecrew.moya.facade.CardTemplateFacade;
import fi.codecrew.moya.facade.CardTextDataFacade;
......@@ -28,6 +29,7 @@ import fi.codecrew.moya.facade.EventUserFacade;
import fi.codecrew.moya.facade.GroupMembershipFacade;
import fi.codecrew.moya.facade.LanEventPropertyFacade;
import fi.codecrew.moya.facade.PrintedCardFacade;
import fi.codecrew.moya.model.CardCode;
import fi.codecrew.moya.model.CardObjectData;
import fi.codecrew.moya.model.CardTemplate;
import fi.codecrew.moya.model.CardTextData;
......@@ -86,6 +88,9 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
@EJB
private CardObjectDataFacade codFacade;
@EJB
private CardCodeFacade cardCodeFacade;
// @Override
......@@ -354,16 +359,20 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
return card;
}
@Override
public EventUser giveCard(EventUser user, boolean markUserPlacesDelivered) {
PrintedCard card = checkPrintedCard(user);
user = eventUserFacade.reload(user);
PrintedCard card = checkPrintedCard(user);
if (card.getCardState() != CardState.DELIVERED) {
card.setCardState(CardState.DELIVERED);
card = printedcardfacade.merge(card);
} else {
logger.info("Not marking card to delivered: " + card.getCardState() + " : " + card.getId());
}
......@@ -371,10 +380,22 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
if (markUserPlacesDelivered) {
for (GroupMembership membership : gmFacade.findMemberships(user)) {
membership.setEnteredEvent(Calendar.getInstance());
membership = gmFacade.merge(membership);
}
}
return eventUserFacade.reload(user);
return user;
}
@Override
public void removeCardCode(CardCode code) {
code = cardCodeFacade.reload(code);
if(code.getPrintedCard().getCardCodes().contains(code)) {
code.getPrintedCard().getCardCodes().remove(code);
}
cardCodeFacade.remove(code);
}
}
......@@ -9,6 +9,8 @@ import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
......@@ -622,7 +624,12 @@ public class PlaceBean implements PlaceBeanLocal {
@Override
public byte[] generatePlacesPdf(float width, float height, double font1, double font2) {
try {
return generatePlacesPdf(width, height, font1, font1, placeFacade.findAll());
List<Place> places = placeFacade.findAll();
Collections.sort(places);
logger.info("sorting places etc.");
return generatePlacesPdf(width, height, font1, font1, places);
} catch (Exception e) {
logger.error("Exception from place pdf generation.", e);
......
......@@ -79,50 +79,4 @@ public class PlaceMapBean implements PlaceMapBeanLocal {
return null;
}
/*
wanha, poistoon
public byte[] placeCodesPdf(List<Place> places) {
// double[] pageSize = new double[] { cardBackground.getWidth(),
// cardBackground.getHeight() };
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
PDF pdf;
try {
pdf = new PDF(outputStream);
pdf.setTitle("placecodes");
double pagex = 155.9;
double pagey = 48;
Page page = new Page(pdf, new double[] { pagex, pagey });
// Render texts
// Big font for nick
com.pdfjet.Font font = new com.pdfjet.Font(pdf, CoreFont.HELVETICA);
font.setSize(8.0);
TextLine line = new TextLine(font);
line.setText("testi");
line.setPosition(1, 1);
line.setColor(new double[] { 1.0, 1.0, 1.0 });
line.drawOn(page);
pdf.flush();
outputStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return outputStream.toByteArray();
}
*/
}
......@@ -173,10 +173,11 @@ public class ReaderBean implements ReaderBeanLocal {
@Override
public ReaderEvent assocCodeToCard(ReaderEvent readerEvent, PrintedCard card) {
card = cardfacade.reload(card);
CardCode code = new CardCode(card, readerEvent.getReader().getType(), readerEvent.getValue(), eventbean.getCurrentEvent());
code = cardCodeFacade.create(code);
card = cardfacade.reload(card);
card.getCardCodes().add(code);
return readerEvent;
}
......
......@@ -6,12 +6,12 @@ import java.util.List;
import javax.ejb.Local;
import fi.codecrew.moya.enums.CardState;
import fi.codecrew.moya.model.CardCode;
import fi.codecrew.moya.model.CardObjectData;
import fi.codecrew.moya.model.CardTemplate;
import fi.codecrew.moya.model.CardTextData;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.PrintedCard;
import fi.codecrew.moya.model.ReaderEvent;
import fi.codecrew.moya.utilities.jsf.EntityFinderBean;
@Local
......@@ -63,4 +63,5 @@ public interface CardTemplateBeanLocal extends EntityFinderBean<CardTemplate> {
EventUser giveCard(EventUser user, boolean markUserPlacesDelivered);
void removeCardCode(CardCode code);
}
......@@ -12,13 +12,14 @@ import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
/**
*
*/
@Entity
@Table(name = "places")
public class Place extends GenericEntity {
public class Place extends GenericEntity implements Comparable<Place> {
/**
*
......@@ -274,4 +275,72 @@ public class Place extends GenericEntity {
this.disabled = disabled;
}
/**
* Note: this class has a natural ordering that is inconsistent with equals.
*/
@Override
@Transient
public int compareTo(Place o) {
if(this.getName().equals(o.getName())) {
return 0;
}
// check empty string etc.
if(o.getName().length() == 0) {
if(this.getName().length() > 0)
return 1;
return 0;
}
if(this.getName().length() == 0 && o.getName().length() > 0) {
return -1;
}
// check prefixes
String splitted[] = o.getName().split("[0-9]");
if(splitted[0].length() > 0) {
if(splitted[0].length() > this.getName().length()) {
return this.getName().compareTo(splitted[0]);
}
} else {
return 1;
}
String myPrefix = this.getName().substring(0, splitted[0].length());
if(myPrefix.compareTo(splitted[0]) != 0)
return myPrefix.compareTo(splitted[0]);
// prefixes are same, find numbers and check them
String otherNumber = o.getName().substring(splitted[0].length());
String myNumber = this.getName().substring(splitted[0].length());
try {
int other = Integer.parseInt(otherNumber);
int me = Integer.parseInt(myNumber);
if(other < me) {
return 1;
}
if(other > me)
return -1;
return 0;
} catch(NumberFormatException x) {
return myNumber.compareTo(otherNumber);
}
}
}
......@@ -31,10 +31,6 @@
<ui:define name="content">
<infoview:userselector />
<br />
<br />
<!-- reader:backendReader selectvalue="#{i18n['barcodeReader.readBarcode']}" selectaction="#{infoView.selectUser}" / -->
</ui:define>
......
......@@ -51,6 +51,11 @@
<f:converter binding="#{referenceNumberConverter}" />
</h:outputText>
</p:column>
<p:column headerText="#{i18n['bill.notes']}" rendered="#{productShopView.gatherBillInfo}">
<h:outputText value="#{bill.notes}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="${i18n['bill.vat']}" />
......
......@@ -100,7 +100,7 @@
</h:panelGrid>
<br />
<h2><p:outputLabel value="#{i18n['bill.notes.title']}" /> </h2>
<p:inputTextarea cols="50" rendered="#{productShopView.gatherBillInfo}" value="#{productShopView.otherInfo}" label="#{i18n['otherInfo']}" />
<br />
......
......@@ -307,5 +307,19 @@ label {
#attachpopup {
display: block;
position: fixed;
border: 5px solid red;
border-radius: 11px;
left: 30%;
top: 30%;
width: 300px;
height: 100px;
background-color: white;
z-index: 999;
padding: 10px;
}
\ No newline at end of file
......@@ -12,8 +12,8 @@
<meta name="author" content="CodeCrew ry" />
<meta http-equiv="Content-Language" content="fi" />
<link rel="icon" href="#{request.contextPath}/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/templates/blipview/css/style.css" />
<link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/templates/blipview/css/general.css" />
<link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/templates/infoview/css/style.css" />
<link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/templates/infoview/css/general.css" />
<link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/templates/custom_components.css" />
<ui:insert name="headerdata" />
......
......@@ -30,6 +30,7 @@ bill.cancel = Cancel bill
bill.expires = Expires
bill.isExpired = Bill is expired
bill.markPaid.show = Show Mark paid -buttons
bill.notes.title = Lis\u00E4tietoja
bill.save = Save
bill.showPayButtons = Show pay buttons
......@@ -108,10 +109,15 @@ bortalApplication.user.WRITE_ROLES = Modify roles
card.massprint.title = Print all
cardCode.code = Koodi
cardCode.type = Tyyppi
cardTemplate.emptyCardTemplate = ----
code.inputfield = Sy\u00F6t\u00E4 viivakoodi
delete = Poista
error.contact = If this happens again, contact Info with the following code:
error.error = You have encountered an error.
......@@ -160,15 +166,23 @@ global.save = Save
httpsession.creationTime = Created
incomingView.attach = Liit\u00E4
incomingView.attachDialogTitle = Liit\u00E4 koodi k\u00E4ytt\u00E4j\u00E4\u00E4n
incomingView.cancel = Peruuta
incomingflow.alreadyShowingUser.message = Piipattu k\u00E4ytt\u00E4j\u00E4 on jo n\u00E4kyviss\u00E4
incomingflow.alreadyShowingUser.title = Valmiiksi valittu
incomingflow.cardCodes = Kortin koodit
incomingflow.codeattached.message = Piipattu koodi liitetty n\u00E4ytett\u00E4v\u00E4\u00E4n korttiin
incomingflow.codeattached.title = Koodi liittetty
incomingflow.giveplace = Merkitse annetuksi
incomingflow.groupmemberships = Paikkakoodit
incomingflow.invalidbarcode.message = Viivakoodilla ei l\u00F6ytynyt mit\u00E4\u00E4n
incomingflow.invalidbarcode.title = virheellinen koodi
incomingflow.printedCard = Kortti
incomingflow.usereditor = K\u00E4ytt\u00E4j\u00E4
incomingflow.usereditor.info = Tiedot
incomingflow.usereditor.picture = Kuvanotto
lanEventPrivateProperty.defaultValue = Default value
lanEventPrivateProperty.editProperty = Edit property
......
......@@ -79,6 +79,7 @@ bill.markPaid = Mark paid
bill.markPaid.show = Show Mark paid -buttons
bill.markedPaid = Bill marked paid
bill.notes = Notes
bill.notes.title = Huomioitavaa
bill.noticetime = Notice time
bill.ourReference = Our reference
bill.paidDate = Paid date
......@@ -192,6 +193,9 @@ bortalApplication.user.WRITE_ROLES = Modify roles
card.massprint.title = Print all
cardCode.code = Code
cardCode.type = Type
cardObjectData.create = Add object data
cardObjectData.edit = Edit
cardObjectData.save = Save
......@@ -280,6 +284,8 @@ compofile.uploadTime = Upload time
content.showContentEditLinks = Show content edit links
delete = Delete
discount.active = Active
discount.amountMax = Max amount
discount.amountMin = Min amount
......@@ -462,13 +468,19 @@ imagefile.file = Imagefile
importuser.file = File
importuser.template = Template
incomingView.attach = Attach
incomingView.attachDialogTitle = Attach code to user
incomingView.cancel = Cancel
incomingflow.alreadyShowingUser.message = We are already showing selected user
incomingflow.alreadyShowingUser.title = Already selected
incomingflow.barcode = Barcode
incomingflow.cardCodes = Barcodes in card
incomingflow.changereader = Change Reader
incomingflow.codeattached.message = Code attached to current user's card
incomingflow.codeattached.title = Code attached
incomingflow.giveplace = Mark given
incomingflow.groupmemberships = Group memberships
incomingflow.invalidbarcode.message = Nothing found with barcode, you can now add it to the user
incomingflow.invalidbarcode.title = Invalid code
incomingflow.multisearch = Multisearch
......@@ -477,6 +489,8 @@ incomingflow.search = Search
incomingflow.ungiveplace = Mark not given
incomingflow.userdetails = User details
incomingflow.usereditor = User
incomingflow.usereditor.info = User
incomingflow.usereditor.picture = Picturetake
infoview.back = Back
infoview.computerplace = Computer places
......
......@@ -79,6 +79,7 @@ bill.markPaid = Maksettu
bill.markPaid.show = N\u00E4yt\u00E4 Maksettu -napit
bill.markedPaid = Lasku merkitty maksetuksi.
bill.notes = Huomioita
bill.notes.title = Lis\u00E4tietoja
bill.noticetime = Huomautusaika
bill.ourReference = Myyj\u00E4n viite
bill.paidDate = Maksup\u00E4iv\u00E4
......@@ -193,6 +194,9 @@ bortalApplication.user.WRITE_ROLES = Saa muokata rooleja
card.massprint.title = Tulosta kaikki
cardCode.code = Koodi
cardCode.type = Tyyppi
cardObjectData.create = Liit\u00E4 kuvia
cardObjectData.edit = Muokkaa
cardObjectData.save = Tallenna
......@@ -281,6 +285,8 @@ compofile.uploadTime = Tallennusaika
content.showContentEditLinks = N\u00E4yt\u00E4 sis\u00E4ll\u00F6nmuokkauslinkit
delete = Poista
discount.active = Aktiivinen
discount.amountMax = Enimm\u00E4ism\u00E4\u00E4r\u00E4
discount.amountMin = V\u00E4himm\u00E4ism\u00E4\u00E4r\u00E4
......@@ -470,13 +476,19 @@ imagefile.file = Kuvatiedosto
importuser.file = Tiedosto
importuser.template = Malli
incomingView.attach = Liit\u00E4
incomingView.attachDialogTitle = Liit\u00E4 koodi k\u00E4ytt\u00E4j\u00E4\u00E4n
incomingView.cancel = Peruuta
incomingflow.alreadyShowingUser.message = Piipattu k\u00E4ytt\u00E4j\u00E4 on jo n\u00E4kyviss\u00E4
incomingflow.alreadyShowingUser.title = Valmiiksi valittu
incomingflow.barcode = Viivakoodi
incomingflow.cardCodes = Korttiin liitetyt koodit
incomingflow.changereader = Vaihda lukijaa
incomingflow.codeattached.message = Piipattu koodi liitetty aktiiviseen k\u00E4ytt\u00E4j\u00E4\u00E4n
incomingflow.codeattached.title = Koodi liitetty
incomingflow.giveplace = Merkitse annetuksi
incomingflow.groupmemberships = Konepaikat sek\u00E4 liput
incomingflow.invalidbarcode.message = Piipatulla koodilla ei l\u00F6ytynyt mit\u00E4\u00E4n, voit lis\u00E4t\u00E4 koodin k\u00E4ytt\u00E4j\u00E4\u00E4n
incomingflow.invalidbarcode.title = Virheellinen koodi
incomingflow.multisearch = Monihaku
......@@ -485,6 +497,8 @@ incomingflow.search = Etsi
incomingflow.ungiveplace = Ei olekkaan annettu
incomingflow.userdetails = K\u00E4ytt\u00E4j\u00E4n tiedot
incomingflow.usereditor = K\u00E4ytt\u00E4j\u00E4
incomingflow.usereditor.info = K\u00E4vij\u00E4
incomingflow.usereditor.picture = Kuvanotto
index.title = Etusivu
......
......@@ -122,9 +122,9 @@ public class UserView extends GenericCDIView {
printedCard = card;
}
/**
* This is the user that is currently logged in.
*
* @return
*/
@Produces
......@@ -154,9 +154,10 @@ public class UserView extends GenericCDIView {
}
/**
* This is the user we are currently editing, if that is not found we user current user
* This is the user we are currently editing, if that is not found we user
* current user
*
* @return
*/
@Produces
......@@ -171,7 +172,6 @@ public class UserView extends GenericCDIView {
canSave = getCurrentUser().equals(user) || permbean.hasPermission(UserPermission.MODIFY);
}
return user;
}
......@@ -376,8 +376,10 @@ public class UserView extends GenericCDIView {
return null;
}
PrintedCard card = null;
// still there, we can get real card and update it's barcodes
PrintedCard card = cardBean.checkPrintedCard(user);
card = cardBean.checkPrintedCard(user);
readerbean.assocCodeToCard(event, card);
......@@ -391,7 +393,7 @@ public class UserView extends GenericCDIView {
public String createUserAdduserView() {
userbean.createNewUser(user, getPassword());
//authView.executeAdduserAutoLogin(user, getPassword());
// authView.executeAdduserAutoLogin(user, getPassword());
return "/admin/adduser/update";
}
......@@ -414,8 +416,9 @@ public class UserView extends GenericCDIView {
}
/**
* This is user what is currently on "user" -variable, you should almost newer use this.
* Use getCurrentUser() -instead.
* This is user what is currently on "user" -variable, you should almost
* newer use this. Use getCurrentUser() -instead.
*
* @return
*/
public EventUser getUser() {
......
package fi.codecrew.moya.web.flow;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
/**
* Place to store userid between pageloads
* @author tuukka
*
*/
@Named
@SessionScoped
public class FlowUserContainer extends GenericCDIView {
private static final long serialVersionUID = 802344850073689859L;
private Integer userId;
/**
* Get current userid, remember to clear this, so there is no weird bugs
* @return
*/
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
}
package fi.codecrew.moya.web.flow;
import java.util.ArrayList;
import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.faces.application.FacesMessage;
......@@ -20,6 +22,7 @@ import fi.codecrew.moya.beans.PlaceGroupBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.enums.CardState;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.CardCode;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.GroupMembership;
import fi.codecrew.moya.model.PrintedCard;
......@@ -36,8 +39,7 @@ public class IncomingView extends GenericCDIView {
private static final long serialVersionUID = 802344850073689859L;
private static final Logger logger = LoggerFactory
.getLogger(IncomingView.class);
private static final Logger logger = LoggerFactory.getLogger(IncomingView.class);
/*
* @Inject
*
......@@ -55,6 +57,10 @@ public class IncomingView extends GenericCDIView {
@Inject
private ReaderNameContainer namecontainer;
@Inject
private FlowUserContainer flowUserContainer;
@EJB
private BarcodeBeanLocal barcodeBean;
......@@ -73,9 +79,13 @@ public class IncomingView extends GenericCDIView {
@EJB
private PlaceGroupBeanLocal placegroupBean;
@EJB
private CardTemplateBeanLocal cardTemplateBean;
// private String searchBarcode = "";
private ListDataModel<GroupMembership> memberlist = null;
private ListDataModel<CardCode> cardCodes;
public void initView() {
super.beginConversation();
......@@ -121,6 +131,14 @@ public class IncomingView extends GenericCDIView {
if (!initialized) {
logger.debug("INITIALIZING!!!!");
if(flowUserContainer.getUserId() != null && flowUserContainer.getUserId() > 0) {
userview.setUserid(flowUserContainer.getUserId());
}
flowUserContainer.setUserId(null);
// initializePoller();
initialized = true;
super.beginConversation();
......@@ -179,6 +197,7 @@ public class IncomingView extends GenericCDIView {
return;
}
cardBean.giveCard(userview.getSelectedUser(), autoGivePlaces);
userview.attachCodeToCard(eventToAttach);
......@@ -186,10 +205,14 @@ public class IncomingView extends GenericCDIView {
showAttachDialog = false;
userview.setUser(null); // refresh user
userview.setPrintedCard(null); // refresh card
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get("incomingflow.codeattached.title"), I18n.get("incomingflow.codeattached.message")));
}
public boolean isShowAttachDialog() {
return showAttachDialog;
}
......@@ -198,23 +221,27 @@ public class IncomingView extends GenericCDIView {
showAttachDialog = false;
}
/*
* public String selectUser() {
*
* ReaderEvent event = readerView.getReaderEvent();
*
* if(event == null) return null;
*
* EventUser user = event.getUser(); memberlist = null;
*
* if (user == null) { logger.debug("got no user from barcode"); return
* null; }
*
* logger.debug("got user from barcode");
*
* userview.setUser(user); //userview.prepareCardDownload(); return
* "incoming"; }
*/
public String selectUser() {
ReaderEvent event = readerView.getReaderEvent();
if (event == null)
return null;
EventUser user = event.getUser();
memberlist = null;
if (user == null) {
logger.debug("got no user from barcode");
return null;
}
logger.debug("got user from barcode");
userview.setUser(user);
userview.prepareCardDownload();
return "incoming";
}
public CardState getPrintedStatus() {
PrintedCard card = cardBean.checkPrintedCard(userview.getSelectedUser());
......@@ -237,6 +264,27 @@ public class IncomingView extends GenericCDIView {
return memberlist;
}
public ListDataModel<CardCode> getCardCodes() {
if(userview.getPrintedCard() == null)
return new ListDataModel<CardCode>(new ArrayList<CardCode>());
cardCodes = new ListDataModel<CardCode>(userview.getPrintedCard().getCardCodes());
return cardCodes;
}
public void deleteSelectedCode() {
if (cardCodes != null && cardCodes.isRowAvailable()) {
CardCode code = cardCodes.getRowData();
cardTemplateBean.removeCardCode(code);
// flush that fucker
userview.setPrintedCard(null);
}
}
public String givePlace() {
GroupMembership row = memberlist.getRowData();
if (row != null) {
......
......@@ -45,6 +45,9 @@ public class flowShopView extends GenericCDIView {
@Inject
private ReaderView readerView;
@Inject
private FlowUserContainer flowUserContainer;
public void initView() {
if(userId == null || userId == 0) {
......@@ -68,8 +71,10 @@ public class flowShopView extends GenericCDIView {
public void changeUser(SelectEvent event) {
if (infoView.getMultiSearchUser() != null) {
flowUserContainer.setUserId(infoView.getMultiSearchUser().getUser().getId());
super.navihandler.redirectNavigation("shop.jsf?userid=" + infoView.getMultiSearchUser().getUser().getId());
infoView.setMultiSearchUser(null);
}
}
......@@ -89,6 +94,7 @@ public class flowShopView extends GenericCDIView {
if (!user.equals(userView.getUser())) {
logger.info("found user {}, redirecting", user.getNick());
userView.setUser(user);
flowUserContainer.setUserId(user.getUser().getId());
super.navihandler.redirectNavigation("shop.jsf?userid=" + user.getUser().getId());
}
......
package fi.codecrew.moya.web.helper;
import java.util.HashMap;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import org.primefaces.event.ToggleEvent;
import org.primefaces.model.Visibility;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
@Named
@SessionScoped
public class FieldsetView extends GenericCDIView {
private static final Logger logger = LoggerFactory.getLogger(FieldsetView.class);
private static final long serialVersionUID = 5L;
private HashMap<String, Boolean> collapseStates = new HashMap<String, Boolean>();
public boolean isCollapsed(String id) {
if(collapseStates.containsKey(id) && collapseStates.get(id).booleanValue()) {
return true;
}
return false;
}
public void handleToggle(ToggleEvent event) {
logger.info("setting collapsed for id "+event.getComponent().getId());
logger.info("collapsed value is "+event.getVisibility());
collapseStates.put(event.getComponent().getId(), Boolean.valueOf(event.getVisibility() == Visibility.HIDDEN));
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!