You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

162 lines
4.7 KiB

import org.gnu.pilotlink.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import java.awt.*;
/**
* Description of the Class
*
* @author stephan
* @created 4. Dezember 2004
*/
public class datebooktst {
/**
* Description of the Method
*
* @param args Description of the Parameter
*/
public static void main(String args[]) {
DatebookRecord dbr;
test tst=new test();
JFrame frame = new JFrame("Progress");
frame.getContentPane().setLayout(new BorderLayout());
JLabel txt = new JLabel("Reading in");
frame.getContentPane().add(txt, BorderLayout.NORTH);
JProgressBar progress = new JProgressBar(0, 100);
frame.getContentPane().add(progress, BorderLayout.CENTER);
frame.setSize(300, 50);
frame.setVisible(true);
String port;
if (args.length==0) {
port="/dev/usb/tts/1";
} else {
port=args[0];
}
File p=new File(port);
System.out.println("looking for file "+port);
if (!p.exists()) {
System.out.println("File does not exist... USB? Waiting for port to appear");
while (!p.exists()) {
System.out.print(".");
try {
Thread.sleep(1000);
} catch (Exception e) {}
}
}
PilotLink pl = null;
try {
pl = new PilotLink(port);
if (!pl.isConnected()) {
System.out.println("Something went wrong. Check output!");
System.exit(1);
}
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
try {
User u = pl.getUserInfo();
System.out.println("User: " + u.getName());
System.out.println("Last Synchronization Date: " + u.getLastSyncDate());
} catch (PilotLinkException e) {
e.printStackTrace();
}
try {
System.out.println("Opening catdb!");
int dbh = pl.openDB("DatebookDB");
System.out.println("db opened!");
System.out.println("Count: " + pl.getRecordCount(dbh));
progress.setMaximum(pl.getRecordCount(dbh));
Vector ids = new Vector();
for (int i = 0; i < pl.getRecordCount(dbh); i++) {
Record r = pl.getRecordByIndex(dbh, i);
progress.setValue(i);
txt.setText("Reading in " + i);
if (r == null) {
break;
}
if (r.getBuffer() == null || r.getBuffer().length == 0) {
System.out.println("0-sized record? Deleting...");
pl.deleteRecordById(dbh, r.getId());
continue;
}
if (!r.isDirty()) {
//only new entries
continue;
}
dbr = new DatebookRecord(r);
//System.out.println("comparing "+dbr.getStartDate()+ "to yesterday "+yesterday);
//if (dbr.getStartDate().before(yesterday) || dbr.getStartDate().after(new Date())) {
// continue;
//}
ids.add(new Integer(i));
System.out.println("Read index " + i);
System.out.println(" id: " + dbr.getId());
System.out.println("attr: " + Integer.toHexString(dbr.getAttribs()));
System.out.println(" dirty:" + dbr.isDirty());
System.out.println(" arch :" + dbr.isArchived());
System.out.println(" del :" + dbr.isDeleted());
System.out.println("size: " + dbr.getSize());
System.out.println("cat : " + dbr.getCategory());
tst.hexdump(dbr.getBuffer());
tst.hexdump(r.getBuffer());
System.out.println("Has alarm : " + dbr.hasAlarm());
System.out.println("Description: " + dbr.hasDescription());
System.out.println("Note : " + dbr.hasNote());
System.out.println("Reapeated : " + dbr.isRepeated());
System.out.println("hasTime : " + dbr.hasTime());
if (dbr.hasDescription()) {
System.out.println("Descr: " + dbr.getDescription());
}
if (dbr.hasNote()) {
System.out.println("Note: " + dbr.getNote());
}
System.out.println("Start: " + dbr.getStartDate());
System.out.println("End: " + dbr.getEndDate());
}
//Doing this not to interfere with the reading of records
for (int i = 0; i < ids.size(); i++) {
System.out.println("updating..." + ids.get(i));
Record r = pl.getRecordByIndex(dbh, ((Integer) ids.get(i)).intValue());
r.setDirty(false);
tst.hexdump(r.getBuffer());
if (r.isDirty()) {
System.out.println("H<><48><EFBFBD><EFBFBD>?!");
}
//pl.writeRecord(dbh,r);
}
System.out.println("\n\n\nNew Datebookentry:\n");
GregorianCalendar start = new GregorianCalendar();
start.setTime(new Date());
start.set(GregorianCalendar.SECOND, 0);
GregorianCalendar end = new GregorianCalendar();
end.setTime(new Date(System.currentTimeMillis() + 15 * 60000));
end.set(GregorianCalendar.SECOND, 0);
System.out.println("Instaciating...");
dbr = new DatebookRecord(start.getTime(), end.getTime(), "Test of pilot-links new java bindings", "");
//tst.hexdump(dbr.getBuffer());
//System.out.println("Size: "+dbr.getSize());
pl.writeRecord(dbh,dbr);
pl.closeDB(dbh);
pl.endSync();
pl.close();
} catch (PilotLinkException e) {
e.printStackTrace();
}
frame.dispose();
}
}