Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbateman2008-04-23 06:11:24 +0000
committercbateman2008-04-23 06:11:24 +0000
commit1fffba1d23e8602d7e4eb4810d7de8693b48c3ba (patch)
tree11c4959c6b77f1645afc028260cdc132b8e1bb65
parent60702faec386c573554c2cc16d2c05e6cbe0e767 (diff)
downloadwebtools.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.
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/policy/OrderedListProvider.java14
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/designtime/internal/view/model/jsp/registry/TLDRegistryPreferences.java7
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);
}

Back to the top