/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cids.custom.switchon.gui.utils;
import Sirius.navigator.plugin.PluginRegistry;
import Sirius.server.middleware.types.MetaObject;
import com.vividsolutions.jts.geom.Geometry;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import de.cismet.cids.dynamics.CidsBean;
import de.cismet.cismap.commons.features.Feature;
import de.cismet.cismap.commons.features.FeatureGroups;
import de.cismet.cismap.commons.gui.MappingComponent;
import de.cismet.cismap.commons.interaction.CismapBroker;
import de.cismet.cismap.navigatorplugin.CidsFeature;
import de.cismet.cismap.navigatorplugin.CismapPlugin;
/**
* DOCUMENT ME!
*
* @author Gilles Baatz
* @version $Revision$, $Date$
*/
public class CismapUtils {
//~ Static fields/initializers ---------------------------------------------
private static final String CISMAP_PLUGIN_NAME = "cismap";
private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(
CismapUtils.class);
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*/
public static void switchToCismapMap() {
PluginRegistry.getRegistry()
.getPluginDescriptor(CISMAP_PLUGIN_NAME)
.getUIDescriptor(CISMAP_PLUGIN_NAME)
.getView()
.makeVisible();
}
/**
* DOCUMENT ME!
*
* @param bean DOCUMENT ME!
* @param clear DOCUMENT ME!
*/
public static void addBeanGeomAsFeatureToCismapMap(final CidsBean bean, final boolean clear) {
if (bean != null) {
final MetaObject mo = bean.getMetaObject();
final List<MetaObject> mos = new ArrayList<MetaObject>(1);
mos.add(mo);
addBeanGeomsAsFeaturesToCismapMap(mos, clear);
}
}
/**
* DOCUMENT ME!
*
* @param metaObjectList DOCUMENT ME!
* @param clear DOCUMENT ME!
*/
public static void addBeanGeomsAsFeaturesToCismapMap(final Collection<MetaObject> metaObjectList,
final boolean clear) {
if (metaObjectList != null) {
final MappingComponent bigMap = CismapBroker.getInstance().getMappingComponent();
if (clear) {
bigMap.getFeatureCollection().removeAllFeatures();
}
final List<Feature> addedFeatures = new ArrayList<Feature>(metaObjectList.size());
for (final MetaObject mo : metaObjectList) {
final CidsFeature newGeomFeature = new CidsFeature(mo);
addedFeatures.addAll(FeatureGroups.expandAll(newGeomFeature));
}
bigMap.getFeatureCollection().addFeatures(addedFeatures);
bigMap.zoomToFeatureCollection();
}
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public static CismapPlugin getCismapPlugin() {
return (CismapPlugin)PluginRegistry.getRegistry().getPlugin(CISMAP_PLUGIN_NAME);
}
/**
* DOCUMENT ME!
*
* @param geometry DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public static CidsBean createGeometryBean(final Geometry geometry) {
CidsBean newGeom = null;
if (geometry != null) {
try {
newGeom = CidsBean.createNewCidsBeanFromTableName(
"SWITCHON",
"GEOM");
newGeom.setProperty("geo_field", geometry);
} catch (Exception ex) {
LOG.warn(ex, ex);
}
}
return newGeom;
}
}