1 23 24 29 package org.dbforms.devgui; 30 31 import java.io.*; 32 33 import java.util.*; 34 35 36 37 44 public class ProjectData implements Serializable, PropertyNames { 45 private static Properties defaultProps; 46 47 static { 50 defaultProps = new Properties(); 51 52 defaultProps.setProperty(INCLUDE_SCHEMANAME, FALSESTRING); 53 54 defaultProps.setProperty(INCLUDE_CATALOGNAME, FALSESTRING); 55 56 defaultProps.setProperty(AUTOCOMMIT_MODE, TRUESTRING); 57 58 defaultProps.setProperty(CATALOG_SELECTION, ALL); 59 60 defaultProps.setProperty(SCHEMA_SELECTION, ALL); 61 62 defaultProps.setProperty(TABLE_SELECTION, ALL); 63 64 defaultProps.setProperty(EXAMINE_TABLES, TRUESTRING); 65 66 defaultProps.setProperty(EXAMINE_VIEWS, TRUESTRING); 67 68 defaultProps.setProperty(EXAMINE_SYSTABS, FALSESTRING); 69 70 defaultProps.setProperty(WRITE_STD_TYPENAMES, FALSESTRING); 71 72 defaultProps.setProperty(FOREIGNKEY_DETECTION, USE_GETIMPORTEDKEYS); 73 } 74 75 private File file; 76 private Properties props; 77 private boolean unsavedChanges = false; 78 79 82 public ProjectData() { 83 this.props = new Properties(defaultProps); 84 85 String dbFormsHomeStr = System.getProperty("DBFORMS_HOME"); 86 87 if (dbFormsHomeStr != null) { 88 setProperty(STYLESHEET_DIR, 89 dbFormsHomeStr 90 + System.getProperties().getProperty("file.separator") 91 + "xsl-stylesheets"); 92 } 93 94 unsavedChanges = false; 95 } 96 97 98 103 public ProjectData(Properties props) { 104 this.props = props; 105 106 unsavedChanges = false; 107 108 String dbFormsHomeStr = props.getProperty(STYLESHEET_DIR); 110 111 if ("".equals(dbFormsHomeStr)) { 112 dbFormsHomeStr = System.getProperty("DBFORMS_HOME"); 113 114 if (dbFormsHomeStr != null) { 115 setProperty(STYLESHEET_DIR, 116 dbFormsHomeStr 117 + System.getProperties().getProperty("file.separator") 118 + "xsl-stylesheets"); 119 120 unsavedChanges = true; 121 } 122 } 123 } 124 125 130 public void setFile(File file) { 131 this.file = file; 132 } 133 134 135 140 public File getFile() { 141 return file; 142 } 143 144 145 151 public void setProperty(String key, 152 String value) { 153 String oldValue = getProperty(key); 154 155 if (!oldValue.equals(value)) { 156 props.setProperty(key, value); 157 158 this.unsavedChanges = true; 159 160 System.out.println("unsaved state look like this:" + this.toString()); 161 } 162 } 163 164 165 172 public String getProperty(String prop) { 173 return props.getProperty(prop, ""); 174 175 } 177 178 179 184 public boolean isUnsaved() { 185 return unsavedChanges; 186 } 187 188 189 198 public static ProjectData loadFromDisc(File f) throws IOException { 199 Properties l_props = new Properties(defaultProps); 200 201 l_props.load(new FileInputStream(f)); 202 203 ProjectData pd = new ProjectData(l_props); 204 205 pd.setFile(f); 206 207 return pd; 208 } 209 210 211 218 public void storeToDisc(File f) throws IOException { 219 this.props.store(new FileOutputStream(f), "DbForms DevGUI Property File"); 220 221 this.file = f; 222 223 this.unsavedChanges = false; 224 } 225 226 227 232 public String toString() { 233 StringBuffer buf = new StringBuffer (); 234 235 Enumeration e = props.propertyNames(); 236 237 boolean first = true; 238 239 while (e.hasMoreElements()) { 240 if (first) { 241 first = false; 242 } else { 243 buf.append(", "); 244 } 245 246 String aPropsName = (String ) e.nextElement(); 247 248 buf.append(aPropsName); 249 250 buf.append("="); 251 252 buf.append(this.getProperty(aPropsName)); 253 } 254 255 return buf.toString(); 256 } 257 } 258 | Popular Tags |