From 2e9db5e90aebae48dcdc593946ed30ef19ff0205 Mon Sep 17 00:00:00 2001 From: EugeniyVlasov Date: Tue, 13 Nov 2007 22:37:20 +0000 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D1=8F=D0=B2=D0=B8=D0=BB=D0=B0?= =?UTF-8?q?=D1=81=D1=8C=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D1=8C.=20=D1=81?= =?UTF-8?q?=20=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=D0=BC=D0=B8?= =?UTF-8?q?=20=D0=B2=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=20=D0=B1=D0=B5=D0=B4?= =?UTF-8?q?=D0=B0=20=3D))=20=D0=B7=D0=B0=D0=B2=D1=82=D1=80=D0=B0=20=D0=B5?= =?UTF-8?q?=D1=81=D0=BB=D0=B8=20=D0=BF=D1=80=D0=B8=D0=B4=D1=83=D0=BC=D0=B0?= =?UTF-8?q?=D1=8E=20=D1=87=D0=B5=D0=B3=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=83?= =?UTF-8?q?=D1=87=D1=88=D0=B5=20-=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D1=8E.=20=D1=82=D0=B5=D1=81=D1=82,=20=D0=BA=D0=BE=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D1=8B=D0=B9=20=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D1=82=D0=B8=D1=82=D1=8C=20=D0=B8?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BD=D1=8F=D1=82=D1=8C=20=D1=87=D1=82=D0=BE=20?= =?UTF-8?q?=D0=B8=D0=BD=D0=BE=D0=B3=D0=B4=D0=B0=20=D1=8D=D1=82=D0=BE=20?= =?UTF-8?q?=D1=82=D0=BE=D1=87=D0=BD=D0=BE=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=20=D0=BD=D0=B0=D1=85=D0=BE=D0=B4=D0=B8=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20=D0=B2=20=D0=BF=D0=B0=D0=BF=D0=BE=D1=87=D0=BA?= =?UTF-8?q?=D0=B5=20test/org/zlibrary/options/examples.=20=D1=81=D0=BA?= =?UTF-8?q?=D0=BE=D1=80=D0=BE=20=D0=BE=D1=84=D0=BE=D1=80=D0=BC=D0=BB=D1=8E?= =?UTF-8?q?=20=D0=B5=D0=B3=D0=BE=20=D0=BA=D0=B0=D0=BA=20=D0=BD=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82,=20=D0=BD=D0=BE=20=D1=81=D0=B5=D0=B3=D0=BE=D0=B4=D0=BD?= =?UTF-8?q?=D1=8F=20=D1=83=D0=B6=D0=B5=20=D1=81=D0=BF=D0=B0=D1=82=D1=8C=20?= =?UTF-8?q?=D1=85=D0=BE=D1=87=D0=B5=D1=82=D1=81=D1=8F=20=D1=81=D0=B8=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE))=20=D0=B2=D1=81=D0=B5..?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://only.mawhrin.net/repos/FBReaderJ/trunk@133 6a642e6f-84f6-412e-ac94-c4a38d5a04b0 --- .../zlibrary/options/ZLBoolean3Option.java | 12 +- src/org/zlibrary/options/ZLBooleanOption.java | 13 +- src/org/zlibrary/options/ZLColorOption.java | 15 +- src/org/zlibrary/options/ZLDoubleOption.java | 13 +- src/org/zlibrary/options/ZLIntegerOption.java | 13 +- .../options/ZLIntegerRangeOption.java | 27 +- src/org/zlibrary/options/ZLOption.java | 1 + src/org/zlibrary/options/ZLSimpleOption.java | 17 +- .../zlibrary/options/config/ZLCategory.java | 16 +- .../options/{ => config}/ZLConfig.java | 6 +- .../zlibrary/options/config/ZLConfigImpl.java | 10 +- .../options/config/ZLConfigInstance.java | 2 +- src/org/zlibrary/options/config/ZLGroup.java | 11 +- .../options/config/reader/ZLConfigReader.java | 3 +- .../config/reader/ZLConfigReaderFactory.java | 2 +- .../options/config/reader/ZLReader.java | 4 +- .../options/config/writer/ZLConfigWriter.java | 34 +- .../config/writer/ZLConfigWriterFactory.java | 4 +- .../options/config/writer/ZLWriter.java | 5 + .../test/zlibrary/options/example/Main.java | 27 +- .../test/zlibrary/options/example/books.xml | 983 ++++++++++++++++++ .../test/zlibrary/options/example/options.xml | 18 + .../test/zlibrary/options/example/search.xml | 6 + .../test/zlibrary/options/example/state.xml | 783 -------------- test/org/test/zlibrary/options/example/ui.xml | 34 - 25 files changed, 1157 insertions(+), 902 deletions(-) rename src/org/zlibrary/options/{ => config}/ZLConfig.java (74%) create mode 100644 src/org/zlibrary/options/config/writer/ZLWriter.java create mode 100644 test/org/test/zlibrary/options/example/books.xml create mode 100644 test/org/test/zlibrary/options/example/options.xml create mode 100644 test/org/test/zlibrary/options/example/search.xml delete mode 100644 test/org/test/zlibrary/options/example/state.xml delete mode 100644 test/org/test/zlibrary/options/example/ui.xml diff --git a/src/org/zlibrary/options/ZLBoolean3Option.java b/src/org/zlibrary/options/ZLBoolean3Option.java index 5c15aec57..ccf7df870 100644 --- a/src/org/zlibrary/options/ZLBoolean3Option.java +++ b/src/org/zlibrary/options/ZLBoolean3Option.java @@ -13,6 +13,12 @@ public final class ZLBoolean3Option extends ZLSimpleOption { private ZLBoolean3 myValue; private ZLBoolean3 myDefaultValue; + public ZLBoolean3Option(String category, String group, String optionName, ZLBoolean3 defaultValue){ + super(category, group, optionName); + myDefaultValue = defaultValue; + myValue = myDefaultValue; + } + public ZLOptionType getType(){ return ZLOptionType.TYPE_BOOLEAN3; } @@ -42,10 +48,4 @@ public final class ZLBoolean3Option extends ZLSimpleOption { myConfig.setValue(myCategory, myOptionName, myGroup, stringValue); } } - - public ZLBoolean3Option(String category, String group, String optionName, ZLBoolean3 defaultValue){ - super(category, group, optionName); - myDefaultValue = defaultValue; - myValue = myDefaultValue; - } } diff --git a/src/org/zlibrary/options/ZLBooleanOption.java b/src/org/zlibrary/options/ZLBooleanOption.java index 25440c90c..1e7f88592 100644 --- a/src/org/zlibrary/options/ZLBooleanOption.java +++ b/src/org/zlibrary/options/ZLBooleanOption.java @@ -13,6 +13,12 @@ public final class ZLBooleanOption extends ZLSimpleOption { private boolean myValue; private boolean myDefaultValue; + public ZLBooleanOption (String category, String group, String optionName, boolean defaultValue){ + super(category, group, optionName); + myDefaultValue = defaultValue; + myValue = myDefaultValue; + } + public ZLOptionType getType(){ return ZLOptionType.TYPE_BOOLEAN; } @@ -41,11 +47,4 @@ public final class ZLBooleanOption extends ZLSimpleOption { myConfig.setValue(myCategory, myGroup, myOptionName, stringValue); } } - - public ZLBooleanOption (String category, String group, String optionName, boolean defaultValue){ - super(category, group, optionName); - myDefaultValue = defaultValue; - myValue = myDefaultValue; - } - } diff --git a/src/org/zlibrary/options/ZLColorOption.java b/src/org/zlibrary/options/ZLColorOption.java index f9da5e70f..33689db56 100644 --- a/src/org/zlibrary/options/ZLColorOption.java +++ b/src/org/zlibrary/options/ZLColorOption.java @@ -15,6 +15,12 @@ public final class ZLColorOption extends ZLOption { private long myIntValue; private long myDefaultValue; + public ZLColorOption (String category, String group, String optionName, ZLColor defaultValue){ + super(category, group, optionName); + myDefaultValue = defaultValue.getIntValue(); + myIntValue = myDefaultValue; + } + public long getValue(){ if (!myIsSynchronized){ String strDefaultValue = ZLToStringConverter.convert(myDefaultValue); @@ -39,12 +45,5 @@ public final class ZLColorOption extends ZLOption { String stringValue = ZLToStringConverter.convert(myIntValue); myConfig.setValue(myCategory, myGroup, myOptionName, stringValue); } - } - - public ZLColorOption (String category, String group, String optionName, ZLColor defaultValue){ - super(category, group, optionName); - myDefaultValue = defaultValue.getIntValue(); - myIntValue = myDefaultValue; - } - + } } diff --git a/src/org/zlibrary/options/ZLDoubleOption.java b/src/org/zlibrary/options/ZLDoubleOption.java index 525728f1e..d633ed5d0 100644 --- a/src/org/zlibrary/options/ZLDoubleOption.java +++ b/src/org/zlibrary/options/ZLDoubleOption.java @@ -13,6 +13,12 @@ public final class ZLDoubleOption extends ZLOption{ private double myValue; private double myDefaultValue; + public ZLDoubleOption (String category, String group, String optionName, double defaultValue){ + super(category, group, optionName); + myDefaultValue = defaultValue; + myValue = myDefaultValue; + } + public double getValue(){ if (!myIsSynchronized){ String strDefaultValue = ZLToStringConverter.convert(myDefaultValue); @@ -37,11 +43,4 @@ public final class ZLDoubleOption extends ZLOption{ myConfig.setValue(myCategory, myGroup, myOptionName, stringValue); } } - - public ZLDoubleOption (String category, String group, String optionName, double defaultValue){ - super(category, group, optionName); - myDefaultValue = defaultValue; - myValue = myDefaultValue; - } - } diff --git a/src/org/zlibrary/options/ZLIntegerOption.java b/src/org/zlibrary/options/ZLIntegerOption.java index 3f47eb663..004930c21 100644 --- a/src/org/zlibrary/options/ZLIntegerOption.java +++ b/src/org/zlibrary/options/ZLIntegerOption.java @@ -12,6 +12,12 @@ public final class ZLIntegerOption extends ZLOption{ private long myValue; private long myDefaultValue; + public ZLIntegerOption (String category, String group, String optionName, long defaultValue){ + super(category, group, optionName); + myDefaultValue = defaultValue; + myValue = myDefaultValue; + } + public long getValue(){ if (!myIsSynchronized){ String strDefaultValue = ZLToStringConverter.convert(myDefaultValue); @@ -36,11 +42,4 @@ public final class ZLIntegerOption extends ZLOption{ myConfig.setValue(myCategory, myGroup, myOptionName, stringValue); } } - - public ZLIntegerOption (String category, String group, String optionName, long defaultValue){ - super(category, group, optionName); - myDefaultValue = defaultValue; - myValue = myDefaultValue; - } - } diff --git a/src/org/zlibrary/options/ZLIntegerRangeOption.java b/src/org/zlibrary/options/ZLIntegerRangeOption.java index 4e582dc37..fb42e2234 100644 --- a/src/org/zlibrary/options/ZLIntegerRangeOption.java +++ b/src/org/zlibrary/options/ZLIntegerRangeOption.java @@ -16,6 +16,18 @@ public final class ZLIntegerRangeOption extends ZLOption { private long myMinValue; private long myMaxValue; + public ZLIntegerRangeOption (String category, String group, String optionName, long minValue, long maxValue, long defaultValue){ + super(category, group, optionName); + myMinValue = minValue; + myMaxValue = maxValue; + //ñòðàõóåìñÿ îò îøèáêè ïðîãðàììèñòà =) + if ((myMinValue <= defaultValue) && (myMaxValue >= defaultValue)) + myDefaultValue = defaultValue; + else + myDefaultValue = myMinValue; + myValue = myDefaultValue; + } + public long getMinValue(){ return myMinValue; } @@ -49,18 +61,5 @@ public final class ZLIntegerRangeOption extends ZLOption { myConfig.setValue(myCategory, myGroup, myOptionName, stringValue); } } - } - - public ZLIntegerRangeOption (String category, String group, String optionName, long minValue, long maxValue, long defaultValue){ - super(category, group, optionName); - myMinValue = minValue; - myMaxValue = maxValue; - //ñòðàõóåìñÿ îò îøèáêè ïðîãðàììèñòà =) - if ((myMinValue <= defaultValue) && (myMaxValue >= defaultValue)) - myDefaultValue = defaultValue; - else - myDefaultValue = myMinValue; - myValue = myDefaultValue; - } - + } } diff --git a/src/org/zlibrary/options/ZLOption.java b/src/org/zlibrary/options/ZLOption.java index 6ce38af48..c61d0bea8 100644 --- a/src/org/zlibrary/options/ZLOption.java +++ b/src/org/zlibrary/options/ZLOption.java @@ -1,5 +1,6 @@ package org.zlibrary.options; +import org.zlibrary.options.config.ZLConfig; import org.zlibrary.options.config.ZLConfigInstance; public abstract class ZLOption { diff --git a/src/org/zlibrary/options/ZLSimpleOption.java b/src/org/zlibrary/options/ZLSimpleOption.java index 3c9e16340..3f2c272e3 100644 --- a/src/org/zlibrary/options/ZLSimpleOption.java +++ b/src/org/zlibrary/options/ZLSimpleOption.java @@ -7,18 +7,19 @@ package org.zlibrary.options; * */ abstract class ZLSimpleOption extends ZLOption { + + /** + * êîíñòðóêòîð. ñîçäàåòñÿ òàê æå êàê è ëþáàÿ îïöèÿ + * @see ZLOption + */ + public ZLSimpleOption(String category, String group, String optionName){ + super(category, group, optionName); + } + /** * âî âñåõ final íàñëåäíèêàõ äîëæåí áûòü ìåòîä, * îòäàþùèé òèï ýòîãî íàñëåäíèêà. * @return */ public abstract ZLOptionType getType(); - - /** - * êîíñòðóêòîð. ñîçäàåòñÿ òàê æå êàê è ëþáàÿ îïöèÿ - * @see ZLOption - */ - public ZLSimpleOption(String category, String group, String optionName){ - super(category, group, optionName); - } } diff --git a/src/org/zlibrary/options/config/ZLCategory.java b/src/org/zlibrary/options/config/ZLCategory.java index 64bb9e435..d671b7f96 100644 --- a/src/org/zlibrary/options/config/ZLCategory.java +++ b/src/org/zlibrary/options/config/ZLCategory.java @@ -1,14 +1,13 @@ package org.zlibrary.options.config; -import java.util.HashMap; -import java.util.Map; +import java.util.*; -/*package*/ class ZLCategory { +public class ZLCategory { private Map myData; public ZLCategory() { - myData = new HashMap(); + myData = new LinkedHashMap(); } public ZLCategory(Map map) { @@ -44,11 +43,14 @@ import java.util.Map; } public String toString(){ - StringBuffer sb = new StringBuffer(); + StringBuffer sb = new StringBuffer("\n"); + sb.append("\n"); for (String groupName : myData.keySet()){ - sb.append(" " + groupName + "\n" + myData.get(groupName) + "\n"); - //System.out.println(myData.get(groupName)); + sb.append(" \n" + + myData.get(groupName) + + " \n"); } + sb.append(""); return sb.toString(); } } diff --git a/src/org/zlibrary/options/ZLConfig.java b/src/org/zlibrary/options/config/ZLConfig.java similarity index 74% rename from src/org/zlibrary/options/ZLConfig.java rename to src/org/zlibrary/options/config/ZLConfig.java index eb94d3303..9061c35e1 100644 --- a/src/org/zlibrary/options/ZLConfig.java +++ b/src/org/zlibrary/options/config/ZLConfig.java @@ -1,4 +1,6 @@ -package org.zlibrary.options; +package org.zlibrary.options.config; + +import java.util.Map; public interface ZLConfig { @@ -11,4 +13,6 @@ public interface ZLConfig { public void unsetValue(String category, String group, String name); public String toString(); + + public Map getCategories(); } diff --git a/src/org/zlibrary/options/config/ZLConfigImpl.java b/src/org/zlibrary/options/config/ZLConfigImpl.java index 70f3ebed0..177df34d6 100644 --- a/src/org/zlibrary/options/config/ZLConfigImpl.java +++ b/src/org/zlibrary/options/config/ZLConfigImpl.java @@ -1,7 +1,6 @@ package org.zlibrary.options.config; import java.util.*; -import org.zlibrary.options.ZLConfig; /** * êëàññ Êîíôèã. ýòî ñâîåîáðàçíàÿ ñòðóêòóðà îïöèé. @@ -18,7 +17,11 @@ import org.zlibrary.options.ZLConfig; private Map myData; public ZLConfigImpl (){ - myData = new HashMap(); + myData = new LinkedHashMap(); + } + + public Map getCategories(){ + return Collections.unmodifiableMap(myData); } public ZLConfigImpl (Map map){ @@ -51,6 +54,9 @@ import org.zlibrary.options.ZLConfig; myData.get(Category).unsetValue(group, name); } + /** + * ìåòîä âûâîäà â ñòðîêó + */ public String toString(){ StringBuffer sb = new StringBuffer(); for (String categoryName : myData.keySet()){ diff --git a/src/org/zlibrary/options/config/ZLConfigInstance.java b/src/org/zlibrary/options/config/ZLConfigInstance.java index 707ff5555..20519c3de 100644 --- a/src/org/zlibrary/options/config/ZLConfigInstance.java +++ b/src/org/zlibrary/options/config/ZLConfigInstance.java @@ -4,7 +4,7 @@ public class ZLConfigInstance { private static final ZLConfigImpl myConfig = new ZLConfigImpl(); - public static ZLConfigImpl getInstance(){ + public static ZLConfig getInstance(){ return myConfig; } } diff --git a/src/org/zlibrary/options/config/ZLGroup.java b/src/org/zlibrary/options/config/ZLGroup.java index 060860a57..cf4892244 100644 --- a/src/org/zlibrary/options/config/ZLGroup.java +++ b/src/org/zlibrary/options/config/ZLGroup.java @@ -6,7 +6,7 @@ import java.util.*; private Map myData; public ZLGroup (){ - myData = new HashMap(); + myData = new LinkedHashMap(); } public String getValue(String name, String defaultValue){ @@ -19,7 +19,11 @@ import java.util.*; } public void setValue(String name, String data) { - myData.put(name, data); + if (myData.get(name) == null) { + myData.put(name, new String(data)); + } else { + myData.put(name, data); + } } public void unsetValue(String name) { @@ -29,7 +33,8 @@ import java.util.*; public String toString() { StringBuffer sb = new StringBuffer(); for (String name : myData.keySet()){ - sb.append(" " + name + " : " + myData.get(name) + "\n"); + sb.append("