/* * Licensed Materials - Property of Rogue Wave Software, Inc. * © Copyright Rogue Wave Software, Inc. 2014, 2015 * © 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. */ package plugins; import ilog.views.IlvManagerView; import ilog.views.maps.IlvMapUtil; import ilog.views.maps.format.image.IlvRasterBasicImageReader; import ilog.views.maps.raster.IlvRasterAbstractReader; import ilog.views.maps.raster.IlvRasterProperties; import ilog.views.maps.srs.coordtrans.IlvMathTransform; import java.awt.geom.Rectangle2D; import java.io.File; import java.net.URL; import java.security.AccessControlException; import javax.swing.JComponent; import calibration.BasicImageAccessory; /** * Class that manages GIF,JPG and TIFF import action. */ public class BasicImageLoadAction extends DefaultLoadAction { boolean isTiled=true; BasicImageAccessory _ac=new BasicImageAccessory(false); private BasicImageAccessory getAc() { if (_ac==null){ _ac=new BasicImageAccessory(false); } return _ac; } /** * Creates an action for the specified view * @param view view to add map data to. */ public BasicImageLoadAction(IlvManagerView view) { super(view); } /** * @see plugins.ImportAction#getSubDirectory() */ protected String getSubDirectory() { return IlvMapUtil.getString(getClass(),"BasicImageLoadAction.CDDirectory"); //$NON-NLS-1$ } private URL lastURL; private String lastFileName; /** * @see plugins.DefaultLoadAction#makeReader(java.lang.String) */ public IlvRasterAbstractReader makeReader(String fileName) { // JV-5476 : make sure we do not reuse the exact same reader, or we cause problem when one of them is removed from the map. if (fileName.equals(lastFileName)){ getAc().setFile(new File(fileName)) ; } lastFileName=fileName; return makeReader(); } /** * @see plugins.DefaultLoadAction#makeReader(URL) */ public IlvRasterAbstractReader makeReader(URL url) { // JV-5476 : make sure we do not reuse the exact same reader, or we cause problem when one of them is removed from the map. if (url.equals(lastURL)){ getAc().setURL(url) ; } lastURL=url; return makeReader(); } private IlvRasterAbstractReader makeReader() { BasicImageAccessory ac=getAc(); IlvRasterBasicImageReader r = ac.getReader(); if(r==null){ r = new IlvRasterBasicImageReader(); r.addMap(ac.getFile().toString()); Rectangle2D.Double e=r.getImageBounds(0); ac.getModel().getControlPoint(0).setIconX(e.x); ac.getModel().getControlPoint(0).setIconY(e.y); ac.getModel().getControlPoint(1).setIconX(e.x+e.width); ac.getModel().getControlPoint(1).setIconY(e.y+e.height); IlvRasterProperties p=r.getRasterProperties(0); p.setTileWidth(p.getNumColumns()); p.setTileHeight(p.getNumLines()); } IlvMathTransform trans=ac.getModel().makeTransform(); if(trans==null){ Rectangle2D bounds=ac.getModel().getLatLonBounds(); r.setImageBounds(0,bounds.getMinX(),bounds.getMaxY(),bounds.getMaxX(),bounds.getMinY()); // in kernel } else { r.setInternalTransformation(trans); } return r; } /** * @see plugins.ImportAction#selectedFileChanged(java.io.File) */ public void selectedFileChanged(File file) { boolean dir=false; try { if(file!=null)dir=file.isDirectory(); } catch (AccessControlException e){ // applets. } if(file != null && accept(file)&&!dir){ getAc().setFile(file); } else { getAc().setFile(null); } } /** * @see plugins.ImportAction#selectedURLChanged(URL) */ public void selectedURLChanged(URL url) { if(url != null && accept(new File(url.getFile()))){ getAc().setURL(url); } else { getAc().setURL(null); } } /** * Returns a BasicImageAccessory. * @see plugins.ImportAction#getAccessory() */ public JComponent getAccessory() { getAc().setView(getView()); return getAc(); } /** * @see plugins.DefaultLoadAction#getExtensions() */ public String [] getExtensions(){ return new String[]{ ".gif",//$NON-NLS-1$ ".tif",//$NON-NLS-1$ ".png",//$NON-NLS-1$ ".jpg",//$NON-NLS-1$ ".jpeg" //$NON-NLS-1$ }; } /** * Returns false. * @see plugins.ImportAction#isMultiSelectionEnabled() */ public boolean isMultiSelectionEnabled() { return false; } /** * @see plugins.ImportAction#getFormatName() */ public String getFormatName() { return ilog.views.maps.IlvMapUtil.getString(getClass(),"BasicImageLoadAction.FormatName"); //$NON-NLS-1$ } }