blob: 8259161ff1854096c10faba3da5e881332bdfcf6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.stem.loggers.imagewriter.logger;
import org.eclipse.stem.core.graph.DynamicLabel;
import org.eclipse.stem.core.graph.DynamicNodeLabel;
import org.eclipse.stem.core.model.Decorator;
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;
import org.eclipse.stem.ui.views.geographic.map.StemPolygonsList;
public class Utils {
public static StemPolygonsList getPolygonsForDecorator(Decorator decorator) {
StemPolygonsList retValue = null;
LatLongProviderAdapter latLongProvider = null;
DynamicNodeLabel nodeLabel = null;
if (decorator != null) {
retValue = new StemPolygonsList();
for (DynamicLabel obj : decorator.getLabelsToUpdate()) {
if (obj instanceof DynamicNodeLabel) {
nodeLabel = (DynamicNodeLabel) obj;
if (latLongProvider == null) {
latLongProvider = (LatLongProviderAdapter) LatLongProviderAdapterFactory.INSTANCE
.adapt(nodeLabel, LatLongProvider.class);
}
latLongProvider.setTarget(nodeLabel.getIdentifiable());
LatLong latLong = latLongProvider.getLatLong();
// Any lat/long data for this label?
if (latLong.size() > 0) {
// adding it to the list of polygons to be drawn
retValue.addAll(new StemPolygonsList(latLong, nodeLabel
.getIdentifiable()));
} // if Any lat/long data for this label
}
}
}
return retValue;
}
}