|
iRex DR1000 Merger v0.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectit.andynaz.irex.dr1000.document.ScribbleMgr
class ScribbleMgr
Class to use the SQLite database file with the scribbles.
All the scribbles taken by an iRex DR1000 are stored in SQLite database
files. Of the 4 tables in the database, this program uses only the 2 "file_metadata
" and "annotations
"; in the first there are the data of
the files in the folder, while in the latter there are the scribbles.
The 2 tables are defined as:
+------------------------+ +------------------------+ | annotations | | file_metadata | +------------------------+ +------------------------+ | annotation_id INTEGER | | file_id INTEGER | <------------ | file_id INTEGER | | filename VARCHAR(250) | | file_position INTEGER | +------------------------+ | data BLOB | | other non-used columns | +------------------------+
The file name is stored in the "file_metadata.filename
" column,
while the file id is stored in both the "file_metadata.file_id
" and
"annotations.file_id
" columns (this is the join column between the 2
tables). The scribbles are stored per-page, where the page number is
stored in the "annotations.file_position
" column and the actual
scribbles data are stored in the "annotations.data
" column.
In case of note files, the content of the file_metadata
table is a
single record "file_id=1 filename=.
", as the file contains only a
note. In the case of PDF files the table stores a record per file, as there
is a metadata.db
file for each folder.
Field Summary | |
---|---|
protected Connection |
con
Connection to the scribble database file. |
Constructor Summary | |
---|---|
protected |
ScribbleMgr()
Creates a new ScribbleMgr. |
Method Summary | |
---|---|
private int |
chooseFileFromDB()
Let you choose the file in the database. |
void |
closeConnection()
Close the connection to the DB. |
int |
getFileId(String fileName)
Returns the id corresponding to a file name. |
private String[][] |
getScribbledFiles()
Returns a table with the filenames in the database. |
List<Integer> |
getScribbledPages(int idFile)
Get a list of the numbers of the pages with scribbles. |
List<Integer> |
getScribbles(int pageNumber,
int idFile)
Gets a blob with the scribbles as a list of Integer. |
protected int |
getUnsignedInt(byte b)
Convert a byte in an unsigned int. |
void |
init(File db)
Initialize the connection to an SQLite database with strokes. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected Connection con
Constructor Detail |
---|
protected ScribbleMgr()
Method Detail |
---|
public void init(File db) throws ClassNotFoundException, SQLException
db
- path of the folder which contains the database file
ClassNotFoundException
- if the class for the JDBC driver is not
found
SQLException
- if SQL errors occurpublic void closeConnection() throws SQLException
SQLException
- if SQL errors occurpublic int getFileId(String fileName)
fileName
- the file name
private int chooseFileFromDB() throws IOException
IOException
private String[][] getScribbledFiles()
SQLException
- if SQL errors occourpublic List<Integer> getScribbledPages(int idFile) throws SQLException
idFile
- file id (as in the database)
SQLException
public List<Integer> getScribbles(int pageNumber, int idFile) throws SQLException
pageNumber
- the number of the pageidFile
- id of the file (as in the database)
SQLException
- if SQL errors occourprotected int getUnsignedInt(byte b)
b
- a byte
|
iRex DR1000 Merger v0.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |