Changeset 307
- Timestamp:
- 03/28/06 13:37:45
- Files:
-
- trunk/calendar3/calEnv/src/org/bedework/calenv/CalEnv.java (modified) (1 diff)
- trunk/calendar3/config/src/org/bedework/webconfig/AbstractAction.java (modified) (5 diffs)
- trunk/calendar3/config/src/org/bedework/webconfig/ActionForm.java (modified) (1 diff)
- trunk/calendar3/config/src/org/bedework/webconfig/Defs.java (modified) (1 diff)
- trunk/calendar3/config/src/org/bedework/webconfig/LoadAction.java (modified) (2 diffs)
- trunk/calendar3/config/src/org/bedework/webconfig/collections/Caldavpersonal.java (modified) (1 diff)
- trunk/calendar3/config/src/org/bedework/webconfig/collections/Caldavpublic.java (modified) (1 diff)
- trunk/calendar3/config/src/org/bedework/webconfig/collections/ConfigCollection.java (modified) (3 diffs)
- trunk/calendar3/config/src/org/bedework/webconfig/collections/Modules.java (modified) (1 diff)
- trunk/calendar3/config/src/org/bedework/webconfig/collections/Syspars.java (modified) (1 diff)
- trunk/calendar3/config/src/org/bedework/webconfig/collections/Webadmin.java (modified) (2 diffs)
- trunk/calendar3/config/src/org/bedework/webconfig/collections/Webconfig.java (modified) (2 diffs)
- trunk/calendar3/config/src/org/bedework/webconfig/collections/Webpersonal.java (modified) (2 diffs)
- trunk/calendar3/config/src/org/bedework/webconfig/collections/Webpublic.java (modified) (2 diffs)
- trunk/calendar3/config/src/org/bedework/webconfig/props/ConfigProperty.java (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/calendar3/calEnv/src/org/bedework/calenv/CalEnv.java
r300 r307 140 140 * @throws CalEnvException 141 141 */ 142 public Properties getProperties() throws CalEnvException {142 public static Properties getProperties() throws CalEnvException { 143 143 return getPr(); 144 144 } trunk/calendar3/config/src/org/bedework/webconfig/AbstractAction.java
r302 r307 64 64 import org.bedework.webconfig.collections.Globals; 65 65 import org.bedework.webconfig.collections.Modules; 66 import org.bedework.webconfig.collections.Syspars; 66 67 import org.bedework.webconfig.collections.Webadmin; 67 68 import org.bedework.webconfig.collections.Webconfig; … … 85 86 import org.apache.struts.util.MessageResources; 86 87 87 /** There are 3 ope ations for this simple client <ul>88 /** There are 3 operations for this simple client <ul> 88 89 * <li>load properties</li> 89 90 * <li>refresh</li> … … 114 115 } 115 116 116 if (form.getPropertyCollections().size() == 0) {117 // Load the default properties118 Properties pr = Util.getPropertiesFromResource(defaultProperties);119 resetProperties(pr, form);120 }121 122 117 return forward; 123 118 } … … 161 156 BwWebUtil.setState(request, s); 162 157 } 163 } 164 165 protected void resetProperties(Properties pr, 166 ActionForm form) throws Throwable { 158 159 boolean changed = false; 160 161 if (form.getPropertyCollections().size() == 0) { 162 changed = true; 163 } else { 164 changed = modulesChanged(form); 165 } 166 167 if (changed) { 168 resetProperties(form); 169 } 170 } 171 172 protected void resetProperties(ActionForm form) throws Throwable { 167 173 form.setPropertyCollections(null); // reinit 168 174 169 175 ConfigCollection modules = new Modules(); 170 176 form.addPropertyCollection(modules); 171 form.addPropertyCollection(new Globals()); 177 178 ConfigCollection globals = new Globals(); 179 form.addPropertyCollection(globals); 180 181 ConfigCollection syspars = new Syspars(); 182 form.addPropertyCollection(syspars); 183 184 Properties pr = form.getProperties(); 185 186 /* Initialise those two as they may affect the rest. */ 187 if (pr != null) { 188 modules.initialise(pr, form.getErr()); 189 globals.initialise(pr, form.getErr()); 190 syspars.initialise(pr, form.getErr()); 191 } 172 192 173 193 /* Ensure module names and types same size */ … … 226 246 } 227 247 228 protected boolean saveProperties(Properties pr, 229 ActionForm form) throws Throwable { 248 protected ConfigCollection findCollection(String name, 249 ActionForm form) throws Throwable { 250 Collection c = form.getPropertyCollections(); 251 252 Iterator it = c.iterator(); 253 254 while (it.hasNext()) { 255 ConfigCollection coll = (ConfigCollection)it.next(); 256 257 if (name.equals(coll.getName())) { 258 return coll; 259 } 260 } 261 262 return null; 263 } 264 265 protected boolean modulesChanged(ActionForm form) throws Throwable { 266 ConfigCollection modules = findCollection(modulesCollectionName, form); 267 268 if (modules == null) { 269 return false; 270 } 271 272 OrderedListProperty moduleNames = 273 (OrderedListProperty)modules.findProperty("app.names"); 274 275 OrderedMultiListProperty moduleTypes = 276 (OrderedMultiListProperty)modules.findProperty("app.types"); 277 278 boolean changed = moduleNames.getChanged() || moduleTypes.getChanged(); 279 280 moduleNames.resetChanged(); 281 moduleTypes.resetChanged(); 282 283 return changed; 284 } 285 286 protected boolean saveProperties(ActionForm form) throws Throwable { 230 287 Collection c = form.getPropertyCollections(); 231 288 232 289 Iterator it = c.iterator(); 233 290 boolean ok = true; 291 Properties pr = new Properties(); 292 form.setProperties(pr); 234 293 235 294 while (it.hasNext()) { trunk/calendar3/config/src/org/bedework/webconfig/ActionForm.java
r2 r307 136 136 */ 137 137 public Properties getProperties() { 138 return properties; 138 if (properties == null) { 139 try { 140 properties = (Properties)CalEnv.getProperties().clone(); 141 } catch (Throwable t) { 142 getErr().emit(t); 143 } 144 } 145 return properties; 139 146 } 140 147 trunk/calendar3/config/src/org/bedework/webconfig/Defs.java
r302 r307 80 80 }; 81 81 82 /** */ 83 public static final String modulesCollectionName = "modules"; 84 82 85 /** Default properties file (built in to application) */ 83 public final static String defaultProperties = "/properties/calendar/default-bedework.properties";86 //public final static String defaultProperties = "/properties/calendar/default-bedework.properties"; 84 87 85 88 /* Types for properties */ trunk/calendar3/config/src/org/bedework/webconfig/LoadAction.java
r2 r307 89 89 InputStream is = upFile.getInputStream(); 90 90 Properties pr = new Properties(); 91 form.setProperties(pr); 91 92 92 93 try { … … 97 98 } 98 99 99 resetProperties( pr,form);100 resetProperties(form); 100 101 101 102 return "success"; trunk/calendar3/config/src/org/bedework/webconfig/collections/Caldavpersonal.java
r302 r307 74 74 requiredText("deploy.dir", "deploy.dir"); 75 75 76 requiredText("security.domain", " app.security.domain");76 requiredText("security.domain", "security.domain"); 77 77 78 requiredText("security.prefix", " app.security.prefix");78 requiredText("security.prefix", "security.prefix"); 79 79 80 requiredText("transport.guarantee", " app.transport.guarantee");80 requiredText("transport.guarantee", "transport.guarantee"); 81 81 82 82 // We really want this to set the value of the above to NONE or CONFIDENTIAL 83 83 //addProperty(new BooleanProperty("ssl", "use.ssl", true)); 84 84 85 requiredText("description", " app.description");85 requiredText("description", "description"); 86 86 87 requiredText("display.name", " app.display.name");87 requiredText("display.name", "display.name"); 88 88 89 requiredText("name", "app.name"); 89 requiredText("name", "name"); 90 91 hiddenBoolean("guestmode", "guestmode"); 92 93 hiddenBoolean("publicadmin", "publicadmin"); 94 95 requiredText("logprefix", "logprefix"); 90 96 } 91 97 } 92 trunk/calendar3/config/src/org/bedework/webconfig/collections/Caldavpublic.java
r302 r307 74 74 requiredText("deploy.dir", "deploy.dir"); 75 75 76 requiredText("description", " app.description");76 requiredText("description", "description"); 77 77 78 requiredText("display.name", " app.display.name");78 requiredText("display.name", "display.name"); 79 79 80 requiredText("name", "app.name"); 80 requiredText("name", "name"); 81 82 hiddenBoolean("guestmode", "guestmode"); 83 84 hiddenBoolean("publicadmin", "publicadmin"); 85 86 requiredText("logprefix", "logprefix"); 87 88 requiredText("run.as.user", "run.as.user"); 81 89 } 82 90 } 83 trunk/calendar3/config/src/org/bedework/webconfig/collections/ConfigCollection.java
r302 r307 180 180 } 181 181 182 /** Add a hidden boolean property to the collection 183 * 184 * @param name 185 * @param suffix 186 * @return BooleanProperty 187 * @throws Throwable 188 */ 189 public BooleanProperty hiddenBoolean(String name, String suffix) throws Throwable { 190 BooleanProperty prop = new BooleanProperty(name, suffix, true); 191 prop.setHidden(true); 192 addProperty(prop); 193 194 return prop; 195 } 196 182 197 /** Add an optional boolean property to the collection 183 198 * … … 217 232 public ConfigProperty requiredText(String name, String suffix) throws Throwable { 218 233 ConfigProperty prop = new ConfigProperty(name, suffix, true); 234 addProperty(prop); 235 236 return prop; 237 } 238 239 /** Add a hidden text property to the collection 240 * 241 * @param name 242 * @param suffix 243 * @return ConfigProperty 244 * @throws Throwable 245 */ 246 public ConfigProperty hiddenText(String name, String suffix) throws Throwable { 247 ConfigProperty prop = new ConfigProperty(name, suffix, true); 248 prop.setHidden(true); 219 249 addProperty(prop); 220 250 … … 407 437 return goodValues; 408 438 } 439 440 /* ==================================================================== 441 * Object methods 442 * ==================================================================== */ 443 444 public int compareTo(Object o) { 445 if (!(o instanceof ConfigCollection)) { 446 return -1; 447 } 448 449 if (this == o) { 450 return 0; 451 } 452 453 ConfigCollection that = (ConfigCollection)o; 454 455 return getName().compareTo(that.getName()); 456 } 457 458 /* We always use the compareTo method 459 */ 460 public boolean equals(Object obj) { 461 if (this == obj) { 462 return true; 463 } 464 465 return compareTo(obj) == 0; 466 } 467 468 public int hashCode() { 469 int hc = 1; 470 471 if (getName() != null) { 472 hc *= getName().hashCode(); 473 } 474 475 return hc; 476 } 477 478 public String toString() { 479 StringBuffer sb = new StringBuffer("ConfigCollection{"); 480 481 sb.append("name="); 482 sb.append(getName()); 483 sb.append("}"); 484 485 return sb.toString(); 486 } 409 487 } 410 488 trunk/calendar3/config/src/org/bedework/webconfig/collections/Modules.java
r302 r307 65 65 */ 66 66 public Modules() throws Throwable { 67 super( "modules", "install");67 super(modulesCollectionName, "install"); 68 68 69 69 requiredOrderedList("app.names", "app.names"); trunk/calendar3/config/src/org/bedework/webconfig/collections/Syspars.java
r302 r307 75 75 requiredText("user.calroot", "user.calroot"); 76 76 77 requiredText("default.user.calendar", 78 "default.user.calendar"); 77 requiredText("default.user.calendar", "default.user.calendar"); 79 78 80 requiredText("default.trash.calendar", 81 "default.trash.calendar"); 79 requiredText("default.trash.calendar", "default.trash.calendar"); 82 80 83 requiredText("default.user.inbox", 84 "default.user.inbox"); 81 requiredText("default.user.inbox", "default.user.inbox"); 85 82 86 requiredText("default.user.outbox", 87 "default.user.outbox"); 83 requiredText("default.user.outbox", "default.user.outbox"); 88 84 89 requiredText("default.user.view", 90 "default.user.view"); 85 requiredText("default.user.view", "default.user.view"); 91 86 92 87 requiredText("public.user", "public.user"); trunk/calendar3/config/src/org/bedework/webconfig/collections/Webadmin.java
r302 r307 68 68 super(name, "app." + name); 69 69 70 requiredText("defaultContentType", " app.default.contenttype");70 requiredText("defaultContentType", "default.contenttype"); 71 71 72 72 requiredText("war", "war.name"); … … 74 74 requiredText("context.root", "context.root"); 75 75 76 requiredText("app.root", " app.root");76 requiredText("app.root", "root"); 77 77 78 requiredText("resources.dir", "app.resources.dir");78 //requiredText("resources.dir", "app.resources.dir"); 79 79 80 80 requiredText("deploy.dir", "deploy.dir"); 81 81 82 requiredText("security.domain", " app.security.domain");82 requiredText("security.domain", "security.domain"); 83 83 84 requiredText("security.prefix", " app.security.prefix");84 requiredText("security.prefix", "security.prefix"); 85 85 86 requiredText("transport.guarantee", " app.transport.guarantee");86 requiredText("transport.guarantee", "transport.guarantee"); 87 87 88 88 // We really want this to set the value of the above to NONE or CONFIDENTIAL 89 89 //addProperty(new BooleanProperty("ssl", "use.ssl", true)); 90 90 91 requiredText("description", " app.description");91 requiredText("description", "description"); 92 92 93 requiredText("display.name", " app.display.name");93 requiredText("display.name", "display.name"); 94 94 95 requiredText("name", " app.name");95 requiredText("name", "name"); 96 96 97 requiredBoolean("noGroupAllowed", " app.nogroupallowed");97 requiredBoolean("noGroupAllowed", "nogroupallowed"); 98 98 99 requiredBoolean("autocreatesponsors", "a pp.autocreatesponsors");99 requiredBoolean("autocreatesponsors", "autocreatesponsors"); 100 100 101 requiredBoolean("autodeletesponsors", "a pp.autodeletesponsors");101 requiredBoolean("autodeletesponsors", "autodeletesponsors"); 102 102 103 requiredBoolean("autocreatelocations", "a pp.autocreatelocations");103 requiredBoolean("autocreatelocations", "autocreatelocations"); 104 104 105 requiredBoolean("autodeletelocations", "a pp.autodeletelocations");105 requiredBoolean("autodeletelocations", "autodeletelocations"); 106 106 107 requiredBoolean("allowEditAllCategories", "a pp.allowEditAllCategories");107 requiredBoolean("allowEditAllCategories", "allowEditAllCategories"); 108 108 109 requiredBoolean("allowEditAllLocations", "a pp.allowEditAllLocations");109 requiredBoolean("allowEditAllLocations", "allowEditAllLocations"); 110 110 111 requiredBoolean("allowEditAllSponsors", "a pp.allowEditAllSponsors");111 requiredBoolean("allowEditAllSponsors", "allowEditAllSponsors"); 112 112 113 requiredBoolean("categoryOptional", " app.categoryOptional");113 requiredBoolean("categoryOptional", "categoryOptional"); 114 114 115 requiredBoolean("hour24", " app.hour24");115 requiredBoolean("hour24", "hour24"); 116 116 117 requiredInt("minincrement", " app.minincrement");117 requiredInt("minincrement", "minincrement"); 118 118 119 requiredText("admingroupsidprefix", "app.admingroupsidprefix"); 119 requiredText("admingroupsidprefix", "admingroupsidprefix"); 120 121 hiddenBoolean("guestmode", "guestmode"); 122 123 hiddenBoolean("publicadmin", "publicadmin"); 124 125 requiredText("logprefix", "logprefix"); 126 127 requiredText("run.as.user", "run.as.user"); 120 128 } 121 129 } trunk/calendar3/config/src/org/bedework/webconfig/collections/Webconfig.java
r302 r307 67 67 super(name, "app." + name, false); 68 68 69 requiredText("defaultContentType", " app.default.contenttype");69 requiredText("defaultContentType", "default.contenttype"); 70 70 71 71 requiredText("war", "war.name"); … … 73 73 requiredText("context.root", "context.root"); 74 74 75 requiredText("app.root", " app.root");75 requiredText("app.root", "root"); 76 76 77 requiredText("resources.dir", "app.resources.dir");77 //requiredText("resources.dir", "app.resources.dir"); 78 78 79 79 requiredText("deploy.dir", "deploy.dir"); 80 80 81 requiredText(" envprefix", "env.prefix");81 requiredText("description", "description"); 82 82 83 requiredText("d escription", "app.description");83 requiredText("display.name", "display.name"); 84 84 85 requiredText(" display.name", "app.display.name");85 requiredText("name", "name"); 86 86 87 requiredText("name", "app.name"); 87 hiddenBoolean("guestmode", "guestmode"); 88 89 hiddenBoolean("publicadmin", "publicadmin"); 90 91 requiredText("logprefix", "logprefix"); 88 92 } 89 93 } 90 trunk/calendar3/config/src/org/bedework/webconfig/collections/Webpersonal.java
r302 r307 68 68 super(name, "app." + name); 69 69 70 requiredText("defaultContentType", " app.default.contenttype");70 requiredText("defaultContentType", "default.contenttype"); 71 71 72 72 requiredText("war", "war.name"); … … 74 74 requiredText("context.root", "context.root"); 75 75 76 requiredText("app.root", " app.root");76 requiredText("app.root", "root"); 77 77 78 requiredText("resources.dir", "app.resources.dir");78 //requiredText("resources.dir", "app.resources.dir"); 79 79 80 80 requiredText("deploy.dir", "deploy.dir"); 81 81 82 requiredText("web.xml", " app.web.xml");82 requiredText("web.xml", "web.xml"); 83 83 84 requiredText("security.domain", " app.security.domain");84 requiredText("security.domain", "security.domain"); 85 85 86 requiredText("security.prefix", " app.security.prefix");86 requiredText("security.prefix", "security.prefix"); 87 87 88 requiredText("transport.guarantee", " app.transport.guarantee");88 requiredText("transport.guarantee", "transport.guarantee"); 89 89 90 90 // We really want this to set the value of the above to NONE or CONFIDENTIAL 91 91 //addProperty(new BooleanProperty("ssl", "use.ssl"); 92 92 93 requiredText("description", " app.description");93 requiredText("description", "description"); 94 94 95 requiredText("display.name", " app.display.name");95 requiredText("display.name", "display.name"); 96 96 97 requiredText("name", " app.name");97 requiredText("name", "name"); 98 98 99 requiredBoolean("hour24", " app.hour24");99 requiredBoolean("hour24", "hour24"); 100 100 101 requiredInt("minincrement", " app.minincrement");101 requiredInt("minincrement", "minincrement"); 102 102 103 requiredText("skinset.name", " app.skinset.name");103 requiredText("skinset.name", "skinset.name"); 104 104 105 requiredBoolean("showyeardata", " app.showyeardata");105 requiredBoolean("showyeardata", "showyeardata"); 106 106 107 requiredText("default.view", " app.default.view");107 requiredText("default.view", "default.view"); 108 108 109 requiredInt("refresh.interval", " app.refresh.interval");109 requiredInt("refresh.interval", "refresh.interval"); 110 110 111 requiredText("refresh.action", "app.refresh.action"); 111 requiredText("refresh.action", "refresh.action"); 112 113 hiddenBoolean("guestmode", "guestmode"); 114 115 hiddenBoolean("publicadmin", "publicadmin"); 116 117 requiredText("logprefix", "logprefix"); 112 118 } 113 119 } trunk/calendar3/config/src/org/bedework/webconfig/collections/Webpublic.java
r302 r307 68 68 super(name, "app." + name); 69 69 70 requiredText("defaultContentType", " app.default.contenttype");70 requiredText("defaultContentType", "default.contenttype"); 71 71 72 72 requiredText("war", "war.name"); … … 74 74 requiredText("context.root", "context.root"); 75 75 76 requiredText("app.root", " app.root");76 requiredText("app.root", "root"); 77 77 78 requiredText("resources.dir", "app.resources.dir");78 //requiredText("resources.dir", "app.resources.dir"); 79 79 80 80 requiredText("deploy.dir", "deploy.dir"); 81 81 82 requiredText("web.xml", " app.web.xml");82 requiredText("web.xml", "web.xml"); 83 83 84 requiredText("description", " app.description");84 requiredText("description", "description"); 85 85 86 requiredText("display.name", " app.display.name");86 requiredText("display.name", "display.name"); 87 87 88 requiredText("name", "app.name"); 88 requiredText("name", "name"); 89 90 requiredBoolean("hour24", "hour24"); 91 92 requiredInt("minincrement", "minincrement"); 93 94 requiredText("skinset.name", "skinset.name"); 95 96 requiredBoolean("showyeardata", "showyeardata"); 97 98 requiredText("default.view", "default.view"); 99 100 requiredInt("refresh.interval", "refresh.interval"); 101 102 requiredText("refresh.action", "refresh.action"); 103 104 hiddenBoolean("guestmode", "guestmode"); 105 106 hiddenBoolean("publicadmin", "publicadmin"); 107 108 requiredText("logprefix", "logprefix"); 89 109 90 110 requiredText("run-as", "run.as.user"); 91 92 requiredBoolean("hour24", "app.hour24");93 94 requiredInt("minincrement", "app.minincrement");95 96 requiredText("skinset.name", "app.skinset.name");97 98 requiredBoolean("showyeardata", "app.showyeardata");99 100 requiredText("default.view", "app.default.view");101 102 requiredInt("refresh.interval", "app.refresh.interval");103 104 requiredText("refresh.action", "app.refresh.action");105 111 } 106 112 } trunk/calendar3/config/src/org/bedework/webconfig/props/ConfigProperty.java
r2 r307 79 79 private String suffix; 80 80 private boolean required; 81 private boolean changed; 82 private boolean hidden; // A hidden - constant - property 81 83 private BooleanProperty onlyIf; 84 82 85 private boolean advanced; 83 86 … … 158 161 */ 159 162 public void setValue(String val) { 163 changed = true; 160 164 value = val; 161 165 } … … 185 189 } 186 190 191 /** Get the changed flag 192 * 193 * @return boolean changed 194 */ 195 public boolean getChanged() { 196 return changed; 197 } 198 199 /** Reset the changed flag 200 */ 201 public void resetChanged() { 202 changed = false; 203 } 204 187 205 /** Get the show flag 188 206 * … … 190 208 */ 191 209 public boolean getShow() { 210 if (hidden) { 211 return false; 212 } 213 192 214 if (onlyIf != null) { 193 215 return onlyIf.getBooleanVal(); 194 216 } 217 195 218 return true; 196 219 } … … 210 233 public boolean getGoodValue() { 211 234 return goodValue; 235 } 236 237 /** Set the hidden flag 238 * 239 * @param val boolean 240 */ 241 public void setHidden(boolean val) { 242 hidden = val; 243 } 244 245 /** Return the state of the hidden flag 246 * 247 * @return boolean true for hidden 248 */ 249 public boolean getHidden() { 250 return hidden; 212 251 } 213 252
