• R/O
  • SSH

JdbcAcsess2: Commit

全てを再実装したJdbcAcsessです。


Commit MetaInfo

Revisiond98e0a9215bf15e7fc0818589e09884cdcd07d5a (tree)
Time2012-03-05 00:32:06
Authorshimakazuro
Commitershimakazuro

Log Message

Eclipseコードスタイル

Change Summary

Incremental Difference

diff -r b863aef7e0d5 -r d98e0a9215bf .settings/org.eclipse.jdt.core.prefs
--- a/.settings/org.eclipse.jdt.core.prefs Sun Mar 04 22:45:58 2012 +0900
+++ b/.settings/org.eclipse.jdt.core.prefs Mon Mar 05 00:32:06 2012 +0900
@@ -1,4 +1,4 @@
1-#Sun Mar 04 22:42:05 JST 2012
1+#Mon Mar 05 00:24:12 JST 2012
22 eclipse.preferences.version=1
33 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
44 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
@@ -17,18 +17,18 @@
1717 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=82
1818 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=82
1919 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=82
20-org.eclipse.jdt.core.formatter.alignment_for_assignment=2
21-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=18
20+org.eclipse.jdt.core.formatter.alignment_for_assignment=16
21+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
2222 org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
23-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=82
23+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=16
2424 org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
25-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=18
25+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
2626 org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
2727 org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
2828 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
2929 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=82
3030 org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
31-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=2
31+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=82
3232 org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
3333 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
3434 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
@@ -69,7 +69,7 @@
6969 org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
7070 org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
7171 org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
72-org.eclipse.jdt.core.formatter.comment.line_length=80
72+org.eclipse.jdt.core.formatter.comment.line_length=120
7373 org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
7474 org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
7575 org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
@@ -90,7 +90,7 @@
9090 org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
9191 org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
9292 org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
93-org.eclipse.jdt.core.formatter.indentation.size=4
93+org.eclipse.jdt.core.formatter.indentation.size=2
9494 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
9595 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
9696 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
@@ -98,10 +98,10 @@
9898 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
9999 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
100100 org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
101-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
101+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=insert
102102 org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
103103 org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
104-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
104+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=insert
105105 org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
106106 org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
107107 org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
@@ -272,7 +272,7 @@
272272 org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
273273 org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
274274 org.eclipse.jdt.core.formatter.join_lines_in_comments=true
275-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
275+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
276276 org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
277277 org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
278278 org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
@@ -283,7 +283,7 @@
283283 org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
284284 org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
285285 org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
286-org.eclipse.jdt.core.formatter.tabulation.char=space
286+org.eclipse.jdt.core.formatter.tabulation.char=tab
287287 org.eclipse.jdt.core.formatter.tabulation.size=4
288288 org.eclipse.jdt.core.formatter.use_on_off_tags=false
289289 org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
diff -r b863aef7e0d5 -r d98e0a9215bf .settings/org.eclipse.jdt.ui.prefs
--- a/.settings/org.eclipse.jdt.ui.prefs Sun Mar 04 22:45:58 2012 +0900
+++ b/.settings/org.eclipse.jdt.ui.prefs Mon Mar 05 00:32:06 2012 +0900
@@ -1,4 +1,4 @@
1-#Sun Mar 04 22:38:37 JST 2012
1+#Mon Mar 05 00:24:14 JST 2012
22 cleanup.add_default_serial_version_id=false
33 cleanup.add_generated_serial_version_id=true
44 cleanup.add_missing_annotations=true
@@ -12,11 +12,11 @@
1212 cleanup.always_use_parentheses_in_expressions=false
1313 cleanup.always_use_this_for_non_static_field_access=false
1414 cleanup.always_use_this_for_non_static_method_access=false
15-cleanup.convert_to_enhanced_for_loop=false
16-cleanup.correct_indentation=false
15+cleanup.convert_to_enhanced_for_loop=true
16+cleanup.correct_indentation=true
1717 cleanup.format_source_code=true
1818 cleanup.format_source_code_changes_only=false
19-cleanup.make_local_variable_final=true
19+cleanup.make_local_variable_final=false
2020 cleanup.make_parameters_final=false
2121 cleanup.make_private_fields_final=true
2222 cleanup.make_type_abstract_if_missing_method=false
@@ -71,7 +71,7 @@
7171 sp_cleanup.always_use_parentheses_in_expressions=false
7272 sp_cleanup.always_use_this_for_non_static_field_access=false
7373 sp_cleanup.always_use_this_for_non_static_method_access=false
74-sp_cleanup.convert_to_enhanced_for_loop=false
74+sp_cleanup.convert_to_enhanced_for_loop=true
7575 sp_cleanup.correct_indentation=true
7676 sp_cleanup.format_source_code=true
7777 sp_cleanup.format_source_code_changes_only=true
diff -r b863aef7e0d5 -r d98e0a9215bf src/jdbcacsess2/main/CodeAssistView.java
--- a/src/jdbcacsess2/main/CodeAssistView.java Sun Mar 04 22:45:58 2012 +0900
+++ b/src/jdbcacsess2/main/CodeAssistView.java Mon Mar 05 00:32:06 2012 +0900
@@ -95,6 +95,7 @@
9595
9696 getRootPane().getActionMap().put("close", new AbstractAction() {
9797 private static final long serialVersionUID = -8760955090381970683L;
98+
9899 @Override
99100 public void actionPerformed(ActionEvent e) {
100101 CodeAssistView.this.setVisible(false);
diff -r b863aef7e0d5 -r d98e0a9215bf src/jdbcacsess2/main/Config.java
--- a/src/jdbcacsess2/main/Config.java Sun Mar 04 22:45:58 2012 +0900
+++ b/src/jdbcacsess2/main/Config.java Mon Mar 05 00:32:06 2012 +0900
@@ -42,243 +42,285 @@
4242
4343 public class Config {
4444
45- private static final String CONFIG_DIR = System.getProperty("user.home") + System.getProperty("file.separator")
46- + ".jdbcacsess2";
47-
48- private static final String CONFIG_DB = "config.derby";
49- private static final String CONFIG_JDBCURL = "jdbc:derby:" + CONFIG_DIR + System.getProperty("file.separator")
50- + CONFIG_DB + ";create=true";
51- private static final String CONFIG_JDBCCLASS = "org.apache.derby.jdbc.EmbeddedDriver";
52- private static final String USER = "";
53- private static final String PASS = "";
54-
55- private final EntityManager entityManager;
56-
57- /**
58- * コンストラクタ
59- *
60- * @throws IOException
61- * @throws ClassNotFoundException
62- * @throws SQLException
63- */
64- public Config() throws IOException, ClassNotFoundException, SQLException {
65-
66- // コンソールとファイルのハンドラーで使用するログフォーマッター
67- Formatter oneLine = new OneLinenFormatter();
68-
69- // コンソールハンドラー
70- Handler consoleHandler = new ConsoleHandler();
71- consoleHandler.setFormatter(oneLine);
72- consoleHandler.setLevel(Level.ALL);
73-
74- Jdbcacsess2.logger.addHandler(consoleHandler);
75- Jdbcacsess2.logger.setUseParentHandlers(false);
76- Jdbcacsess2.loggerActiveObjects.addHandler(consoleHandler);
77- Jdbcacsess2.loggerActiveObjects.setUseParentHandlers(false);
78-
79- // DB作成
80- File configDir = new File(CONFIG_DIR);
81- if (!configDir.exists()) {
82- if (!configDir.mkdir()) {
83- throw new IOException("Couldnt create diretrory:" + configDir.getAbsolutePath());
84- }
85- }
86-
87- // ログファイルハンドラー
88- Handler fileHandler = new FileHandler(CONFIG_DIR + File.separator + "message.log", 1024 * 1024, 5);
89- fileHandler.setFormatter(oneLine);
90- fileHandler.setLevel(Level.ALL);
91-
92- Jdbcacsess2.logger.addHandler(fileHandler);
93- Jdbcacsess2.loggerActiveObjects.addHandler(fileHandler);
94-
95- Jdbcacsess2.logger.info("file logger start");
96- Jdbcacsess2.logger.info("configure directory:" + CONFIG_DIR);
97-
98- // システムプロパティを表示する
99- if (Jdbcacsess2.logger.isLoggable(Level.FINE)) {
100- Properties prop = System.getProperties();
101- ArrayList<String> aList = Collections.list(extracted(prop));
102- Collections.sort(aList);
103-
104- for (Iterator<String> iterator = aList.iterator(); iterator.hasNext();) {
105- String string = iterator.next();
106- Jdbcacsess2.logger.fine(string + ":" + System.getProperty(string));
107- }
108- } else {
109- Jdbcacsess2.logger.info(System.getProperty("java.vm.vendor") + " " + System.getProperty("java.vm.name")
110- + " " + System.getProperty("java.vm.version"));
111- Jdbcacsess2.logger.info(System.getProperty("java.home"));
112- Jdbcacsess2.logger.info(System.getProperty("java.class.path"));
113- Jdbcacsess2.logger.info(System.getProperty("java.library.path"));
114- Jdbcacsess2.logger.info(System.getProperty("java.ext.dirs"));
115- }
116-
117- // ActibObjectsの初期設定
118- Class.forName(CONFIG_JDBCCLASS);
119-
120- this.entityManager = new EntityManager(CONFIG_JDBCURL, USER, PASS);
121- Jdbcacsess2.loggerActiveObjects.setLevel(Level.WARNING);
122- // Jdbcacsess2.loggerActiveObjects.setLevel(Level.FINE);
123-
124- migrate();
125- setUpConfigDbms();
126-
127- Jdbcacsess2.logger.info("Config end");
128- }
129-
130- @SuppressWarnings("unchecked")
131- private Enumeration<String> extracted(Properties prop) {
132- return (Enumeration<String>) prop.propertyNames();
133- }
134-
135- /**
136- * ActiveObjects の migrate を呼ぶ。SuppressWarningsでワーニングを抑止する為にメソッド抽出。
137- *
138- * @throws SQLException
139- */
140- @SuppressWarnings("unchecked")
141- private void migrate() throws SQLException {
142- getEntityManager().migrate(ConfigDbms.class,
143- ConfigConnect.class,
144- ConnectView.ConfigViewConnect.class,
145- MainView.ConfigViewMain.class,
146- ExecHistory.class);
147- }
148-
149- /**
150- * {@link ConfigDbms#DBMSNAME}カラム順のDBMSの一覧
151- *
152- * @return {@link ConfigDbms}の配列
153- * @throws SQLException
154- */
155- public ConfigDbms[] getConfigDbms() throws SQLException {
156- return getEntityManager().find(ConfigDbms.class, Query.select().order(ConfigDbms.DBMSNAME));
157- }
45+ private static final String CONFIG_DIR = System.getProperty("user.home") + System.getProperty("file.separator")
46+ + ".jdbcacsess2";
15847
159- /**
160- * {@link ConfigConnect#CONNECTNAME}カラム順の接続情報の一覧
161- *
162- * @return {@link ConfigConnect}の配列
163- * @throws SQLException
164- */
165- public ConfigConnect[] getConfigConnect() throws SQLException {
166- return getEntityManager().find(ConfigConnect.class, Query.select());
167- }
168-
169- /**
170- * 接続名称で検索し、存在する・しないに関わらず、保存用の{@link ConfigConnect}を返却します。
171- *
172- * @param connectName
173- * 接続名称
174- * @return データがあった場合は検索結果の{@link ConfigConnect}、なかった場合は挿入用の
175- * {@link ConfigConnect}
176- * @throws SQLException
177- */
178- public ConfigConnect getConfigConnectRow(String connectName) throws SQLException {
179- ConfigConnect[] configConnects = getEntityManager().find(ConfigConnect.class,
180- Query.select().where(ConfigConnect.CONNECTNAME + "=?",
181- connectName));
182-
183- ConfigConnect rtn;
184- if (configConnects.length == 0l) {
185- rtn = getEntityManager().create(ConfigConnect.class, new DBParam(ConfigConnect.CONNECTNAME, connectName));
186- } else {
187- rtn = configConnects[0];
188- }
189- return rtn;
190- }
191-
192- /**
193- * component属性を保管するテーブル検索し、先頭1件だけに絞る。
194- *
195- * @param <T>
196- * @param <K>
197- * @param type
198- * 検索対象componentのテーブルクラス
199- * @return データが存在しない時は、
200- * {@link EntityManager#create(Class, net.java.ao.DBParam...)}
201- * を実行し空行を取得します。
202- * @throws SQLException
203- */
204- public <T extends RawEntity<K>, K> T getConfigWindow(Class<T> type) throws SQLException {
205- T[] e = getEntityManager().find(type);
206- if (e.length != 0) {
207- return e[0];
208- }
209- return getEntityManager().create(type);
210- }
48+ private static final String CONFIG_DB = "config.derby";
49+ private static final String CONFIG_JDBCURL = "jdbc:derby:" + CONFIG_DIR + System.getProperty("file.separator")
50+ + CONFIG_DB + ";create=true";
51+ private static final String CONFIG_JDBCCLASS = "org.apache.derby.jdbc.EmbeddedDriver";
52+ private static final String USER = "";
53+ private static final String PASS = "";
21154
212- /**
213- * @throws SQLException
214- */
215- private void setUpConfigDbms() throws SQLException {
216- String[] colnames = { ConfigDbms.DBMSNAME, ConfigDbms.SUBPROTOCOL, ConfigDbms.SUBNAME, ConfigDbms.DRIVERCLASS,
217- ConfigDbms.URLOPTION };
218- String[][] rows = {
219- { "PostgreSQL", "postgresql", "//%HostName%%PortNumber%/%DataBaseName%",
220- "org.postgresql.Driver", "" },
221- { "MySQL", "mysql", "//%HostName%%PortNumber%/%DataBaseName%", "org.gjt.mm.mysql.Driver", "" },
222- { "MySQL(com)", "mysql", "//%HostName%%PortNumber%/%DataBaseName%", "com.mysql.jdbc.Driver",
223- "" },
224- { "HSQL", "hsqldb:hsql", "//%HostName%%PortNumber%/%DataBaseName%", "org.hsqldb.jdbcDriver",
225- "" },
226- { "Oracle(TYPE4:Pure Java)", "oracle:thin", "@%HostName%%PortNumber%:%DataBaseName%",
227- "oracle.jdbc.driver.OracleDriver", "" },
228- { "Oracle(TYPE2:NET)", "oracle:oci", "@%DataBaseName%", "oracle.jdbc.driver.OracleDriver",
229- "" },
230- { "Oracle(TYPE2:NET8)", "oracle:oci8", "@%DataBaseName%", "oracle.jdbc.driver.OracleDriver",
231- "" },
232- { "DB2(TYPE4:Universal)", "db2", "//%HostName%%PortNumber%/%DataBaseName%",
233- "com.ibm.db2.jcc.DB2Driver", "" },
234- { "DB2(TYPE2:Universal)", "db2", "%DataBaseName%", "com.ibm.db2.jcc.DB2Driver", "" },
235- { "DB2(TYPE2:App)", "db2", "%DataBaseName%", "COM.ibm.db2.jdbc.app.DB2Driver", "" },
236- { "DB2(TYPE3:Net)", "db2", "//%HostName%%PortNumber%/%DataBaseName%",
237- "COM.ibm.db2.jdbc.net.DB2Driver", "" },
238- { "SQL Server", "sqlserver", "//%HostName%%PortNumber%;databaseName=%DataBaseName%",
239- "com.microsoft.sqlserver.jdbc.SQLServerDriver", "" },
240- { "SQL Server(2000)", "microsoft:sqlserver",
241- "//%HostName%%PortNumber%;databaseName=%DataBaseName%",
242- "com.microsoft.jdbc.sqlserver.SQLServerDriver", "" },
243- { "Derby(Embedded)", "derby", "%DataBaseName%", "org.apache.derby.jdbc.EmbeddedDriver", "" },
244- { "Derby(Client)", "derby", "%DataBaseName%", "org.apache.derby.jdbc.ClientDriver", "" },
245- { "SQLite", "sqlite", "/%DataBaseName%", "org.sqlite.JDBC", "" },
246- { "Firebird", "firebirdsql", "//%HostName%%PortNumber%/%DataBaseName%",
247- "org.firebirdsql.jdbc.FBDriver", "" },
248- { "Symfoware", "symford", "//%HostName%%PortNumber%/%DataBaseName%",
249- "com.fujitsu.symfoware.jdbc.SYMDriver", "" },
250- { "HiRDB", "hitachi:hirdb", "//DBID=%PortNumberRAW%,DBHOST=%HostName%",
251- "JP.co.Hitachi.soft.HiRDB.JDBC.HiRDBDriver", "" },
252- { "ODBC(TYPE1)", "odbc", "%DataBaseName%", "sun.jdbc.odbc.JdbcOdbcDriver", "" },
253- { "free format", "", "", "", "" } };
55+ private final EntityManager entityManager;
25456
255- for (int i = 0; i < rows.length; i++) {
256- ConfigDbms[] dbms = getEntityManager().find(ConfigDbms.class,
257- Query.select().where(ConfigDbms.DBMSNAME + "=?", rows[i][0]));
258- if (dbms.length == 0) {
259- Map<String, Object> m = new HashMap<String, Object>();
260- for (int j = 0; j < colnames.length; j++) {
261- m.put(colnames[j], rows[i][j]);
262- }
263- getEntityManager().create(ConfigDbms.class, m);
264- Jdbcacsess2.logger.info("not exists:" + rows[i][0]);
265- }
266- }
267- }
57+ /**
58+ * コンストラクタ
59+ *
60+ * @throws IOException
61+ * @throws ClassNotFoundException
62+ * @throws SQLException
63+ */
64+ public Config() throws IOException, ClassNotFoundException, SQLException {
26865
269- /**
270- * 設定情報保管用のDBをクローズ
271- */
272- public void close() {
273- getEntityManager().flushAll();
274- getEntityManager().getProvider().dispose();
275- }
66+ // コンソールとファイルのハンドラーで使用するログフォーマッター
67+ Formatter oneLine = new OneLinenFormatter();
27668
277- /**
278- * @return entityManager
279- */
280- public EntityManager getEntityManager() {
281- return entityManager;
282- }
69+ // コンソールハンドラー
70+ Handler consoleHandler = new ConsoleHandler();
71+ consoleHandler.setFormatter(oneLine);
72+ consoleHandler.setLevel(Level.ALL);
73+
74+ Jdbcacsess2.logger.addHandler(consoleHandler);
75+ Jdbcacsess2.logger.setUseParentHandlers(false);
76+ Jdbcacsess2.loggerActiveObjects.addHandler(consoleHandler);
77+ Jdbcacsess2.loggerActiveObjects.setUseParentHandlers(false);
78+
79+ // DB作成
80+ File configDir = new File(CONFIG_DIR);
81+ if (!configDir.exists()) {
82+ if (!configDir.mkdir()) {
83+ throw new IOException("Couldnt create diretrory:" + configDir.getAbsolutePath());
84+ }
85+ }
86+
87+ // ログファイルハンドラー
88+ Handler fileHandler = new FileHandler(CONFIG_DIR + File.separator + "message.log", 1024 * 1024, 5);
89+ fileHandler.setFormatter(oneLine);
90+ fileHandler.setLevel(Level.ALL);
91+
92+ Jdbcacsess2.logger.addHandler(fileHandler);
93+ Jdbcacsess2.loggerActiveObjects.addHandler(fileHandler);
94+
95+ Jdbcacsess2.logger.info("file logger start");
96+ Jdbcacsess2.logger.info("configure directory:" + CONFIG_DIR);
97+
98+ // システムプロパティを表示する
99+ if (Jdbcacsess2.logger.isLoggable(Level.FINE)) {
100+ Properties prop = System.getProperties();
101+ ArrayList<String> aList = Collections.list(extracted(prop));
102+ Collections.sort(aList);
103+
104+ for (Iterator<String> iterator = aList.iterator(); iterator.hasNext();) {
105+ String string = iterator.next();
106+ Jdbcacsess2.logger.fine(string + ":" + System.getProperty(string));
107+ }
108+ } else {
109+ Jdbcacsess2.logger.info(System.getProperty("java.vm.vendor") + " " + System.getProperty("java.vm.name")
110+ + " " + System.getProperty("java.vm.version"));
111+ Jdbcacsess2.logger.info(System.getProperty("java.home"));
112+ Jdbcacsess2.logger.info(System.getProperty("java.class.path"));
113+ Jdbcacsess2.logger.info(System.getProperty("java.library.path"));
114+ Jdbcacsess2.logger.info(System.getProperty("java.ext.dirs"));
115+ }
116+
117+ // ActibObjectsの初期設定
118+ Class.forName(CONFIG_JDBCCLASS);
119+
120+ this.entityManager = new EntityManager(CONFIG_JDBCURL, USER, PASS);
121+ Jdbcacsess2.loggerActiveObjects.setLevel(Level.WARNING);
122+ // Jdbcacsess2.loggerActiveObjects.setLevel(Level.FINE);
123+
124+ migrate();
125+ setUpConfigDbms();
126+
127+ Jdbcacsess2.logger.info("Config end");
128+ }
129+
130+ @SuppressWarnings("unchecked")
131+ private Enumeration<String> extracted(Properties prop) {
132+ return (Enumeration<String>) prop.propertyNames();
133+ }
134+
135+ /**
136+ * ActiveObjects の migrate を呼ぶ。SuppressWarningsでワーニングを抑止する為にメソッド抽出。
137+ *
138+ * @throws SQLException
139+ */
140+ @SuppressWarnings("unchecked")
141+ private void migrate() throws SQLException {
142+ getEntityManager().migrate(ConfigDbms.class,
143+ ConfigConnect.class,
144+ ConnectView.ConfigViewConnect.class,
145+ MainView.ConfigViewMain.class,
146+ ExecHistory.class);
147+ }
148+
149+ /**
150+ * {@link ConfigDbms#DBMSNAME}カラム順のDBMSの一覧
151+ *
152+ * @return {@link ConfigDbms}の配列
153+ * @throws SQLException
154+ */
155+ public ConfigDbms[] getConfigDbms() throws SQLException {
156+ return getEntityManager().find(ConfigDbms.class, Query.select().order(ConfigDbms.DBMSNAME));
157+ }
158+
159+ /**
160+ * {@link ConfigConnect#CONNECTNAME}カラム順の接続情報の一覧
161+ *
162+ * @return {@link ConfigConnect}の配列
163+ * @throws SQLException
164+ */
165+ public ConfigConnect[] getConfigConnect() throws SQLException {
166+ return getEntityManager().find(ConfigConnect.class, Query.select());
167+ }
168+
169+ /**
170+ * 接続名称で検索し、存在する・しないに関わらず、保存用の{@link ConfigConnect}を返却します。
171+ *
172+ * @param connectName
173+ * 接続名称
174+ * @return データがあった場合は検索結果の{@link ConfigConnect}、なかった場合は挿入用の {@link ConfigConnect}
175+ * @throws SQLException
176+ */
177+ public ConfigConnect getConfigConnectRow(String connectName) throws SQLException {
178+ ConfigConnect[] configConnects = getEntityManager().find(ConfigConnect.class,
179+ Query.select().where(ConfigConnect.CONNECTNAME + "=?",
180+ connectName));
181+
182+ ConfigConnect rtn;
183+ if (configConnects.length == 0l) {
184+ rtn = getEntityManager().create(ConfigConnect.class, new DBParam(ConfigConnect.CONNECTNAME, connectName));
185+ } else {
186+ rtn = configConnects[0];
187+ }
188+ return rtn;
189+ }
190+
191+ /**
192+ * component属性を保管するテーブル検索し、先頭1件だけに絞る。
193+ *
194+ * @param <T>
195+ * @param <K>
196+ * @param type
197+ * 検索対象componentのテーブルクラス
198+ * @return データが存在しない時は、 {@link EntityManager#create(Class, net.java.ao.DBParam...)} を実行し空行を取得します。
199+ * @throws SQLException
200+ */
201+ public <T extends RawEntity<K>, K> T getConfigWindow(Class<T> type) throws SQLException {
202+ T[] e = getEntityManager().find(type);
203+ if (e.length != 0) {
204+ return e[0];
205+ }
206+ return getEntityManager().create(type);
207+ }
208+
209+ /**
210+ * @throws SQLException
211+ */
212+ private void setUpConfigDbms() throws SQLException {
213+ String[] colnames = {
214+ ConfigDbms.DBMSNAME, ConfigDbms.SUBPROTOCOL, ConfigDbms.SUBNAME, ConfigDbms.DRIVERCLASS,
215+ ConfigDbms.URLOPTION
216+ };
217+ String[][] rows = {
218+ {
219+ "PostgreSQL", "postgresql", "//%HostName%%PortNumber%/%DataBaseName%",
220+ "org.postgresql.Driver", ""
221+ },
222+ {
223+ "MySQL", "mysql", "//%HostName%%PortNumber%/%DataBaseName%", "org.gjt.mm.mysql.Driver", ""
224+ },
225+ {
226+ "MySQL(com)", "mysql", "//%HostName%%PortNumber%/%DataBaseName%", "com.mysql.jdbc.Driver",
227+ ""
228+ },
229+ {
230+ "HSQL", "hsqldb:hsql", "//%HostName%%PortNumber%/%DataBaseName%", "org.hsqldb.jdbcDriver",
231+ ""
232+ },
233+ {
234+ "Oracle(TYPE4:Pure Java)", "oracle:thin", "@%HostName%%PortNumber%:%DataBaseName%",
235+ "oracle.jdbc.driver.OracleDriver", ""
236+ },
237+ {
238+ "Oracle(TYPE2:NET)", "oracle:oci", "@%DataBaseName%", "oracle.jdbc.driver.OracleDriver",
239+ ""
240+ },
241+ {
242+ "Oracle(TYPE2:NET8)", "oracle:oci8", "@%DataBaseName%", "oracle.jdbc.driver.OracleDriver",
243+ ""
244+ },
245+ {
246+ "DB2(TYPE4:Universal)", "db2", "//%HostName%%PortNumber%/%DataBaseName%",
247+ "com.ibm.db2.jcc.DB2Driver", ""
248+ },
249+ {
250+ "DB2(TYPE2:Universal)", "db2", "%DataBaseName%", "com.ibm.db2.jcc.DB2Driver", ""
251+ },
252+ {
253+ "DB2(TYPE2:App)", "db2", "%DataBaseName%", "COM.ibm.db2.jdbc.app.DB2Driver", ""
254+ },
255+ {
256+ "DB2(TYPE3:Net)", "db2", "//%HostName%%PortNumber%/%DataBaseName%",
257+ "COM.ibm.db2.jdbc.net.DB2Driver", ""
258+ },
259+ {
260+ "SQL Server", "sqlserver", "//%HostName%%PortNumber%;databaseName=%DataBaseName%",
261+ "com.microsoft.sqlserver.jdbc.SQLServerDriver", ""
262+ },
263+ {
264+ "SQL Server(2000)", "microsoft:sqlserver",
265+ "//%HostName%%PortNumber%;databaseName=%DataBaseName%",
266+ "com.microsoft.jdbc.sqlserver.SQLServerDriver", ""
267+ },
268+ {
269+ "Derby(Embedded)", "derby", "%DataBaseName%", "org.apache.derby.jdbc.EmbeddedDriver", ""
270+ },
271+ {
272+ "Derby(Client)", "derby", "%DataBaseName%", "org.apache.derby.jdbc.ClientDriver", ""
273+ },
274+ {
275+ "SQLite", "sqlite", "/%DataBaseName%", "org.sqlite.JDBC", ""
276+ },
277+ {
278+ "Firebird", "firebirdsql", "//%HostName%%PortNumber%/%DataBaseName%",
279+ "org.firebirdsql.jdbc.FBDriver", ""
280+ },
281+ {
282+ "Symfoware", "symford", "//%HostName%%PortNumber%/%DataBaseName%",
283+ "com.fujitsu.symfoware.jdbc.SYMDriver", ""
284+ },
285+ {
286+ "HiRDB", "hitachi:hirdb", "//DBID=%PortNumberRAW%,DBHOST=%HostName%",
287+ "JP.co.Hitachi.soft.HiRDB.JDBC.HiRDBDriver", ""
288+ },
289+ {
290+ "ODBC(TYPE1)", "odbc", "%DataBaseName%", "sun.jdbc.odbc.JdbcOdbcDriver", ""
291+ },
292+ {
293+ "free format", "", "", "", ""
294+ }
295+ };
296+
297+ for (int i = 0; i < rows.length; i++) {
298+ ConfigDbms[] dbms = getEntityManager().find(ConfigDbms.class,
299+ Query.select().where(ConfigDbms.DBMSNAME + "=?", rows[i][0]));
300+ if (dbms.length == 0) {
301+ Map<String, Object> m = new HashMap<String, Object>();
302+ for (int j = 0; j < colnames.length; j++) {
303+ m.put(colnames[j], rows[i][j]);
304+ }
305+ getEntityManager().create(ConfigDbms.class, m);
306+ Jdbcacsess2.logger.info("not exists:" + rows[i][0]);
307+ }
308+ }
309+ }
310+
311+ /**
312+ * 設定情報保管用のDBをクローズ
313+ */
314+ public void close() {
315+ getEntityManager().flushAll();
316+ getEntityManager().getProvider().dispose();
317+ }
318+
319+ /**
320+ * @return entityManager
321+ */
322+ public EntityManager getEntityManager() {
323+ return entityManager;
324+ }
283325
284326 }
diff -r b863aef7e0d5 -r d98e0a9215bf src/jdbcacsess2/main/FontZoom.java
--- a/src/jdbcacsess2/main/FontZoom.java Sun Mar 04 22:45:58 2012 +0900
+++ b/src/jdbcacsess2/main/FontZoom.java Mon Mar 05 00:32:06 2012 +0900
@@ -25,7 +25,7 @@
2525
2626 /**
2727 * @author sima
28- *
28+ *
2929 */
3030 public class FontZoom {
3131
@@ -67,19 +67,17 @@
6767 /*
6868 * (非 Javadoc)
6969 *
70- * @see
71- * java.awt.event.MouseWheelListener#mouseWheelMoved(java.awt.event.
72- * MouseWheelEvent)
70+ * @see java.awt.event.MouseWheelListener#mouseWheelMoved(java.awt.event. MouseWheelEvent)
7371 */
7472 @Override
7573 public void mouseWheelMoved(MouseWheelEvent e) {
7674 if (!e.isControlDown()) {
7775 return;
7876 }
79- Component c = e.getComponent();
77+ final Component c = e.getComponent();
8078
81- Font font = c.getFont();
82- float size = font.getSize() + (e.getWheelRotation() * -1);
79+ final Font font = c.getFont();
80+ final float size = font.getSize() + (e.getWheelRotation() * -1);
8381 if (4 < size && size < 30) {
8482 c.setFont(font.deriveFont(size));
8583 }
diff -r b863aef7e0d5 -r d98e0a9215bf src/jdbcacsess2/main/JPanelSession.java
--- a/src/jdbcacsess2/main/JPanelSession.java Sun Mar 04 22:45:58 2012 +0900
+++ b/src/jdbcacsess2/main/JPanelSession.java Mon Mar 05 00:32:06 2012 +0900
@@ -121,11 +121,11 @@
121121
122122 super.getTreeCellRendererComponent(tree,
123123 o.isCaching() ? "LOADONG... " + o.getSummary() : o.getSummary(),
124- selected,
125- expanded,
126- leaf,
127- row,
128- hasFocus);
124+ selected,
125+ expanded,
126+ leaf,
127+ row,
128+ hasFocus);
129129 return this;
130130 }
131131 }
@@ -154,7 +154,8 @@
154154 SwingUtilities.invokeLater(new Runnable() {
155155 @Override
156156 public void run() {
157- DefaultTreeTableModel treeTableModel = (DefaultTreeTableModel) getJXTreetableDBObjects().getTreeTableModel();
157+ DefaultTreeTableModel treeTableModel =
158+ (DefaultTreeTableModel) getJXTreetableDBObjects().getTreeTableModel();
158159
159160 for (DBObject dbObject : dbObjects.getDBObjects()) {
160161 DBobjectMutableTreeTableNode child = new DBobjectMutableTreeTableNode(dbObject,
diff -r b863aef7e0d5 -r d98e0a9215bf src/jdbcacsess2/main/JPanelSql.java
--- a/src/jdbcacsess2/main/JPanelSql.java Sun Mar 04 22:45:58 2012 +0900
+++ b/src/jdbcacsess2/main/JPanelSql.java Mon Mar 05 00:32:06 2012 +0900
@@ -57,7 +57,7 @@
5757 import org.fife.ui.rtextarea.RTextScrollPane;
5858
5959 public class JPanelSql extends JPanel implements SqlExecutedListener, DataBaseConnectionListener,
60-DataBaseTransactionListener {
60+ DataBaseTransactionListener {
6161
6262 // -------------------------------------------------------------------------
6363 // -------------------------------------------------------------------------
@@ -72,8 +72,7 @@
7272 /*
7373 * (非 Javadoc)
7474 *
75- * @see
76- * jdbcacsess2.sqlService.DataBaseConnectionListener#dataBaseConnectionOpened
75+ * @see jdbcacsess2.sqlService.DataBaseConnectionListener#dataBaseConnectionOpened
7776 * (jdbcacsess2.sqlService.DataBaseConnection)
7877 */
7978 @Override
@@ -105,9 +104,7 @@
105104 /*
106105 * (非 Javadoc)
107106 *
108- * @see
109- * jdbcacsess2.sqlService.DataBaseConnectionListener#dataBaseConnectionClosing
110- * ()
107+ * @see jdbcacsess2.sqlService.DataBaseConnectionListener#dataBaseConnectionClosing ()
111108 */
112109 @Override
113110 public void dataBaseConnectionClosing(DataBaseConnection dataBaseConnection) {
@@ -127,9 +124,7 @@
127124 /*
128125 * (非 Javadoc)
129126 *
130- * @see
131- * jdbcacsess2.sqlService.DataBaseConnectionListener#dataBaseConnectionClosed
132- * ()
127+ * @see jdbcacsess2.sqlService.DataBaseConnectionListener#dataBaseConnectionClosed ()
133128 */
134129 @Override
135130 public void dataBaseConnectionClosed(DataBaseConnection dataBaseConnection) {
@@ -151,9 +146,7 @@
151146 /*
152147 * (非 Javadoc)
153148 *
154- * @see
155- * jdbcacsess2.sqlService.DataBaseTransactionListener#autoCommitChange(boolean
156- * )
149+ * @see jdbcacsess2.sqlService.DataBaseTransactionListener#autoCommitChange(boolean )
157150 */
158151 @Override
159152 public void autoCommitChange(DataBaseConnection dataBaseConnection, final boolean autoCommit) {
@@ -291,12 +284,11 @@
291284 * 例外発生時に処理を継続するか
292285 */
293286 private boolean exceptionContinue;
287+
294288 /*
295289 * (非 Javadoc)
296290 *
297- * @see
298- * jdbcacsess2.sqlService.SqlExecutedListener#taskAccept(jdbcacsess2.sqlService
299- * .SqlExecuteTask)
291+ * @see jdbcacsess2.sqlService.SqlExecutedListener#taskAccept(jdbcacsess2.sqlService .SqlExecuteTask)
300292 */
301293 @Override
302294 public void taskAccept(SqlExecuteTask sqlExecuteTask) {
@@ -316,8 +308,7 @@
316308 /*
317309 * (非 Javadoc)
318310 *
319- * @see
320- * jdbcacsess2.sqlService.SqlExecutedListener#executBegin(jdbcacsess2.sqlService
311+ * @see jdbcacsess2.sqlService.SqlExecutedListener#executBegin(jdbcacsess2.sqlService
321312 * .SqlExecuteSentencies.SqlExecuteSentence)
322313 */
323314 @Override
@@ -337,7 +328,7 @@
337328 }
338329
339330 writeGuiLog("\nstart sql\n"
340- + sqlExecuteSentence.getSqlSentence());
331+ + sqlExecuteSentence.getSqlSentence());
341332 }
342333 });
343334 }
@@ -357,8 +348,8 @@
357348 public void run() {
358349 getJToggleButtonExecution().setEnabled(true);
359350 writeGuiLog("normal end sql" + counrMessage + " "
360- + Integer.toString(rowCnt) + " row " + sqlExecuteTask.getExecutionTime()
361- + "ms");
351+ + Integer.toString(rowCnt) + " row " + sqlExecuteTask.getExecutionTime()
352+ + "ms");
362353 }
363354 });
364355 }
@@ -366,9 +357,7 @@
366357 /*
367358 * (非 Javadoc)
368359 *
369- * @see
370- * jdbcacsess2.sqlService.SqlExecutedListener#executeException(java.lang
371- * .Throwable)
360+ * @see jdbcacsess2.sqlService.SqlExecutedListener#executeException(java.lang .Throwable)
372361 */
373362 @Override
374363 public void executeException(final Throwable t) {
@@ -380,7 +369,7 @@
380369 public void run() {
381370 getJToggleButtonExecution().setEnabled(true);
382371 writeGuiLog("abnormal end " + counrMessage + "\n "
383- + t.getLocalizedMessage());
372+ + t.getLocalizedMessage());
384373 }
385374 });
386375 ShowDialog.errorMessage(t);
@@ -391,7 +380,9 @@
391380 SwingUtilities.invokeAndWait(new Runnable() {
392381 @Override
393382 public void run() {
394- Object[] options = { "はい、後続のSQL実行を中断", "いいえ、以降の全エラーを無視" };
383+ Object[] options = {
384+ "はい、後続のSQL実行を中断", "いいえ、以降の全エラーを無視"
385+ };
395386 int n = JOptionPane.showOptionDialog(null,
396387 "残りのSQL実行は中断しますか?",
397388 "まだ実行予定のSQLが残ってます",
@@ -423,8 +414,7 @@
423414 /*
424415 * (非 Javadoc)
425416 *
426- * @see
427- * jdbcacsess2.sqlService.SqlExecutedListener#resultHeader(java.util.List)
417+ * @see jdbcacsess2.sqlService.SqlExecutedListener#resultHeader(java.util.List)
428418 */
429419 @Override
430420 public void resultHeader(final List<ColumnAttributeResult> header) {
@@ -440,8 +430,7 @@
440430 /*
441431 * (非 Javadoc)
442432 *
443- * @see jdbcacsess2.sqlService.SqlExecutedListener#resultDetail(int,
444- * java.util.List)
433+ * @see jdbcacsess2.sqlService.SqlExecutedListener#resultDetail(int, java.util.List)
445434 */
446435 @Override
447436 public void resultDetail(int seq, List<Object> detail) {
diff -r b863aef7e0d5 -r d98e0a9215bf src/jdbcacsess2/main/JmyTable.java
--- a/src/jdbcacsess2/main/JmyTable.java Sun Mar 04 22:45:58 2012 +0900
+++ b/src/jdbcacsess2/main/JmyTable.java Mon Mar 05 00:32:06 2012 +0900
@@ -34,7 +34,7 @@
3434
3535 /**
3636 * @author sima
37- *
37+ *
3838 */
3939 public class JmyTable extends JXTable {
4040
diff -r b863aef7e0d5 -r d98e0a9215bf src/jdbcacsess2/main/MainController.java
--- a/src/jdbcacsess2/main/MainController.java Sun Mar 04 22:45:58 2012 +0900
+++ b/src/jdbcacsess2/main/MainController.java Mon Mar 05 00:32:06 2012 +0900
@@ -173,8 +173,10 @@
173173 sql = jPanelSql.getRSyntaxTextAreaSql().getText();
174174 }
175175
176- SqlAsyncExecute sqlAsyncExecute = new SqlAsyncExecute(sql,
177- ((SentenceSeparator) jPanelSql.getJComboBoxSentenceSeparator().getSelectedItem()).getRegVal());
176+ SqlAsyncExecute sqlAsyncExecute =
177+ new SqlAsyncExecute(sql,
178+ ((SentenceSeparator) jPanelSql.getJComboBoxSentenceSeparator()
179+ .getSelectedItem()).getRegVal());
178180 if (sqlAsyncExecute.isDuplxSelect()) {
179181 ShowDialog.warningMessage("複数のSELECT文は実行出来ません", "複数のSELECT文");
180182 jPanelSql.getJToggleButtonExecution().setSelected(false);
@@ -370,7 +372,6 @@
370372 // 画面状態の復元
371373 view.setViewMainPanelSesion(jPanelSession, getConfigViewMain());
372374
373-
374375 // tabに追加してから、HierarchyListenerを登録
375376 JTabbedPane jTabbedPane = view.getJTabbedPaneSession();
376377 jTabbedPane.setSelectedComponent(jTabbedPane.add(dbc.getConnectName(), jPanelSession));
@@ -382,7 +383,6 @@
382383 jTabbedPane.setTabComponentAt(jTabbedPane.indexOfComponent(jPanelSession), tabComponent);
383384 jPanelSession.addHierarchyListener(eventHierarchyParentChanged);
384385
385-
386386 // SQL実行履歴のフィルタをjtableのオブジェクト単位に作成
387387 TableRowSorter<HistryTableModel> sorter = new TableRowSorter<HistryTableModel>(histryTableModel);
388388 sorter.setRowFilter(RowFilter.regexFilter("^" + dbc.getConnectName() + "$",
@@ -405,7 +405,7 @@
405405 jPanelSession.getJTabbedPaneSql().add(jPanelHIstory, "History", 0);
406406
407407 jPanelSession.jLabelStatus.setText("NAME=" + dbc.getConnectName() + " " + "URL=" + dbc.getUrl()
408- + " " + "USER=" + dbc.getUser());
408+ + " " + "USER=" + dbc.getUser());
409409
410410 // SQLパネルの表示
411411 try {
@@ -421,7 +421,8 @@
421421
422422 DBObjectsRoot o = new DBObjectsRoot(dbc.getMetaData());
423423 DBobjectMutableTreeTableNode root = new DBobjectMutableTreeTableNode(o.getDBObjects().get(0), true);
424- DefaultTreeTableModel model = (DefaultTreeTableModel) jPanelSession.getJXTreetableDBObjects().getTreeTableModel();
424+ DefaultTreeTableModel model =
425+ (DefaultTreeTableModel) jPanelSession.getJXTreetableDBObjects().getTreeTableModel();
425426 model.setRoot(root);
426427
427428 jPanelSession.addChildren(root);
@@ -443,7 +444,8 @@
443444
444445 @Override
445446 public void dataBaseConnectionClosed(DataBaseConnection dbc) {
446- Jdbcacsess2.logger.info(jPanelSession.getDataBaseConnection() + " " + jPanelSession.getDataBaseConnection().getUrl());
447+ Jdbcacsess2.logger.info(jPanelSession.getDataBaseConnection() + " "
448+ + jPanelSession.getDataBaseConnection().getUrl());
447449 }
448450
449451 @Override
@@ -600,7 +602,6 @@
600602 }
601603 };
602604
603-
604605 /**
605606 * データベースオブジェクトツリーの再構築を行う
606607 */
@@ -658,7 +659,7 @@
658659 /**
659660 * データベースオブジェクトツリーのリーフを展開する
660661 */
661- private final TreeWillExpandListener eventObjectExpand = new TreeWillExpandListener(){
662+ private final TreeWillExpandListener eventObjectExpand = new TreeWillExpandListener() {
662663 @Override
663664 public void treeWillCollapse(TreeExpansionEvent arg0) throws ExpandVetoException {
664665 }
@@ -804,7 +805,6 @@
804805 view.getJMenuTabbedSessionReNew().addActionListener(actionReNewPanelSession);
805806 view.getJMenuTabbedSessionClose().addActionListener(actionClosePanelSession);
806807
807-
808808 // GUIのコンポーネント属性を復元
809809 view.setViewMain(getConfigViewMain());
810810 view.setVisible(true);
diff -r b863aef7e0d5 -r d98e0a9215bf src/jdbcacsess2/main/ShowDialog.java
--- a/src/jdbcacsess2/main/ShowDialog.java Sun Mar 04 22:45:58 2012 +0900
+++ b/src/jdbcacsess2/main/ShowDialog.java Mon Mar 05 00:32:06 2012 +0900
@@ -30,67 +30,66 @@
3030 */
3131 public class ShowDialog {
3232
33- /**
34- * 例外発生時のメッセージ出力。画面表示とログ出力を行います。画面表示は、SwingUtilities.
35- * invokeLaterを使用しEDTで実行されます。
36- *
37- * @param t
38- * 例外
39- */
40- public static void errorMessage(final Throwable t) {
41- try {
42- SQLException nextSqlException = null;
43- if (t instanceof SQLException) {
44- nextSqlException = ((SQLException) t).getNextException();
45- }
46-
47- Jdbcacsess2.logger.log(Level.SEVERE, "ERROR", t.getStackTrace());
48-
49- final String msg = t.toString() + (nextSqlException != null ? "\n" + nextSqlException.toString() : "");
50-
51- // EDT以外で呼ばれる事も想定し、EDTで実行する。
52- SwingUtilities.invokeLater(new Runnable() {
53- public void run() {
54- JOptionPane.showMessageDialog(null, msg, "ERRORが発生しました", JOptionPane.ERROR_MESSAGE);
55- }
56- });
57- } catch (Throwable e) {
58- // ダイアログ表示時はエラーは全て握りつぶす
59- e.printStackTrace();
60- }
61- }
33+ /**
34+ * 例外発生時のメッセージ出力。画面表示とログ出力を行います。画面表示は、SwingUtilities. invokeLaterを使用しEDTで実行されます。
35+ *
36+ * @param t
37+ * 例外
38+ */
39+ public static void errorMessage(final Throwable t) {
40+ try {
41+ SQLException nextSqlException = null;
42+ if (t instanceof SQLException) {
43+ nextSqlException = ((SQLException) t).getNextException();
44+ }
6245
63- /**
64- * インフォレベルの画面表示。ログ出力も行います。画面表示は、SwingUtilities.invokeLaterを使用しEDTで実行されます。
65- *
66- * @param message
67- * メッセージ本文
68- * @param title
69- * メッセージタイトル
70- */
71- public static void infomationMessage(final Component component, final String message, final String title) {
72- Jdbcacsess2.logger.info("(" + title + ")" + message);
73- SwingUtilities.invokeLater(new Runnable() {
74- public void run() {
75- JOptionPane.showMessageDialog(component, message, title, JOptionPane.INFORMATION_MESSAGE);
76- }
77- });
78- }
46+ Jdbcacsess2.logger.log(Level.SEVERE, "ERROR", t.getStackTrace());
7947
80- /**
81- * ワーニングレベルの画面表示。ログ出力も行います。画面表示は、SwingUtilities.invokeLaterを使用しEDTで実行されます。
82- *
83- * @param message
84- * メッセージ本文
85- * @param title
86- * メッセージタイトル
87- */
88- public static void warningMessage(final String message, final String title) {
89- Jdbcacsess2.logger.warning("(" + title + ")" + message);
90- SwingUtilities.invokeLater(new Runnable() {
91- public void run() {
92- JOptionPane.showMessageDialog(null, message, title, JOptionPane.WARNING_MESSAGE);
93- }
94- });
95- }
48+ final String msg = t.toString() + (nextSqlException != null ? "\n" + nextSqlException.toString() : "");
49+
50+ // EDT以外で呼ばれる事も想定し、EDTで実行する。
51+ SwingUtilities.invokeLater(new Runnable() {
52+ public void run() {
53+ JOptionPane.showMessageDialog(null, msg, "ERRORが発生しました", JOptionPane.ERROR_MESSAGE);
54+ }
55+ });
56+ } catch (Throwable e) {
57+ // ダイアログ表示時はエラーは全て握りつぶす
58+ e.printStackTrace();
59+ }
60+ }
61+
62+ /**
63+ * インフォレベルの画面表示。ログ出力も行います。画面表示は、SwingUtilities.invokeLaterを使用しEDTで実行されます。
64+ *
65+ * @param message
66+ * メッセージ本文
67+ * @param title
68+ * メッセージタイトル
69+ */
70+ public static void infomationMessage(final Component component, final String message, final String title) {
71+ Jdbcacsess2.logger.info("(" + title + ")" + message);
72+ SwingUtilities.invokeLater(new Runnable() {
73+ public void run() {
74+ JOptionPane.showMessageDialog(component, message, title, JOptionPane.INFORMATION_MESSAGE);
75+ }
76+ });
77+ }
78+
79+ /**
80+ * ワーニングレベルの画面表示。ログ出力も行います。画面表示は、SwingUtilities.invokeLaterを使用しEDTで実行されます。
81+ *
82+ * @param message
83+ * メッセージ本文
84+ * @param title
85+ * メッセージタイトル
86+ */
87+ public static void warningMessage(final String message, final String title) {
88+ Jdbcacsess2.logger.warning("(" + title + ")" + message);
89+ SwingUtilities.invokeLater(new Runnable() {
90+ public void run() {
91+ JOptionPane.showMessageDialog(null, message, title, JOptionPane.WARNING_MESSAGE);
92+ }
93+ });
94+ }
9695 }
diff -r b863aef7e0d5 -r d98e0a9215bf src/jdbcacsess2/main/TabComponent.java
--- a/src/jdbcacsess2/main/TabComponent.java Sun Mar 04 22:45:58 2012 +0900
+++ b/src/jdbcacsess2/main/TabComponent.java Mon Mar 05 00:32:06 2012 +0900
@@ -52,8 +52,7 @@
5252 import javax.swing.plaf.basic.BasicButtonUI;
5353
5454 /**
55- * Component to be used as tabComponent; Contains a JLabel to show the text and
56- * a JButton to close the tab it belongs to
55+ * Component to be used as tabComponent; Contains a JLabel to show the text and a JButton to close the tab it belongs to
5756 */
5857 public class TabComponent extends JPanel {
5958
@@ -71,6 +70,7 @@
7170 // make JLabel read titles from JTabbedPane
7271 JLabel label = new JLabel() {
7372 private static final long serialVersionUID = 6611567392269299460L;
73+
7474 @Override
7575 public String getText() {
7676 int i = pane.indexOfTabComponent(TabComponent.this);
diff -r b863aef7e0d5 -r d98e0a9215bf src/jdbcacsess2/main/TabbedPaneMousePointer.java
--- a/src/jdbcacsess2/main/TabbedPaneMousePointer.java Sun Mar 04 22:45:58 2012 +0900
+++ b/src/jdbcacsess2/main/TabbedPaneMousePointer.java Mon Mar 05 00:32:06 2012 +0900
@@ -23,7 +23,7 @@
2323
2424 /**
2525 * @author sima
26- *
26+ *
2727 */
2828 public class TabbedPaneMousePointer extends MouseMotionAdapter {
2929 private volatile int x;
@@ -34,6 +34,7 @@
3434 this.jTabbedPane = jTabbedPane;
3535 jTabbedPane.addMouseMotionListener(this);
3636 }
37+
3738 @Override
3839 public void mouseMoved(MouseEvent e) {
3940 x = e.getX();
diff -r b863aef7e0d5 -r d98e0a9215bf src/jdbcacsess2/main/TableColumnFit.java
--- a/src/jdbcacsess2/main/TableColumnFit.java Sun Mar 04 22:45:58 2012 +0900
+++ b/src/jdbcacsess2/main/TableColumnFit.java Mon Mar 05 00:32:06 2012 +0900
@@ -42,7 +42,7 @@
4242 *
4343 */
4444 public class TableColumnFit implements TableColumnModelListener, TableModelListener, MouseMotionListener,
45-PropertyChangeListener {
45+ PropertyChangeListener {
4646
4747 private final JTable jTable;
4848 private boolean autoFit = false;
@@ -113,9 +113,7 @@
113113 /*
114114 * (非 Javadoc)
115115 *
116- * @see
117- * java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent
118- * )
116+ * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent )
119117 */
120118 @Override
121119 public void mouseDragged(MouseEvent e) {
@@ -126,9 +124,7 @@
126124 /*
127125 * (非 Javadoc)
128126 *
129- * @see
130- * javax.swing.event.TableColumnModelListener#columnAdded(javax.swing.event
131- * .TableColumnModelEvent)
127+ * @see javax.swing.event.TableColumnModelListener#columnAdded(javax.swing.event .TableColumnModelEvent)
132128 */
133129 @Override
134130 public void columnAdded(TableColumnModelEvent e) {
@@ -141,8 +137,7 @@
141137 /*
142138 * (非 Javadoc)
143139 *
144- * @seejavax.swing.event.TableModelListener#tableChanged(javax.swing.event.
145- * TableModelEvent)
140+ * @seejavax.swing.event.TableModelListener#tableChanged(javax.swing.event. TableModelEvent)
146141 */
147142 @Override
148143 public void tableChanged(TableModelEvent event) {
@@ -261,7 +256,7 @@
261256 */
262257 private int preferredWidth(JComponent jComponent) {
263258 int rtn = jComponent.getPreferredSize().width + jComponent.getInsets().left + jComponent.getInsets().right
264- + jTable.getIntercellSpacing().width;
259+ + jTable.getIntercellSpacing().width;
265260 return rtn;
266261 }
267262
@@ -280,8 +275,7 @@
280275 /*
281276 * (非 Javadoc)
282277 *
283- * @see java.beans.PropertyChangeListener#propertyChange(java.beans.
284- * PropertyChangeEvent)
278+ * @see java.beans.PropertyChangeListener#propertyChange(java.beans. PropertyChangeEvent)
285279 */
286280 @Override
287281 public void propertyChange(PropertyChangeEvent evt) {
@@ -294,8 +288,7 @@
294288 /*
295289 * (非 Javadoc)
296290 *
297- * @see
298- * java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
291+ * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
299292 */
300293 @Override
301294 public void mouseMoved(MouseEvent e) {
@@ -304,9 +297,7 @@
304297 /*
305298 * (非 Javadoc)
306299 *
307- * @see
308- * javax.swing.event.TableColumnModelListener#columnMarginChanged(javax.
309- * swing.event.ChangeEvent)
300+ * @see javax.swing.event.TableColumnModelListener#columnMarginChanged(javax. swing.event.ChangeEvent)
310301 */
311302 @Override
312303 public void columnMarginChanged(ChangeEvent e) {
@@ -315,9 +306,7 @@
315306 /*
316307 * (非 Javadoc)
317308 *
318- * @see
319- * javax.swing.event.TableColumnModelListener#columnMoved(javax.swing.event
320- * .TableColumnModelEvent)
309+ * @see javax.swing.event.TableColumnModelListener#columnMoved(javax.swing.event .TableColumnModelEvent)
321310 */
322311 @Override
323312 public void columnMoved(TableColumnModelEvent e) {
@@ -326,9 +315,7 @@
326315 /*
327316 * (非 Javadoc)
328317 *
329- * @see
330- * javax.swing.event.TableColumnModelListener#columnRemoved(javax.swing.
331- * event.TableColumnModelEvent)
318+ * @see javax.swing.event.TableColumnModelListener#columnRemoved(javax.swing. event.TableColumnModelEvent)
332319 */
333320 @Override
334321 public void columnRemoved(TableColumnModelEvent e) {
@@ -337,13 +324,10 @@
337324 /*
338325 * (非 Javadoc)
339326 *
340- * @see
341- * javax.swing.event.TableColumnModelListener#columnSelectionChanged(javax
342- * .swing.event.ListSelectionEvent)
327+ * @see javax.swing.event.TableColumnModelListener#columnSelectionChanged(javax .swing.event.ListSelectionEvent)
343328 */
344329 @Override
345330 public void columnSelectionChanged(ListSelectionEvent e) {
346331 }
347332
348-
349333 }
Show on old repository browser