public class ScribbleMgr extends Object
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 | +------------------------+
In the case of PDF files the table stores a record per file, as there is a
metadata.db
file for each folder. 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.
A note taken with the device are memorized in a SQLite databse file with
the same structure above, except taht the content of the file_metadata
table is a single record "file_id=1 filename=.
".
Modifier and Type | Field and Description |
---|---|
protected Connection |
con
Connection to the scribble database file.
|
Constructor and Description |
---|
ScribbleMgr()
Creates a new ScribbleMgr.
|
Modifier and Type | Method and Description |
---|---|
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.
|
String[][] |
getScribbledFiles()
Returns a matrix with the scribbled files in the database.
|
List<Integer> |
getScribbledPages(int idFile)
Returns a list of the pages' number with scribbles.
|
byte[] |
getScribbles(int pageNumber,
int idFile)
Returns a blob with the scribbles.
|
void |
init(File db)
Sets the database file and initialize the connection.
|
static void |
printFiles(String[][] files)
Print a tables with the files in the database.
|
protected Connection con
public void init(File db) throws ClassNotFoundException, SQLException
db
- path of the folder which contains the database fileClassNotFoundException
- if the class for the JDBC driver is not
foundSQLException
- if SQL errors occurpublic void closeConnection() throws SQLException
SQLException
- if SQL errors occurpublic int getFileId(String fileName)
fileName
- the file nameprivate int chooseFileFromDB() throws IOException
IOException
public String[][] getScribbledFiles()
public List<Integer> getScribbledPages(int idFile) throws SQLException
idFile
- file id (as in the database)SQLException
public byte[] 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 occourpublic static void printFiles(String[][] files)
files
- matrix with files, as returned by the method getScribbledFiles
© 2013 andynaz - http://andynaz.altervista.org