/*
* Licensed Materials - Property of Rogue Wave Software, Inc.
* © Copyright Rogue Wave Software, Inc. 2014, 2017
* © Copyright IBM Corp. 2009, 2014
* © Copyright ILOG 1996, 2009
* All Rights Reserved.
*
* Note to U.S. Government Users Restricted Rights:
* The Software and Documentation were developed at private expense and
* are "Commercial Items" as that term is defined at 48 CFR 2.101,
* consisting of "Commercial Computer Software" and
* "Commercial Computer Software Documentation", as such terms are
* used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4,
* as applicable.
*/
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
import javax.swing.JComponent;
import ilog.views.IlvManagerView;
import ilog.views.IlvPoint;
import ilog.views.maps.IlvAttributeInfoProperty;
import ilog.views.maps.IlvFeatureAttributeProperty;
import ilog.views.maps.IlvMapUtil;
import ilog.views.maps.attribute.IlvStringAttribute;
import ilog.views.maps.datasource.IlvGraphicLayerDataSource;
import ilog.views.maps.datasource.IlvMapDataSource;
import ilog.views.maps.graphic.IlvMapMarker;
import ilog.views.maps.graphic.style.IlvPointStyle;
import ilog.views.maps.label.IlvMapLabeler;
import ilog.views.maps.label.IlvMapLabelerProperty;
import plugins.ImportAction;
/**
* Simulates reading specialized data.
*/
public class MyLoadAction extends ImportAction {
/**
* @param view
*/
public MyLoadAction(IlvManagerView view) {
super(view);
}
/**
* @see plugins.ImportAction#getSubDirectory()
*/
Override
protected String getSubDirectory() {
return "myDefaultDirectory";//$NON-NLS-1$
}
/**
* @see plugins.ImportAction#getDataSources(java.lang.String[])
*/
Override
public Enumeration<IlvMapDataSource> getDataSources(String[] fileNames) {
List<IlvMapDataSource> list = new ArrayList<IlvMapDataSource>();
// create data sources for the selected files
// in this example, create a fake data source with simple texts.
for (int i = 0; i < fileNames.length; i++) {
final IlvGraphicLayerDataSource ds = new IlvGraphicLayerDataSource();
// name the datasource and its main layer.
ds.setName(getFormatName() + " (" + new File(fileNames[i]).getName() + ")"); //$NON-NLS-1$//$NON-NLS-2$
// JV-3333
ds.setManager(getView().getManager());
ds.getInsertionLayer().setName(ds.getName());
// create a marker in the view center
IlvPoint point = new IlvPoint(getView().getWidth() / 2.0, getView().getHeight() / 2.0);
getView().getTransformer().inverse(point);
IlvMapMarker t = new IlvMapMarker(point);
// set its attributes (used for labelling)
IlvAttributeInfoProperty info = new IlvAttributeInfoProperty(new String[] { "Name" }, //$NON-NLS-1$
new Class[] { IlvStringAttribute.class }, new boolean[] { true });
IlvStringAttribute values[] = { new IlvStringAttribute(fileNames[i]) };
t.setNamedProperty(new IlvFeatureAttributeProperty(info, values));
// set the style for the marker.
IlvPointStyle style = new IlvPointStyle();
// chose a random dark color.
style.setForeground(IlvMapUtil.RandomDarkColor());
// labelize with the text.
style.setAttributeInfo(info);
style.setLabelAttribute(info.getAttributeName(0));
t.setStyle(style);
// make sure the layer is labelled:
IlvMapLabeler labeler = IlvMapLabelerProperty.GetMapLabeler(getView().getManager());
labeler.addLayer(ds.getInsertionLayer());
ds.getInsertionLayer().setStyle(style);
ds.add(t);
list.add(ds);
}
return Collections.enumeration(list);
}
/**
* @see plugins.ImportAction#getDataSources(java.net.URL[])
*/
Override
public Enumeration<IlvMapDataSource> getDataSources(URL[] urls) {
// create data sources for the selected URLS
return null;
}
/**
* @see plugins.ImportAction#getFormatName()
*/
Override
public String getFormatName() {
return "My format";//$NON-NLS-1$
}
/**
* @see plugins.ImportAction#getAccessory()
*/
Override
public JComponent getAccessory() {
// if specific parameters are necessary.
return null;
}
/**
* @see plugins.ImportAction#getExtensions()
*/
Override
public String[] getExtensions() {
return new String[] { ".txt" };//$NON-NLS-1$
}
}