From: Artur H. <ko...@us...> - 2001-11-21 13:48:23
|
Update of /cvsroot/geotools/geotools/src/uk/ac/leeds/ccg/raster In directory usw-pr-cvs1:/tmp/cvs-serv13012/uk/ac/leeds/ccg/raster Modified Files: ImageLayer.java Log Message: Added support for creating ImageLayer with InputStream as image data source and full support for downaloding map data from WMS with jprotocols package Index: ImageLayer.java =================================================================== RCS file: /cvsroot/geotools/geotools/src/uk/ac/leeds/ccg/raster/ImageLayer.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** ImageLayer.java 2001/10/26 06:16:47 1.27 --- ImageLayer.java 2001/11/21 13:48:19 1.28 *************** *** 23,333 **** * <a href="mailto:ia...@ge...">i.t...@ge...</a> * @author <a href="mailto:ca...@sh...">Cameron Shorter</a> */ public class ImageLayer extends uk.ac.leeds.ccg.geotools.SimpleLayer implements Runnable { ! /* Stores all informatation about an image and it's geographic reference */ ! private Image image = null; ! private GeoRectangle bbox = null; ! private MediaTracker tracker; ! private int myID = 1; ! private final static boolean DEBUG=false; ! private Canvas obs = new Canvas(); ! private Toolkit tk; ! private URL src; ! private Thread thread; ! public ImageLayer(URL source,GeoRectangle bounds){ ! if(DEBUG)System.out.println("---->uk.ac.leeds.ccg.raster.ImageLayer constructed. Will identify itself as IL-->"); ! changeImage(source,bounds); ! } ! public ImageLayer(Image image,GeoRectangle bounds){ bbox = bounds; ! this.image = image; ! tracker = new MediaTracker(new Frame()); ! tracker.addImage(this.image,0); ! this.setStatus(Layer.COMPLETED); ! } ! /** Change the image and extent for the layer. */ ! public void changeImage(URL source,GeoRectangle bounds){ ! this.src=source; ! //if (DEBUG) System.out.println("ImageLayer.changeImage= "+src); ! this.bbox=bounds; ! setStatus(Layer.LOADING); ! thread = new Thread(this); ! thread.setPriority(Thread.MIN_PRIORITY); ! thread.start(); ! return; ! } ! /** Change the image and but not the extent. */ ! public void changeImage(URL source){ ! changeImage( ! source, ! this.bbox); ! } ! /** Change the extent of the image */ ! public void changeExtent(GeoRectangle bounds){ ! this.bbox = bounds; ! this.notifyLayerChangedListeners(LayerChangedEvent.GEOGRAPHY); ! } ! public GeoRectangle getBounds() ! { ! // This method is derived from interface uk.ac.leeds.ccg.geotools.Layer ! // to do: code goes here ! return this.bbox; ! } ! public GeoRectangle getBoundsOf(int id[]) ! { ! // This method is derived from interface uk.ac.leeds.ccg.geotools.Layer ! // to do: code goes here ! return null; ! } ! public GeoRectangle getBoundsOf(int id) ! { ! // This method is derived from interface uk.ac.leeds.ccg.geotools.Layer ! // to do: code goes here ! return null; ! } ! public int getID(GeoPoint p) ! { ! // This method is derived from interface uk.ac.leeds.ccg.geotools.Layer ! // to do: code goes here ! return 0; ! } ! public int getID(double x, double y) ! { ! // This method is derived from interface uk.ac.leeds.ccg.geotools.Layer ! // to do: code goes here ! return 0; ! } ! public void paintHighlight(Graphics g, Scaler scale, int id, ShadeStyle style) ! { ! // This method is derived from interface uk.ac.leeds.ccg.geotools.Layer ! // to do: code goes here ! } ! public void paintScaled(GeoGraphics gg) ! { ! // Print out a call stack ! //if(DEBUG) { ! // try { ! // throw new RuntimeException(); ! // } catch (RuntimeException e) { ! // System.out.println("IL ("+this+")-->paintScaled call stack "); ! // e.printStackTrace(); ! // } ! //} ! double cellSizeX = 0; ! double cellSizeY = 0; ! boolean drawn; ! Graphics g= gg.getGraphics(); ! Scaler scale = gg.getScale(); ! GeoRectangle gr = scale.getMapExtent(); ! //if(DEBUG)System.out.println("IL-->gr "+gr); ! GeoRectangle me = getBounds(); ! //if(DEBUG)System.out.println("IL-->me "+me); ! GeoRectangle out = gr.createIntersect(me); ! //if(DEBUG)System.out.println("IL-->gr "+gr+"\nme "+me+"\nout "+out); ! //if(DEBUG)System.out.println("IL-->getStatus="+this.getStatus()); ! int gh,gw; ! if(DEBUG)System.out.println("IL ("+this+") -->0"); ! if(out!=null){ ! if(DEBUG)System.out.println("IL ("+this+") -->1"); ! if(out.equals(me)){ ! if(DEBUG)System.out.println("IL ("+this+") -->2 "); ! //if(DEBUG)System.out.println("IL-->No clip"); ! //GeoRectangle out = bbox; ! int origin[]=scale.toGraphics(out.x,out.y); ! gh=scale.toGraphics(out.height); ! gw=scale.toGraphics(out.width); ! if(this.image!=null){ ! drawn = g.drawImage( ! this.image, ! origin[0], ! origin[1]-gh, ! gw, ! gh, ! null); ! try { ! tracker.waitForID(myID); ! } catch (InterruptedException e) { ! System.out.println("IL-->Interupted while drawing"); ! setStatus(Layer.ERRORED); ! return; ! } ! if(DEBUG)System.out.println("IL ("+this+") -->3 drawn="+drawn); ! } ! //if((this.getStatus()&Layer.COMPLETED)==Layer.COMPLETED){ ! // if(DEBUG)System.out.println("IL ("+this+") -->4 "); ! // g.setColor(Color.red); ! // g.drawRect(origin[0]+1,origin[1]-gh-1,gw-1,gh-1); ! //} ! } ! else{ ! if(DEBUG)System.out.println("IL ("+this+") -->5 "); ! if((this.getStatus()&Layer.COMPLETED)!=Layer.COMPLETED) { ! if(DEBUG)System.out.println("IL (" ! +this+") -->Layer not loaded"); ! return; ! } ! //complex clip case ! MemoryImageSource source; ! cellSizeX = me.width/this.image.getWidth( ! new Frame()); ! cellSizeY = me.height/this.image.getHeight( ! new Frame()); ! int x,y,width,height; ! if(out.y%cellSizeY>0){ ! out.y=out.y+cellSizeY-(out.y%cellSizeY); ! out.height+=cellSizeY; ! } ! // out.x=out.x-(out.x%cellSizeX); ! x=(int)Math.floor(((out.x-me.x)/cellSizeX)); ! y=(int)Math.ceil(((me.y-out.y+me.height-out.height)/cellSizeY)); ! width=(int)Math.ceil((out.width/cellSizeX)); ! height=(int)Math.ceil(((out.height)/cellSizeY)); ! // out.x=out.x-(out.x%cellSizeX); ! x=(int)Math.floor(((out.x-me.x)/cellSizeX)); ! //y=(int)Math.ceil(((out.y-me.y+out.height)/cellSizeY)); ! //h=(int)Math.ceil(((out.height)/cellsize)); ! //mh=(int)Math.ceil(((me.height)/cellsize)); ! //gh=(int)Math.ceil(((gr.height)/cellsize)); ! //top=(int)Math.ceil(((out.y)/cellsize))+h; ! //mtop=(int)Math.ceil(((me.y)/cellsize))+mh; ! //y=(int)(Math.max(Math.ceil(out.y),Math.ceil(me.y))/cellSizeY); ! y=(int)Math.ceil(((me.y-out.y+me.height-out.height)/cellSizeY)); ! // if(DEBUG)System.out.println("IL-->start "+x+" "+y); ! width=(int)Math.ceil((out.width/cellSizeX)); ! height=(int)Math.ceil(((out.height)/cellSizeY)); ! //if(DEBUG)System.out.println("IL-->w/h "+width+" "+height); ! y=Math.max(y,0); ! int[] data = new int[(height*width)]; ! PixelGrabber pg = new PixelGrabber( ! this.image, ! x, ! y, ! width, ! height, ! data, ! 0, ! width); ! //if(DEBUG)System.out.println("IL-->about to grab"); ! try { ! pg.grabPixels(); ! } catch (InterruptedException e) { ! System.err.println("IL-->interrupted waiting for pixels!"); ! return; ! } ! if ((pg.getStatus() & ImageObserver.ABORT) != 0) { ! System.err.println("IL-->image fetch aborted or errored, status="+pg.getStatus()); ! return ; ! } ! source = new MemoryImageSource(width,height,data,0,width); ! Image image2 = obs.createImage(source); ! int origin[]=scale.toGraphics(out.x,out.y); ! gh=scale.toGraphics(out.height); ! gw=scale.toGraphics(out.width); ! drawn=g.drawImage(image2,origin[0],origin[1]-gh,gw,gh,obs); ! try { ! tracker.waitForID(myID); ! } catch (InterruptedException e) { ! System.out.println("IL-->Interupted while drawing"); ! setStatus(Layer.ERRORED); ! return; ! } ! if(DEBUG)System.out.println("IL ("+this+") -->5.1 drawn="+drawn); ! image2=null; ! if((this.getStatus()&Layer.COMPLETED)!=Layer.COMPLETED){ ! if(DEBUG)System.out.println("IL ("+this+") -->6 "); ! g.setColor(Color.red); ! g.drawRect(origin[0],origin[1]-gh,gw,gh); ! } ! } ! } ! } ! public void run() { ! setStatus(Layer.PENDING); ! if(DEBUG) System.out.println( ! "IL--> Request image " + this.src + " " + bbox); ! // Start getting the image. If the image is .gif or .jpg then ! // use default java tools otherwise use Jimi class ! //String type=""; ! //try{ ! // URLConnection con = this.src.openConnection(); ! // type = con.getContentType(); ! //}catch(java.io.IOException ioe){ ! // System.err.println("IL--> problem opening connection"); //} ! //if((type!=null) && type.startsWith("image")){ ! Frame dummy = new Frame(); ! Toolkit tk = Toolkit.getDefaultToolkit(); ! // if(type.trim().endsWith("gif") ! // || type.trim().endsWith("jpeg")){ ! ! // If a previous image was being tracked, then remove it. ! if(tracker!=null){ ! tracker.removeImage(this.image); ! this.image=null; } ! this.image = tk.getImage(this.src); ! // }else{ ! // this.image = Jimi.getImage(this.src,type); ! // } ! // if(DEBUG)System.out.println( ! // "IL--> Image Width="+this.image.getWidth(dummy)); ! if(tracker==null)tracker = new MediaTracker(dummy); ! tracker.addImage(this.image,++myID); ! try { ! if(DEBUG)System.out.println("IL ("+this+")-->Waiting "); ! while((tracker.statusID(myID,true)&tracker.LOADING)!=0){ ! if(getStatus()==Layer.ABORTED){ ! tracker.removeImage(this.image,myID); ! break; ! } ! tracker.waitForID(myID,500); ! //if(DEBUG)System.out.println("IL ("+this+")-->status loop, status="+tracker.statusID(myID,true)+" myID="+myID); ! } ! int state=tracker.statusID(myID,true); ! if((state&tracker.COMPLETE) == tracker.COMPLETE){ ! if(DEBUG)System.out.println("IL ("+this+")-->Image Ready "); ! setStatus(Layer.COMPLETED); ! //setStatus() triggers a LayerChangedEvent. ! }else if(state == tracker.ABORTED){ ! setStatus(Layer.ABORTED); ! if(DEBUG)System.out.println("IL ("+this+")-->Image Aborted "); ! //}else if(state == tracker.ERRORED){ ! // setStatus(Layer.ERRORED); ! // if(DEBUG)System.out.println("IL ("+this+")-->Image Error "); ! }else { ! setStatus(Layer.ERRORED); ! if(DEBUG)System.out.println("IL ("+this+")-->Image Error "); ! } ! } catch (InterruptedException e) { ! System.out.println("IL ("+this+")-->Interupted "); ! setStatus(Layer.ERRORED); ! return; } ! //} else { // not image ! // if (DEBUG) System.out.println("Image unavailable, con type= "+type); //} //setStatus(Layer.ERRORED); ! } } --- 23,386 ---- * <a href="mailto:ia...@ge...">i.t...@ge...</a> * @author <a href="mailto:ca...@sh...">Cameron Shorter</a> + * @author <a href="mailto:ko...@us...">Artur Hefczyc</a> */ public class ImageLayer extends uk.ac.leeds.ccg.geotools.SimpleLayer implements Runnable { ! /* Stores all informatation about an image and it's geographic reference */ ! private Image image = null; ! private GeoRectangle bbox = null; ! private MediaTracker tracker; ! private int myID = 1; ! private final static boolean DEBUG=false; ! private Canvas obs = new Canvas(); ! private Toolkit tk; ! private URL src = null; ! protected java.io.InputStream src_stream = null; ! private Thread thread; ! public ImageLayer(URL source,GeoRectangle bounds){ ! if(DEBUG)System.out.println("---->uk.ac.leeds.ccg.raster.ImageLayer constructed. Will identify itself as IL-->"); ! changeImage(source,bounds); ! } ! ! public ImageLayer(java.io.InputStream in, GeoRectangle bounds) ! { ! changeImage(in, bounds); ! } ! public ImageLayer(Image image,GeoRectangle bounds){ bbox = bounds; ! this.image = image; ! tracker = new MediaTracker(new Frame()); ! tracker.addImage(this.image,0); ! this.setStatus(Layer.COMPLETED); ! } ! /** Change the image and extent for the layer. */ ! public void changeImage(URL source,GeoRectangle bounds){ ! this.src = source; ! this.src_stream = null; ! //if (DEBUG) System.out.println("ImageLayer.changeImage= "+src); ! changeImage(bounds); ! } ! public void changeImage(java.io.InputStream in, GeoRectangle bounds) ! { ! this.src_stream = in; ! this.src = null; ! changeImage(bounds); ! } ! public void changeImage(GeoRectangle bounds) ! { ! this.bbox=bounds; ! setStatus(Layer.LOADING); ! thread = new Thread(this); ! thread.setPriority(Thread.MIN_PRIORITY); ! thread.start(); ! } ! /** Change the image and but not the extent. */ ! public void changeImage(URL source){ ! changeImage(source, this.bbox); ! } ! /** Change the extent of the image */ ! public void changeExtent(GeoRectangle bounds){ ! this.bbox = bounds; ! this.notifyLayerChangedListeners(LayerChangedEvent.GEOGRAPHY); ! } ! public GeoRectangle getBounds() ! { ! // This method is derived from interface uk.ac.leeds.ccg.geotools.Layer ! // to do: code goes here ! return this.bbox; ! } ! public GeoRectangle getBoundsOf(int id[]) ! { ! // This method is derived from interface uk.ac.leeds.ccg.geotools.Layer ! // to do: code goes here ! return null; ! } ! public GeoRectangle getBoundsOf(int id) ! { ! // This method is derived from interface uk.ac.leeds.ccg.geotools.Layer ! // to do: code goes here ! return null; ! } ! public int getID(GeoPoint p) ! { ! // This method is derived from interface uk.ac.leeds.ccg.geotools.Layer ! // to do: code goes here ! return 0; ! } ! public int getID(double x, double y) ! { ! // This method is derived from interface uk.ac.leeds.ccg.geotools.Layer ! // to do: code goes here ! return 0; ! } ! public void paintHighlight(Graphics g, Scaler scale, int id, ShadeStyle style) ! { ! // This method is derived from interface uk.ac.leeds.ccg.geotools.Layer ! // to do: code goes here ! } ! public void paintScaled(GeoGraphics gg) ! { ! // Print out a call stack ! //if(DEBUG) { ! // try { ! // throw new RuntimeException(); ! // } catch (RuntimeException e) { ! // System.out.println("IL ("+this+")-->paintScaled call stack "); ! // e.printStackTrace(); ! // } ! //} ! double cellSizeX = 0; ! double cellSizeY = 0; ! boolean drawn; ! Graphics g= gg.getGraphics(); ! Scaler scale = gg.getScale(); ! GeoRectangle gr = scale.getMapExtent(); ! //if(DEBUG)System.out.println("IL-->gr "+gr); ! GeoRectangle me = getBounds(); ! //if(DEBUG)System.out.println("IL-->me "+me); ! GeoRectangle out = gr.createIntersect(me); ! //if(DEBUG)System.out.println("IL-->gr "+gr+"\nme "+me+"\nout "+out); ! //if(DEBUG)System.out.println("IL-->getStatus="+this.getStatus()); ! int gh,gw; ! if(DEBUG)System.out.println("IL ("+this+") -->0"); ! if(out!=null){ ! if(DEBUG)System.out.println("IL ("+this+") -->1"); ! if(out.equals(me)){ ! if(DEBUG)System.out.println("IL ("+this+") -->2 "); ! //if(DEBUG)System.out.println("IL-->No clip"); ! //GeoRectangle out = bbox; ! int origin[]=scale.toGraphics(out.x,out.y); ! gh=scale.toGraphics(out.height); ! gw=scale.toGraphics(out.width); ! if(this.image!=null){ ! drawn = g.drawImage( ! this.image, ! origin[0], ! origin[1]-gh, ! gw, ! gh, ! null); ! try { ! tracker.waitForID(myID); ! } catch (InterruptedException e) { ! System.out.println("IL-->Interupted while drawing"); ! setStatus(Layer.ERRORED); ! return; ! } ! if(DEBUG)System.out.println("IL ("+this+") -->3 drawn="+drawn); ! } ! //if((this.getStatus()&Layer.COMPLETED)==Layer.COMPLETED){ ! // if(DEBUG)System.out.println("IL ("+this+") -->4 "); ! // g.setColor(Color.red); ! // g.drawRect(origin[0]+1,origin[1]-gh-1,gw-1,gh-1); //} ! } ! else{ ! if(DEBUG)System.out.println("IL ("+this+") -->5 "); ! if((this.getStatus()&Layer.COMPLETED)!=Layer.COMPLETED) { ! if(DEBUG)System.out.println("IL (" ! +this+") -->Layer not loaded"); ! return; } ! //complex clip case ! MemoryImageSource source; ! cellSizeX = me.width/this.image.getWidth( ! new Frame()); ! cellSizeY = me.height/this.image.getHeight( ! new Frame()); ! int x,y,width,height; ! if(out.y%cellSizeY>0){ ! out.y=out.y+cellSizeY-(out.y%cellSizeY); ! out.height+=cellSizeY; ! } ! // out.x=out.x-(out.x%cellSizeX); ! x=(int)Math.floor(((out.x-me.x)/cellSizeX)); ! y=(int)Math.ceil(((me.y-out.y+me.height-out.height)/cellSizeY)); ! width=(int)Math.ceil((out.width/cellSizeX)); ! height=(int)Math.ceil(((out.height)/cellSizeY)); ! // out.x=out.x-(out.x%cellSizeX); ! x=(int)Math.floor(((out.x-me.x)/cellSizeX)); ! //y=(int)Math.ceil(((out.y-me.y+out.height)/cellSizeY)); ! //h=(int)Math.ceil(((out.height)/cellsize)); ! //mh=(int)Math.ceil(((me.height)/cellsize)); ! //gh=(int)Math.ceil(((gr.height)/cellsize)); ! //top=(int)Math.ceil(((out.y)/cellsize))+h; ! //mtop=(int)Math.ceil(((me.y)/cellsize))+mh; ! //y=(int)(Math.max(Math.ceil(out.y),Math.ceil(me.y))/cellSizeY); ! y=(int)Math.ceil(((me.y-out.y+me.height-out.height)/cellSizeY)); ! // if(DEBUG)System.out.println("IL-->start "+x+" "+y); ! width=(int)Math.ceil((out.width/cellSizeX)); ! height=(int)Math.ceil(((out.height)/cellSizeY)); ! //if(DEBUG)System.out.println("IL-->w/h "+width+" "+height); ! y=Math.max(y,0); ! int[] data = new int[(height*width)]; ! PixelGrabber pg = new PixelGrabber( ! this.image, ! x, ! y, ! width, ! height, ! data, ! 0, ! width); ! //if(DEBUG)System.out.println("IL-->about to grab"); ! try { ! pg.grabPixels(); ! } catch (InterruptedException e) { ! System.err.println("IL-->interrupted waiting for pixels!"); ! return; ! } ! if ((pg.getStatus() & ImageObserver.ABORT) != 0) { ! System.err.println("IL-->image fetch aborted or errored, status="+pg.getStatus()); ! return ; ! } ! source = new MemoryImageSource(width,height,data,0,width); ! Image image2 = obs.createImage(source); ! int origin[]=scale.toGraphics(out.x,out.y); ! gh=scale.toGraphics(out.height); ! gw=scale.toGraphics(out.width); ! drawn=g.drawImage(image2,origin[0],origin[1]-gh,gw,gh,obs); ! try { ! tracker.waitForID(myID); ! } catch (InterruptedException e) { ! System.out.println("IL-->Interupted while drawing"); ! setStatus(Layer.ERRORED); ! return; ! } ! if(DEBUG)System.out.println("IL ("+this+") -->5.1 drawn="+drawn); ! image2=null; ! if((this.getStatus()&Layer.COMPLETED)!=Layer.COMPLETED){ ! if(DEBUG)System.out.println("IL ("+this+") -->6 "); ! g.setColor(Color.red); ! g.drawRect(origin[0],origin[1]-gh,gw,gh); ! } ! } ! } ! } ! protected byte[] getImageData(java.io.InputStream instr) ! { ! byte[] res = null; ! try { ! java.io.ByteArrayOutputStream outstr = new java.io.ByteArrayOutputStream(); ! byte[] buff = new byte[16000]; ! int cnt = instr.read(buff); ! while (cnt != -1) { ! outstr.write(buff, 0, cnt); ! cnt = instr.read(buff); ! } // end of while (cnt != -1) ! // instr.close(); ! res = outstr.toByteArray(); ! outstr.close(); ! } catch (java.io.IOException e) { ! res = null; ! } // end of try-catch ! ! return res; ! } ! public void run() { ! setStatus(Layer.PENDING); ! if(DEBUG) System.out.println( ! "IL--> Request image " + this.src + " " + bbox); ! // Start getting the image. If the image is .gif or .jpg then ! // use default java tools otherwise use Jimi class ! //String type=""; ! //try{ ! // URLConnection con = this.src.openConnection(); ! // type = con.getContentType(); ! //}catch(java.io.IOException ioe){ ! // System.err.println("IL--> problem opening connection"); ! //} ! //if((type!=null) && type.startsWith("image")){ ! Frame dummy = new Frame(); ! Toolkit tk = Toolkit.getDefaultToolkit(); ! // if(type.trim().endsWith("gif") ! // || type.trim().endsWith("jpeg")){ ! // If a previous image was being tracked, then remove it. ! if(tracker!=null){ ! tracker.removeImage(this.image); ! this.image=null; ! } ! if (src != null) { ! this.image = tk.getImage(this.src); ! } // end of if (src != null) ! if (src_stream != null) { ! this.image = tk.createImage(getImageData(src_stream)); ! } // end of if (src_stream != null) ! ! ! // }else{ ! // this.image = Jimi.getImage(this.src,type); ! // } ! // if(DEBUG)System.out.println( ! // "IL--> Image Width="+this.image.getWidth(dummy)); ! ! if(tracker==null)tracker = new MediaTracker(dummy); ! tracker.addImage(this.image,++myID); ! try { ! if(DEBUG)System.out.println("IL ("+this+")-->Waiting "); ! while((tracker.statusID(myID,true)&tracker.LOADING)!=0){ ! if(getStatus()==Layer.ABORTED){ ! tracker.removeImage(this.image,myID); ! break; } ! tracker.waitForID(myID,500); ! //if(DEBUG)System.out.println("IL ("+this+")-->status loop, status="+tracker.statusID(myID,true)+" myID="+myID); ! ! } ! int state=tracker.statusID(myID,true); ! if((state&tracker.COMPLETE) == tracker.COMPLETE){ ! if(DEBUG)System.out.println("IL ("+this+")-->Image Ready "); ! setStatus(Layer.COMPLETED); ! //setStatus() triggers a LayerChangedEvent. ! }else if(state == tracker.ABORTED){ ! setStatus(Layer.ABORTED); ! if(DEBUG)System.out.println("IL ("+this+")-->Image Aborted "); ! //}else if(state == tracker.ERRORED){ ! // setStatus(Layer.ERRORED); ! // if(DEBUG)System.out.println("IL ("+this+")-->Image Error "); ! }else { ! setStatus(Layer.ERRORED); ! if(DEBUG)System.out.println("IL ("+this+")-->Image Error "); ! } ! ! } catch (InterruptedException e) { ! System.out.println("IL ("+this+")-->Interupted "); ! setStatus(Layer.ERRORED); ! return; ! } ! //} else { // not image ! // if (DEBUG) System.out.println("Image unavailable, con type= "+type); //} //setStatus(Layer.ERRORED); ! } } + /* + * Changes in file: + * + * $Log$ + * Revision 1.28 2001/11/21 13:48:19 kobit + * Added support for creating ImageLayer with InputStream as image data source and full support for downaloding map data from WMS with jprotocols package + * + * + */ |