diff options
author | Matthew Davis | 2012-11-30 15:07:07 +0000 |
---|---|---|
committer | Matthew Davis | 2012-11-30 15:07:07 +0000 |
commit | d7c8cf7a3f7abdc8d0615a01de8d3e2cf8be38f4 (patch) | |
tree | 7f72c57d10ff9b917ce5ed3d459681f9550a30c9 | |
parent | 511158a1960cabdd6b12240244a02f478c75ec7d (diff) | |
download | org.eclipse.stem-d7c8cf7a3f7abdc8d0615a01de8d3e2cf8be38f4.tar.gz org.eclipse.stem-d7c8cf7a3f7abdc8d0615a01de8d3e2cf8be38f4.tar.xz org.eclipse.stem-d7c8cf7a3f7abdc8d0615a01de8d3e2cf8be38f4.zip |
Fix for bug 395326 being pulled up from trunk
git-svn-id: http://dev.eclipse.org/svnroot/technology/org.eclipse.stem/branches/STEM_1_4_1@3619 92a21009-5b66-0410-b83a-dc787c41c6e9
11 files changed, 72 insertions, 68 deletions
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/adapters/spatial/geo/LatLongProviderAdapter.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/adapters/spatial/geo/LatLongProviderAdapter.java index 7e4fdd8d9..0e683db8f 100644 --- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/adapters/spatial/geo/LatLongProviderAdapter.java +++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/adapters/spatial/geo/LatLongProviderAdapter.java @@ -314,9 +314,11 @@ public class LatLongProviderAdapter extends SpatialProviderAdapter implements * @see org.eclipse.stem.definitions.adapters.spatial.geo.LatLongProvider#getCenter() */ @Override - public double[] getCenter() { + public double[] getCenter() { + final Identifiable identifiable = (Identifiable)getTarget(); + //First try to get the center of the identifiable from the cache - double[] centerLatLong = identifiableCenterCache.get(getTarget()); + double[] centerLatLong = identifiableCenterCache.get(identifiable); if (centerLatLong != null) { //Yes, it was already calculated so just return the value return centerLatLong; @@ -348,7 +350,7 @@ public class LatLongProviderAdapter extends SpatialProviderAdapter implements } centerLatLong[0] = (maxLat + minLat) / 2.0; centerLatLong[1] = (maxLong + minLong) / 2.0; - identifiableCenterCache.put((Identifiable)getTarget(), centerLatLong); + identifiableCenterCache.put(identifiable, centerLatLong); return centerLatLong; } // getCenter diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/adapters/spatial/geo/LatLongProviderAdapterFactory.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/adapters/spatial/geo/LatLongProviderAdapterFactory.java index 0a8a0f498..4d04f1ed4 100644 --- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/adapters/spatial/geo/LatLongProviderAdapterFactory.java +++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/adapters/spatial/geo/LatLongProviderAdapterFactory.java @@ -50,12 +50,13 @@ public class LatLongProviderAdapterFactory extends */ @Override protected Adapter createAdapter(final Notifier target) { - // Have we already created an adapter? - if (adapter == null) { - // No - adapter = new LatLongProviderAdapter(); - } - return adapter; +// // Have we already created an adapter? +// if (adapter == null) { +// // No +// adapter = new LatLongProviderAdapter(); +// } + // 2012-11-29 MAD This is no longer going to be a singleton to make lat long providers thread safe + return new LatLongProviderAdapter(); } // createAdapter } // LatLongProviderAdapterFactory diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/lattice/impl/LatticeGeneratorUtilityImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/lattice/impl/LatticeGeneratorUtilityImpl.java index a13eb8ed5..6fd043957 100644 --- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/lattice/impl/LatticeGeneratorUtilityImpl.java +++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/lattice/impl/LatticeGeneratorUtilityImpl.java @@ -583,11 +583,11 @@ public class LatticeGeneratorUtilityImpl extends GraphLatticeGenerator { Node nB = e.getB(); final LatLongProviderAdapter latLongProviderA = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE.adapt(nA, LatLongProvider.class); - latLongProviderA.setTarget(nA); + //latLongProviderA.setTarget(nA); double[] aC = latLongProviderA.getCenter(); final LatLongProviderAdapter latLongProviderB = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE.adapt(nB, LatLongProvider.class); - latLongProviderB.setTarget(nB); + //latLongProviderB.setTarget(nB); double[] bC = latLongProviderB.getCenter(); double r2 = ((aC[0]-bC[0])*(aC[0]-bC[0])) + ((aC[1]-bC[1])*(aC[1]-bC[1])); double dist = Math.sqrt(r2); diff --git a/core/org.eclipse.stem.loggers.imagewriter/src/org/eclipse/stem/loggers/imagewriter/logger/PolygonHandler.java b/core/org.eclipse.stem.loggers.imagewriter/src/org/eclipse/stem/loggers/imagewriter/logger/PolygonHandler.java index 356a6a5c3..ee8134d1b 100644 --- a/core/org.eclipse.stem.loggers.imagewriter/src/org/eclipse/stem/loggers/imagewriter/logger/PolygonHandler.java +++ b/core/org.eclipse.stem.loggers.imagewriter/src/org/eclipse/stem/loggers/imagewriter/logger/PolygonHandler.java @@ -124,9 +124,8 @@ public class PolygonHandler retVal.identifiable = label.getIdentifiable(); } else { // The polygon is not cached. We need to acquire the lat/lng data, project, and cache - LatLongProviderAdapter latLongProvider = (LatLongProviderAdapter)LatLongProviderAdapterFactory.INSTANCE.adapt(label, LatLongProvider.class); - - latLongProvider.setTarget(label.getIdentifiable()); + LatLongProviderAdapter latLongProvider = + (LatLongProviderAdapter)LatLongProviderAdapterFactory.INSTANCE.adapt(label.getIdentifiable(), LatLongProvider.class); LatLong latLong = latLongProvider.getLatLong(); retVal = getProjectedPolygons(projection, label.getIdentifiable(), latLong); diff --git a/core/org.eclipse.stem.loggers.imagewriter/src/org/eclipse/stem/loggers/imagewriter/logger/Utils.java b/core/org.eclipse.stem.loggers.imagewriter/src/org/eclipse/stem/loggers/imagewriter/logger/Utils.java index 8259161ff..f46e36afb 100644 --- a/core/org.eclipse.stem.loggers.imagewriter/src/org/eclipse/stem/loggers/imagewriter/logger/Utils.java +++ b/core/org.eclipse.stem.loggers.imagewriter/src/org/eclipse/stem/loggers/imagewriter/logger/Utils.java @@ -23,7 +23,7 @@ public class Utils { public static StemPolygonsList getPolygonsForDecorator(Decorator decorator) { StemPolygonsList retValue = null; - LatLongProviderAdapter latLongProvider = null; + //LatLongProviderAdapter latLongProvider = null; DynamicNodeLabel nodeLabel = null; if (decorator != null) { @@ -31,12 +31,9 @@ public class Utils { for (DynamicLabel obj : decorator.getLabelsToUpdate()) { if (obj instanceof DynamicNodeLabel) { nodeLabel = (DynamicNodeLabel) obj; - if (latLongProvider == null) { - latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE + + LatLongProviderAdapter latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE .adapt(nodeLabel, LatLongProvider.class); - } - - latLongProvider.setTarget(nodeLabel.getIdentifiable()); LatLong latLong = latLongProvider.getLatLong(); // Any lat/long data for this label? diff --git a/core/org.eclipse.stem.ui.ge/src/org/eclipse/stem/ui/ge/GEInterface.java b/core/org.eclipse.stem.ui.ge/src/org/eclipse/stem/ui/ge/GEInterface.java index fccefb54f..cc4f28c3a 100644 --- a/core/org.eclipse.stem.ui.ge/src/org/eclipse/stem/ui/ge/GEInterface.java +++ b/core/org.eclipse.stem.ui.ge/src/org/eclipse/stem/ui/ge/GEInterface.java @@ -1353,7 +1353,7 @@ public class GEInterface final LatLongProviderAdapter latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE .adapt(node, LatLongProvider.class); - latLongProvider.setTarget(node); + //latLongProvider.setTarget(node); return latLongProvider.getLatLong(); } catch (RuntimeException e) { GELog.debug(this,e.getMessage()); @@ -1677,7 +1677,7 @@ public class GEInterface sb.append("\n"+"Node: "+nodeTitle); final LatLongProviderAdapter latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE .adapt(node, LatLongProvider.class); - latLongProvider.setTarget(node); + //latLongProvider.setTarget(node); // The node may or may not have lat/long data associated with // it, if it doesn't the list that's returned will be empty. diff --git a/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/geographic/GeographicControl.java b/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/geographic/GeographicControl.java index 1345d0ee4..3a7f99ebf 100644 --- a/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/geographic/GeographicControl.java +++ b/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/geographic/GeographicControl.java @@ -545,7 +545,7 @@ abstract public class GeographicControl extends Composite implements private RelativeValueProviderAdapter rvp; - private LatLongProviderAdapter latLongProvider; + //private LatLongProviderAdapter latLongProvider; private final List<LabelData> labelDatas = new ArrayList<LabelData>(); @@ -592,7 +592,10 @@ abstract public class GeographicControl extends Composite implements .iterator(); iter.hasNext();) { final LabelData ld = iter.next(); - latLongProvider.setTarget(ld.getLabel().getNode()); + final LatLongProviderAdapter latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE + .adapt(ld.getLabel().getNode(), LatLongProvider.class); + + //latLongProvider.setTarget(ld.getLabel().getNode()); ld.setLatLongData(latLongProvider.getLatLongNoWait()); // Did we get some data? @@ -621,10 +624,10 @@ abstract public class GeographicControl extends Composite implements * the {@link LatLongProviderAdapter} that will provide the * latitude/longitude data for the labels. */ - public void setLatLongProviderAdapter( - final LatLongProviderAdapter latLongProvider) { - this.latLongProvider = latLongProvider; - } +// public void setLatLongProviderAdapter( +// final LatLongProviderAdapter latLongProvider) { +// this.latLongProvider = latLongProvider; +// } /** * @param rvp @@ -872,12 +875,12 @@ abstract public class GeographicControl extends Composite implements if(rvp == null) return null; retValue.setRelativeValueProviderAdapter(rvp); - final Node node = firstNodeLabel.getNode(); +// final Node node = firstNodeLabel.getNode(); // String nodeTitle = node.getDublinCore().getTitle(); - final LatLongProviderAdapter latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE - .adapt(node, LatLongProvider.class); - retValue.setLatLongProviderAdapter(latLongProvider); +// final LatLongProviderAdapter latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE +// .adapt(node, LatLongProvider.class); +// retValue.setLatLongProviderAdapter(latLongProvider); } // if there is a label for (final Object element : decorator.getLabelsToUpdate()) { @@ -1034,7 +1037,7 @@ abstract public class GeographicControl extends Composite implements // Compute the lat/long of the center of the node final LatLongProviderAdapter latLongProviderA = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE .adapt(nodeA, LatLongProvider.class); - latLongProviderA.setTarget(nodeA); + //latLongProviderA.setTarget(nodeA); centerA = latLongProviderA.getCenter(); } // if @@ -1048,7 +1051,7 @@ abstract public class GeographicControl extends Composite implements // Get the lat/long of the center of the node final LatLongProviderAdapter latLongProviderB = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE .adapt(nodeB, LatLongProvider.class); - latLongProviderB.setTarget(nodeB); + //latLongProviderB.setTarget(nodeB); centerB = latLongProviderB.getCenter(); } // if centerB diff --git a/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/graphmap/DecoratorDisplayData.java b/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/graphmap/DecoratorDisplayData.java index 4cdcee84c..f0699068c 100644 --- a/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/graphmap/DecoratorDisplayData.java +++ b/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/graphmap/DecoratorDisplayData.java @@ -6,7 +6,9 @@ import java.util.Map; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.stem.core.graph.Node;
import org.eclipse.stem.definitions.adapters.spatial.geo.LatLong;
+import org.eclipse.stem.definitions.adapters.spatial.geo.LatLongProvider;
import org.eclipse.stem.definitions.adapters.spatial.geo.LatLongProviderAdapter;
+import org.eclipse.stem.definitions.adapters.spatial.geo.LatLongProviderAdapterFactory;
/**
* This class is used to hold data used to display the relative values of a
@@ -16,7 +18,7 @@ import org.eclipse.stem.definitions.adapters.spatial.geo.LatLongProviderAdapter; */
public class DecoratorDisplayData {
- private LatLongProviderAdapter latLongProvider;
+ //private LatLongProviderAdapter latLongProvider;
private Map<Node, LatLong> nodeData;
@@ -56,7 +58,11 @@ public class DecoratorDisplayData { boolean latLongMissing = false;
for (Map.Entry<Node, LatLong> entry : nodeData.entrySet()) {
- latLongProvider.setTarget(entry.getKey());
+
+ final LatLongProviderAdapter latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE
+ .adapt(entry.getKey(), LatLongProvider.class);
+
+ //latLongProvider.setTarget(entry.getKey());
LatLong data = latLongProvider.getLatLong();
@@ -84,8 +90,8 @@ public class DecoratorDisplayData { * the {@link LatLongProviderAdapter} that will provide the
* latitude/longitude data for the labels.
*/
- public void setLatLongProviderAdapter(LatLongProviderAdapter latLongProvider) {
- this.latLongProvider = latLongProvider;
- }
+// public void setLatLongProviderAdapter(LatLongProviderAdapter latLongProvider) {
+// this.latLongProvider = latLongProvider;
+// }
}
diff --git a/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/graphmap/GraphMapControl.java b/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/graphmap/GraphMapControl.java index 2143a05bd..d63030883 100644 --- a/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/graphmap/GraphMapControl.java +++ b/core/org.eclipse.stem.ui/src/org/eclipse/stem/ui/views/graphmap/GraphMapControl.java @@ -35,7 +35,6 @@ import org.eclipse.stem.core.graph.DynamicLabel; import org.eclipse.stem.core.graph.DynamicNodeLabel; import org.eclipse.stem.core.graph.Edge; import org.eclipse.stem.core.graph.EdgeLabel; -import org.eclipse.stem.core.graph.Graph; import org.eclipse.stem.core.graph.Node; import org.eclipse.stem.core.graph.NodeLabel; import org.eclipse.stem.core.model.Decorator; @@ -398,36 +397,34 @@ public class GraphMapControl extends Composite implements ISimulationListener, decoratorToDecoratorDisplayDataMap.put(decorator, retValue); if (decorator instanceof TriggerList) { - Graph graph = simulation.getScenario().getCanonicalGraph(); - Node randomNode = null; - - for (Node node : graph.getNodes().values()) { - retValue.addNode(node); - randomNode = node; - } - - if (randomNode != null) { - LatLongProviderAdapter latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE - .adapt(randomNode, LatLongProvider.class); - - retValue.setLatLongProviderAdapter(latLongProvider); - } +// Graph graph = simulation.getScenario().getCanonicalGraph(); +// Node randomNode = null; +// +// for (Node node : graph.getNodes().values()) { +// retValue.addNode(node); +// randomNode = node; +// } +// if (randomNode != null) { +// LatLongProviderAdapter latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE +// .adapt(randomNode, LatLongProvider.class); +// +// retValue.setLatLongProviderAdapter(latLongProvider); +// } } else { if (decorator.getLabelsToUpdate() == null || decorator.getLabelsToUpdate().isEmpty()) { return retValue; } - DynamicNodeLabel firstNodeLabel = (DynamicNodeLabel) decorator - .getLabelsToUpdate().get(0); - - if (firstNodeLabel != null) { - Node node = firstNodeLabel.getNode(); - LatLongProviderAdapter latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE - .adapt(node, LatLongProvider.class); - - retValue.setLatLongProviderAdapter(latLongProvider); - } +// DynamicNodeLabel firstNodeLabel = (DynamicNodeLabel) decorator +// .getLabelsToUpdate().get(0); +// if (firstNodeLabel != null) { +// Node node = firstNodeLabel.getNode(); +// LatLongProviderAdapter latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE +// .adapt(node, LatLongProvider.class); +// +// retValue.setLatLongProviderAdapter(latLongProvider); +// } for (DynamicLabel label : decorator.getLabelsToUpdate()) { retValue.addNode(((DynamicNodeLabel) label).getNode()); @@ -614,7 +611,7 @@ public class GraphMapControl extends Composite implements ISimulationListener, LatLongProviderAdapter latLongProviderA = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE .adapt(nodeA, LatLongProvider.class); - latLongProviderA.setTarget(nodeA); + //latLongProviderA.setTarget(nodeA); centerA = latLongProviderA.getCenter(); } @@ -622,7 +619,7 @@ public class GraphMapControl extends Composite implements ISimulationListener, LatLongProviderAdapter latLongProviderB = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE .adapt(nodeB, LatLongProvider.class); - latLongProviderB.setTarget(nodeB); + //latLongProviderB.setTarget(nodeB); centerB = latLongProviderB.getCenter(); } diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.globalinfluenzamodel/src/org/eclipse/stem/diseasemodels/globalinfluenzamodel/impl/GlobalInfluenzaModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.globalinfluenzamodel/src/org/eclipse/stem/diseasemodels/globalinfluenzamodel/impl/GlobalInfluenzaModelImpl.java index 0da7ea7fe..9d47bbb70 100644 --- a/models/epidemiology/org.eclipse.stem.diseasemodels.globalinfluenzamodel/src/org/eclipse/stem/diseasemodels/globalinfluenzamodel/impl/GlobalInfluenzaModelImpl.java +++ b/models/epidemiology/org.eclipse.stem.diseasemodels.globalinfluenzamodel/src/org/eclipse/stem/diseasemodels/globalinfluenzamodel/impl/GlobalInfluenzaModelImpl.java @@ -270,7 +270,6 @@ public class GlobalInfluenzaModelImpl extends SIRImpl implements GlobalInfluenza // Get the lat/long of the center of the node
final LatLongProviderAdapter latLongProviderB = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE
.adapt(node, LatLongProvider.class);
- latLongProviderB.setTarget(node);
lat_long = latLongProviderB.getCenter();
}
if (lat_long == null) {
diff --git a/models/populations/org.eclipse.stem.populationmodels/src/org/eclipse/stem/populationmodels/standard/impl/SeasonalPopulationModelImpl.java b/models/populations/org.eclipse.stem.populationmodels/src/org/eclipse/stem/populationmodels/standard/impl/SeasonalPopulationModelImpl.java index 8cbd2a2b8..eb4bd2626 100644 --- a/models/populations/org.eclipse.stem.populationmodels/src/org/eclipse/stem/populationmodels/standard/impl/SeasonalPopulationModelImpl.java +++ b/models/populations/org.eclipse.stem.populationmodels/src/org/eclipse/stem/populationmodels/standard/impl/SeasonalPopulationModelImpl.java @@ -218,7 +218,7 @@ public class SeasonalPopulationModelImpl extends StandardPopulationModelImpl imp // Get the lat/long of the center of the node final LatLongProviderAdapter latLongProviderB = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE .adapt(node, LatLongProvider.class); - latLongProviderB.setTarget(node); + //latLongProviderB.setTarget(node); lat_long = latLongProviderB.getCenter(); } if (lat_long == null) { |