git://git.nikiroo.be
/
nikiroo-utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'subtree'
[nikiroo-utils.git]
/
src
/
be
/
nikiroo
/
utils
/
resources
/
MetaInfo.java
diff --git
a/src/be/nikiroo/utils/resources/MetaInfo.java
b/src/be/nikiroo/utils/resources/MetaInfo.java
index 8ec98f9935168b9f0dbe231b1af917e5ce21a316..917c21001c14482bc9292be0eaede3cd1c707bd5 100644
(file)
--- a/
src/be/nikiroo/utils/resources/MetaInfo.java
+++ b/
src/be/nikiroo/utils/resources/MetaInfo.java
@@
-477,12
+477,7
@@
public class MetaInfo<E extends Enum<E>> implements Iterable<MetaInfo<E>> {
*/
public void setString(String value, int item) {
if (isArray() && item >= 0) {
*/
public void setString(String value, int item) {
if (isArray() && item >= 0) {
- List<String> values = BundleHelper.parseList(this.value, -1);
- for (int i = values.size(); i <= item; i++) {
- values.add(null);
- }
- values.set(item, value);
- this.value = BundleHelper.fromList(values);
+ this.value = BundleHelper.fromList(this.value, value, item);
} else {
this.value = value;
}
} else {
this.value = value;
}
@@
-575,7
+570,8
@@
public class MetaInfo<E extends Enum<E>> implements Iterable<MetaInfo<E>> {
value = null;
}
value = null;
}
- for (Runnable listener : reloadedListeners) {
+ // Copy the list so we can create new listener in a listener
+ for (Runnable listener : new ArrayList<Runnable>(reloadedListeners)) {
try {
listener.run();
} catch (Exception e) {
try {
listener.run();
} catch (Exception e) {
@@
-607,7
+603,8
@@
public class MetaInfo<E extends Enum<E>> implements Iterable<MetaInfo<E>> {
* dirty flag)
*/
public void save(boolean onlyIfDirty) {
* dirty flag)
*/
public void save(boolean onlyIfDirty) {
- for (Runnable listener : saveListeners) {
+ // Copy the list so we can create new listener in a listener
+ for (Runnable listener : new ArrayList<Runnable>(saveListeners)) {
try {
listener.run();
} catch (Exception e) {
try {
listener.run();
} catch (Exception e) {
@@
-652,6
+649,15
@@
public class MetaInfo<E extends Enum<E>> implements Iterable<MetaInfo<E>> {
return children;
}
return children;
}
+ /**
+ * The number of sub-items, if any.
+ *
+ * @return the number or 0
+ */
+ public int size() {
+ return children.size();
+ }
+
@Override
public Iterator<MetaInfo<E>> iterator() {
return children.iterator();
@Override
public Iterator<MetaInfo<E>> iterator() {
return children.iterator();