Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Antti Väyrynen
/
Moya
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit e5f5f9ab
authored
Oct 30, 2010
by
Tuomas Riihimäki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gamekikostusta
1 parent
0a657a99
Hide whitespace changes
Inline
Side-by-side
Showing
51 changed files
with
914 additions
and
353 deletions
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/AccountEventBean.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/CardTemplateBean.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/FoodWaveBean.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/GameBean.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/PlaceBean.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/ReaderBean.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/NewsGroupFacade.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/PrintedCardFacade.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/UserFacade.java
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/CardTemplateBeanLocal.java
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/FoodWaveBeanLocal.java
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/GameBeanLocal.java
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/ReaderBeanLocal.java
code/LanBortalDatabase/src/fi/insomnia/bortal/enums/Permission.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/AccountEvent.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/FoodWave.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/FoodWaveTemplate.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/FoodWaveTemplate_.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/FoodWave_.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/GroupMembership.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/GroupMembership_.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/NewsGroup.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/Place.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/Poll.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/Poll_.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/PrintedCard.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/PrintedCard_.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/Reader.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/ReaderEvent.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/ReaderEvent_.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/RoleRight.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/User.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/User_.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/Vote.java
code/LanBortalWeb/WebContent/foodwave/create.xhtml
code/LanBortalWeb/WebContent/game/list.xhtml
code/LanBortalWeb/WebContent/game/start.xhtml
code/LanBortalWeb/WebContent/layout/insomnia1/sidebar-game.xhtml
code/LanBortalWeb/WebContent/layout/insomnia1/template.xhtml
code/LanBortalWeb/WebContent/resources/tools/foodwave/modify.xhtml
code/LanBortalWeb/WebContent/resources/tools/shop/readerevents.xhtml
code/LanBortalWeb/WebContent/shop/editGame.xhtml
code/LanBortalWeb/WebContent/user/adminSendImage.xhtml
code/LanBortalWeb/src/fi/insomnia/bortal/view/FoodwaveView.java
code/LanBortalWeb/src/fi/insomnia/bortal/view/GameView.java
code/LanBortalWeb/src/fi/insomnia/bortal/view/ReaderView.java
code/LanBortalWeb/src/fi/insomnia/bortal/view/RfidContainer.java
code/LanBortalWeb/src/fi/insomnia/bortal/view/RfidView.java
code/LanBortalWeb/src/fi/insomnia/bortal/view/helpers/RfidEvent.java
code/LanBortalWeb/src/resources/i18n.properties
code/LanBortalWeb/src/resources/i18n_fi.properties
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/AccountEventBean.java
View file @
e5f5f9a
...
...
@@ -99,16 +99,9 @@ public class AccountEventBean implements AccountEventBeanLocal {
if
(
prodentry
.
getKey
().
isPrepaidInstant
()
&&
prodentry
.
getKey
().
getPlaces
()
!=
null
&&
prodentry
.
getKey
().
getPlaces
().
size
()
>
0
)
{
logger
.
debug
(
"Prepaidplace"
);
placebean
.
lockPlaceProduct
(
shoppingUser
,
prodentry
.
getKey
(),
BigDecimal
.
ONE
);
// for (Place p : prodentry.getKey().getPlaces()) {
// if (!p.isTaken()) {
// logger.debug("Locking user {} to place {}", shoppingUser,p);
// placebean.lockPlaces(shoppingUser, p);
// break;
// }
// }
placebean
.
lockPlaceProduct
(
shoppingUser
,
prodentry
.
getKey
(),
BigDecimal
.
ONE
);
}
ac
.
setSeller
(
seller
);
shoppingUser
.
getAccountEvents
().
add
(
ac
);
...
...
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/CardTemplateBean.java
View file @
e5f5f9a
...
...
@@ -164,4 +164,9 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
return
printedcardfacade
.
merge
(
card
);
}
@Override
public
List
<
PrintedCard
>
findActiveCards
()
{
return
this
.
printedcardfacade
.
findAllEnabled
(
eventBean
.
getCurrentEvent
());
}
}
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/FoodWaveBean.java
0 → 100644
View file @
e5f5f9a
package
fi
.
insomnia
.
bortal
.
beans
;
import
javax.ejb.EJB
;
import
javax.ejb.Stateless
;
import
fi.insomnia.bortal.enums.Permission
;
import
fi.insomnia.bortal.enums.RolePermission
;
import
fi.insomnia.bortal.facade.FoodWaveTemplateFacade
;
import
fi.insomnia.bortal.model.FoodWaveTemplate
;
/**
* Session Bean implementation class FoodWaveBean
*/
@Stateless
public
class
FoodWaveBean
implements
FoodWaveBeanLocal
{
@EJB
private
UserBeanLocal
userbean
;
@EJB
private
FoodWaveTemplateFacade
fwtFacade
;
/**
* Default constructor.
*/
public
FoodWaveBean
()
{
// TODO Auto-generated constructor stub
}
@Override
public
void
createTemplate
(
FoodWaveTemplate
waveTemplate
)
{
userbean
.
fatalPermission
(
Permission
.
SHOP
,
RolePermission
.
WRITE
,
"Need SHOP:WRITE to create foodwave templates"
);
fwtFacade
.
create
(
waveTemplate
);
}
@Override
public
FoodWaveTemplate
saveTemplate
(
FoodWaveTemplate
waveTemplate
)
{
userbean
.
fatalPermission
(
Permission
.
SHOP
,
RolePermission
.
WRITE
,
"Need SHOP:WRITE to create foodwave templates"
);
return
fwtFacade
.
merge
(
waveTemplate
);
}
}
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/GameBean.java
0 → 100644
View file @
e5f5f9a
package
fi
.
insomnia
.
bortal
.
beans
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.List
;
import
javax.ejb.EJB
;
import
javax.ejb.Stateless
;
import
fi.insomnia.bortal.enums.Permission
;
import
fi.insomnia.bortal.enums.RolePermission
;
import
fi.insomnia.bortal.facade.NewsGroupFacade
;
import
fi.insomnia.bortal.facade.UserFacade
;
import
fi.insomnia.bortal.model.News
;
import
fi.insomnia.bortal.model.NewsGroup
;
/**
* Session Bean implementation class GameBean
*/
@Stateless
public
class
GameBean
implements
GameBeanLocal
{
@EJB
private
EventBeanLocal
eventbean
;
@EJB
private
NewsGroupFacade
ngfacade
;
/**
* Default constructor.
*/
public
GameBean
()
{
// TODO Auto-generated constructor stub
}
@Override
public
List
<
News
>
getNews
()
{
ArrayList
<
News
>
retlist
=
new
ArrayList
<
News
>();
NewsGroup
ng
=
ngfacade
.
findByName
(
eventbean
.
getCurrentEvent
(),
"game"
);
for
(
News
n
:
ng
.
getNews
())
{
if
((
n
.
getPublish
()
==
null
||
n
.
getPublish
().
after
(
Calendar
.
getInstance
()))
&&
(
n
.
getExpire
()
==
null
||
n
.
getExpire
().
before
(
Calendar
.
getInstance
())))
{
retlist
.
add
(
n
);
}
}
return
retlist
;
}
}
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/PlaceBean.java
View file @
e5f5f9a
...
...
@@ -211,7 +211,6 @@ public class PlaceBean implements PlaceBeanLocal {
@Override
public
void
lockPlaceProduct
(
User
user
,
Product
prod
,
BigDecimal
quantity
)
{
user
=
userbean
.
mergeChanges
(
user
);
BigDecimal
loop
=
BigDecimal
.
ZERO
;
LanEvent
event
=
eventBean
.
getCurrentEvent
();
...
...
@@ -221,11 +220,11 @@ public class PlaceBean implements PlaceBeanLocal {
for
(
Place
p
:
prod
.
getPlaces
())
{
if
(!
p
.
isTaken
())
{
// p.reserve(user);
p
.
buy
(
pg
);
GroupMembership
currgm
=
new
GroupMembership
(
event
,
pg
,
p
,
gmemfacade
.
createInviteToken
(
event
));
placeFacade
.
merge
(
p
);
currgm
.
setPlaceGroup
(
pg
);
pg
.
getMembers
().
add
(
currgm
);
loop
=
loop
.
add
(
BigDecimal
.
ONE
);
...
...
@@ -239,6 +238,7 @@ public class PlaceBean implements PlaceBeanLocal {
}
if
(!
gmassoc
)
{
logger
.
debug
(
"Group membership not found. Associating user {} to place {}"
,
user
.
getNick
(),
currgm
.
getPlaceReservation
().
getName
());
user
.
getGroupMemberships
().
add
(
currgm
);
currgm
.
setUser
(
user
);
}
...
...
@@ -248,7 +248,7 @@ public class PlaceBean implements PlaceBeanLocal {
}
}
}
pgfacade
.
create
(
pg
);
user
.
getPlaceGroups
().
add
(
pg
);
}
...
...
@@ -297,13 +297,11 @@ public class PlaceBean implements PlaceBeanLocal {
user
.
getPlaceGroups
().
add
(
pg
);
place
.
reserve
(
user
);
place
.
buy
(
pg
);
GroupMembership
newgm
=
new
GroupMembership
(
ev
,
pg
,
place
,
gmemfacade
.
createInviteToken
(
ev
));
pg
.
getMembers
().
add
(
newgm
);
boolean
foundGm
=
false
;
...
...
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/ReaderBean.java
View file @
e5f5f9a
...
...
@@ -5,6 +5,11 @@ import java.util.Calendar;
import
javax.ejb.EJB
;
import
javax.ejb.Stateless
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.insomnia.bortal.enums.Permission
;
import
fi.insomnia.bortal.enums.RolePermission
;
import
fi.insomnia.bortal.exceptions.BortalCatchableException
;
import
fi.insomnia.bortal.facade.GroupMembershipFacade
;
import
fi.insomnia.bortal.facade.PrintedCardFacade
;
...
...
@@ -34,13 +39,19 @@ public class ReaderBean implements ReaderBeanLocal {
private
GroupMembershipFacade
gmfacade
;
@EJB
private
CardTemplateBeanLocal
cardtemplatebean
;
@EJB
private
UserBeanLocal
userbean
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ReaderBean
.
class
);
@Override
public
ReaderEvent
checkTag
(
String
ident
,
String
tag
,
String
hash
)
{
LanEvent
ev
=
eventbean
.
getCurrentEvent
();
PrintedCard
card
=
cardfacade
.
findByRfid
(
ev
,
tag
);
ReaderEvent
ret
=
null
;
logger
.
debug
(
"Found card by rfid: {}"
,
card
);
if
(
card
!=
null
)
{
ret
=
createReaderEvent
(
ident
,
card
);
}
...
...
@@ -66,11 +77,34 @@ public class ReaderBean implements ReaderBeanLocal {
}
private
ReaderEvent
createReaderEvent
(
String
readerIdent
,
PrintedCard
card
)
{
LanEvent
ev
=
eventbean
.
getCurrentEvent
();
Reader
reader
=
readerfacade
.
findOrCreateByIdent
(
ev
,
readerIdent
);
logger
.
debug
(
"Creating new readerevent for reader {} and events {}"
,
reader
,
reader
.
getMaxEvents
());
logger
.
debug
(
"maxevents for reder {}. readerevents at the moment {}"
,
reader
.
getMaxEvents
(),
reader
.
getEvents
().
size
());
if
(
reader
.
getMaxEvents
()
>
0
&&
reader
.
getMaxEvents
()
<=
reader
.
getEvents
().
size
())
{
logger
.
debug
(
"Max events {} found. returning null"
);
return
null
;
}
if
(
reader
.
getGamepoints
()
>
0
&&
card
.
getUser
()
!=
null
)
{
logger
.
debug
(
"Checking if user has been here"
);
for
(
ReaderEvent
oldRe
:
card
.
getReaderEvents
())
{
if
(
oldRe
.
getReader
().
getId
().
equals
(
reader
.
getId
()))
{
logger
.
debug
(
"Found already an event for user! returning null"
);
return
null
;
}
}
}
ReaderEvent
ret
=
new
ReaderEvent
(
ev
,
Calendar
.
getInstance
(),
card
,
reader
);
readerEventFacade
.
create
(
ret
);
ret
.
setGamePoint
(
reader
.
getGamepoints
());
ret
.
setReader
(
reader
);
reader
.
getEvents
().
add
(
ret
);
card
.
getReaderEvents
().
add
(
ret
);
cardfacade
.
merge
(
card
);
return
ret
;
}
...
...
@@ -80,4 +114,10 @@ public class ReaderBean implements ReaderBeanLocal {
return
createReaderEvent
(
readerIdent
,
card
);
}
@Override
public
ReaderEvent
merge
(
ReaderEvent
e
)
{
userbean
.
fatalPermission
(
Permission
.
GAME
,
RolePermission
.
EXECUTE
,
"Tried to change readerevent"
);
return
readerEventFacade
.
merge
(
e
);
}
}
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/NewsGroupFacade.java
View file @
e5f5f9a
...
...
@@ -4,6 +4,9 @@ import javax.ejb.LocalBean;
import
javax.ejb.Stateless
;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.TypedQuery
;
import
fi.insomnia.bortal.model.LanEvent
;
import
fi.insomnia.bortal.model.NewsGroup
;
@Stateless
...
...
@@ -21,4 +24,16 @@ public class NewsGroupFacade extends EventChildGenericFacade<NewsGroup> {
return
em
;
}
public
NewsGroup
findByName
(
LanEvent
e
,
String
name
)
{
TypedQuery
<
NewsGroup
>
q
=
em
.
createQuery
(
"select ng from NewsGroup ng where ng.name = :name"
,
NewsGroup
.
class
);
q
.
setParameter
(
"name"
,
name
);
NewsGroup
ret
=
getSingleNullableResult
(
q
);
if
(
ret
==
null
)
{
ret
=
new
NewsGroup
(
e
);
ret
.
setName
(
name
);
this
.
create
(
ret
);
}
return
ret
;
}
}
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/PrintedCardFacade.java
View file @
e5f5f9a
...
...
@@ -50,4 +50,11 @@ public class PrintedCardFacade extends EventChildGenericFacade<PrintedCard> {
q
.
setParameter
(
"eventid"
,
event
.
getId
());
return
getSingleNullableResult
(
q
);
}
public
List
<
PrintedCard
>
findAllEnabled
(
LanEvent
currentEvent
)
{
TypedQuery
<
PrintedCard
>
q
=
em
.
createQuery
(
"select pc from PrintedCard pc where pc.id.eventId = :eventid and pc.enabled = true"
,
PrintedCard
.
class
);
q
.
setParameter
(
"eventid"
,
currentEvent
.
getId
());
return
q
.
getResultList
();
}
}
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/UserFacade.java
View file @
e5f5f9a
...
...
@@ -6,11 +6,13 @@ import javax.ejb.LocalBean;
import
javax.ejb.Stateless
;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.Query
;
import
javax.persistence.TypedQuery
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.insomnia.bortal.model.LanEvent
;
import
fi.insomnia.bortal.model.User
;
@Stateless
...
...
@@ -46,4 +48,5 @@ public class UserFacade extends GenericFacade<Integer, User> {
return
this
.
search
(
name
,
NAMEFIELDS
,
"login"
);
}
}
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/CardTemplateBeanLocal.java
View file @
e5f5f9a
...
...
@@ -25,4 +25,6 @@ public interface CardTemplateBeanLocal {
PrintedCard
setRfidUid
(
String
tag
,
PrintedCard
card
);
List
<
PrintedCard
>
findActiveCards
();
}
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/FoodWaveBeanLocal.java
0 → 100644
View file @
e5f5f9a
package
fi
.
insomnia
.
bortal
.
beans
;
import
javax.ejb.Local
;
import
fi.insomnia.bortal.model.FoodWaveTemplate
;
@Local
public
interface
FoodWaveBeanLocal
{
void
createTemplate
(
FoodWaveTemplate
waveTemplate
);
FoodWaveTemplate
saveTemplate
(
FoodWaveTemplate
waveTemplate
);
}
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/GameBeanLocal.java
0 → 100644
View file @
e5f5f9a
package
fi
.
insomnia
.
bortal
.
beans
;
import
java.util.List
;
import
javax.ejb.Local
;
import
fi.insomnia.bortal.model.News
;
@Local
public
interface
GameBeanLocal
{
List
<
News
>
getNews
();
}
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/ReaderBeanLocal.java
View file @
e5f5f9a
...
...
@@ -19,4 +19,7 @@ public interface ReaderBeanLocal {
ReaderEvent
assocTagToCard
(
String
tag
,
String
readerIdent
,
PrintedCard
card
);
ReaderEvent
merge
(
ReaderEvent
e
);
}
code/LanBortalDatabase/src/fi/insomnia/bortal/enums/Permission.java
View file @
e5f5f9a
...
...
@@ -22,7 +22,8 @@ public enum Permission {
MAP
(
"view maps(r), Modify(w), reserve places from maps(x)"
),
ROLE_MANAGEMENT
(
"User has right to view(r), modify(w) and assign(x) roles"
),
PRODUCT
(
"View(r), modify(w), and shop(x) products"
),
SHOP
(
"View shopped events(r), Modify AccountEvents() and Shop(x)"
);
SHOP
(
"View shopped events(r), Modify AccountEvents() and Shop(x)"
),
GAME
(
"View(r) own, write(w) modify, view all(X)"
);
private
String
description
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
Permission
.
class
);
...
...
code/LanBortalDatabase/src/fi/insomnia/bortal/model/AccountEvent.java
View file @
e5f5f9a
...
...
@@ -39,12 +39,13 @@ import javax.persistence.TemporalType;
@NamedQuery
(
name
=
"AccountEvent.findByDelivered"
,
query
=
"SELECT a FROM AccountEvent a WHERE a.delivered = :delivered"
)
})
public
class
AccountEvent
extends
GenericEventChild
{
/**
*
*/
private
static
final
long
serialVersionUID
=
2588419823225148100L
;
@Column
(
name
=
"cash"
,
nullable
=
false
)
@Column
(
name
=
"cash"
,
nullable
=
false
)
private
boolean
cash
=
false
;
/**
* What 1 unit of this product costs.
...
...
@@ -110,7 +111,7 @@ public class AccountEvent extends GenericEventChild {
* What discounts user has for this account event. Some magic is applied to
* calculate these.. :)
*/
@OneToMany
(
mappedBy
=
"accountEvent"
,
cascade
=
CascadeType
.
ALL
)
@OneToMany
(
mappedBy
=
"accountEvent"
,
cascade
=
CascadeType
.
ALL
)
private
List
<
DiscountInstance
>
discountInstances
=
new
ArrayList
<
DiscountInstance
>();
/**
...
...
code/LanBortalDatabase/src/fi/insomnia/bortal/model/FoodWave.java
View file @
e5f5f9a
...
...
@@ -8,34 +8,36 @@ import java.util.Calendar;
import
java.util.List
;
import
javax.persistence.Column
;
import
javax.persistence.EmbeddedId
;
import
javax.persistence.Entity
;
import
javax.persistence.JoinColumn
;
import
javax.persistence.JoinColumns
;
import
javax.persistence.Lob
;
import
javax.persistence.ManyToOne
;
import
javax.persistence.NamedQueries
;
import
javax.persistence.NamedQuery
;
import
javax.persistence.OneToMany
;
import
javax.persistence.Table
;
import
javax.persistence.Temporal
;
import
javax.persistence.TemporalType
;
import
javax.persistence.Version
;
/**
*
*/
@Entity
@Table
(
name
=
"food_waves"
)
@NamedQueries
(
{
@NamedQueries
({
@NamedQuery
(
name
=
"FoodWave.findAll"
,
query
=
"SELECT f FROM FoodWave f"
),
@NamedQuery
(
name
=
"FoodWave.findByName"
,
query
=
"SELECT f FROM FoodWave f WHERE f.name = :name"
),
@NamedQuery
(
name
=
"FoodWave.findByDescription"
,
query
=
"SELECT f FROM FoodWave f WHERE f.description = :description"
),
@NamedQuery
(
name
=
"FoodWave.findByTime"
,
query
=
"SELECT f FROM FoodWave f WHERE f.time = :time"
),
@NamedQuery
(
name
=
"FoodWave.findByClosed"
,
query
=
"SELECT f FROM FoodWave f WHERE f.closed = :closed"
)
})
public
class
FoodWave
implements
EventChildInterface
{
public
class
FoodWave
extends
GenericEventChild
{
private
static
final
long
serialVersionUID
=
1L
;
@EmbeddedId
private
EventPk
id
;
/**
*
*/
private
static
final
long
serialVersionUID
=
9221716203467295049L
;
@Column
(
name
=
"wave_name"
,
nullable
=
false
)
private
String
name
;
...
...
@@ -54,19 +56,18 @@ public class FoodWave implements EventChildInterface {
@OneToMany
(
mappedBy
=
"foodWave"
)
private
List
<
AccountEvent
>
accountEvents
;
@Version
@Column
(
nullable
=
false
)
private
int
jpaVersionField
=
0
;
@JoinColumns
({
@JoinColumn
(
name
=
"template_id"
,
referencedColumnName
=
"id"
,
nullable
=
false
),
@JoinColumn
(
name
=
"event_id"
,
referencedColumnName
=
"event_id"
,
nullable
=
false
,
updatable
=
false
,
insertable
=
false
)
})
@ManyToOne
private
FoodWaveTemplate
template
;
public
FoodWave
()
{
}
public
FoodWave
(
LanEvent
event
)
{
this
.
id
=
new
EventPk
(
event
);
super
();
}
public
FoodWave
(
LanEvent
event
,
String
waveName
,
boolean
waveClosed
)
{
this
(
event
);
super
(
event
);
this
.
name
=
waveName
;
this
.
closed
=
waveClosed
;
}
...
...
@@ -112,64 +113,15 @@ public class FoodWave implements EventChildInterface {
}
@Override
public
int
hashCode
()
{
int
hash
=
0
;
hash
+=
(
getId
()
!=
null
?
getId
().
hashCode
()
:
0
);
return
hash
;
}
@Override
public
boolean
equals
(
Object
object
)
{
// TODO: Warning - this method won't work in the case the id
// fields are
// not set
if
(!(
object
instanceof
FoodWave
))
{
return
false
;
}
FoodWave
other
=
(
FoodWave
)
object
;
if
((
this
.
getId
()
==
null
&&
other
.
getId
()
!=
null
)
||
(
this
.
getId
()
!=
null
&&
!
this
.
id
.
equals
(
other
.
id
)))
{
return
false
;
}
return
true
;
}
@Override
public
String
toString
()
{
return
"fi.insomnia.bortal.model.FoodWave[id="
+
getId
()
+
"]"
;
}
/**
* @return the id
*/
@Override
public
EventPk
getId
()
{
return
id
;
}
/**
* @param id
* the id to set
*/
@Override
public
void
setId
(
EventPk
id
)
{
this
.
id
=
id
;
public
void
setTemplate
(
FoodWaveTemplate
template
)
{
this
.
template
=
template
;
}
/**
* @return the jpaVersionField
*/
@Override
public
int
getJpaVersionField
()
{
return
jpaVersionField
;
}
/**
* @param jpaVersionField
* the jpaVersionField to set
*/
@Override
public
void
setJpaVersionField
(
int
jpaVersionField
)
{
this
.
jpaVersionField
=
jpaVersionField
;
public
FoodWaveTemplate
getTemplate
()
{
return
template
;
}
}
code/LanBortalDatabase/src/fi/insomnia/bortal/model/FoodWaveTemplate.java
View file @
e5f5f9a
...
...
@@ -7,30 +7,27 @@ package fi.insomnia.bortal.model;
import
java.util.List
;
import
javax.persistence.Column
;
import
javax.persistence.EmbeddedId
;
import
javax.persistence.Entity
;
import
javax.persistence.Lob
;
import
javax.persistence.ManyToMany
;
import
javax.persistence.NamedQueries
;
import
javax.persistence.NamedQuery
;
import
javax.persistence.OneToMany
;
import
javax.persistence.Table
;
import
javax.persistence.Version
;
/**
*
*/
@Entity
@Table
(
name
=
"food_wave_templates"
)
@NamedQueries
(
{
@NamedQueries
({
@NamedQuery
(
name
=
"FoodWaveTemplate.findAll"
,
query
=
"SELECT f FROM FoodWaveTemplate f"
),
@NamedQuery
(
name
=
"FoodWaveTemplate.findByName"
,
query
=
"SELECT f FROM FoodWaveTemplate f WHERE f.name = :name"
),
@NamedQuery
(
name
=
"FoodWaveTemplate.findByDescription"
,
query
=
"SELECT f FROM FoodWaveTemplate f WHERE f.description = :description"
)
})
public
class
FoodWaveTemplate
implements
EventChildInterface
{
public
class
FoodWaveTemplate
extends
GenericEventChild
{
private
static
final
long
serialVersionUID
=
1L
;
@EmbeddedId
private
EventPk
id
;
@Column
(
name
=
"template_name"
,
nullable
=
false
)
private
String
name
;
...
...
@@ -42,19 +39,18 @@ public class FoodWaveTemplate implements EventChildInterface {
@ManyToMany
(
mappedBy
=
"foodWaveTemplates"
)
private
List
<
Product
>
products
;
@Version
@Column
(
nullable
=
false
)
private
int
jpaVersionField
=
0
;
@OneToMany
(
mappedBy
=
"template"
)
private
List
<
FoodWave
>
foodwaves
;
public
FoodWaveTemplate
()
{
}
public
FoodWaveTemplate
(
LanEvent
event
)
{
this
.
id
=
new
EventPk
(
event
);
super
(
event
);
}
public
FoodWaveTemplate
(
LanEvent
event
,
String
templateName
)
{
this
(
event
);
super
(
event
);
this
.
name
=
templateName
;
}
...
...
@@ -75,28 +71,6 @@ public class FoodWaveTemplate implements EventChildInterface {
}
@Override
public
int
hashCode
()
{
int
hash
=
0
;
hash
+=
(
getId
()
!=
null
?
getId
().
hashCode
()
:
0
);
return
hash
;
}
@Override
public
boolean
equals
(
Object
object
)
{
// TODO: Warning - this method won't work in the case the id fields are
// not set
if
(!(
object
instanceof
FoodWaveTemplate
))
{
return
false
;
}
FoodWaveTemplate
other
=
(
FoodWaveTemplate
)
object
;
if
((
this
.
getId
()
==
null
&&
other
.
getId
()
!=
null
)
||
(
this
.
getId
()
!=
null
&&
!
this
.
id
.
equals
(
other
.
id
)))
{
return
false
;
}
return
true
;
}
@Override
public
String
toString
()
{
return
"fi.insomnia.bortal.model.FoodWaveTemplate[id="
+
getId
()
+
"]"
;
}
...
...
@@ -116,37 +90,12 @@ public class FoodWaveTemplate implements EventChildInterface {
this
.
products
=
products
;
}
/**
* @return the id
*/
@Override
public
EventPk
getId
()
{
return
id
;
public
void
setFoodwaves
(
List
<
FoodWave
>
foodwaves
)
{
this
.
foodwaves
=
foodwaves
;
}
/**
* @param id
* the id to set
*/
@Override
public
void
setId
(
EventPk
id
)
{
this
.
id
=
id
;
}
/**
* @return the jpaVersionField
*/
@Override
public
int
getJpaVersionField
()
{
return
jpaVersionField
;
public
List
<
FoodWave
>
getFoodwaves
()
{
return
foodwaves
;
}
/**
* @param jpaVersionField
* the jpaVersionField to set
*/
@Override
public
void
setJpaVersionField
(
int
jpaVersionField
)
{
this
.
jpaVersionField
=
jpaVersionField
;
}
}
code/LanBortalDatabase/src/fi/insomnia/bortal/model/FoodWaveTemplate_.java
View file @
e5f5f9a
...
...
@@ -5,12 +5,11 @@ import javax.persistence.metamodel.ListAttribute;
import
javax.persistence.metamodel.SingularAttribute
;
import
javax.persistence.metamodel.StaticMetamodel
;
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-2
8T16:55:24.736
+0300"
)
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-2
9T06:32:56.507
+0300"
)
@StaticMetamodel
(
FoodWaveTemplate
.
class
)
public
class
FoodWaveTemplate_
{
public
static
volatile
SingularAttribute
<
FoodWaveTemplate
,
EventPk
>
id
;
public
class
FoodWaveTemplate_
extends
GenericEventChild_
{
public
static
volatile
SingularAttribute
<
FoodWaveTemplate
,
String
>
name
;
public
static
volatile
SingularAttribute
<
FoodWaveTemplate
,
String
>
description
;
public
static
volatile
ListAttribute
<
FoodWaveTemplate
,
Product
>
products
;
public
static
volatile
SingularAttribute
<
FoodWaveTemplate
,
Integer
>
jpaVersionField
;
public
static
volatile
ListAttribute
<
FoodWaveTemplate
,
FoodWave
>
foodwaves
;
}
code/LanBortalDatabase/src/fi/insomnia/bortal/model/FoodWave_.java
View file @
e5f5f9a
...
...
@@ -6,14 +6,13 @@ import javax.persistence.metamodel.ListAttribute;
import
javax.persistence.metamodel.SingularAttribute
;
import
javax.persistence.metamodel.StaticMetamodel
;
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-2
8T16:55:24.730
+0300"
)
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-2
9T06:30:51.196
+0300"
)
@StaticMetamodel
(
FoodWave
.
class
)
public
class
FoodWave_
{
public
static
volatile
SingularAttribute
<
FoodWave
,
EventPk
>
id
;
public
class
FoodWave_
extends
GenericEventChild_
{
public
static
volatile
SingularAttribute
<
FoodWave
,
String
>
name
;
public
static
volatile
SingularAttribute
<
FoodWave
,
String
>
description
;
public
static
volatile
SingularAttribute
<
FoodWave
,
Calendar
>
time
;
public
static
volatile
SingularAttribute
<
FoodWave
,
Boolean
>
closed
;
public
static
volatile
ListAttribute
<
FoodWave
,
AccountEvent
>
accountEvents
;
public
static
volatile
SingularAttribute
<
FoodWave
,
Integer
>
jpaVersionField
;
public
static
volatile
SingularAttribute
<
FoodWave
,
FoodWaveTemplate
>
template
;
}
code/LanBortalDatabase/src/fi/insomnia/bortal/model/GroupMembership.java
View file @
e5f5f9a
...
...
@@ -4,10 +4,11 @@
*/
package
fi
.
insomnia
.
bortal
.
model
;
import
static
javax
.
persistence
.
CascadeType
.
ALL
;
import
java.util.Calendar
;
import
javax.persistence.Column
;
import
javax.persistence.EmbeddedId
;
import
javax.persistence.Entity
;
import
javax.persistence.JoinColumn
;
import
javax.persistence.JoinColumns
;
...
...
@@ -19,9 +20,6 @@ import javax.persistence.Table;
import
javax.persistence.Temporal
;
import
javax.persistence.TemporalType
;
import
javax.persistence.UniqueConstraint
;
import
javax.persistence.Version
;
import
fi.insomnia.bortal.utilities.PasswordFunctions
;
/**
*
...
...
@@ -35,11 +33,9 @@ import fi.insomnia.bortal.utilities.PasswordFunctions;
@NamedQuery
(
name
=
"GroupMembership.findByInviteAccepted"
,
query
=
"SELECT g FROM GroupMembership g WHERE g.inviteAccepted = :inviteAccepted"
),
@NamedQuery
(
name
=
"GroupMembership.findByInviteEmail"
,
query
=
"SELECT g FROM GroupMembership g WHERE g.inviteEmail = :inviteEmail"
),
@NamedQuery
(
name
=
"GroupMembership.findByInviteName"
,
query
=
"SELECT g FROM GroupMembership g WHERE g.inviteName = :inviteName"
)
})
public
class
GroupMembership
implements
EventChildInterface
{
public
class
GroupMembership
extends
GenericEventChild
{
private
static
final
long
serialVersionUID
=
1L
;
@EmbeddedId
private
EventPk
id
;
@Column
(
name
=
"invite_token"
,
unique
=
true
,
nullable
=
false
)
private
String
inviteToken
;
...
...
@@ -57,7 +53,7 @@ public class GroupMembership implements EventChildInterface {
@JoinColumns
({
@JoinColumn
(
name
=
"group_id"
,
referencedColumnName
=
"id"
,
nullable
=
false
),
@JoinColumn
(
name
=
"event_id"
,
referencedColumnName
=
"event_id"
,
nullable
=
false
,
updatable
=
false
,
insertable
=
false
)
})
@ManyToOne
(
optional
=
false
)
@ManyToOne
(
optional
=
false
,
cascade
=
ALL
)
private
PlaceGroup
placeGroup
;
@JoinColumns
({
...
...
@@ -74,15 +70,11 @@ public class GroupMembership implements EventChildInterface {
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
Calendar
enteredEvent
;
@Version
@Column
(
nullable
=
false
)
private
int
jpaVersionField
=
0
;
public
GroupMembership
()
{
}
public
GroupMembership
(
LanEvent
event
,
PlaceGroup
pg
,
Place
p
,
String
token
)
{
this
.
id
=
new
EventPk
(
event
);
super
(
event
);
this
.
setPlaceGroup
(
pg
);
this
.
setPlaceReservation
(
p
);
this
.
inviteToken
=
token
;
...
...
@@ -136,67 +128,13 @@ public class GroupMembership implements EventChildInterface {
this
.
user
=
usersId
;
}
@Override
public
int
hashCode
()
{
int
hash
=
0
;
hash
+=
(
getId
()
!=
null
?
getId
().
hashCode
()
:
0
);
return
hash
;
}
@Override
public
boolean
equals
(
Object
object
)
{
// TODO: Warning - this method won't work in the case the id fields are
// not set
if
(!(
object
instanceof
GroupMembership
))
{
return
false
;
}
GroupMembership
other
=
(
GroupMembership
)
object
;
if
((
this
.
getId
()
==
null
&&
other
.
getId
()
!=
null
)
||
(
this
.
getId
()
!=
null
&&
!
this
.
id
.
equals
(
other
.
id
)))
{
return
false
;
}
return
true
;
}
@Override
public
String
toString
()
{
return
"fi.insomnia.bortal.model.GroupMembership[id="
+
getId
()
+
"]"
;
}
/**
* @return the id
*/
@Override
public
EventPk
getId
()
{
return
id
;
}
/**
* @param id
* the id to set
*/
@Override
public
void
setId
(
EventPk
id
)
{
this
.
id
=
id
;
}
/**
* @return the jpaVersionField
*/
@Override
public
int
getJpaVersionField
()
{
return
jpaVersionField
;
}
/**
* @param jpaVersionField
* the jpaVersionField to set
*/
@Override
public
void
setJpaVersionField
(
int
jpaVersionField
)
{
this
.
jpaVersionField
=
jpaVersionField
;
}
/**
* @return the enteredEvent
*/
...
...
code/LanBortalDatabase/src/fi/insomnia/bortal/model/GroupMembership_.java
View file @
e5f5f9a
...
...
@@ -5,10 +5,9 @@ import javax.annotation.Generated;
import
javax.persistence.metamodel.SingularAttribute
;
import
javax.persistence.metamodel.StaticMetamodel
;
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-2
8T16:55:24.777
+0300"
)
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-2
9T15:29:20.473
+0300"
)
@StaticMetamodel
(
GroupMembership
.
class
)
public
class
GroupMembership_
{
public
static
volatile
SingularAttribute
<
GroupMembership
,
EventPk
>
id
;
public
class
GroupMembership_
extends
GenericEventChild_
{
public
static
volatile
SingularAttribute
<
GroupMembership
,
String
>
inviteToken
;
public
static
volatile
SingularAttribute
<
GroupMembership
,
Calendar
>
inviteAccepted
;
public
static
volatile
SingularAttribute
<
GroupMembership
,
String
>
inviteEmail
;
...
...
@@ -17,5 +16,4 @@ public class GroupMembership_ {
public
static
volatile
SingularAttribute
<
GroupMembership
,
Place
>
placeReservation
;
public
static
volatile
SingularAttribute
<
GroupMembership
,
User
>
user
;
public
static
volatile
SingularAttribute
<
GroupMembership
,
Calendar
>
enteredEvent
;
public
static
volatile
SingularAttribute
<
GroupMembership
,
Integer
>
jpaVersionField
;
}
code/LanBortalDatabase/src/fi/insomnia/bortal/model/NewsGroup.java
View file @
e5f5f9a
...
...
@@ -17,6 +17,7 @@ import javax.persistence.ManyToMany;
import
javax.persistence.NamedQueries
;
import
javax.persistence.NamedQuery
;
import
javax.persistence.OneToMany
;
import
javax.persistence.OrderBy
;
import
javax.persistence.Table
;
import
javax.persistence.Version
;
...
...
@@ -48,6 +49,7 @@ public class NewsGroup implements EventChildInterface {
@Column
(
name
=
"priority"
,
nullable
=
false
)
private
int
priority
;
@OrderBy
(
"priority"
)
@OneToMany
(
cascade
=
CascadeType
.
ALL
,
mappedBy
=
"group"
)
private
List
<
News
>
news
;
...
...
@@ -66,6 +68,7 @@ public class NewsGroup implements EventChildInterface {
public
NewsGroup
()
{
}
public
NewsGroup
(
LanEvent
event
)
{
this
.
id
=
new
EventPk
(
event
);
}
...
...
@@ -100,6 +103,7 @@ public class NewsGroup implements EventChildInterface {
this
.
priority
=
priority
;
}
@OrderBy
(
"id"
)
public
List
<
News
>
getNews
()
{
return
news
;
}
...
...
code/LanBortalDatabase/src/fi/insomnia/bortal/model/Place.java
View file @
e5f5f9a
...
...
@@ -72,7 +72,7 @@ public class Place extends GenericEventChild {
* Which group has bought the place
*/
@JoinColumns
({
@JoinColumn
(
name
=
"group_id"
,
referencedColumnName
=
"id"
,
updatable
=
true
,
insertable
=
tru
e
),
@JoinColumn
(
name
=
"group_id"
,
referencedColumnName
=
"id"
,
nullable
=
fals
e
),
@JoinColumn
(
name
=
"event_id"
,
referencedColumnName
=
"event_id"
,
nullable
=
false
,
updatable
=
false
,
insertable
=
false
)
})
@ManyToOne
private
PlaceGroup
group
;
...
...
code/LanBortalDatabase/src/fi/insomnia/bortal/model/Poll.java
0 → 100644
View file @
e5f5f9a
package
fi
.
insomnia
.
bortal
.
model
;
import
fi.insomnia.bortal.model.GenericEntity
;
import
java.io.Serializable
;
import
java.util.Calendar
;
import
javax.persistence.*
;
import
static
javax
.
persistence
.
TemporalType
.
TIMESTAMP
;
/**
* Entity implementation class for Entity: Poll
*
*/
@Entity
public
class
Poll
extends
GenericEntity
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
-
5655775315722028984L
;
@Temporal
(
TIMESTAMP
)
private
Calendar
begin
=
Calendar
.
getInstance
();
@Temporal
(
TIMESTAMP
)
private
Calendar
end
=
Calendar
.
getInstance
();
public
Poll
()
{
super
();
}
public
Calendar
getBegin
()
{
return
begin
;
}
public
void
setBegin
(
Calendar
begin
)
{
this
.
begin
=
begin
;
}
public
Calendar
getEnd
()
{
return
end
;
}
public
void
setEnd
(
Calendar
end
)
{
this
.
end
=
end
;
}
}
code/LanBortalDatabase/src/fi/insomnia/bortal/model/Poll_.java
0 → 100644
View file @
e5f5f9a
package
fi
.
insomnia
.
bortal
.
model
;
import
java.util.Calendar
;
import
javax.annotation.Generated
;
import
javax.persistence.metamodel.SingularAttribute
;
import
javax.persistence.metamodel.StaticMetamodel
;
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-30T20:48:08.561+0300"
)
@StaticMetamodel
(
Poll
.
class
)
public
class
Poll_
extends
GenericEntity_
{
public
static
volatile
SingularAttribute
<
Poll
,
Calendar
>
begin
;
public
static
volatile
SingularAttribute
<
Poll
,
Calendar
>
end
;
}
code/LanBortalDatabase/src/fi/insomnia/bortal/model/PrintedCard.java
View file @
e5f5f9a
...
...
@@ -5,9 +5,12 @@
package
fi
.
insomnia
.
bortal
.
model
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Comparator
;
import
java.util.List
;
import
javax.faces.model.ListDataModel
;
import
javax.persistence.CascadeType
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
...
...
@@ -20,8 +23,12 @@ import javax.persistence.OneToMany;
import
javax.persistence.Table
;
import
javax.persistence.Temporal
;
import
javax.persistence.TemporalType
;
import
javax.persistence.Transient
;
import
javax.persistence.UniqueConstraint
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
/**
*
*/
...
...
@@ -33,7 +40,6 @@ import javax.persistence.UniqueConstraint;
@NamedQuery
(
name
=
"PrintedCard.findAll"
,
query
=
"SELECT p FROM PrintedCard p"
),
@NamedQuery
(
name
=
"PrintedCard.findByPrintTime"
,
query
=
"SELECT p FROM PrintedCard p WHERE p.printTime = :printTime"
),
@NamedQuery
(
name
=
"PrintedCard.findByBarcode"
,
query
=
"SELECT p FROM PrintedCard p WHERE p.barcode = :barcode"
),
@NamedQuery
(
name
=
"PrintedCard.findByEnabled"
,
query
=
"SELECT p FROM PrintedCard p WHERE p.enabled = :enabled"
),
@NamedQuery
(
name
=
"PrintedCard.findByRfidUid"
,
query
=
"SELECT p FROM PrintedCard p WHERE p.rfidUid = :rfidUid"
)
})
public
class
PrintedCard
extends
GenericEventChild
{
...
...
@@ -168,4 +174,53 @@ public class PrintedCard extends GenericEventChild {
return
printCount
;
}
@Transient
private
Integer
gamepoints
=
null
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
PrintedCard
.
class
);
public
static
final
Comparator
<
PrintedCard
>
GAMEPOINT_COMPARATOR
=
new
Comparator
<
PrintedCard
>()
{
@Override
public
int
compare
(
PrintedCard
o1
,
PrintedCard
o2
)
{
int
ret
=
o2
.
getGamepoints
().
compareTo
(
o1
.
getGamepoints
());
if
(
ret
==
0
&&
o1
.
getUser
().
getNick
()
!=
null
&&
o2
.
getUser
().
getNick
()
!=
null
)
{
ret
=
o1
.
getUser
().
getNick
().
compareTo
(
o2
.
getUser
().
getNick
());
}
return
ret
;
}
};
public
Integer
getGamepoints
()
{
if
(
gamepoints
==
null
)
{
synchronized
(
this
)
{
if
(
gamepoints
==
null
)
{
gamepoints
=
0
;
for
(
ReaderEvent
re
:
this
.
getReaderEvents
())
{
gamepoints
+=
re
.
getGamePoint
();
}
}
}
}
return
gamepoints
;
}
@Transient
private
ListDataModel
<
ReaderEvent
>
revents
;
public
ListDataModel
<
ReaderEvent
>
getGameCards
()
{
if
(
revents
==
null
)
{
List
<
ReaderEvent
>
ev
=
this
.
getReaderEvents
();
ArrayList
<
ReaderEvent
>
ret
=
new
ArrayList
<
ReaderEvent
>();
for
(
ReaderEvent
e
:
ev
)
{
if
(
e
.
getGamePoint
()
>
0
)
{
ret
.
add
(
e
);
}
}
revents
=
new
ListDataModel
<
ReaderEvent
>(
ret
);
}
return
revents
;
}
}
code/LanBortalDatabase/src/fi/insomnia/bortal/model/PrintedCard_.java
View file @
e5f5f9a
...
...
@@ -6,7 +6,7 @@ import javax.persistence.metamodel.ListAttribute;
import
javax.persistence.metamodel.SingularAttribute
;
import
javax.persistence.metamodel.StaticMetamodel
;
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-
28T16:55:25.010
+0300"
)
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-
30T21:08:42.253
+0300"
)
@StaticMetamodel
(
PrintedCard
.
class
)
public
class
PrintedCard_
extends
GenericEventChild_
{
public
static
volatile
SingularAttribute
<
PrintedCard
,
Calendar
>
printTime
;
...
...
code/LanBortalDatabase/src/fi/insomnia/bortal/model/Reader.java
View file @
e5f5f9a
...
...
@@ -4,6 +4,7 @@
*/
package
fi
.
insomnia
.
bortal
.
model
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.persistence.Column
;
...
...
@@ -19,6 +20,7 @@ import javax.persistence.OneToMany;
import
javax.persistence.Table
;
import
javax.persistence.Version
;
import
javax.persistence.UniqueConstraint
;
import
static
javax
.
persistence
.
CascadeType
.
ALL
;
/**
*
...
...
@@ -41,8 +43,10 @@ public class Reader extends GenericEventChild {
this
.
identification
=
ident
;
}
private
Integer
gamepoints
;
private
Integer
maxEvents
;
@Column
(
nullable
=
false
)
private
Integer
gamepoints
=
0
;
@Column
(
nullable
=
false
)
private
Integer
maxEvents
=
0
;
/**
*
...
...
@@ -78,7 +82,7 @@ public class Reader extends GenericEventChild {
private
Integer
mapY
;
@OneToMany
(
mappedBy
=
"reader"
)
private
List
<
ReaderEvent
>
events
;
private
List
<
ReaderEvent
>
events
=
new
ArrayList
<
ReaderEvent
>()
;
public
String
getIdentification
()
{
return
identification
;
...
...
code/LanBortalDatabase/src/fi/insomnia/bortal/model/ReaderEvent.java
View file @
e5f5f9a
...
...
@@ -4,10 +4,11 @@
*/
package
fi
.
insomnia
.
bortal
.
model
;
import
static
javax
.
persistence
.
CascadeType
.
ALL
;
import
java.util.Calendar
;
import
javax.persistence.Column
;
import
javax.persistence.EmbeddedId
;
import
javax.persistence.Entity
;
import
javax.persistence.JoinColumn
;
import
javax.persistence.JoinColumns
;
...
...
@@ -17,7 +18,6 @@ import javax.persistence.NamedQuery;
import
javax.persistence.Table
;
import
javax.persistence.Temporal
;
import
javax.persistence.TemporalType
;
import
javax.persistence.Version
;
/**
*
...
...
@@ -40,7 +40,8 @@ public class ReaderEvent extends GenericEventChild {
@Column
(
name
=
"value"
)
private
String
value
;
private
Integer
gaepoint
;
@Column
(
nullable
=
false
)
private
Integer
gamePoint
=
0
;
@JoinColumns
({
@JoinColumn
(
name
=
"printed_cards_id"
,
referencedColumnName
=
"id"
,
nullable
=
false
,
updatable
=
false
),
...
...
@@ -51,7 +52,7 @@ public class ReaderEvent extends GenericEventChild {
@JoinColumns
({
@JoinColumn
(
name
=
"readers_id"
,
referencedColumnName
=
"id"
,
nullable
=
false
,
updatable
=
false
),
@JoinColumn
(
name
=
"event_id"
,
referencedColumnName
=
"event_id"
,
nullable
=
false
,
updatable
=
false
,
insertable
=
false
)
})
@ManyToOne
(
optional
=
false
)
@ManyToOne
(
optional
=
false
,
cascade
=
ALL
)
private
Reader
reader
;
public
ReaderEvent
()
{
...
...
@@ -101,4 +102,12 @@ public class ReaderEvent extends GenericEventChild {
return
"fi.insomnia.bortal.model.ReaderEvent[id="
+
getId
()
+
"]"
;
}
public
void
setGamePoint
(
Integer
gamePoint
)
{
this
.
gamePoint
=
gamePoint
;
}
public
Integer
getGamePoint
()
{
return
gamePoint
;
}
}
code/LanBortalDatabase/src/fi/insomnia/bortal/model/ReaderEvent_.java
View file @
e5f5f9a
...
...
@@ -5,12 +5,12 @@ import javax.annotation.Generated;
import
javax.persistence.metamodel.SingularAttribute
;
import
javax.persistence.metamodel.StaticMetamodel
;
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-28T2
1:00:17.154
+0300"
)
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-28T2
2:02:55.769
+0300"
)
@StaticMetamodel
(
ReaderEvent
.
class
)
public
class
ReaderEvent_
extends
GenericEventChild_
{
public
static
volatile
SingularAttribute
<
ReaderEvent
,
Calendar
>
time
;
public
static
volatile
SingularAttribute
<
ReaderEvent
,
String
>
value
;
public
static
volatile
SingularAttribute
<
ReaderEvent
,
Integer
>
ga
ep
oint
;
public
static
volatile
SingularAttribute
<
ReaderEvent
,
Integer
>
ga
meP
oint
;
public
static
volatile
SingularAttribute
<
ReaderEvent
,
PrintedCard
>
printedCard
;
public
static
volatile
SingularAttribute
<
ReaderEvent
,
Reader
>
reader
;
}
code/LanBortalDatabase/src/fi/insomnia/bortal/model/RoleRight.java
View file @
e5f5f9a
...
...
@@ -39,7 +39,8 @@ import fi.insomnia.bortal.enums.Permission;
@ConversionValue
(
dataValue
=
"BILL"
,
objectValue
=
"BILL"
),
@ConversionValue
(
dataValue
=
"ROLE_MANAGEMENT"
,
objectValue
=
"ROLE_MANAGEMENT"
),
@ConversionValue
(
dataValue
=
"PRODUCT"
,
objectValue
=
"PRODUCT"
),
@ConversionValue
(
dataValue
=
"SHOP"
,
objectValue
=
"SHOP"
)
@ConversionValue
(
dataValue
=
"SHOP"
,
objectValue
=
"SHOP"
),
@ConversionValue
(
dataValue
=
"GAME"
,
objectValue
=
"GAME"
)
})
public
class
RoleRight
implements
EventChildInterface
{
...
...
code/LanBortalDatabase/src/fi/insomnia/bortal/model/User.java
View file @
e5f5f9a
...
...
@@ -42,7 +42,6 @@ import org.slf4j.LoggerFactory;
import
fi.insomnia.bortal.enums.Gender
;
import
fi.insomnia.bortal.utilities.PasswordFunctions
;
/**
*
*/
...
...
@@ -129,7 +128,7 @@ public class User implements ModelInterface {
@Column
(
name
=
"superadmin"
)
private
boolean
superadmin
=
false
;
@OneToMany
(
cascade
=
CascadeType
.
ALL
,
mappedBy
=
"voter"
)
@OneToMany
(
mappedBy
=
"voter"
,
cascade
=
CascadeType
.
ALL
)
private
List
<
Vote
>
votes
;
@ManyToMany
()
...
...
@@ -146,7 +145,7 @@ public class User implements ModelInterface {
@OrderBy
private
List
<
UserImage
>
userImageList
;
@OneToMany
(
cascade
=
CascadeType
.
ALL
,
mappedBy
=
"user"
)
@OneToMany
(
mappedBy
=
"user"
)
private
List
<
CompoEntryParticipant
>
compoEntryParticipants
;
@OneToMany
(
mappedBy
=
"creator"
)
...
...
@@ -199,6 +198,7 @@ public class User implements ModelInterface {
return
ret
;
}
public
User
()
{
}
...
...
code/LanBortalDatabase/src/fi/insomnia/bortal/model/User_.java
View file @
e5f5f9a
...
...
@@ -7,7 +7,7 @@ import javax.persistence.metamodel.ListAttribute;
import
javax.persistence.metamodel.SingularAttribute
;
import
javax.persistence.metamodel.StaticMetamodel
;
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-28T
16:55:25.112
+0300"
)
@Generated
(
value
=
"Dali"
,
date
=
"2010-10-28T
22:16:50.549
+0300"
)
@StaticMetamodel
(
User
.
class
)
public
class
User_
{
public
static
volatile
SingularAttribute
<
User
,
Integer
>
id
;
...
...
code/LanBortalDatabase/src/fi/insomnia/bortal/model/Vote.java
View file @
e5f5f9a
...
...
@@ -43,7 +43,7 @@ public class Vote implements EventChildInterface {
private
Calendar
time
;
@JoinColumns
({
@JoinColumn
(
name
=
"entry_id"
,
referencedColumnName
=
"id"
,
nullable
=
false
,
updatable
=
false
,
insertable
=
false
),
@JoinColumn
(
name
=
"entry_id"
,
referencedColumnName
=
"id"
,
nullable
=
false
),
@JoinColumn
(
name
=
"event_id"
,
referencedColumnName
=
"event_id"
,
nullable
=
false
,
updatable
=
false
,
insertable
=
false
)
})
@ManyToOne
(
optional
=
false
)
private
CompoEntry
compoEntry
;
...
...
code/LanBortalWeb/WebContent/foodwave/create.xhtml
0 → 100644
View file @
e5f5f9a
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:f=
"http://java.sun.com/jsf/core"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
xmlns:products=
"http://java.sun.com/jsf/composite/tools/products"
xmlns:foodwave=
"http://java.sun.com/jsf/composite/tools"
>
<h:body>
<ui:composition
template=
"/layout/#{sessionHandler.layout}/template.xhtml"
>
<ui:param
name=
"thispage"
value=
"page.product.create"
/>
<ui:define
name=
"content"
>
<foodwave:modify
/>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
code/LanBortalWeb/WebContent/game/list.xhtml
0 → 100644
View file @
e5f5f9a
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:products=
"http://java.sun.com/jsf/composite/tools/products"
xmlns:tools=
"http://java.sun.com/jsf/composite/tools"
xmlns:f=
"http://java.sun.com/jsf/core"
>
<h:body>
<ui:composition
template=
"/layout/#{sessionHandler.layout}/template.xhtml"
>
<ui:param
name=
"thispage"
value=
"page.game.list"
/>
<ui:define
name=
"content"
>
#{gameView.initGamepoints()}
<h:form
id=
"editform"
>
<h:dataTable
border=
"0"
id=
"gameinfolist"
value=
"#{gameView.inforow}"
var=
"card"
>
<h:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"${i18n['printedCard.id']}"
/>
</f:facet>
<h:outputText
value=
"#{card.id.id}"
/>
</h:column>
<h:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"${i18n['user.nick']}"
/>
</f:facet>
<h:outputText
value=
"#{card.user.nick}"
/>
</h:column>
<h:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"${i18n['user.wholeName']}"
/>
</f:facet>
<h:outputText
value=
"#{card.user.wholeName}"
/>
</h:column>
<h:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"${i18n['user.wholeName']}"
/>
</f:facet>
<h:outputText
value=
"#{card.user.wholeName}"
/>
</h:column>
<h:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"${i18n['reader.user']}"
/>
</f:facet>
<h:outputText
value=
"#{card.gamepoints}"
/>
</h:column>
<h:column>
<h:dataTable
value=
"#{card.gameCards}"
var=
"event"
id=
"gamecards"
>
<h:column>
#{event.reader.identification}
</h:column>
<h:column>
#{event.gamePoint}
</h:column>
<h:column>
<h:commandButton
action=
"#{gameView.editReaderEvent()}"
value=
"Muokkaa"
/>
</h:column>
</h:dataTable>
</h:column>
</h:dataTable>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
code/LanBortalWeb/WebContent/game/start.xhtml
0 → 100644
View file @
e5f5f9a
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:products=
"http://java.sun.com/jsf/composite/tools/products"
xmlns:tools=
"http://java.sun.com/jsf/composite/tools"
xmlns:f=
"http://java.sun.com/jsf/core"
>
<h:body>
<ui:composition
template=
"/layout/#{sessionHandler.layout}/template.xhtml"
>
<ui:param
name=
"thispage"
value=
"page.game.start"
/>
<ui:define
name=
"content"
>
<h1>
Insomnia Game
</h1>
<h:outputText
value=
"#{i18n['game.gamepoints']}"
/>
#{gameView.myPoints}
<h:dataTable
border=
"0"
id=
"event"
value=
"#{gameView.gameNews}"
var=
"news"
>
<h:column>
<h3>
#{news.title}
</h3>
<h:outputText
escape=
"false"
value=
"#{news.body}"
/>
</h:column>
</h:dataTable>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
code/LanBortalWeb/WebContent/layout/insomnia1/sidebar-game.xhtml
0 → 100644
View file @
e5f5f9a
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:f=
"http://java.sun.com/jsf/core"
xmlns:tools=
"http://java.sun.com/jsf/composite/tools"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
>
<h:body>
<ui:composition
template=
"/layout/insomnia1/sidebartemplate.xhtml"
>
<ui:param
name=
"rendered"
value=
"false"
/>
<ui:define
name=
"sidebarcontent"
>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
code/LanBortalWeb/WebContent/layout/insomnia1/template.xhtml
View file @
e5f5f9a
...
...
@@ -48,6 +48,9 @@
<div
class=
"link#{i18n[util.concat(thispage,'.pagegroup')] == 'rfidshop'?'a':''}"
><h:link
outcome=
"/shop/showReaderEvents"
value=
"#{i18n['topmenu.rfidshop']}"
/></div>
</tools:canRead>
<tools:canRead
target=
"GAME"
>
<div
class=
"link#{i18n[util.concat(thispage,'.pagegroup')] == 'game'?'a':''}"
><h:link
outcome=
"/game/start"
value=
"#{i18n['topmenu.game']}"
/></div>
</tools:canRead></div>
</div>
...
...
code/LanBortalWeb/WebContent/resources/tools/foodwave/modify.xhtml
0 → 100644
View file @
e5f5f9a
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:f=
"http://java.sun.com/jsf/core"
xmlns:composite=
"http://java.sun.com/jsf/composite"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
xmlns:tools=
"http://java.sun.com/jsf/composite/tools"
>
<composite:interface>
<composite:attribute
name=
"billview"
required=
"true"
/>
</composite:interface>
<composite:implementation>
<h:form
id=
"modifyFwTemplate"
>
<h:inputHidden
rendered=
"#{!empty foodwaveView.waveTemplate.id.id}"
value=
"foodwaveView.waveTemplate.id.id}"
/>
<h:panelGrid
columns=
"2"
>
<h:outputLabel
value=
"#{i18n['foodwavetemplate']}:"
/>
<h:inputText
value=
"#{foodwaveView.waveTemplate.name}"
/>
</h:panelGrid>
<h:selectManyCheckbox
converter=
"#{productConverter}"
layout=
"pageDirection"
id=
"products"
value=
"#{foodwaveView.waveTemplate.products}"
>
<f:selectItems
var=
"proditem"
itemLabel=
"#{proditem.name}"
value=
"#{productView.productlist}"
/>
</h:selectManyCheckbox>
<h:commandButton
rendered=
"#{empty foodwaveView.waveTemplate.id.id}"
action=
"#{foodwaveView.createTemplate()}"
value=
"Create"
/>
<h:commandButton
rendered=
"#{!empty foodwaveView.waveTemplate.id.id}"
action=
"#{foodwaveView.saveTemplate()}"
value=
"Save"
/>
</h:form>
</composite:implementation>
</html>
code/LanBortalWeb/WebContent/resources/tools/shop/readerevents.xhtml
View file @
e5f5f9a
...
...
@@ -45,11 +45,23 @@
<h:outputText
value=
"#{event.seenSince}"
/>
</h:column>
<h:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"${i18n['gamepoints']}"
/>
</f:facet>
<h:outputText
value=
"#{event.event.gamePoint}"
/>
</h:column>
<h:column>
<h:commandButton
rendered=
"#{empty event.event}"
action=
"#{readerView.selectEvent()}"
value=
"#{i18n['readerevent.associateToUser']}"
/>
<h:commandButton
rendered=
"#{!empty event.event}"
action=
"#{readerView.selectEvent()}"
value=
"#{i18n['readerevent.shopToUser']}"
/>
</h:column>
<h:column>
<h:commandButton
rendered=
"#{!empty event.event}"
action=
"#{readerView.editUser()}"
value=
"#{i18n['user.edit']}"
/>
</h:column>
<h:column
rendered=
"#{sessionHandler.hasPermission('GAME','WRITE')}"
>
<h:commandButton
action=
"#{readerView.editGameEvent()}"
value=
"Game"
/>
</h:column>
</h:dataTable>
...
...
code/LanBortalWeb/WebContent/shop/editGame.xhtml
0 → 100644
View file @
e5f5f9a
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:f=
"http://java.sun.com/jsf/core"
xmlns:users=
"http://java.sun.com/jsf/composite/tools/user"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
>
<h:body>
<ui:composition
template=
"/layout/#{sessionHandler.layout}/template.xhtml"
>
<ui:param
name=
"thispage"
value=
"page.eventorg.list"
/>
<ui:define
name=
"content"
>
<h:form
id=
"editform"
>
<h:panelGrid
columns=
"2"
>
<h:outputLabel
value=
"#{i18n['rfidevent.reader']}:"
/>
<h:outputText
value=
"#{readerView.rfidevent.reader}"
/>
<h:outputLabel
value=
"#{i18n['rfidevent.tag']}:"
/>
<h:outputText
value=
"#{readerView.rfidevent.tag}"
/>
<h:outputLabel
value=
"#{i18n['user.wholename']}:"
/>
<h:outputText
value=
"#{readerView.rfidevent.event.printedCard.user.wholeName}"
/>
<h:outputLabel
value=
"#{i18n['user.nick']}:"
/>
<h:outputText
value=
"#{readerView.rfidevent.event.printedCard.user.nick}"
/>
<h:outputLabel
value=
"#{i18n['user.gamepoints']}:"
/>
<h:inputText
value=
"#{readerView.rfidevent.event.gamePoint}"
/>
<h:commandButton
action=
"#{readerView.saveEvent()}"
value=
"#{i18n['readerevent.saveEvent']}"
/>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
code/LanBortalWeb/WebContent/user/adminSendImage.xhtml
View file @
e5f5f9a
...
...
@@ -20,24 +20,24 @@
</h:panelGrid>
<users:sendImage
/>
#{userView.initUserimagelist()}
<h:dataTable
border=
"1"
id=
"user"
value=
"#{userView.userImageList}"
var=
"img
"
>
<h:
column
>
<h:
outputText
value=
"#{img.name}"
/
>
</h:column
>
<
h:column>
<h:
outputText
value=
"#{img.mimeType}"
/
>
</h:column
>
<
h:column>
<
a
href=
"#"
onclick=
"window.open('#{request.contextPath}/Userimage?imageid=#{img.id}', 'imagesubmitpopup', 'height=240,width=320'); this.target='imagesubmitpopup'; return true; "
>
Näytä kuva
</a>
</h:column>
<h:column>
<h:commandButton
action=
"#{userView.setDefaultImage()}"
value=
"Set default image"
/>
</h:column>
</h:dataTable>
<h:form
id=
"changeimageform
"
>
<h:
dataTable
border=
"1"
id=
"user"
value=
"#{userView.userImageList}"
var=
"img"
>
<h:
column
>
<h:outputText
value=
"#{img.name}"
/
>
</
h:column>
<h:
column
>
<h:outputText
value=
"#{img.mimeType}"
/
>
</
h:column>
<
h:column>
<a
href=
"#"
onclick=
"window.open('#{request.contextPath}/Userimage?imageid=#{img.id}', 'imagesubmitpopup', 'height=240,width=320'); this.target='imagesubmitpopup'; return true; "
>
Näytä kuva
</a>
</h:column>
<h:column>
<h:commandButton
action=
"#{userView.setDefaultImage()}"
value=
"Set default image"
/>
</h:column>
</h:dataTable>
</h:form>
</ui:define>
</ui:composition>
...
...
code/LanBortalWeb/src/fi/insomnia/bortal/view/FoodwaveView.java
0 → 100644
View file @
e5f5f9a
package
fi
.
insomnia
.
bortal
.
view
;
import
javax.ejb.EJB
;
import
javax.faces.bean.ManagedBean
;
import
javax.faces.bean.SessionScoped
;
import
fi.insomnia.bortal.beans.EventBeanLocal
;
import
fi.insomnia.bortal.beans.FoodWaveBeanLocal
;
import
fi.insomnia.bortal.model.FoodWaveTemplate
;
@ManagedBean
(
name
=
"foodwaveView"
)
@SessionScoped
public
class
FoodwaveView
extends
GenericView
{
@EJB
private
EventBeanLocal
eventbean
;
private
FoodWaveTemplate
waveTemplate
;
@EJB
private
FoodWaveBeanLocal
wavebean
;
public
void
initEmptyTemplate
()
{
waveTemplate
=
new
FoodWaveTemplate
(
eventbean
.
getCurrentEvent
());
}
public
String
createTemplate
()
{
wavebean
.
createTemplate
(
waveTemplate
);
return
null
;
}
public
String
saveTemplate
()
{
waveTemplate
=
wavebean
.
saveTemplate
(
waveTemplate
);
return
null
;
}
public
void
setWaveTemplate
(
FoodWaveTemplate
waveTemplate
)
{
this
.
waveTemplate
=
waveTemplate
;
}
public
FoodWaveTemplate
getWaveTemplate
()
{
return
waveTemplate
;
}
}
code/LanBortalWeb/src/fi/insomnia/bortal/view/GameView.java
0 → 100644
View file @
e5f5f9a
package
fi
.
insomnia
.
bortal
.
view
;
import
java.util.Collections
;
import
java.util.List
;
import
javax.ejb.EJB
;
import
javax.faces.bean.ManagedBean
;
import
javax.faces.bean.ManagedProperty
;
import
javax.faces.bean.SessionScoped
;
import
javax.faces.model.ListDataModel
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.insomnia.bortal.beans.CardTemplateBeanLocal
;
import
fi.insomnia.bortal.beans.GameBeanLocal
;
import
fi.insomnia.bortal.beans.UserBeanLocal
;
import
fi.insomnia.bortal.enums.Permission
;
import
fi.insomnia.bortal.enums.RolePermission
;
import
fi.insomnia.bortal.model.News
;
import
fi.insomnia.bortal.model.PrintedCard
;
import
fi.insomnia.bortal.view.helpers.RfidEvent
;
@ManagedBean
(
name
=
"gameView"
)
@SessionScoped
public
class
GameView
extends
GenericView
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
GameView
.
class
);
@EJB
private
GameBeanLocal
gamebean
;
@EJB
private
CardTemplateBeanLocal
cdbean
;
private
ListDataModel
<
PrintedCard
>
inforow
;
@EJB
private
UserBeanLocal
userbean
;
@ManagedProperty
(
value
=
"#{readerView}"
)
private
ReaderView
readerView
;
public
String
editReaderEvent
()
{
readerView
.
setRfidevent
(
new
RfidEvent
(
"unknown"
,
"unknown"
,
inforow
.
getRowData
().
getGameCards
().
getRowData
()));
return
"/shop/editGame"
;
}
public
Integer
getMyPoints
()
{
userbean
.
fatalNotLoggedIn
();
PrintedCard
currcard
=
null
;
for
(
PrintedCard
pc
:
userbean
.
getCurrentUser
().
getPrintedCards
())
{
if
(!
pc
.
getEnabled
())
{
continue
;
}
if
(
currcard
==
null
||
currcard
.
getTemplate
().
getPower
()
<
pc
.
getTemplate
().
getPower
())
{
currcard
=
pc
;
}
}
return
currcard
.
getGamepoints
();
}
public
void
initGamepoints
()
{
userbean
.
fatalPermission
(
Permission
.
GAME
,
RolePermission
.
EXECUTE
,
" need Game:X to init userlist at gameview"
);
List
<
PrintedCard
>
list
=
cdbean
.
findActiveCards
();
Collections
.
sort
(
list
,
PrintedCard
.
GAMEPOINT_COMPARATOR
);
setInforow
(
new
ListDataModel
<
PrintedCard
>(
list
));
}
public
void
setInforow
(
ListDataModel
<
PrintedCard
>
inforow
)
{
this
.
inforow
=
inforow
;
}
public
ListDataModel
<
PrintedCard
>
getInforow
()
{
return
inforow
;
}
public
List
<
News
>
getGameNews
()
{
return
gamebean
.
getNews
();
}
public
void
setReaderView
(
ReaderView
readerView
)
{
this
.
readerView
=
readerView
;
}
public
ReaderView
getReaderView
()
{
return
readerView
;
}
}
code/LanBortalWeb/src/fi/insomnia/bortal/view/ReaderView.java
View file @
e5f5f9a
...
...
@@ -21,7 +21,7 @@ import fi.insomnia.bortal.model.LanEvent;
import
fi.insomnia.bortal.model.PrintedCard
;
import
fi.insomnia.bortal.model.ReaderEvent
;
import
fi.insomnia.bortal.model.User
;
import
fi.insomnia.bortal.view.
RfidContainer
.RfidEvent
;
import
fi.insomnia.bortal.view.
helpers
.RfidEvent
;
@ManagedBean
(
name
=
"readerView"
)
@SessionScoped
...
...
@@ -37,7 +37,7 @@ public class ReaderView extends GenericView {
private
RfidEvent
rfidevent
;
private
String
placecode
;
private
String
usersearch
;
@EJB
private
ReaderBeanLocal
readerBean
;
...
...
@@ -46,7 +46,9 @@ public class ReaderView extends GenericView {
@EJB
private
EventBeanLocal
eventbean
;
private
ListDataModel
<
UserCardWrapper
>
userlist
;
@ManagedProperty
(
value
=
"#{userView}"
)
private
UserView
userview
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ReaderView
.
class
);
public
String
searchforuser
()
{
...
...
@@ -206,4 +208,32 @@ public class ReaderView extends GenericView {
return
user
;
}
}
public
String
editGameEvent
()
{
rfidevent
=
readerevents
.
getRowData
();
return
"/shop/editGame"
;
}
public
String
saveEvent
()
{
ReaderEvent
e
=
rfidevent
.
getEvent
();
rfidevent
.
setEvent
(
readerBean
.
merge
(
e
));
this
.
addFaceMessage
(
"Pisteet Tallennettu"
);
return
null
;
}
public
String
editUser
()
{
getUserview
().
setUser
(
readerevents
.
getRowData
().
getEvent
().
getPrintedCard
().
getUser
());
return
"/user/edit"
;
}
public
void
setUserview
(
UserView
userview
)
{
this
.
userview
=
userview
;
}
public
UserView
getUserview
()
{
return
userview
;
}
}
code/LanBortalWeb/src/fi/insomnia/bortal/view/RfidContainer.java
View file @
e5f5f9a
...
...
@@ -15,6 +15,7 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
import
fi.insomnia.bortal.model.ReaderEvent
;
import
fi.insomnia.bortal.view.helpers.RfidEvent
;
@ApplicationScoped
@ManagedBean
...
...
@@ -49,86 +50,5 @@ public class RfidContainer {
return
events
;
}
public
class
RfidEvent
{
RfidEvent
(
String
reader
,
String
tag
,
ReaderEvent
revent
)
{
this
.
reader
=
reader
;
this
.
tag
=
tag
;
this
.
event
=
revent
;
}
public
void
seen
()
{
time
=
Calendar
.
getInstance
();
}
public
String
getSeenSince
()
{
long
diffSec
=
(
Calendar
.
getInstance
().
getTimeInMillis
()
-
time
.
getTimeInMillis
())
/
1000
;
long
secs
=
diffSec
%
60
;
long
diffMin
=
diffSec
/
60
;
long
mins
=
diffMin
%
60
;
long
hours
=
diffMin
/
60
;
StringBuilder
ret
=
new
StringBuilder
();
if
(
hours
>
0
)
{
ret
.
append
(
hours
).
append
(
" h "
);
}
if
(
hours
>
0
||
mins
>
0
)
{
ret
.
append
(
mins
).
append
(
" min "
);
}
ret
.
append
(
secs
).
append
(
" sec"
);
return
ret
.
toString
();
}
private
Calendar
time
=
Calendar
.
getInstance
();
private
String
reader
;
private
String
tag
;
private
ReaderEvent
event
;
private
List
<
String
>
actions
=
new
ArrayList
<
String
>();
public
Calendar
getTime
()
{
return
time
;
}
public
void
setTime
(
Calendar
time
)
{
this
.
time
=
time
;
}
public
String
getReader
()
{
return
reader
;
}
public
void
setReader
(
String
reader
)
{
this
.
reader
=
reader
;
}
public
String
getTag
()
{
return
tag
;
}
public
void
setTag
(
String
tag
)
{
this
.
tag
=
tag
;
}
public
ReaderEvent
getEvent
()
{
return
event
;
}
public
void
setEvent
(
ReaderEvent
event
)
{
this
.
event
=
event
;
}
public
List
<
String
>
getActions
()
{
return
actions
;
}
public
void
setActions
(
List
<
String
>
actions
)
{
this
.
actions
=
actions
;
}
public
void
addMessage
(
String
msg
)
{
this
.
actions
.
add
(
msg
);
}
}
}
code/LanBortalWeb/src/fi/insomnia/bortal/view/RfidView.java
View file @
e5f5f9a
...
...
@@ -5,6 +5,9 @@ import javax.faces.bean.ManagedBean;
import
javax.faces.bean.ManagedProperty
;
import
javax.faces.bean.RequestScoped
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.insomnia.bortal.beans.ReaderBeanLocal
;
import
fi.insomnia.bortal.model.ReaderEvent
;
...
...
@@ -14,15 +17,19 @@ public class RfidView extends GenericView {
private
String
reader
;
private
String
tag
;
private
String
hash
;
@EJB
private
ReaderBeanLocal
readerbean
;
@ManagedProperty
(
value
=
"#{rfidContainer}"
)
private
RfidContainer
container
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
RfidView
.
class
);
public
String
readTag
()
{
String
ret
=
"Error"
;
ReaderEvent
revent
=
readerbean
.
checkTag
(
reader
,
tag
,
hash
);
logger
.
debug
(
"at view Got revent from bean: {}"
,
revent
);
getContainer
().
foundTag
(
reader
,
tag
,
revent
);
if
(
revent
!=
null
)
{
ret
=
"Ok"
;
...
...
code/LanBortalWeb/src/fi/insomnia/bortal/view/helpers/RfidEvent.java
0 → 100644
View file @
e5f5f9a
package
fi
.
insomnia
.
bortal
.
view
.
helpers
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.List
;
import
fi.insomnia.bortal.model.ReaderEvent
;
public
class
RfidEvent
{
public
RfidEvent
(
String
reader
,
String
tag
,
ReaderEvent
revent
)
{
this
.
reader
=
reader
;
this
.
tag
=
tag
;
this
.
event
=
revent
;
}
public
void
seen
()
{
time
=
Calendar
.
getInstance
();
}
public
String
getSeenSince
()
{
long
diffSec
=
(
Calendar
.
getInstance
().
getTimeInMillis
()
-
time
.
getTimeInMillis
())
/
1000
;
long
secs
=
diffSec
%
60
;
long
diffMin
=
diffSec
/
60
;
long
mins
=
diffMin
%
60
;
long
hours
=
diffMin
/
60
;
StringBuilder
ret
=
new
StringBuilder
();
if
(
hours
>
0
)
{
ret
.
append
(
hours
).
append
(
" h "
);
}
if
(
hours
>
0
||
mins
>
0
)
{
ret
.
append
(
mins
).
append
(
" min "
);
}
ret
.
append
(
secs
).
append
(
" sec"
);
return
ret
.
toString
();
}
private
Calendar
time
=
Calendar
.
getInstance
();
private
String
reader
;
private
String
tag
;
private
ReaderEvent
event
;
private
List
<
String
>
actions
=
new
ArrayList
<
String
>();
public
Calendar
getTime
()
{
return
time
;
}
public
void
setTime
(
Calendar
time
)
{
this
.
time
=
time
;
}
public
String
getReader
()
{
return
reader
;
}
public
void
setReader
(
String
reader
)
{
this
.
reader
=
reader
;
}
public
String
getTag
()
{
return
tag
;
}
public
void
setTag
(
String
tag
)
{
this
.
tag
=
tag
;
}
public
ReaderEvent
getEvent
()
{
return
event
;
}
public
void
setEvent
(
ReaderEvent
event
)
{
this
.
event
=
event
;
}
public
List
<
String
>
getActions
()
{
return
actions
;
}
public
void
setActions
(
List
<
String
>
actions
)
{
this
.
actions
=
actions
;
}
public
void
addMessage
(
String
msg
)
{
this
.
actions
.
add
(
msg
);
}
}
\ No newline at end of file
code/LanBortalWeb/src/resources/i18n.properties
View file @
e5f5f9a
...
...
@@ -92,4 +92,9 @@ page.auth.resetPassword.header=Salasanan resetointi
page.shop.readerevents.pagegroup
=
rfidshop
page.shop.readerevents.header
=
RFID kauppa
\ No newline at end of file
page.shop.readerevents.header
=
RFID kauppa
page.game.start.pagegroup
=
game
page.game.start.header
=
Insomnia Game
page.game.list.pagegroup
=
game
page.game.list.header
=
Insomnia Game
\ No newline at end of file
code/LanBortalWeb/src/resources/i18n_fi.properties
View file @
e5f5f9a
...
...
@@ -68,6 +68,9 @@ role.description=Kuvaus
role.edit.save
=
Tallenna
topmenu.game
=
Insomnia Game
game.gamepoints
=
Insomnia Game pisteet:
topmenu.adminfront
=
Admintavaraa
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment