Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Riina Antikainen
/
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 0b317d62
authored
Oct 23, 2014
by
Tuukka Kivilahti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
select multible readers, part 1
1 parent
e4aed2ca
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
94 additions
and
13 deletions
code/moya-beans/ejbModule/fi/codecrew/moya/beans/ReaderBean.java
code/moya-web/WebContent/info/incoming.xhtml
code/moya-web/WebContent/info/index.xhtml
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/reader/ReaderNameContainer.java
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/reader/ReaderView.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/ReaderBean.java
View file @
0b317d6
...
...
@@ -95,10 +95,17 @@ public class ReaderBean implements ReaderBeanLocal {
if
(
reader
==
null
||
code
==
null
||
code
.
isEmpty
())
{
return
null
;
}
logger
.
info
(
"got code from reader {}"
,
code
);
code
=
code
.
replace
(
"\"\b"
,
""
);
/**
* Some of rfid-readers adds zeros to start, some to end
*
* Also, under 16 char -rdid (the smaller one) should be 16 character long,
* with zeros on beginning.
*/
if
(
ReaderType
.
RFID
.
equals
(
reader
.
getType
()))
{
if
(
Pattern
.
matches
(
"^.*000000$"
,
code
))
...
...
@@ -113,6 +120,7 @@ public class ReaderBean implements ReaderBeanLocal {
code
=
sb
.
toString
();
}
ReaderEvent
event
=
new
ReaderEvent
(
new
Date
(),
reader
,
code
);
// first, check if dublicate, there is 30s timeout for dublicates,
...
...
code/moya-web/WebContent/info/incoming.xhtml
View file @
0b317d6
...
...
@@ -21,6 +21,7 @@
<reader:backendReader
selectvalue=
"#{i18n['barcodeReader.readBarcode']}"
selectaction=
"#{incomingView.polledRead}"
/>
<h:form>
<p:autoComplete
id=
"acsb"
value=
"#{infoView.multiSearchUser}"
completeMethod=
"#{infoView.matchMulti}"
converter=
"#{eventUserConverter}"
var=
"usrx"
itemLabel=
"#{usrx.shortUserDescriptor}"
itemValue=
"#{usrx}"
>
<p:ajax
event=
"itemSelect"
listener=
"#{incomingView.changeUser}"
/>
...
...
code/moya-web/WebContent/info/index.xhtml
View file @
0b317d6
...
...
@@ -30,6 +30,7 @@
</ui:define>
<ui:define
name=
"content"
>
<infoview:userselector
/>
<reader:readerlist
/>
...
...
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/reader/ReaderNameContainer.java
View file @
0b317d6
...
...
@@ -19,6 +19,8 @@
package
fi
.
codecrew
.
moya
.
web
.
cdiview
.
reader
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.enterprise.context.SessionScoped
;
import
javax.inject.Named
;
...
...
@@ -29,15 +31,45 @@ public class ReaderNameContainer implements Serializable {
private
static
final
long
serialVersionUID
=
571747919767505523L
;
private
Integer
readerId
;
//private Integer readerId;
// handling first user when using via getReaderId and setReaderId;
private
List
<
Integer
>
readers
;
private
boolean
autopoll
=
false
;
/**
* use this function when using readers in "only one reader" -mode
*
* @return first selected reader, or null if no reader selected
*/
public
Integer
getReaderId
()
{
return
readerId
;
if
(
readers
==
null
)
return
null
;
return
readers
.
get
(
0
);
}
/**
* Use this function when using readers in "only one reader" -mode
* @param readerId to set, or null to clear all readers
*/
public
void
setReaderId
(
Integer
readerId
)
{
this
.
readerId
=
readerId
;
if
(
readerId
==
null
)
clearReaders
();
if
(
getReaders
().
size
()
==
0
)
{
getReaders
().
add
(
readerId
);
}
else
{
getReaders
().
set
(
0
,
readerId
);
}
}
public
List
<
Integer
>
getReaders
()
{
if
(
readers
==
null
)
readers
=
new
ArrayList
<
Integer
>();
return
readers
;
}
public
boolean
isAutopoll
()
{
...
...
@@ -48,4 +80,8 @@ public class ReaderNameContainer implements Serializable {
this
.
autopoll
=
autopoll
;
}
public
void
clearReaders
()
{
readers
=
null
;
}
}
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/reader/ReaderView.java
View file @
0b317d6
...
...
@@ -248,20 +248,36 @@ public class ReaderView extends GenericCDIView {
}
/**
* Get newest readerevent from any reader
* @return
*/
public
ReaderEvent
getNewestEvent
()
{
ReaderEvent
newestEvent
=
null
;
for
(
Integer
rid
:
namecontainer
.
getReaders
())
{
ReaderEvent
event
=
readerbean
.
getLastReaderEvent
(
rid
);
if
(
newestEvent
==
null
||
event
.
getUpdatetime
().
getTime
()
>
newestEvent
.
getUpdatetime
().
getTime
())
{
newestEvent
=
event
;
}
}
return
newestEvent
;
}
public
ReaderEvent
getReaderEvent
()
{
if
(
namecontainer
.
isAutopoll
())
{
if
(
isNewCodes
())
{
pollingCodeHandled
();
return
readerbean
.
getLastReaderEvent
(
namecontainer
.
getReaderId
());
return
pollingCodeHandled
();
// return getNewestEvent();
// return readerbean.getLastReaderEvent(namecontainer.getReaderId());
}
else
{
return
null
;
}
}
if
(
readerEventList
==
null
)
return
null
;
...
...
@@ -280,8 +296,16 @@ public class ReaderView extends GenericCDIView {
lastReadEvent
=
readerbean
.
getLastReaderEvent
(
namecontainer
.
getReaderId
());
}
public
void
pollingCodeHandled
()
{
lastReadEvent
=
readerbean
.
getLastReaderEvent
(
namecontainer
.
getReaderId
());
/**
* Mark pollingcode handled (for autoread-stuff)
*
* And also return last code, just in case.
* @return
*/
public
ReaderEvent
pollingCodeHandled
()
{
lastReadEvent
=
getNewestEvent
();
return
lastReadEvent
;
}
public
String
saveUser
()
{
...
...
@@ -294,18 +318,29 @@ public class ReaderView extends GenericCDIView {
if
(!
namecontainer
.
isAutopoll
())
return
false
;
ReaderEvent
newEvent
=
readerbean
.
getLastReaderEvent
(
namecontainer
.
getReaderId
());
for
(
Integer
rid
:
namecontainer
.
getReaders
())
{
ReaderEvent
event
=
readerbean
.
getLastReaderEvent
(
rid
);
if
(
newEvent
==
null
||
newEvent
.
getId
()
==
null
)
return
false
;
if
(
event
==
null
||
event
.
getId
()
==
null
)
{
continue
;
}
// found new code, and there is no previous code, that's true
if
(
lastReadEvent
==
null
||
lastReadEvent
.
getId
()
==
null
)
return
true
;
return
(
newEvent
.
getId
().
equals
(
lastReadEvent
.
getId
()));
// is new code newer than previous code?
if
(
event
.
getUpdatetime
().
getTime
()
<
event
.
getUpdatetime
().
getTime
())
return
true
;
}
return
false
;
}
public
String
getUserInsertCode
()
{
return
""
;
}
...
...
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