From: <sc...@us...> - 2002-07-31 17:50:50
|
Update of /cvsroot/ggc/ggc/src/db In directory usw-pr-cvs1:/tmp/cvs-serv6474/src/db Modified Files: DataBaseHandler.java MySQLHandler.java TextFileHandler.java Added Files: DummyHandler.java Log Message: lots of fixes --- NEW FILE: DummyHandler.java --- /* * GGC - GNU Gluco Control * * A pure java app to help you manage your diabetes. * * See AUTHORS for copyright information. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Filename: DummyHandler * Purpose: A Default Handler who does nothing. * * Author: schultd */ package db; import datamodels.DailyValues; import datamodels.HbA1cValues; import java.util.Date; public class DummyHandler extends DataBaseHandler { public static DummyHandler singleton = null; public static DataBaseHandler getInstance() { if (singleton == null) singleton = new DummyHandler(); return singleton; } public void closeConnection() { connected = false; } public void closeDataBase() { connectedToDB = false; } public void connect() { connected = false; } public void createNewDataBase(String name) { } public boolean dateTimeExists(Date date) { return false; } public DailyValues getDayStats(Date day) { return null; } public HbA1cValues getHbA1c(Date day) { return null; } public void openDataBase(boolean ask) { } public void saveDayStats(DailyValues dV) { } } Index: DataBaseHandler.java =================================================================== RCS file: /cvsroot/ggc/ggc/src/db/DataBaseHandler.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** DataBaseHandler.java 30 Jul 2002 22:21:51 -0000 1.5 --- DataBaseHandler.java 31 Jul 2002 17:50:46 -0000 1.6 *************** *** 60,67 **** --- 60,74 ---- else if (s.equals("Textfile")) singleton = new TextFileHandler(); + else + singleton = new DummyHandler(); } return singleton; } + public static boolean hasInstance() + { + return singleton != null; + } + public static void killHandler() { *************** *** 101,105 **** public abstract void closeConnection(); ! public abstract void openDataBase(); public abstract void closeDataBase(); --- 108,112 ---- public abstract void closeConnection(); ! public abstract void openDataBase(boolean ask); public abstract void closeDataBase(); Index: MySQLHandler.java =================================================================== RCS file: /cvsroot/ggc/ggc/src/db/MySQLHandler.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** MySQLHandler.java 30 Jul 2002 22:21:51 -0000 1.6 --- MySQLHandler.java 31 Jul 2002 17:50:46 -0000 1.7 *************** *** 33,43 **** import datamodels.HbA1cValues; import gui.StatusBar; import java.sql.*; import java.text.ParseException; import java.text.SimpleDateFormat; - import java.util.Vector; - - import util.GGCProperties; --- 33,42 ---- import datamodels.HbA1cValues; import gui.StatusBar; + import util.GGCProperties; + import javax.swing.*; import java.sql.*; import java.text.ParseException; import java.text.SimpleDateFormat; *************** *** 48,55 **** private GGCProperties props = GGCProperties.getInstance(); ! private MySQLHandler() { super(); ! connect(); } --- 47,54 ---- private GGCProperties props = GGCProperties.getInstance(); ! public MySQLHandler() { super(); ! //connect(); } *************** *** 76,83 **** System.err.println(sqle); } } ! public void openDataBase() { try { con.createStatement().execute("use " + dbName); --- 75,96 ---- System.err.println(sqle); } + if (props.getMySQLOpenDefaultDB()) + openDataBase(false); } ! public void openDataBase(boolean ask) { + if (ask) { + String s = JOptionPane.showInputDialog("Enter DB Name to open:"); + if (s != null && !s.equals("")) + dbName = s; + else { + JOptionPane.showMessageDialog(null, "Invalid Name for a Database", "GGC Error - Invalid Name", JOptionPane.ERROR_MESSAGE); + connectedToDB = false; + return; + } + } else + dbName = props.getMySQLDBName(); + try { con.createStatement().execute("use " + dbName); *************** *** 98,101 **** --- 111,117 ---- public HbA1cValues getHbA1c(java.util.Date day) { + if (!connectedToDB) + return null; + ResultSet results = null; HbA1cValues hbVal = new HbA1cValues(); *************** *** 123,126 **** --- 139,145 ---- public DailyValues getDayStats(java.util.Date day) { + if (!connectedToDB) + return null; + ResultSet results = null; DailyValues dV = new DailyValues(); *************** *** 164,167 **** --- 183,189 ---- public void saveDayStats(DailyValues dV) { + if (!connectedToDB) + return; + Statement statement; try { *************** *** 192,195 **** --- 214,220 ---- public boolean dateTimeExists(java.util.Date date) { + if (!connectedToDB) + return false; + Statement statement; try { *************** *** 243,246 **** --- 268,289 ---- StatusBar.getInstance().setDataSourceText("MySQL [no Connection]"); } + } + + public boolean testConnection(String Host, String Port, String DB, String User, String Pass) throws ClassNotFoundException, SQLException + { + try { + Connection tmpcon; + + Class.forName("org.gjt.mm.mysql.Driver"); + String sourceURL = "jdbc:mysql://" + Host + ":" + Port + "/" + DB + "?user=" + User + "&password=" + Pass; + tmpcon = DriverManager.getConnection(sourceURL); + tmpcon.close(); + return true; + } catch (ClassNotFoundException e) { + throw e; + } catch (SQLException e) { + throw e; + } + } } Index: TextFileHandler.java =================================================================== RCS file: /cvsroot/ggc/ggc/src/db/TextFileHandler.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TextFileHandler.java 30 Jul 2002 22:21:51 -0000 1.1 --- TextFileHandler.java 31 Jul 2002 17:50:46 -0000 1.2 *************** *** 32,38 **** --- 32,40 ---- import datamodels.DailyValuesRow; import datamodels.HbA1cValues; + import gui.StatusBar; import javax.swing.*; import java.io.*; + import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; *************** *** 58,61 **** --- 60,64 ---- { connected = false; + StatusBar.getInstance().setDataSourceText("TextFile: No Connection"); } *************** *** 63,66 **** --- 66,70 ---- { connectedToDB = false; + StatusBar.getInstance().setDataSourceText("TextFile: No File Opened"); } *************** *** 68,71 **** --- 72,78 ---- { connected = true; + StatusBar.getInstance().setDataSourceText("TextFile: Connected"); + if (props.getTextFileOpenDefaultFile()) + openDataBase(false); } *************** *** 84,87 **** --- 91,96 ---- public boolean dateTimeExists(Date date) { + if (!connectedToDB) + return false; try { *************** *** 107,110 **** --- 116,122 ---- public DailyValues getDayStats(Date day) { + if (!connectedToDB) + return null; + DailyValues dV = new DailyValues(); *************** *** 146,170 **** } ! public HbA1cValues getHbA1c(Date day) { ! return null; } ! public void openDataBase() { ! JFileChooser chooser = new JFileChooser(); ! int returnVal = chooser.showOpenDialog(null); ! if (returnVal == JFileChooser.APPROVE_OPTION) { ! dataFile = chooser.getSelectedFile(); ! connectedToDB = true; ! return; ! } ! connectedToDB = false; } public void saveDayStats(DailyValues dV) { try { //write new day --- 158,263 ---- } ! public HbA1cValues getHbA1c(Date endDay) { ! if (!connectedToDB) ! return null; ! ! HbA1cValues hbVal = null; ! ! try { ! hbVal = new HbA1cValues(); ! Date startDay = new Date(endDay.getTime() - 1000L * 60L * 60L * 24L * 90L); ! sdf.applyPattern("yyyy-MM-dd"); ! ! br = new BufferedReader(new FileReader(dataFile)); ! ! String s = br.readLine(); ! ! while (s != null) { ! if (s.startsWith("<day")) { ! String readDate = s.substring(4, 14); ! ! System.out.println(readDate); ! ! Date readDay = sdf.parse(readDate); ! ! System.out.println(readDay); ! ! if (readDay.after(startDay) && readDay.before(endDay)) { ! float sumbg = 0; ! int countbg = 0; ! while (!(s = br.readLine()).equals("</day>")) { ! ! int i = s.indexOf(';', 1); ! ! float bg = new Float(s.substring(++i, i = s.indexOf(';', i))).floatValue(); ! ! System.out.println(bg + ""); ! ! if (bg > 0) { ! sumbg += bg; ! countbg++; ! } ! } ! hbVal.addDay(sumbg / countbg, countbg); ! ! } ! } ! s = br.readLine(); ! } ! br.close(); ! } catch (IOException e) { ! System.out.println(e); ! } catch (ParseException e) { ! System.out.println(e); ! } catch (NumberFormatException e) { ! System.out.println(e); ! } ! ! ! return hbVal; } ! public void openDataBase(boolean ask) { ! File tmpFile = null; ! if (ask) { ! JFileChooser chooser = new JFileChooser(); ! int returnVal = chooser.showOpenDialog(null); ! if (returnVal == JFileChooser.APPROVE_OPTION) ! tmpFile = chooser.getSelectedFile(); ! } else ! tmpFile = new File(props.getTextFilePath()); ! ! if (tmpFile != null) { ! if (!tmpFile.exists()) { ! int res = JOptionPane.showConfirmDialog(null, tmpFile.getAbsolutePath() + " does not exist.\n\nDo you want to create it?", "File does not exist", JOptionPane.YES_NO_OPTION); ! if (res == JOptionPane.YES_OPTION) ! try { ! tmpFile.createNewFile(); ! } catch (IOException e) { ! System.out.println(e); ! connectedToDB = false; ! return; ! } ! else { ! connectedToDB = false; ! return; ! } ! } ! dataFile = tmpFile; ! connectedToDB = true; ! StatusBar.getInstance().setDataSourceText("TextFile: " + dataFile.getName() + " opened"); ! } else ! connectedToDB = false; } public void saveDayStats(DailyValues dV) { + if (!connectedToDB) + return; + try { //write new day |