# IGNITE-32 Save presets.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/74356907 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/74356907 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/74356907 Branch: refs/heads/ignite-51 Commit: 74356907f1b055ca29e5d9efeaea7193668025b9 Parents: af83714 Author: AKuznetsov <akuznet...@gridgain.com> Authored: Sun Feb 8 00:59:40 2015 +0700 Committer: AKuznetsov <akuznet...@gridgain.com> Committed: Sun Feb 8 00:59:40 2015 +0700 ---------------------------------------------------------------------- .../apache/ignite/schema/ui/SchemaLoadApp.java | 140 +++++++++++-------- 1 file changed, 85 insertions(+), 55 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74356907/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java ---------------------------------------------------------------------- diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java index d03d252..cd34a10 100644 --- a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java +++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java @@ -47,33 +47,15 @@ import static org.apache.ignite.schema.ui.Controls.*; */ @SuppressWarnings("UnnecessaryFullyQualifiedName") public class SchemaLoadApp extends Application { - /** Default presets for most popular databases. */ - private enum Preset { - /** Preset for H2. */ - H2("H2 Database", "h2.jar", "org.h2.Driver", "jdbc:h2:[database]", "sa"), + /** Presets for database settings. */ + private static class Preset { + /** Name in preferences. */ + private String pref; - /** Preset for DB2. */ - DB2("DB2", "db2jcc4.jar", "com.ibm.db2.jcc.DB2Driver", "jdbc:db2://[host]:[port]/[database]", "db2admin"), + /** RDBMS name to show on screen. */ + private String name; - /** Preset for Oracle. */ - ORACLE("Oracle", "ojdbc6.jar", "oracle.jdbc.OracleDriver", "jdbc:oracle:thin:@[host]:[port]:[database]", "system"), - - /** Preset for MySql. */ - MY_SQL("MySQL", "mysql-connector-java-5-bin.jar", "com.mysql.jdbc.Driver", "jdbc:mysql://[host]:[port]/[database]", "root"), - - /** Preset for MsSql. */ - MS_SQL("Microsoft SQL Server", "sqljdbc41.jar", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "jdbc:sqlserver://[host]:[port][;databaseName=database]", "sa"), - - /** Preset for PostgreSQL. */ - POSTGRE_SQL("PostgreSQL", "postgresql-9.3.jdbc4.jar", "org.postgresql.Driver", "jdbc:postgresql://[host]:[port]/[database]", "sa"), - - /** Preset for custom server. */ - CUSTOM("Custom server...", "custom-jdbc.jar", "org.custom.Driver", "jdbc:custom", "sa"); - - /** RDBMS name. */ - private final String name; - - /** JDBC driver jar name. */ + /** Path to JDBC driver jar. */ private String jar; /** JDBC driver class name. */ @@ -86,15 +68,17 @@ public class SchemaLoadApp extends Application { private String user; /** - * Enum constructor. + * Preset constructor. * - * @param name RDBMS name. - * @param jar JDBC driver jar name. + * @param pref Name in preferences. + * @param name RDBMS name to show on screen. + * @param jar Path to JDBC driver jar.. * @param drv JDBC driver class name. * @param url JDBC URL. * @param user User name. */ - Preset(String name, String jar, String drv, String url, String user) { + Preset(String pref, String name, String jar, String drv, String url, String user) { + this.pref = pref; this.name = name; this.jar = jar; this.drv = drv; @@ -108,9 +92,6 @@ public class SchemaLoadApp extends Application { } } - /** Databases presets. */ - private static Preset[] PRESETS = Preset.values(); - /** */ private Stage owner; @@ -141,6 +122,22 @@ public class SchemaLoadApp extends Application { /** */ private ComboBox<Preset> rdbmsCb; + /** Default presets for popular databases. */ + private final Preset[] presets = { + new Preset("h2", "H2 Database", "h2.jar", "org.h2.Driver", "jdbc:h2:[database]", "sa"), + new Preset("db2", "DB2", "db2jcc4.jar", "com.ibm.db2.jcc.DB2Driver", "jdbc:db2://[host]:[port]/[database]", + "db2admin"), + new Preset("oracle", "Oracle", "ojdbc6.jar", "oracle.jdbc.OracleDriver", + "jdbc:oracle:thin:@[host]:[port]:[database]", "system"), + new Preset("mysql", "MySQL", "mysql-connector-java-5-bin.jar", "com.mysql.jdbc.Driver", + "jdbc:mysql://[host]:[port]/[database]", "root"), + new Preset("mssql", "Microsoft SQL Server", "sqljdbc41.jar", "com.microsoft.sqlserver.jdbc.SQLServerDriver", + "jdbc:sqlserver://[host]:[port][;databaseName=database]", "sa"), + new Preset("posgresql", "PostgreSQL", "postgresql-9.3.jdbc4.jar", "org.postgresql.Driver", + "jdbc:postgresql://[host]:[port]/[database]", "sa"), + new Preset("custom", "Custom server...", "custom-jdbc.jar", "org.custom.Driver", "jdbc:custom", "sa") + }; + /** */ private TextField jdbcDrvJarTf; @@ -649,13 +646,13 @@ public class SchemaLoadApp extends Application { presetPnl.addColumn(100, 100, Double.MAX_VALUE, Priority.ALWAYS); presetPnl.addColumn(); + rdbmsCb = presetPnl.add(comboBox("Select database server to get predefined settings", presets)); - - rdbmsCb = presetPnl.add(comboBox("Select database server to get predefined settings", PRESETS)); - - presetPnl.add(button("Save preset", "", new EventHandler<ActionEvent>() { + presetPnl.add(button("Save preset", "Save current settings in preferences", new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent evt) { - // TODO: CODE: implement. + Preset preset = rdbmsCb.getSelectionModel().getSelectedItem(); + + savePreset(preset); } })); @@ -1148,14 +1145,24 @@ public class SchemaLoadApp extends Application { prev(); - Preferences userPrefs = Preferences.userNodeForPackage(getClass()); + Preferences prefs = Preferences.userNodeForPackage(getClass()); + + // Restore presets. + for (Preset preset : presets) { + String key = "presets." + preset.pref + "."; + + preset.jar = prefs.get(key + "jar", preset.jar); + preset.drv = prefs.get(key + "drv", preset.drv); + preset.url = prefs.get(key + "url", preset.url); + preset.user = prefs.get(key + "user", preset.user); + } // Restore window pos and size. - if (userPrefs.get("window.x", null) != null) { - double x = userPrefs.getDouble("window.x", 100); - double y = userPrefs.getDouble("window.y", 100); - double w = userPrefs.getDouble("window.width", 650); - double h = userPrefs.getDouble("window.height", 650); + if (prefs.get("window.x", null) != null) { + double x = prefs.getDouble("window.x", 100); + double y = prefs.getDouble("window.y", 100); + double w = prefs.getDouble("window.width", 650); + double h = prefs.getDouble("window.height", 650); // Ensure that window fit any available screen. if (!Screen.getScreensForRectangle(x, y, w, h).isEmpty()) { @@ -1175,27 +1182,50 @@ public class SchemaLoadApp extends Application { String userHome = System.getProperty("user.home").replace('\\', '/'); // Restore connection pane settings. - rdbmsCb.getSelectionModel().select(userPrefs.getInt("jdbc.db.preset", 0)); - jdbcDrvJarTf.setText(userPrefs.get("jdbc.driver.jar", "h2.jar")); - jdbcDrvClsTf.setText(userPrefs.get("jdbc.driver.class", "org.h2.Driver")); - jdbcUrlTf.setText(userPrefs.get("jdbc.url", "jdbc:h2:" + userHome + "/ignite-schema-load/db")); - userTf.setText(userPrefs.get("jdbc.user", "sa")); + rdbmsCb.getSelectionModel().select(prefs.getInt("jdbc.db.preset", 0)); + jdbcDrvJarTf.setText(prefs.get("jdbc.driver.jar", "h2.jar")); + jdbcDrvClsTf.setText(prefs.get("jdbc.driver.class", "org.h2.Driver")); + jdbcUrlTf.setText(prefs.get("jdbc.url", "jdbc:h2:" + userHome + "/ignite-schema-load/db")); + userTf.setText(prefs.get("jdbc.user", "sa")); // Restore generation pane settings. - outFolderTf.setText(userPrefs.get("out.folder", userHome + "/ignite-schema-load/out")); + outFolderTf.setText(prefs.get("out.folder", userHome + "/ignite-schema-load/out")); - pkgTf.setText(userPrefs.get("pojo.package", "org.apache.ignite")); - pojoIncludeKeysCh.setSelected(userPrefs.getBoolean("pojo.include", true)); - pojoConstructorCh.setSelected(userPrefs.getBoolean("pojo.constructor", false)); + pkgTf.setText(prefs.get("pojo.package", "org.apache.ignite")); + pojoIncludeKeysCh.setSelected(prefs.getBoolean("pojo.include", true)); + pojoConstructorCh.setSelected(prefs.getBoolean("pojo.constructor", false)); - xmlSingleFileCh.setSelected(userPrefs.getBoolean("xml.single", true)); + xmlSingleFileCh.setSelected(prefs.getBoolean("xml.single", true)); - regexTf.setText(userPrefs.get("naming.pattern", "(\\w+)")); - replaceTf.setText(userPrefs.get("naming.replace", "$1_SomeText")); + regexTf.setText(prefs.get("naming.pattern", "(\\w+)")); + replaceTf.setText(prefs.get("naming.replace", "$1_SomeText")); primaryStage.show(); } + /** + * Save preset. + * + * @param preset Preset to save. + */ + private void savePreset(Preset preset) { + Preferences prefs = Preferences.userNodeForPackage(getClass()); + + String key = "presets." + preset.pref + "."; + + preset.jar = jdbcDrvJarTf.getText(); + prefs.put(key + "jar", preset.jar); + + preset.drv = jdbcDrvClsTf.getText(); + prefs.put(key + "drv", preset.drv); + + preset.url = jdbcUrlTf.getText(); + prefs.put(key + "url", preset.url); + + preset.user = userTf.getText(); + prefs.put(key + "user", preset.user); + } + /** {@inheritDoc} */ @Override public void stop() throws Exception { Preferences userPrefs = Preferences.userNodeForPackage(getClass());