1.1 --- a/json/src/main/java/org/netbeans/html/json/impl/JSONList.java Sun Dec 13 21:12:26 2015 +0100
1.2 +++ b/json/src/main/java/org/netbeans/html/json/impl/JSONList.java Mon Feb 22 06:09:33 2016 +0100
1.3 @@ -88,6 +88,7 @@
1.4
1.5 @Override
1.6 public boolean add(T e) {
1.7 + prepareChange();
1.8 boolean ret = super.add(e);
1.9 notifyChange();
1.10 return ret;
1.11 @@ -95,6 +96,7 @@
1.12
1.13 @Override
1.14 public boolean addAll(Collection<? extends T> c) {
1.15 + prepareChange();
1.16 boolean ret = super.addAll(c);
1.17 notifyChange();
1.18 return ret;
1.19 @@ -102,12 +104,14 @@
1.20
1.21 @Override
1.22 public boolean addAll(int index, Collection<? extends T> c) {
1.23 + prepareChange();
1.24 boolean ret = super.addAll(index, c);
1.25 notifyChange();
1.26 return ret;
1.27 }
1.28
1.29 public void fastReplace(Collection<? extends T> c) {
1.30 + prepareChange();
1.31 super.clear();
1.32 super.addAll(c);
1.33 notifyChange();
1.34 @@ -115,6 +119,7 @@
1.35
1.36 @Override
1.37 public boolean remove(Object o) {
1.38 + prepareChange();
1.39 boolean ret = super.remove(o);
1.40 notifyChange();
1.41 return ret;
1.42 @@ -122,12 +127,14 @@
1.43
1.44 @Override
1.45 public void clear() {
1.46 + prepareChange();
1.47 super.clear();
1.48 notifyChange();
1.49 }
1.50
1.51 @Override
1.52 public boolean removeAll(Collection<?> c) {
1.53 + prepareChange();
1.54 boolean ret = super.removeAll(c);
1.55 notifyChange();
1.56 return ret;
1.57 @@ -135,6 +142,7 @@
1.58
1.59 @Override
1.60 public boolean retainAll(Collection<?> c) {
1.61 + prepareChange();
1.62 boolean ret = super.retainAll(c);
1.63 notifyChange();
1.64 return ret;
1.65 @@ -142,6 +150,7 @@
1.66
1.67 @Override
1.68 public T set(int index, T element) {
1.69 + prepareChange();
1.70 T ret = super.set(index, element);
1.71 notifyChange();
1.72 return ret;
1.73 @@ -149,12 +158,14 @@
1.74
1.75 @Override
1.76 public void add(int index, T element) {
1.77 + prepareChange();
1.78 super.add(index, element);
1.79 notifyChange();
1.80 }
1.81
1.82 @Override
1.83 public T remove(int index) {
1.84 + prepareChange();
1.85 T ret = super.remove(index);
1.86 notifyChange();
1.87 return ret;
1.88 @@ -179,6 +190,16 @@
1.89 return sb.toString();
1.90 }
1.91
1.92 + private void prepareChange() {
1.93 + if (index == Integer.MIN_VALUE) {
1.94 + try {
1.95 + proto.initTo(null, null);
1.96 + } catch (IllegalStateException ex) {
1.97 + throw new UnsupportedOperationException();
1.98 + }
1.99 + }
1.100 + }
1.101 +
1.102 private void notifyChange() {
1.103 proto.getContext().execute(new Runnable() {
1.104 @Override