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 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
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
97 additions
and
16 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 {
...
@@ -95,10 +95,17 @@ public class ReaderBean implements ReaderBeanLocal {
if
(
reader
==
null
||
code
==
null
||
code
.
isEmpty
())
{
if
(
reader
==
null
||
code
==
null
||
code
.
isEmpty
())
{
return
null
;
return
null
;
}
}
logger
.
info
(
"got code from reader {}"
,
code
);
logger
.
info
(
"got code from reader {}"
,
code
);
code
=
code
.
replace
(
"\"\b"
,
""
);
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
(
ReaderType
.
RFID
.
equals
(
reader
.
getType
()))
{
if
(
Pattern
.
matches
(
"^.*000000$"
,
code
))
if
(
Pattern
.
matches
(
"^.*000000$"
,
code
))
...
@@ -113,6 +120,7 @@ public class ReaderBean implements ReaderBeanLocal {
...
@@ -113,6 +120,7 @@ public class ReaderBean implements ReaderBeanLocal {
code
=
sb
.
toString
();
code
=
sb
.
toString
();
}
}
ReaderEvent
event
=
new
ReaderEvent
(
new
Date
(),
reader
,
code
);
ReaderEvent
event
=
new
ReaderEvent
(
new
Date
(),
reader
,
code
);
// first, check if dublicate, there is 30s timeout for dublicates,
// first, check if dublicate, there is 30s timeout for dublicates,
...
...
code/moya-web/WebContent/info/incoming.xhtml
View file @
0b317d6
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
<reader:backendReader
selectvalue=
"#{i18n['barcodeReader.readBarcode']}"
selectaction=
"#{incomingView.polledRead}"
/>
<reader:backendReader
selectvalue=
"#{i18n['barcodeReader.readBarcode']}"
selectaction=
"#{incomingView.polledRead}"
/>
<h:form>
<h:form>
<p:autoComplete
id=
"acsb"
value=
"#{infoView.multiSearchUser}"
completeMethod=
"#{infoView.matchMulti}"
converter=
"#{eventUserConverter}"
var=
"usrx"
itemLabel=
"#{usrx.shortUserDescriptor}"
itemValue=
"#{usrx}"
>
<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}"
/>
<p:ajax
event=
"itemSelect"
listener=
"#{incomingView.changeUser}"
/>
...
...
code/moya-web/WebContent/info/index.xhtml
View file @
0b317d6
...
@@ -30,6 +30,7 @@
...
@@ -30,6 +30,7 @@
</ui:define>
</ui:define>
<ui:define
name=
"content"
>
<ui:define
name=
"content"
>
<infoview:userselector
/>
<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 @@
...
@@ -19,6 +19,8 @@
package
fi
.
codecrew
.
moya
.
web
.
cdiview
.
reader
;
package
fi
.
codecrew
.
moya
.
web
.
cdiview
.
reader
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.enterprise.context.SessionScoped
;
import
javax.enterprise.context.SessionScoped
;
import
javax.inject.Named
;
import
javax.inject.Named
;
...
@@ -29,15 +31,45 @@ public class ReaderNameContainer implements Serializable {
...
@@ -29,15 +31,45 @@ public class ReaderNameContainer implements Serializable {
private
static
final
long
serialVersionUID
=
571747919767505523L
;
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
;
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
()
{
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
)
{
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
()
{
public
boolean
isAutopoll
()
{
...
@@ -47,5 +79,9 @@ public class ReaderNameContainer implements Serializable {
...
@@ -47,5 +79,9 @@ public class ReaderNameContainer implements Serializable {
public
void
setAutopoll
(
boolean
autopoll
)
{
public
void
setAutopoll
(
boolean
autopoll
)
{
this
.
autopoll
=
autopoll
;
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
...
@@ -247,21 +247,37 @@ public class ReaderView extends GenericCDIView {
...
@@ -247,21 +247,37 @@ public class ReaderView extends GenericCDIView {
return
ReaderType
.
values
();
return
ReaderType
.
values
();
}
}
/**
* 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
()
{
public
ReaderEvent
getReaderEvent
()
{
if
(
namecontainer
.
isAutopoll
())
{
if
(
namecontainer
.
isAutopoll
())
{
if
(
isNewCodes
())
{
if
(
isNewCodes
())
{
pollingCodeHandled
();
return
pollingCodeHandled
();
return
readerbean
.
getLastReaderEvent
(
namecontainer
.
getReaderId
());
// return getNewestEvent();
// return readerbean.getLastReaderEvent(namecontainer.getReaderId());
}
else
{
}
else
{
return
null
;
return
null
;
}
}
}
}
if
(
readerEventList
==
null
)
if
(
readerEventList
==
null
)
return
null
;
return
null
;
...
@@ -280,8 +296,16 @@ public class ReaderView extends GenericCDIView {
...
@@ -280,8 +296,16 @@ public class ReaderView extends GenericCDIView {
lastReadEvent
=
readerbean
.
getLastReaderEvent
(
namecontainer
.
getReaderId
());
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
()
{
public
String
saveUser
()
{
...
@@ -294,16 +318,27 @@ public class ReaderView extends GenericCDIView {
...
@@ -294,16 +318,27 @@ public class ReaderView extends GenericCDIView {
if
(!
namecontainer
.
isAutopoll
())
if
(!
namecontainer
.
isAutopoll
())
return
false
;
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
;
// is new code newer than previous code?
if
(
event
.
getUpdatetime
().
getTime
()
<
event
.
getUpdatetime
().
getTime
())
return
true
;
}
if
(
lastReadEvent
==
null
||
lastReadEvent
.
getId
()
==
null
)
return
true
;
return
(
newEvent
.
getId
().
equals
(
lastReadEvent
.
getId
()))
;
return
false
;
}
}
public
String
getUserInsertCode
()
{
public
String
getUserInsertCode
()
{
...
...
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