diff options
author | cbateman | 2008-04-23 06:11:24 +0000 |
---|---|---|
committer | cbateman | 2008-04-23 06:11:24 +0000 |
commit | 1fffba1d23e8602d7e4eb4810d7de8693b48c3ba (patch) | |
tree | 11c4959c6b77f1645afc028260cdc132b8e1bb65 | |
parent | 60702faec386c573554c2cc16d2c05e6cbe0e767 (diff) | |
download | webtools.jsf-1fffba1d23e8602d7e4eb4810d7de8693b48c3ba.tar.gz webtools.jsf-1fffba1d23e8602d7e4eb4810d7de8693b48c3ba.tar.xz webtools.jsf-1fffba1d23e8602d7e4eb4810d7de8693b48c3ba.zip |
Fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=223374.
Add clone() to OrderableObject and made copies of ids into the originalId's list. Otherwise, isDirty() would just compare objects to each other, so if a non-order attribute changed, isDirty was always false.
2 files changed, 19 insertions, 2 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/policy/OrderedListProvider.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/policy/OrderedListProvider.java index 6de7749f8..84dacf021 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/policy/OrderedListProvider.java +++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/policy/OrderedListProvider.java @@ -77,7 +77,7 @@ public abstract class OrderedListProvider * @author cbateman * */ - public static class OrderableObject + public static class OrderableObject implements Cloneable { private boolean _enabled; private Object _object; @@ -92,6 +92,12 @@ public abstract class OrderedListProvider _enabled = enabled; } + private OrderableObject(final OrderableObject copyMe) + { + _object = copyMe._object; + _enabled = copyMe._enabled; + } + /** * @return true if this object is enabled */ @@ -125,6 +131,12 @@ public abstract class OrderedListProvider } @Override + public OrderableObject clone() + { + return new OrderableObject(this); + } + + @Override public boolean equals(Object obj) { if (obj instanceof OrderableObject) diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/registry/TLDRegistryPreferences.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/registry/TLDRegistryPreferences.java index 585c5f9a1..9fbfc28ed 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/registry/TLDRegistryPreferences.java +++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/registry/TLDRegistryPreferences.java @@ -121,7 +121,12 @@ public class TLDRegistryPreferences ids = deserialize(serialize(DEFAULT_STRATEGY_ORDER)); } _ids = ids; - List<OrderableObject> originalList = new ArrayList<OrderableObject>(_ids); + final List<OrderableObject> originalList = new ArrayList<OrderableObject>(); + for (final OrderableObject id : _ids) + { + final OrderableObject copy = id.clone(); + originalList.add(copy); + } _originalIds = Collections.unmodifiableList(originalList); } |