From: <cr...@us...> - 2008-07-31 12:50:39
|
Revision: 4371 http://jnode.svn.sourceforge.net/jnode/?rev=4371&view=rev Author: crawley Date: 2008-07-31 12:50:34 +0000 (Thu, 31 Jul 2008) Log Message: ----------- Added the "changed" attribute to <item> which provides a message to be printed if the property value is changed. Tidied imports. Modified Paths: -------------- trunk/builder/src/configure/org/jnode/configure/Screen.java trunk/builder/src/configure/org/jnode/configure/ScriptParser.java trunk/builder/src/configure/org/jnode/configure/adapter/BasePropertyFileAdapter.java trunk/builder/src/configure/org/jnode/configure/adapter/DummyValueCodec.java trunk/builder/src/configure/org/jnode/configure/adapter/JavaStringLiteralCodec.java trunk/builder/src/configure/org/jnode/configure/adapter/PropertyValueCodec.java trunk/builder/src/configure/org/jnode/configure/adapter/XMLValueCodec.java Modified: trunk/builder/src/configure/org/jnode/configure/Screen.java =================================================================== --- trunk/builder/src/configure/org/jnode/configure/Screen.java 2008-07-30 13:22:53 UTC (rev 4370) +++ trunk/builder/src/configure/org/jnode/configure/Screen.java 2008-07-31 12:50:34 UTC (rev 4371) @@ -35,11 +35,13 @@ private final ConfigureScript script; private final String propName; private final String text; + private final String changed; - public Item(ConfigureScript script, String propName, String text) { + public Item(ConfigureScript script, String propName, String text, String changed) { this.script = script; this.propName = propName; this.text = text; + this.changed = changed; } public ConfigureScript getScript() { @@ -53,6 +55,10 @@ public String getText() { return text; } + + public String getChanged() { + return changed; + } } private final String title; @@ -122,7 +128,9 @@ public void execute(Configure configure, ConfigureScript script) throws ConfigureException { configure.output(""); configure.output(title, Configure.DISPLAY_HIGHLIGHT); + // Process the items in order for (Item item : items) { + // Output the item text if provided. String text = item.getText(); if (text != null) { if (text.endsWith("\n")) { @@ -130,22 +138,34 @@ } configure.output(text); } + // Capture the value for the item property PropertySet.Property prop = script.getProperty(item.getPropName()); Value value = null; + Value defaultValue = prop.getDefaultValue(); do { - String info = prop.getType().describe(prop.getDefaultValue()); + String info = prop.getType().describe(defaultValue); String input = configure.input(prop.getDescription() + " " + info + ":"); if (input == null) { throw new ConfigureException("Unexpected EOF on input"); } value = prop.getType().fromInput(input); - if (value == null && input.length() == 0 && prop.hasDefaultValue()) { - configure.debug("Trying default"); - value = prop.getDefaultValue(); + if (value == null && input.length() == 0 && defaultValue != null) { + configure.debug("Using default"); + value = defaultValue; } + // Loop until we get a permissible value. } while (value == null); prop.setValue(value); configure.output(""); + if (item.getChanged() != null) { + // Display message if property value has changed. + String oldValue = (defaultValue == null) ? "" : defaultValue.getText(); + String newValue = value.getText(); + if (!oldValue.equals(newValue)) { + configure.output(item.getChanged()); + configure.output(""); + } + } } } } Modified: trunk/builder/src/configure/org/jnode/configure/ScriptParser.java =================================================================== --- trunk/builder/src/configure/org/jnode/configure/ScriptParser.java 2008-07-30 13:22:53 UTC (rev 4370) +++ trunk/builder/src/configure/org/jnode/configure/ScriptParser.java 2008-07-31 12:50:34 UTC (rev 4371) @@ -63,6 +63,7 @@ public static final String DEFAULT_MARKER = "@"; public static final String VALIDATION_CLASS = "validationClass"; public static final String SCREEN = "screen"; + public static final String CHANGED = "changed"; public static final String NAME = "name"; public static final String PATTERN = "pattern"; public static final String ALT = "alt"; @@ -421,10 +422,11 @@ error("The '" + PROPERTY + "' attribute is required for an '" + ITEM + "' element", child); } + String changed = child.getAttribute(CHANGED, null); if (script.getProperty(propName) == null) { error("Use of undeclared property '" + propName + "'", child); } - screen.addItem(new Item(script, propName, unindent(child.getContent()))); + screen.addItem(new Item(script, propName, unindent(child.getContent()), changed)); } } Modified: trunk/builder/src/configure/org/jnode/configure/adapter/BasePropertyFileAdapter.java =================================================================== --- trunk/builder/src/configure/org/jnode/configure/adapter/BasePropertyFileAdapter.java 2008-07-30 13:22:53 UTC (rev 4370) +++ trunk/builder/src/configure/org/jnode/configure/adapter/BasePropertyFileAdapter.java 2008-07-31 12:50:34 UTC (rev 4371) @@ -41,7 +41,6 @@ import org.jnode.configure.Configure; import org.jnode.configure.ConfigureException; import org.jnode.configure.PropertySet; -import org.jnode.configure.PropertyType; import org.jnode.configure.ScriptParser; import org.jnode.configure.PropertySet.Property; Modified: trunk/builder/src/configure/org/jnode/configure/adapter/DummyValueCodec.java =================================================================== --- trunk/builder/src/configure/org/jnode/configure/adapter/DummyValueCodec.java 2008-07-30 13:22:53 UTC (rev 4370) +++ trunk/builder/src/configure/org/jnode/configure/adapter/DummyValueCodec.java 2008-07-31 12:50:34 UTC (rev 4371) @@ -20,7 +20,6 @@ */ package org.jnode.configure.adapter; -import org.jnode.configure.ConfigureException; /** * Dummy property value encoder / decoder. Performs the identity transform. Modified: trunk/builder/src/configure/org/jnode/configure/adapter/JavaStringLiteralCodec.java =================================================================== --- trunk/builder/src/configure/org/jnode/configure/adapter/JavaStringLiteralCodec.java 2008-07-30 13:22:53 UTC (rev 4370) +++ trunk/builder/src/configure/org/jnode/configure/adapter/JavaStringLiteralCodec.java 2008-07-31 12:50:34 UTC (rev 4371) @@ -20,7 +20,6 @@ */ package org.jnode.configure.adapter; -import org.jnode.configure.ConfigureException; /** * Encoder / decoder for properties embedded in Java code in literal strings or Modified: trunk/builder/src/configure/org/jnode/configure/adapter/PropertyValueCodec.java =================================================================== --- trunk/builder/src/configure/org/jnode/configure/adapter/PropertyValueCodec.java 2008-07-30 13:22:53 UTC (rev 4370) +++ trunk/builder/src/configure/org/jnode/configure/adapter/PropertyValueCodec.java 2008-07-31 12:50:34 UTC (rev 4371) @@ -3,7 +3,6 @@ */ package org.jnode.configure.adapter; -import org.jnode.configure.ConfigureException; /** * Encode / decode for property values in classic Java property files. (This Modified: trunk/builder/src/configure/org/jnode/configure/adapter/XMLValueCodec.java =================================================================== --- trunk/builder/src/configure/org/jnode/configure/adapter/XMLValueCodec.java 2008-07-30 13:22:53 UTC (rev 4370) +++ trunk/builder/src/configure/org/jnode/configure/adapter/XMLValueCodec.java 2008-07-31 12:50:34 UTC (rev 4371) @@ -20,7 +20,6 @@ */ package org.jnode.configure.adapter; -import org.jnode.configure.ConfigureException; /** * Encode / decode for the context of text contents of an XML element. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |