sqlite3導入を実施。
-> 新規ファイルを追加。
@@ -0,0 +1,81 @@ | ||
1 | +package jScheduleData; | |
2 | + | |
3 | +import java.io.File; | |
4 | +import java.sql.Connection; | |
5 | +import java.sql.DriverManager; | |
6 | +import java.sql.PreparedStatement; | |
7 | +import java.sql.Statement; | |
8 | + | |
9 | +public abstract class MSchedulerDB { | |
10 | + | |
11 | + // | |
12 | + private File dbFile; | |
13 | + | |
14 | + /** | |
15 | + * コンストラクタ | |
16 | + */ | |
17 | + public MSchedulerDB(File dbFile) { | |
18 | + this.dbFile = dbFile; | |
19 | + } | |
20 | + | |
21 | + /** | |
22 | + * | |
23 | + */ | |
24 | + abstract public void createTable(); | |
25 | + | |
26 | + /** | |
27 | + * prepare statementを取得する | |
28 | + */ | |
29 | + protected PreparedStatement getPStatement(String sql){ | |
30 | + try{ | |
31 | + Class.forName("org.sqlite.JDBC"); | |
32 | + Connection con; | |
33 | + if ((con = getConnection()) == null){ | |
34 | + return null; | |
35 | + } | |
36 | + PreparedStatement pstatement = con.prepareStatement(sql); | |
37 | + return pstatement; | |
38 | + }catch (Exception e){ | |
39 | + e.printStackTrace(); | |
40 | + } | |
41 | + return null; | |
42 | + } | |
43 | + | |
44 | + /** | |
45 | + * statementを取得する | |
46 | + */ | |
47 | + protected Statement getStatement(){ | |
48 | + try{ | |
49 | + Class.forName("org.sqlite.JDBC"); | |
50 | + Connection con; | |
51 | + if ((con = getConnection()) == null){ | |
52 | + return null; | |
53 | + } | |
54 | + Statement statement = con.createStatement(); | |
55 | + return statement; | |
56 | + }catch (Exception e){ | |
57 | + e.printStackTrace(); | |
58 | + } | |
59 | + return null; | |
60 | + } | |
61 | + | |
62 | + /** | |
63 | + * dbに接続する | |
64 | + */ | |
65 | + protected Connection getConnection(){ | |
66 | + if (con!=null){ | |
67 | + return con; | |
68 | + } | |
69 | + | |
70 | + try{ | |
71 | + con = DriverManager.getConnection("jdbc:sqlite:" + dbFile); | |
72 | + return con; | |
73 | + } catch (Exception e){ | |
74 | + e.printStackTrace(); | |
75 | + } | |
76 | + return null; | |
77 | + } | |
78 | + | |
79 | + // | |
80 | + private Connection con; | |
81 | +} |
@@ -0,0 +1,188 @@ | ||
1 | +package jScheduleData; | |
2 | + | |
3 | +import java.awt.Dimension; | |
4 | +import java.awt.Point; | |
5 | +import java.io.File; | |
6 | +import java.sql.PreparedStatement; | |
7 | +import java.sql.ResultSet; | |
8 | +import java.sql.Statement; | |
9 | + | |
10 | +public class MSchedulerDBTPointDimension extends MSchedulerDB { | |
11 | + | |
12 | + // colum定数定義 | |
13 | + // T_POINT_DIMENSION | |
14 | + private static final String COL_MAIN_POINT_X = "main_point_x"; | |
15 | + private static final String COL_MAIN_POINT_Y = "main_point_y"; | |
16 | + private static final String COL_MAIN_DIMENSION_X = "main_dimension_x"; | |
17 | + private static final String COL_MAIN_DIMENSION_Y = "main_dimension_y"; | |
18 | + private static final String COL_DIALOG_POINT_X = "dialog_point_x"; | |
19 | + private static final String COL_DIALOG_POINT_Y = "dialog_point_y"; | |
20 | + private static final String COL_DIALOG_DIMENSION_X = "dialog_dimension_x"; | |
21 | + private static final String COL_DIALOG_DIMENSION_Y = "dialog_dimension_y"; | |
22 | + private static final String COL_USERNAME = "username"; | |
23 | + | |
24 | + | |
25 | + /** | |
26 | + * コンストラクタ | |
27 | + */ | |
28 | + public MSchedulerDBTPointDimension(File dbFile) { | |
29 | + super(dbFile); | |
30 | + } | |
31 | + | |
32 | + /** | |
33 | + * テーブルを作成する | |
34 | + */ | |
35 | + public void createTable(){ | |
36 | + Statement st = getStatement(); | |
37 | + try{ | |
38 | + st.execute("CREATE TABLE T_POINT_DIMENSION(" + | |
39 | + COL_MAIN_POINT_X + "," + | |
40 | + COL_MAIN_POINT_Y + "," + | |
41 | + COL_MAIN_DIMENSION_X + "," + | |
42 | + COL_MAIN_DIMENSION_Y + "," + | |
43 | + COL_DIALOG_POINT_X + "," + | |
44 | + COL_DIALOG_POINT_Y + "," + | |
45 | + COL_DIALOG_DIMENSION_X + "," + | |
46 | + COL_DIALOG_DIMENSION_Y + "," + | |
47 | + COL_USERNAME + ");"); | |
48 | + }catch (Exception e){ | |
49 | + e.printStackTrace(); | |
50 | + } | |
51 | + } | |
52 | + | |
53 | + /** | |
54 | + * レコードを作成する | |
55 | + */ | |
56 | + public int create(Point mainPoint, Dimension mainDimension, Point diagPoint, Dimension diagDimension, String username){ | |
57 | + // SQL | |
58 | + String sql = "INSERT INTO T_POINT_DIMENSION (" + | |
59 | + COL_MAIN_POINT_X + "," + | |
60 | + COL_MAIN_POINT_Y + "," + | |
61 | + COL_MAIN_DIMENSION_X + "," + | |
62 | + COL_MAIN_DIMENSION_Y + "," + | |
63 | + COL_DIALOG_POINT_X + "," + | |
64 | + COL_DIALOG_POINT_Y + "," + | |
65 | + COL_DIALOG_DIMENSION_X + "," + | |
66 | + COL_DIALOG_DIMENSION_Y + "," + | |
67 | + COL_USERNAME + ") " + | |
68 | + "VALUES (?,?,?,?,?,?,?,?,?);"; | |
69 | + | |
70 | + // execute | |
71 | + PreparedStatement ps; | |
72 | + try{ | |
73 | + ps = getPStatement(sql); | |
74 | + ps.setInt(1,mainPoint.x); | |
75 | + ps.setInt(2,mainPoint.y); | |
76 | + ps.setInt(3,mainDimension.width); | |
77 | + ps.setInt(4,mainDimension.height); | |
78 | + ps.setInt(5,diagPoint.x); | |
79 | + ps.setInt(6,diagPoint.y); | |
80 | + ps.setInt(7,diagDimension.width); | |
81 | + ps.setInt(8,diagDimension.height); | |
82 | + ps.setString(9,username); | |
83 | + return ps.executeUpdate(); | |
84 | + }catch (Exception e){ | |
85 | + e.printStackTrace(); | |
86 | + return -1; | |
87 | + } | |
88 | + } | |
89 | + | |
90 | + /** | |
91 | + * 全レコードを削除する | |
92 | + */ | |
93 | + public int deleteAll(){ | |
94 | + // SQL | |
95 | + String sql = "DELETE FROM T_POINT_DIMENSION"; | |
96 | + | |
97 | + // execute | |
98 | + PreparedStatement ps; | |
99 | + try{ | |
100 | + ps = getPStatement(sql); | |
101 | + ps.executeUpdate(); | |
102 | + ps.close(); | |
103 | + return 0; | |
104 | + }catch (Exception e){ | |
105 | + e.printStackTrace(); | |
106 | + return -1; | |
107 | + } | |
108 | + } | |
109 | + | |
110 | + /** | |
111 | + * | |
112 | + */ | |
113 | + public int buildHeaderInfo(JScheduleDataHeaderSqlite jshs){ | |
114 | + return storeHeaderInfo(selectAll(), jshs); | |
115 | + } | |
116 | + | |
117 | + /** | |
118 | + * 読み込む | |
119 | + */ | |
120 | + private ResultSet selectAll(){ | |
121 | + | |
122 | + // SQL | |
123 | + String sql = "SELECT * FROM T_POINT_DIMENSION;"; | |
124 | + | |
125 | + Statement statement = getStatement(); | |
126 | + ResultSet rs; | |
127 | + try{ | |
128 | + rs = statement.executeQuery(sql); | |
129 | + }catch (Exception e){ | |
130 | + e.printStackTrace(); | |
131 | + return null; | |
132 | + } | |
133 | + return rs; | |
134 | + } | |
135 | + | |
136 | + /** | |
137 | + * データをheaderに格納する | |
138 | + */ | |
139 | + private int storeHeaderInfo(ResultSet rs, JScheduleDataHeaderSqlite jshs){ | |
140 | + try{ | |
141 | + while(rs.next()){ | |
142 | + oneHeaderInfo(rs, jshs); | |
143 | + } | |
144 | + return 0; | |
145 | + }catch (Exception e){ | |
146 | + e.printStackTrace(); | |
147 | + return -1; | |
148 | + } | |
149 | + } | |
150 | + | |
151 | + /** | |
152 | + * ひとつのrecordをheaderに格納する | |
153 | + */ | |
154 | + private int oneHeaderInfo(ResultSet rs, JScheduleDataHeaderSqlite jshs){ | |
155 | + | |
156 | + int mainX; | |
157 | + int mainY; | |
158 | + int mainDX; | |
159 | + int mainDY; | |
160 | + int diagX; | |
161 | + int diagY; | |
162 | + int diagDX; | |
163 | + int diagDY; | |
164 | + String username; | |
165 | + | |
166 | + try { | |
167 | + mainX = rs.getInt(COL_MAIN_POINT_X); | |
168 | + mainY = rs.getInt(COL_MAIN_POINT_Y); | |
169 | + mainDX = rs.getInt(COL_MAIN_DIMENSION_X); | |
170 | + mainDY = rs.getInt(COL_MAIN_DIMENSION_Y); | |
171 | + diagX = rs.getInt(COL_DIALOG_POINT_X); | |
172 | + diagY = rs.getInt(COL_DIALOG_POINT_Y); | |
173 | + diagDX = rs.getInt(COL_DIALOG_DIMENSION_X); | |
174 | + diagDY = rs.getInt(COL_DIALOG_DIMENSION_Y); | |
175 | + username = rs.getString(COL_USERNAME); | |
176 | + } catch (Exception e){ | |
177 | + e.printStackTrace(); | |
178 | + return -1; | |
179 | + } | |
180 | + // headerに格納する | |
181 | + jshs.mainFramePoint = new Point(mainX, mainY); | |
182 | + jshs.mainFrameDimension = new Dimension(mainDX, mainDY); | |
183 | + jshs.detailDialogPoint = new Point(diagX, diagY); | |
184 | + jshs.detailDialogDimension = new Dimension(diagDX, diagDY); | |
185 | + jshs.userName = username; | |
186 | + return 0; | |
187 | + } | |
188 | +} |
@@ -0,0 +1,263 @@ | ||
1 | +package jScheduleData; | |
2 | + | |
3 | +import java.io.File; | |
4 | +import java.sql.PreparedStatement; | |
5 | +import java.sql.ResultSet; | |
6 | +import java.sql.Statement; | |
7 | + | |
8 | +import scheduleData.DateInfo; | |
9 | +import scheduleData.ScheduleData; | |
10 | + | |
11 | +public class MSchedulerDBTJscheduleData extends MSchedulerDB { | |
12 | + | |
13 | + // T_JSCHEDULE_DATA | |
14 | + private static final String COL_ID = "id"; | |
15 | + private static final String COL_TITLE = "title"; | |
16 | + private static final String COL_S_DATE = "s_date"; | |
17 | + private static final String COL_E_DATE = "e_date"; | |
18 | + private static final String COL_PLACE = "place"; | |
19 | + private static final String COL_PROJECT_UNIT_NAME = "project_unit_name"; | |
20 | + private static final String COL_PROJECT_CODE = "project_code"; | |
21 | + private static final String COL_PHASE = "phase"; | |
22 | + private static final String COL_WORK = "work"; | |
23 | + private static final String COL_COMMENT = "comment"; | |
24 | + private static final String COL_CLOSED = "closed"; | |
25 | + private static final String COL_UN_FIXED = "un_fixed"; | |
26 | + private static final String COL_PROGRESS_RATIO = "progress_ratio"; | |
27 | + private static final String COL_UNIQUE_ID = "unique_id"; | |
28 | + private static final String COL_WBS_NO = "wbs_no"; | |
29 | + private static final String COL_COLOR_INFO = "color_info"; | |
30 | + | |
31 | + /** | |
32 | + * コンストラクタ | |
33 | + */ | |
34 | + public MSchedulerDBTJscheduleData(File dbFile) { | |
35 | + super(dbFile); | |
36 | + } | |
37 | + | |
38 | + /** | |
39 | + * テーブルを作成する | |
40 | + */ | |
41 | + public void createTable(){ | |
42 | + Statement st = getStatement(); | |
43 | + try{ | |
44 | + st.execute("CREATE TABLE T_JSCHEDULE_DATA(" + | |
45 | + COL_ID + "," + | |
46 | + COL_TITLE + "," + | |
47 | + COL_S_DATE + "," + | |
48 | + COL_E_DATE + "," + | |
49 | + COL_PLACE + "," + | |
50 | + COL_PROJECT_UNIT_NAME + "," + | |
51 | + COL_PROJECT_CODE + "," + | |
52 | + COL_PHASE + "," + | |
53 | + COL_WORK + "," + | |
54 | + COL_COMMENT + "," + | |
55 | + COL_CLOSED + "," + | |
56 | + COL_UN_FIXED + "," + | |
57 | + COL_PROGRESS_RATIO + "," + | |
58 | + COL_UNIQUE_ID + "," + | |
59 | + COL_WBS_NO + "," + | |
60 | + COL_COLOR_INFO + ");"); | |
61 | + }catch (Exception e){ | |
62 | + e.printStackTrace(); | |
63 | + } | |
64 | + | |
65 | + // | |
66 | + createIndex(); | |
67 | + } | |
68 | + | |
69 | + /** | |
70 | + * | |
71 | + */ | |
72 | + private void createIndex(){ | |
73 | + Statement st = getStatement(); | |
74 | + try{ | |
75 | + st.execute("CREATE INDEX IND01 ON T_JSCHEDULE_DATA(" + | |
76 | + COL_ID + ");"); | |
77 | + }catch (Exception e){ | |
78 | + e.printStackTrace(); | |
79 | + } | |
80 | + } | |
81 | + | |
82 | + /** | |
83 | + * | |
84 | + */ | |
85 | + public ScheduleData getById(String id){ | |
86 | + // SQL | |
87 | + String sql = "SELECT * FROM T_JSCHEDULE_DATA WHERE ID = ?"; | |
88 | + | |
89 | + // execute | |
90 | + PreparedStatement ps; | |
91 | + ResultSet rs; | |
92 | + try{ | |
93 | + ps = getPStatement(sql); | |
94 | + ps.setString(1, id); | |
95 | + rs = ps.executeQuery(); | |
96 | + }catch (Exception e){ | |
97 | + e.printStackTrace(); | |
98 | + return null; | |
99 | + } | |
100 | + return exScheduleData(rs); | |
101 | + } | |
102 | + | |
103 | + /** | |
104 | + * レコードを作成する | |
105 | + */ | |
106 | + public int create(ScheduleData sd){ | |
107 | + // SQL | |
108 | + String sql = "INSERT INTO T_JSCHEDULE_DATA (" + | |
109 | + COL_ID + "," + | |
110 | + COL_TITLE + "," + | |
111 | + COL_S_DATE + "," + | |
112 | + COL_E_DATE + "," + | |
113 | + COL_PLACE + "," + | |
114 | + COL_PROJECT_UNIT_NAME + "," + | |
115 | + COL_PROJECT_CODE + "," + | |
116 | + COL_PHASE + "," + | |
117 | + COL_WORK + "," + | |
118 | + COL_COMMENT + "," + | |
119 | + COL_CLOSED + "," + | |
120 | + COL_UN_FIXED + "," + | |
121 | + COL_PROGRESS_RATIO + "," + | |
122 | + COL_UNIQUE_ID + "," + | |
123 | + COL_WBS_NO + "," + | |
124 | + COL_COLOR_INFO + ")" + | |
125 | + "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"; | |
126 | + | |
127 | + // execute | |
128 | + PreparedStatement ps; | |
129 | + try{ | |
130 | + ps = getPStatement(sql); | |
131 | + ps.setString(1,sd.createScheduleDataKey()); | |
132 | + ps.setString(2,sd.getTitle()); | |
133 | + ps.setString(3,sd.getS_date().createDateInfoKey()); | |
134 | + ps.setString(4,sd.getE_date().createDateInfoKey()); | |
135 | + ps.setString(5,sd.getPlace()); | |
136 | + ps.setString(6,sd.getProjectUnitName()); | |
137 | + ps.setString(7,sd.getPrj_code()); | |
138 | + ps.setString(8,sd.getPhaseName()); | |
139 | + ps.setString(9,sd.getWork()); | |
140 | + ps.setString(10,sd.getComment()); | |
141 | + ps.setBoolean(11,sd.isClosed()); | |
142 | + ps.setBoolean(12,sd.isUnFixed()); | |
143 | + ps.setInt(13, sd.getProgressRatio()); | |
144 | + ps.setInt(14,sd.getUniquieId()); | |
145 | + ps.setString(15,sd.getWbsNo()); | |
146 | + ps.setInt(16,sd.getColorInfo()); | |
147 | + return ps.executeUpdate(); | |
148 | + }catch (Exception e){ | |
149 | + e.printStackTrace(); | |
150 | + return -1; | |
151 | + } | |
152 | + } | |
153 | + | |
154 | + | |
155 | + /** | |
156 | + * | |
157 | + */ | |
158 | + public int deleteById(String id){ | |
159 | + // SQL | |
160 | + String sql = "DELETE FROM T_JSCHEDULE_DATA WHERE ID = ?"; | |
161 | + | |
162 | + // execute | |
163 | + PreparedStatement ps; | |
164 | + try{ | |
165 | + ps = getPStatement(sql); | |
166 | + ps.setString(1, id); | |
167 | + return ps.executeUpdate(); | |
168 | + }catch (Exception e){ | |
169 | + e.printStackTrace(); | |
170 | + return -1; | |
171 | + } | |
172 | + } | |
173 | + | |
174 | + /** | |
175 | + * すべてのスケジュールデータを読み込み、mapに格納する | |
176 | + * (初期起動時の処理) | |
177 | + */ | |
178 | + public int buildAllSchedule(DateInfo dateInfo, JScheduleData jsd){ | |
179 | + return scheduleData2map(getAllSchedule(dateInfo),jsd); | |
180 | + } | |
181 | + | |
182 | + /** | |
183 | + * すべてのスケジュールデータを読み込む | |
184 | + */ | |
185 | + private ResultSet getAllSchedule(DateInfo dateInfo){ | |
186 | + | |
187 | + // SQL | |
188 | + String sql = "SELECT * FROM T_JSCHEDULE_DATA WHERE S_DATE >= ?"; | |
189 | + | |
190 | + // execute | |
191 | + PreparedStatement ps; | |
192 | + ResultSet rs; | |
193 | + try{ | |
194 | + ps = getPStatement(sql); | |
195 | + ps.setString(1, dateInfo.createDateInfoKey()); | |
196 | + rs = ps.executeQuery(); | |
197 | + }catch (Exception e){ | |
198 | + e.printStackTrace(); | |
199 | + return null; | |
200 | + } | |
201 | + return rs; | |
202 | + } | |
203 | + | |
204 | + /** | |
205 | + * 読み込んだスケジュールデータをmapに格納する | |
206 | + */ | |
207 | + private int scheduleData2map(ResultSet rs, JScheduleData jsd){ | |
208 | + try{ | |
209 | + while(rs.next()){ | |
210 | + oneScheduleData2map(rs, jsd); | |
211 | + } | |
212 | + return 0; | |
213 | + }catch (Exception e){ | |
214 | + e.printStackTrace(); | |
215 | + return -1; | |
216 | + } | |
217 | + } | |
218 | + | |
219 | + /** | |
220 | + * ひとつのスケジュールデータをmapに格納する | |
221 | + */ | |
222 | + private int oneScheduleData2map(ResultSet rs, JScheduleData jsd){ | |
223 | + | |
224 | + // sdを抽出する | |
225 | + ScheduleData sd; | |
226 | + if ((sd = exScheduleData(rs)) == null){ | |
227 | + return -1; | |
228 | + } | |
229 | + | |
230 | + // mapに格納する | |
231 | + jsd.addSchedule2ScheduleDataMap2(sd); | |
232 | + jsd.addSchedule2DayScheduleDataMap(sd); | |
233 | + return 0; | |
234 | + } | |
235 | + | |
236 | + /** | |
237 | + * resultset からスケジュールデータを作成する | |
238 | + */ | |
239 | + private ScheduleData exScheduleData(ResultSet rs){ | |
240 | + ScheduleData sd = new ScheduleData(); | |
241 | + try { | |
242 | + sd.setTitle(rs.getString(COL_TITLE)); | |
243 | + sd.setS_date(new DateInfo(rs.getString(COL_S_DATE))); | |
244 | + sd.setE_date(new DateInfo(rs.getString(COL_E_DATE))); | |
245 | + sd.setPlace(rs.getString(COL_PLACE)); | |
246 | + sd.setProjectUnitName(rs.getString(COL_PROJECT_UNIT_NAME)); | |
247 | + sd.setPrj_code(rs.getString(COL_PROJECT_CODE)); | |
248 | + sd.setPhaseName(rs.getString(COL_PHASE)); | |
249 | + sd.setWork(rs.getString(COL_WORK)); | |
250 | + sd.setComment(rs.getString(COL_COMMENT)); | |
251 | + sd.setClosed(rs.getBoolean(COL_CLOSED)); | |
252 | + sd.setUnFixed(rs.getBoolean(COL_UN_FIXED)); | |
253 | + sd.setProgressRatio(rs.getInt(COL_PROGRESS_RATIO)); | |
254 | + sd.setUniquieId(rs.getInt(COL_UNIQUE_ID)); | |
255 | + sd.setWbsNo(rs.getString(COL_WBS_NO)); | |
256 | + sd.setColorInfo(rs.getInt(COL_COLOR_INFO)); | |
257 | + } catch (Exception e){ | |
258 | + e.printStackTrace(); | |
259 | + return null; | |
260 | + } | |
261 | + return sd; | |
262 | + } | |
263 | +} |
@@ -0,0 +1,116 @@ | ||
1 | +package jScheduleData; | |
2 | + | |
3 | +import java.io.File; | |
4 | +import java.util.ArrayList; | |
5 | + | |
6 | +import scheduleData.DateInfo; | |
7 | +import scheduleData.ScheduleData; | |
8 | + | |
9 | +import commonData.UserInfo; | |
10 | + | |
11 | +public class JScheduleDataSqlite extends JScheduleData { | |
12 | + | |
13 | + public JScheduleDataSqlite(UserInfo userInfo, File dbFile) { | |
14 | + super(userInfo); | |
15 | + | |
16 | + // 拡張子.sqlite3以外は認めない | |
17 | + if (!dbFile.getPath().endsWith(".sqlite3")){ | |
18 | + return; | |
19 | + } | |
20 | + | |
21 | + this.userInfo = userInfo; | |
22 | + this.db = new MSchedulerDBTJscheduleData(dbFile); | |
23 | + JScheduleDataHeaderSqlite jsdhs = new JScheduleDataHeaderSqlite(dbFile); | |
24 | + | |
25 | + // ファイルがなかったら新規ユーザとみなし、DBとテーブルを作成する | |
26 | + if (!dbFile.exists()){ | |
27 | + db.createTable(); | |
28 | + jsdhs.createTable(); | |
29 | + jsdhs.createDummyHeader(userInfo.getUserName()); | |
30 | + | |
31 | + // 旧jsmのデータ移行を行う | |
32 | + readJsmData(dbFile); | |
33 | + | |
34 | + } | |
35 | + | |
36 | + jsdhs.readHeader(); | |
37 | + setJScheduleDataHeader(jsdhs); | |
38 | + } | |
39 | + | |
40 | + /** | |
41 | + * データ移行 | |
42 | + */ | |
43 | + private void readJsmData(File dbFile){ | |
44 | + File jsmFile; | |
45 | + if ((jsmFile = checkJsmfile(dbFile)) == null){ | |
46 | + return; | |
47 | + } | |
48 | + | |
49 | + JScheduleDataJsm jsdj= new JScheduleDataJsm(userInfo, jsmFile); | |
50 | + jsdj.readScheduleData(); | |
51 | + ArrayList<ScheduleData> sdList= jsdj.getScheduleListAfterDateInfo(new DateInfo("20100101000000")); | |
52 | + addScheduleData(sdList); | |
53 | + } | |
54 | + | |
55 | + /** | |
56 | + * jsmファイルをチェックする | |
57 | + */ | |
58 | + private File checkJsmfile(File dbFile){ | |
59 | + String jsmFilename = dbFile.getPath().replaceAll("sqlite3$", "jsm"); | |
60 | + File jsmFile = new File(jsmFilename); | |
61 | + if (jsmFile.exists()){ | |
62 | + return jsmFile; | |
63 | + }else{ | |
64 | + return null; | |
65 | + } | |
66 | + } | |
67 | + | |
68 | + | |
69 | + /** | |
70 | + * スケジュールデータを読み込む | |
71 | + */ | |
72 | + @Override | |
73 | + public int readScheduleData(DateInfo dateScope) { | |
74 | + | |
75 | + // DataMapを初期化する | |
76 | + createDataMap(); | |
77 | + | |
78 | + // スケジュールデータを読み込み、mapにセットする | |
79 | + if (db.buildAllSchedule(dateScope, this) < 0 ){ | |
80 | + return (-1); | |
81 | + } | |
82 | + return (0); | |
83 | + } | |
84 | + | |
85 | + /** | |
86 | + * スケジュールを追加する | |
87 | + */ | |
88 | + @Override | |
89 | + public int addScheduleData(ArrayList<ScheduleData> sdList){ | |
90 | + for(ScheduleData sd : sdList){ | |
91 | + db.create(sd); | |
92 | + } | |
93 | + return 0; | |
94 | + } | |
95 | + | |
96 | + /** | |
97 | + * スケジュールを削除する | |
98 | + */ | |
99 | + @Override | |
100 | + public int delScheduleData(ArrayList<ScheduleData> sdList){ | |
101 | + for(ScheduleData sd : sdList){ | |
102 | + db.deleteById(sd.createScheduleDataKey()); | |
103 | + } | |
104 | + return 0; | |
105 | + } | |
106 | + | |
107 | + @Override | |
108 | + protected void copyOriginalInformation(ScheduleData sd, ScheduleData addSd) { | |
109 | + // 特になし | |
110 | + } | |
111 | + | |
112 | + // | |
113 | + private UserInfo userInfo; | |
114 | + private MSchedulerDBTJscheduleData db; | |
115 | + | |
116 | +} | |
\ No newline at end of file |
@@ -0,0 +1,81 @@ | ||
1 | +package jScheduleData; | |
2 | + | |
3 | +import java.awt.Dimension; | |
4 | +import java.awt.Point; | |
5 | +import java.io.File; | |
6 | + | |
7 | +public class JScheduleDataHeaderSqlite extends JScheduleDataHeader { | |
8 | + public JScheduleDataHeaderSqlite(File dbFile) { | |
9 | + super(); | |
10 | + db = new MSchedulerDBTPointDimension(dbFile); | |
11 | + } | |
12 | + | |
13 | + /** | |
14 | + * テーブルを作成する | |
15 | + */ | |
16 | + public void createTable(){ | |
17 | + db.createTable(); | |
18 | + } | |
19 | + | |
20 | + /** | |
21 | + * ヘッダ情報を読み込み保管する | |
22 | + */ | |
23 | + public int readHeader(){ | |
24 | + return db.buildHeaderInfo(this); | |
25 | + } | |
26 | + | |
27 | + | |
28 | + /** | |
29 | + * ダミーのヘッダ情報を作成する | |
30 | + */ | |
31 | + @Override | |
32 | + public void createDummyHeader(String userName){ | |
33 | + setMainFramePoint(new Point(0,0)); | |
34 | + setMainFrameDimension(new Dimension(1030,719)); | |
35 | + setDetailDialogPoint(new Point(0,0)); | |
36 | + setDetailDialogDimension(new Dimension(526,367)); | |
37 | + setUserName(userName); | |
38 | + } | |
39 | + | |
40 | + /** | |
41 | + * 保管しているヘッダ情報を書き出す | |
42 | + */ | |
43 | + public int writeHeader(){ | |
44 | + db.deleteAll(); | |
45 | + db.create(getMainFramePoint(), getMainFrameDimension(), getDetailDialogPoint(), getDetailDialogDimension(), getUserName()); | |
46 | + return (0); | |
47 | + } | |
48 | + | |
49 | + @Override | |
50 | + public void setMainFramePoint(Point mainFramePoint) { | |
51 | + super.setMainFramePoint(mainFramePoint); | |
52 | + writeHeader(); | |
53 | + } | |
54 | + | |
55 | + @Override | |
56 | + public void setMainFrameDimension(Dimension mainFrameDimension) { | |
57 | + super.setMainFrameDimension(mainFrameDimension); | |
58 | + writeHeader(); | |
59 | + } | |
60 | + | |
61 | + @Override | |
62 | + public void setDetailDialogPoint(Point detailDialogPoint) { | |
63 | + super.setDetailDialogPoint(detailDialogPoint); | |
64 | + writeHeader(); | |
65 | + } | |
66 | + | |
67 | + @Override | |
68 | + public void setDetailDialogDimension(Dimension detailDialogDimension) { | |
69 | + super.setDetailDialogDimension(detailDialogDimension); | |
70 | + writeHeader(); | |
71 | + } | |
72 | + | |
73 | + @Override | |
74 | + public void setUserName(String userName) { | |
75 | + super.setUserName(userName); | |
76 | + writeHeader(); | |
77 | + } | |
78 | + | |
79 | + // | |
80 | + MSchedulerDBTPointDimension db; | |
81 | +} |