// ********************************************************************** // // <copyright> // // BBN Technologies // 10 Moulton Street // Cambridge, MA 02138 // (617) 873-8000 // // Copyright (C) BBNT Solutions LLC. All rights reserved. // // </copyright> // ********************************************************************** // // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/layer/link/LinkActionList.java,v $ // $RCSfile: LinkActionList.java,v $ // $Revision: 1.11 $ // $Date: 2009/01/21 01:24:41 $ // $Author: dietrick $ // // ********************************************************************** package com.bbn.openmap.layer.link; import java.awt.Color; import java.awt.Image; import java.io.EOFException; import java.io.IOException; import java.util.Vector; import javax.swing.ImageIcon; import com.bbn.openmap.Layer; import com.bbn.openmap.omGraphics.OMGraphic; import com.bbn.openmap.omGraphics.OMGrid; import com.bbn.openmap.omGraphics.grid.OMGridGenerator; import com.bbn.openmap.proj.Projection; import com.bbn.openmap.util.Debug; /** * The LinkActionList carries information about actions that the client should * perform in response to a gesture query. The possible actions include URLs and * HTML text to display in a browser, information to display in a pop-up window * or status display, or changes to make to graphics. */ public class LinkActionList implements LinkActionConstants, LinkPropertiesConstants { /** Link used for the transmission/reception of actions. */ protected Link link = null; /** The terminator of the gesture section when receiving actions. */ protected String linkStatus = Link.END_TOTAL; /** */ protected boolean reacted = false; /** * This flag tells whether properties have been received that note how to * update the map. */ protected boolean mapUpdate = false; /** Use these properties to set the map */ protected LinkProperties mapProperties; /** * Instead of allocating a new empty vector for each gesture response, even * if there isn't a graphic update, use this to return an empty vector. */ protected static Vector emptyGraphicUpdates = new Vector(); /** Graphics list received. */ protected Vector updates = null; /** Version Number of request format. */ protected static float version = Link.LINK_VERSION; /** The properties returned for this list. */ protected LinkProperties properties; /** * Write a gesture response section to the link, from the server side. * * @param link the Link to write to. * @throws IOException */ public LinkActionList(Link link, LinkProperties properties) throws IOException { this.link = link; link.start(Link.ACTIONS_HEADER); link.dos.writeFloat(version); properties.write(link); } /** * Read the gesture section off the link, from the client. * * @param link the link to read from. * @param layer the client layer. * @param proj the projection to use on graphic updates. * @param generator an OMGridGenerator that knows how to render grid * objects. * @throws IOException * @throws EOFException */ public LinkActionList(Link link, Layer layer, Projection proj, OMGridGenerator generator) throws IOException, EOFException { this.link = link; linkStatus = readGestureResponses(layer, proj, generator); } /** * After reading the gesture response, this returns the section ending * string terminating the gesture section, either Link.END_TOTAL or * Link.END_SECTION. * * @return either Link.END_TOTAL or Link.END_SECTION. */ public String getLinkStatus() { return linkStatus; } /** * Get the properties for the LinkActionList. Any information messages can * be picked up from within the properties - html, URL, messages, text and * information lines. * * @return properties */ public LinkProperties getProperties() { return properties; } /** * Get the properties for the map update. * * @return mapProperties */ public LinkProperties getMapProperties() { return mapProperties; } /** * Return all the graphic updates that came across the link, in the form of * a Vector of LinkActionList.GraphicUpdate objects. * * @return Vector of GraphicUpdate objects. */ public Vector getGraphicUpdates() { if (updates == null) { return emptyGraphicUpdates; } else { return updates; } } /** * The server method that needs to be called at the end of sending a gesture * response. This will tell the link what type of teminator to put on the * end of the gesture response section, and also tell the link to fluxh the * output stream.. * * @param endType use Link.END_SECTION if you want to add more types of * responses. Use Link.END_TOTAL at the end of the total * transmission. * @throws IOException */ public void end(String endType) throws IOException { link.end(endType); } /** * If a ACTIONS_HEADER has been encountered coming off the link, then this * method should be called to read the string of gesture that follows. The * gestures are read and reacted to directly - the responses that involve * the Information Delegator are handled here, and all graphic updates are * stored in the graphicUpdates Vector. Assumes the ACTIONS_HEADER has been * read. * * @param layer the layer that wants the gesture results.. * @param proj If you want the gesture graphic to be projected as it comes * off the wire, add a projection here. Otherwise, use null. * @param generator an OMGridGenerator that knows how to render grid * objects. * @return Link.END_TOTAL or Link.END_SECTION, depending on how the section * ends. * @throws IOException * @throws EOFException */ protected String readGestureResponses(Layer layer, Projection proj, OMGridGenerator generator) throws IOException, EOFException { long startTime = System.currentTimeMillis(); String header = null; int gestureType; float ver = link.dis.readFloat(); if (ver != version) { if (ver == .1) {// Big difference.... throw new IOException("LinkActionList: Versions do not match! DANGER!"); } else { Debug.message("link", "LinkActionList: Versions do not match"); } } if (properties != null) { properties.clear(); } properties = LinkProperties.read(link.dis, properties); LinkProperties graphicProperties = new LinkProperties(); Debug.message("link", "LinkActionList: reading actions:"); while (true) { // Just consume the header, don't create a useless // string object. header = link.readDelimiter(false); if (header == Link.END_TOTAL || header == Link.END_SECTION) { long endTime = System.currentTimeMillis(); if (Debug.debugging("link")) { Debug.output("LinkActionList: received in " + (float) (endTime - startTime) / 1000.0f + " seconds"); } return header; } gestureType = link.dis.readByte(); switch (gestureType) { case ACTION_GRAPHICS: int graphicAction = link.dis.readInt(); if (updates == null) { updates = new Vector(); } if (LinkUtil.isMask(graphicAction, UPDATE_ADD_GRAPHIC_MASK) || LinkUtil.isMask(graphicAction, UPDATE_GRAPHIC_MASK)) { updates.addElement(readGraphic(graphicAction, graphicProperties, proj, generator)); } else { graphicProperties = LinkProperties.read(link.dis, graphicProperties); updates.addElement(new GraphicUpdate(graphicAction, graphicProperties.getProperty(LPC_GRAPHICID))); } reacted = true; break; case ACTION_GUI: break; case ACTION_MAP: mapUpdate = true; if (mapProperties != null) { mapProperties.clear(); } mapProperties = LinkProperties.read(link.dis, mapProperties); break; default: System.err.println("LinkActionList: received unknown gesture type."); } } } /** * Read a graphic's particulars, for upates and additions. Assumes that the * gesture type and graphic action has been read. * * @param graphicAction the action to take on the graphic. * @param proj the projection to apply to the graphic. * @param generator an OMGridGenerator that knows how to render grid * objects. * @throws IOException */ protected GraphicUpdate readGraphic(int graphicAction, LinkProperties graphicProperties, Projection proj, OMGridGenerator generator) throws IOException { OMGraphic graphic = null; String header = link.readDelimiter(false); // Sanity check if (header == Link.END_TOTAL || header == Link.END_SECTION) { return null; } int graphicType = link.dis.readByte(); switch (graphicType) { case LinkGraphicList.GRAPHICTYPE_LINE: graphic = LinkLine.read(link.dis, graphicProperties); break; case LinkGraphicList.GRAPHICTYPE_POLY: graphic = LinkPoly.read(link.dis, graphicProperties); break; case LinkGraphicList.GRAPHICTYPE_RECTANGLE: graphic = LinkRectangle.read(link.dis, graphicProperties); break; case LinkGraphicList.GRAPHICTYPE_POINT: graphic = LinkPoint.read(link.dis, graphicProperties); break; case LinkGraphicList.GRAPHICTYPE_CIRCLE: graphic = LinkCircle.read(link.dis, graphicProperties); break; case LinkGraphicList.GRAPHICTYPE_ELLIPSE: graphic = LinkEllipse.read(link.dis, graphicProperties); break; case LinkGraphicList.GRAPHICTYPE_RASTER: graphic = LinkRaster.read(link.dis, graphicProperties); break; case LinkGraphicList.GRAPHICTYPE_BITMAP: graphic = LinkBitmap.read(link.dis, graphicProperties); break; case LinkGraphicList.GRAPHICTYPE_TEXT: graphic = LinkText.read(link.dis, graphicProperties); break; case LinkGraphicList.GRAPHICTYPE_GRID: graphic = LinkGrid.read(link.dis, graphicProperties); break; case LinkGraphicList.GRAPHICTYPE_ARC: graphic = LinkArc.read(link.dis, graphicProperties); break; default: System.err.println("LinkActionList: received unknown graphic type."); } if (graphic != null && proj != null) { if (graphic instanceof OMGrid) { ((OMGrid) graphic).setGenerator(generator); } graphic.generate(proj); } return (new GraphicUpdate(graphicAction, graphic)); } /** Returns true if the gesture was consumed by the server. */ public boolean consumedGesture() { return reacted; } /** Returns true if a map update command was given. */ public boolean getNeedMapUpdate() { return mapUpdate; } /** * Sets whether a set of MapUpdate parameters needs to be fetched. Should be * reset to false after the map projection has been updated. */ public void setNeedMapUpdate(boolean value) { mapUpdate = value; } /** * The server method for writing a request to the client to deselect all the * graphics. * * @throws IOException */ public void deselectGraphics() throws IOException { link.dos.write(Link.UPDATE_GRAPHICS.getBytes()); link.dos.writeByte(ACTION_GRAPHICS); link.dos.writeInt(MODIFY_DESELECTALL_GRAPHIC_MASK); LinkProperties.EMPTY_PROPERTIES.write(link.dos); // Write // empty } /** * Server can use this method to modify a graphic with an action described * by the MODIFY mask values. Assumes that you don't want to update or add a * graphic, because that requires the graphic being added. * * @param maskDescription an integer with the applicable MODIFY_MASKS set. * @param props property list containing the identifier used by the client * to know which graphic to modify. * @throws IOException */ public void modifyGraphic(int maskDescription, LinkProperties props) throws IOException { link.dos.write(Link.UPDATE_GRAPHICS.getBytes()); link.dos.writeByte(ACTION_GRAPHICS); link.dos.writeInt(maskDescription); props.write(link.dos); } /** * Used by the graphic methods to write the correct mask and graphic header * when a graphic is updated. Should not be called directly unless you * understand the protocol. * * @param graphicUpdateMask the masked integer to describe the action on the * graphic. * @throws IOException */ public void writeGraphicGestureHeader(int graphicUpdateMask) throws IOException { link.dos.write(Link.UPDATE_GRAPHICS.getBytes()); link.dos.writeByte(ACTION_GRAPHICS); link.dos.writeInt(graphicUpdateMask); } /** * Update an arc with lat/lon placement. * * @param latPoint latitude of center point, decimal degrees * @param lonPoint longitude of center point, decimal degrees * @param w horizontal diameter of arc, pixels * @param h vertical diameter of arc, pixels * @param s starting angle of arc, decimal degrees * @param e angular extent of arc, decimal degrees * @param properties attributes for the arc. * @throws IOException */ public void updateArc(float latPoint, float lonPoint, int w, int h, float s, float e, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkArc.write(latPoint, lonPoint, 0, 0, w, h, s, e, properties, link.dos); } /** * Update an arc with x/y placement. * * @param x1 window position of center point from left of window, in pixels * @param y1 window position of center point from top of window, in pixels * @param w horizontal diameter of arc, pixels * @param h vertical diameter of arc, pixels * @param s starting angle of arc, decimal degrees * @param e angular extent of arc, decimal degrees * @param properties attributes for the arc. * @throws IOException */ public void updateArc(int x1, int y1, int w, int h, float s, float e, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkArc.write(x1, y1, w, h, s, e, properties, link.dos); } /** * Writing an arc at a x, y, offset to a Lat/Lon location. * * @param latPoint latitude of center of arc. * @param lonPoint longitude of center of arc. * @param offset_x1 # pixels to the right the center will be moved from * lonPoint. * @param offset_y1 # pixels down that the center will be moved from * latPoint. * @param w horizontal diameter of arc, pixels. * @param h vertical diameter of arc, pixels. * @param s starting angle of arc, decimal degrees * @param e angular extent of arc, decimal degrees * @param properties attributes for the arc. * @throws IOException */ public void updateArc(float latPoint, float lonPoint, int offset_x1, int offset_y1, int w, int h, float s, float e, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkArc.write(latPoint, lonPoint, offset_x1, offset_y1, w, h, s, e, properties, link.dos); } /** * Update an arc with a certain radius at a Lat/Lon location. Assumes the * radius is in decimal degrees. * * @param latPoint latitude of center point, decimal degrees * @param lonPoint longitude of center point, decimal degrees * @param radius distance in decimal degrees * @param s starting angle of arc, decimal degrees * @param e angular extent of arc, decimal degrees * @param properties attributes for the arc. * @throws IOException */ public void updateArc(float latPoint, float lonPoint, float radius, float s, float e, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkArc.write(latPoint, lonPoint, radius, -1, -1, s, e, properties, link.dos); } /** * Update an arc with a certain radius at a Lat/Lon location, and allows you * to specify units of the radius. * * @param latPoint latitude of center of arc in decimal degrees * @param lonPoint longitude of center of arc in decimal degrees * @param radius distance * @param units integer value for units for distance - KM, MILES, NMILES. If * < 0, assume decimal degrees. * @param s starting angle of arc, decimal degrees * @param e angular extent of arc, decimal degrees * @param properties attributes for the arc. * @throws IOException */ public void updateArc(float latPoint, float lonPoint, float radius, int units, float s, float e, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkArc.write(latPoint, lonPoint, radius, units, -1, s, e, properties, link.dos); } /** * Update an arc with a certain radius at a Lat/Lon location, and allows you * to specify units of the radius, as well as the number of vertices to use * to approximate the arc. * * @param latPoint latitude of center of arc in decimal degrees * @param lonPoint longitude of center of arc in decimal degrees * @param radius distance * @param units integer value for units for distance - OMArc.KM, * OMArc.MILES, OMArc.NMILES. If < 0, assume decimal degrees. * @param nverts number of vertices for the poly-arc (if < 3, value is * generated internally). * @param s starting angle of arc, decimal degrees * @param e angular extent of arc, decimal degrees * @param properties attributes for the arc. * @throws IOException */ public void updateArc(float latPoint, float lonPoint, float radius, int units, int nverts, float s, float e, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkArc.write(latPoint, lonPoint, radius, units, nverts, s, e, properties, link.dos); } /** * Update the bitmap. * * @param lt latitude of placement of upper left corner of bitmap. * @param ln longitude of placement of upper left corner of bitmap. * @param w pixel width of bitmap. * @param h pixel height of bitmap. * @param bytes bitmap data. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkBitmap */ public void updateBitmap(float lt, float ln, int w, int h, byte[] bytes, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkBitmap.write(lt, ln, w, h, bytes, properties, link.dos); } /** * Update the bitmap. * * @param x1 horizontal placement of upper left corner of bitmap. * @param y1 vertical placement of upper left corner of bitmap. * @param w pixel width of bitmap. * @param h pixel height of bitmap. * @param bytes bitmap data. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkBitmap */ public void updateBitmap(int x1, int y1, int w, int h, byte[] bytes, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkBitmap.write(x1, y1, w, h, bytes, properties, link.dos); } /** * Write a bitmap in the response. * * @param lt latitude of placement of upper left corner of bitmap. * @param ln longitude of placement of upper left corner of bitmap. * @param offset_x1 horizontal offset of upper left corner of bitmap. * @param offset_y1 vertical offset of upper left corner of bitmap. * @param w pixel width of bitmap. * @param h pixel height of bitmap. * @param bytes bitmap data. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkBitmap */ public void updateBitmap(float lt, float ln, int offset_x1, int offset_y1, int w, int h, byte[] bytes, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkBitmap.write(lt, ln, offset_x1, offset_y1, w, h, bytes, properties, link.dos); } /** * Write a circle in the response. * * @param latPoint latitude of placement of center of circle. * @param lonPoint longitude of placement of center of circle. * @param w pixel width of circle. * @param h pixel height of circle. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkCircle */ public void updateCircle(float latPoint, float lonPoint, int w, int h, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkCircle.write(latPoint, lonPoint, w, h, properties, link.dos); } /** * Write a circle in the response. * * @param x1 horizontal pixel placement of center of circle.. * @param y1 vertical pixel placement of center of circle.. * @param w pixel width of circle. * @param h pixel height of circle. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkCircle */ public void updateCircle(int x1, int y1, int w, int h, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkCircle.write(x1, y1, w, h, properties, link.dos); } /** * Write a circle in the response. * * @param latPoint latitude of placement of center of circle. * @param lonPoint longitude of placement of center of circle. * @param offset_x1 horizontal pixel offset of center of circle.. * @param offset_y1 vertical pixel offset of center of circle.. * @param w width of circle. * @param h height of circle. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkCircle */ public void updateCircle(float latPoint, float lonPoint, int offset_x1, int offset_y1, int w, int h, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkCircle.write(latPoint, lonPoint, offset_x1, offset_y1, w, h, properties, link.dos); } /** * Write a circle in the response. * * @param latPoint latitude of placement of center of circle. * @param lonPoint longitude of placement of center of circle. * @param radius radius of circle, in decimal degrees.. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkCircle */ public void updateCircle(float latPoint, float lonPoint, float radius, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkCircle.write(latPoint, lonPoint, radius, -1, -1, properties, link.dos); } /** * Write a circle in the response. * * @param latPoint latitude of placement of center of circle. * @param lonPoint longitude of placement of center of circle. * @param radius radius of circle, in decimal degrees.. * @param units units of the radius - km, miles, nmiles, degrees.. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkCircle */ public void updateCircle(float latPoint, float lonPoint, float radius, int units, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkCircle.write(latPoint, lonPoint, radius, units, -1, properties, link.dos); } /** * Write a circle in the response. * * @param latPoint latitude of placement of center of circle. * @param lonPoint longitude of placement of center of circle. * @param radius radius of circle, in decimal degrees.. * @param units units of the radius - km, miles, nmiles, degrees.. * @param nverts number of points to use to approximate the circle. If * negative, the client algorithm will figure out what is best. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkCircle */ public void updateCircle(float latPoint, float lonPoint, float radius, int units, int nverts, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkCircle.write(latPoint, lonPoint, radius, units, nverts, properties, link.dos); } /** * Write an ellipse in the response. * * @param latPoint latitude of center of circle in decimal degrees * @param lonPoint longitude of center of circle in decimal degrees * @param majorAxisSpan x axis value, units * @param minorAxisSpan y axis value, units * @param units integer value for units for distance - OMCircle.KM, * OMCircle.MILES, OMCircle.NMILES. If < 0, assume decimal * degrees. * @param rotationAngle The angle by which the circle/ellipse is to be * rotated, in radians * * @param properties attributes for the circle. * @throws IOException */ public void updateEllipse(float latPoint, float lonPoint, float majorAxisSpan, float minorAxisSpan, int units, float rotationAngle, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkEllipse.write(latPoint, lonPoint, majorAxisSpan, minorAxisSpan, units, rotationAngle, properties, link.dos); } /** * Write an ellipse in the response. * * @param x1 window position of center point from left of window, in pixels * @param y1 window position of center point from top of window, in pixels * @param majorAxisSpan horizontal diameter of circle/ellipse, pixels * @param minorAxisSpan vertical diameter of circle/ellipse, pixels * @param rotateAngle angle of rotation in Radians * * @param properties the LinkProperties describing the attributes of the * ellipse. */ public void updateEllipse(int x1, int y1, int majorAxisSpan, int minorAxisSpan, float rotateAngle, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkEllipse.write(x1, y1, majorAxisSpan, minorAxisSpan, rotateAngle, properties, link.dos); } /** * Write an ellipse in the response. * * @param latPoint latitude of center of circle in decimal degrees * @param lonPoint longitude of center of circle in decimal degrees * @param w horizontal diameter of circle/ellipse, pixels * @param h vertical diameter of circle/ellipse, pixels * @param rotateAngle angle of rotation in Radians * @param properties the LinkProperties describing the attributes of the * ellipse. */ public void updateEllipse(float latPoint, float lonPoint, int w, int h, float rotateAngle, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkEllipse.write(latPoint, lonPoint, w, h, rotateAngle, properties, link.dos); } /** * Write an ellipse in the response. * * @param latPoint latitude of center of circle in decimal degrees * @param lonPoint longitude of center of circle in decimal degrees * @param offset_x1 # pixels to the right the center will be moved from * lonPoint. * @param offset_y1 # pixels down that the center will be moved from * latPoint. * @param w horizontal diameter of circle/ellipse, pixels. * @param h vertical diameter of circle/ellipse, pixels. * @param rotateAngle the rotation of the ellipse around the center point, * in radians. * @param properties the LinkProperties describing the attributes of the * ellipse. */ public void updateEllipse(float latPoint, float lonPoint, int offset_x1, int offset_y1, int w, int h, float rotateAngle, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkEllipse.write(latPoint, lonPoint, offset_x1, offset_y1, w, h, rotateAngle, properties, link.dos); } /** * Lat/Lon placement grid. * * @param lt latitude of the top of the grid. * @param ln longitude of the left side of the grid. * @param rows number of vertical points of the grid. * @param columns number of horizontal points of the grid. * @param orientation the direction of the vertical axits of the grid, in * radians from up ( North). * @param vResolution degrees/point between rows of the grid. * @param hResolution degrees/point between columns of the grid. * @param major designation of the presentation of the data, as columns * (COLUMN_MAJOR) or rows (ROW_MAJOR). * @param data data points of the grid. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @see com.bbn.openmap.layer.link.LinkGrid * @throws IOException */ public void updateGrid(float lt, float ln, int rows, int columns, float orientation, float vResolution, float hResolution, int major, int[] data, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkGrid.write(lt, ln, rows, columns, orientation, vResolution, hResolution, major, data, properties, link.dos); } /** * XY placement grid. * * @param x1 window location of the left side of the grid. * @param y1 window location of the top of the grid. * @param rows number of vertical points of the grid. * @param columns number of horizontal points of the grid. * @param orientation the direction of the vertical axits of the grid, in * radians from up ( North). * @param vResolution pixels/point between rows of the grid. * @param hResolution pixels/point between columns of the grid. * @param major designation of the presentation of the data, as columns * (COLUMN_MAJOR) or rows (ROW_MAJOR). * @param data data points of the grid. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @see com.bbn.openmap.layer.link.LinkGrid * @throws IOException */ public void updateGrid(int x1, int y1, int rows, int columns, float orientation, float vResolution, float hResolution, int major, int[] data, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkGrid.write(x1, y1, rows, columns, orientation, vResolution, hResolution, major, data, properties, link.dos); } /** * Lat/lon placement with XY offset. * * @param lt latitude of the top of the image, before the offset. * @param ln longitude of the left side of the image, before the offset. * @param offset_x1 number of pixels to move image to the right. * @param offset_y1 number of pixels to move image down. * @param rows number of vertical points of the grid. * @param columns number of horizontal points of the grid. * @param orientation the direction of the vertical axits of the grid, in * radians from up ( North). * @param vResolution pixels/point between rows of the grid. * @param hResolution pixels/point between columns of the grid. * @param major designation of the presentation of the data, as columns * (COLUMN_MAJOR) or rows (ROW_MAJOR). * @param data data points of the grid. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @see com.bbn.openmap.layer.link.LinkGrid * @throws IOException */ public void updateGrid(float lt, float ln, int offset_x1, int offset_y1, int rows, int columns, float orientation, float vResolution, float hResolution, int major, int[] data, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkGrid.write(lt, ln, offset_x1, offset_y1, rows, columns, orientation, vResolution, hResolution, major, data, properties, link.dos); } /** * Write a line in the response. * * @param lat_1 latitude of placement of start of line. * @param lon_1 longitude of placement of start of line. * @param lat_2 latitude of placement of end of line. * @param lon_2 longitude of placement of end of line. * @param lineType type of line - straight, rhumb, great circle.. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkLine */ public void updateLine(float lat_1, float lon_1, float lat_2, float lon_2, int lineType, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkLine.write(lat_1, lon_1, lat_2, lon_2, lineType, properties, link.dos); } /** * Write a line in the response. * * @param lat_1 latitude of placement of start of line. * @param lon_1 longitude of placement of start of line. * @param lat_2 latitude of placement of end of line. * @param lon_2 longitude of placement of end of line. * @param lineType type of line - straight, rhumb, great circle.. * @param nsegs number of points to use to approximate curved line.. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkLine */ public void updateLine(float lat_1, float lon_1, float lat_2, float lon_2, int lineType, int nsegs, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkLine.write(lat_1, lon_1, lat_2, lon_2, lineType, nsegs, properties, link.dos); } /** * Write a line in the response. * * @param x1 Horizontal pixel placement of start of line. * @param y1 Vertical pixel placement of start of line. * @param x2 Horizontal pixel placement of end of line. * @param y2 Vertical pixel placement of end of line. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkLine */ public void updateLine(int x1, int y1, int x2, int y2, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkLine.write(x1, y1, x2, y2, properties, link.dos); } /** * Write a line in the response. * * @param lat_1 latitude of placement of line. * @param lon_1 longitude of placement of line. * @param x1 Horizontal pixel offset of start of line. * @param y1 Vertical pixel offset of start of line. * @param x2 Horizontal pixel offset of end of line. * @param y2 Vertical pixel offset of end of line. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkLine */ public void updateLine(float lat_1, float lon_1, int x1, int y1, int x2, int y2, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkLine.write(lat_1, lon_1, x1, y1, x2, y2, properties, link.dos); } /** * Write a raster in the response. * * @param lt latitude of placement of upper left corner of raster. * @param ln longitude of placement of upper left corner of raster. * @param ii ImageIcon to place on the map.. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @throws InterruptedException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(float lt, float ln, ImageIcon ii, LinkProperties properties, int graphicUpdateMask) throws IOException, InterruptedException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(lt, ln, ii, properties, link.dos); } /** * Write a raster in the response. * * @param x1 horizontal pixel location of upper left corner of raster. * @param y1 vertical pixel location of upper left corner of raster. * @param ii ImageIcon to place on the map.. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @throws InterruptedException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(int x1, int y1, ImageIcon ii, LinkProperties properties, int graphicUpdateMask) throws IOException, InterruptedException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(x1, y1, ii, properties, link.dos); } /** * Write a raster in the response. * * @param lt latitude of placement of upper left corner of raster. * @param ln longitude of placement of upper left corner of raster. * @param offset_x1 horizontal pixel offset of upper left corner of raster. * @param offset_y1 vertical pixel offset of upper left corner of raster. * @param ii ImageIcon to place on the map.. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @throws InterruptedException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(float lt, float ln, int offset_x1, int offset_y1, ImageIcon ii, LinkProperties properties, int graphicUpdateMask) throws IOException, InterruptedException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(lt, ln, offset_x1, offset_y1, ii, properties, link.dos); } /** * Write a bitmap in the response. * * @param lt latitude of placement of upper left corner of bitmap. * @param ln longitude of placement of upper left corner of bitmap. * @param image_width width of bitmap. * @param image_height height of bitmap. * @param image the java.awt.Image. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @throws InterruptedException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(float lt, float ln, Image image, int image_width, int image_height, LinkProperties properties, int graphicUpdateMask) throws IOException, InterruptedException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(lt, ln, image, image_width, image_height, properties, link.dos); } /** * Write a raster in the response. * * @param x1 horizontal pixel location of upper left corner of raster. * @param y1 vertical pixel location of upper left corner of raster. * @param image Image to place on map. * @param image_width width of image. * @param image_height height of image. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @throws InterruptedException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(int x1, int y1, Image image, int image_width, int image_height, LinkProperties properties, int graphicUpdateMask) throws IOException, InterruptedException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(x1, y1, image, image_width, image_height, properties, link.dos); } /** * Write a raster in the response. * * @param lt latitude of placement of upper left corner of raster. * @param ln longitude of placement of upper left corner of raster. * @param offset_x1 horizontal pixel offset of upper left corner of raster. * @param offset_y1 vertical pixel offset of upper left corner of raster. * @param image Image to place on map. * @param image_width width of image. * @param image_height height of image. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @throws InterruptedException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(float lt, float ln, int offset_x1, int offset_y1, Image image, int image_width, int image_height, LinkProperties properties, int graphicUpdateMask) throws IOException, InterruptedException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(lt, ln, offset_x1, offset_y1, image, image_width, image_height, properties, link.dos); } /** * Write a raster in the response. * * @param lt latitude of placement of upper left corner of raster. * @param ln longitude of placement of upper left corner of raster. * @param w width of raster. * @param h height of raster. * @param pix integer image pixel data. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(float lt, float ln, int w, int h, int[] pix, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(lt, ln, w, h, pix, properties, link.dos); } /** * Write a raster in the response. * * @param x1 horizontal pixel location of upper left corner of raster. * @param y1 vertical pixel location of upper left corner of raster. * @param w width of raster. * @param h height of raster. * @param pix integer image pixel data. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(int x1, int y1, int w, int h, int[] pix, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(x1, y1, w, h, pix, properties, link.dos); } /** * Write a raster in the response. * * @param lt latitude of placement of upper left corner of bitmap. * @param ln longitude of placement of upper left corner of bitmap. * @param offset_x1 horizontal pixel offset of upper left corner of raster. * @param offset_y1 vertical pixel offset of upper left corner of raster. * @param w width of raster. * @param h height of raster. * @param pix integer image pixel data. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(float lt, float ln, int offset_x1, int offset_y1, int w, int h, int[] pix, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(lt, ln, offset_x1, offset_y1, w, h, pix, properties, link.dos); } /** * Write a raster in the response. * * @param lt latitude of placement of upper left corner of raster. * @param ln longitude of placement of upper left corner of raster. * @param url the url to download image from. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(float lt, float ln, String url, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(lt, ln, url, properties, link.dos); } /** * Write a raster in the response. * * @param x1 horizontal pixel location of upper left corner of raster. * @param y1 vertical pixel location of upper left corner of raster. * @param url the url to download the image from. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(int x1, int y1, String url, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(x1, y1, url, properties, link.dos); } /** * Write a raster in the response. * * @param lt latitude of placement of upper left corner of raster. * @param ln longitude of placement of upper left corner of raster. * @param offset_x1 horizontal pixel offset of upper left corner of raster. * @param offset_y1 vertical pixel offset of upper left corner of raster. * @param url the url to download the image from. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(float lt, float ln, int offset_x1, int offset_y1, String url, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(lt, ln, offset_x1, offset_y1, url, properties, link.dos); } /** * Write a raster in the response. * * @param lt latitude of placement of upper left corner of raster. * @param ln longitude of placement of upper left corner of raster. * @param w width of image. * @param h height of image. * @param bytes the image data, indexes into the colortable. * @param colorTable RGB integers representing colortable of image. * @param trans the transparency of image. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(float lt, float ln, int w, int h, byte[] bytes, Color[] colorTable, int trans, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(lt, ln, w, h, bytes, colorTable, trans, properties, link.dos); } /** * Write a raster in the response. * * @param x1 horizontal pixel location of upper left corner of raster. * @param y1 vertical pixel location of upper left corner of raster. * @param w width of image. * @param h height of image. * @param bytes the image data, indexes into the colortable. * @param colorTable RGB integers representing colortable of image. * @param trans the transparency of image. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(int x1, int y1, int w, int h, byte[] bytes, Color[] colorTable, int trans, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(x1, y1, w, h, bytes, colorTable, trans, properties, link.dos); } /** * Write a raster in the response. * * @param lt latitude of placement of upper left corner of raster. * @param ln longitude of placement of upper left corner of raster. * @param offset_x1 horizontal pixel offset of upper left corner of raster. * @param offset_y1 vertical pixel offset of upper left corner of raster. * @param w width of image. * @param h height of image. * @param bytes the image data, indexes into the colortable. * @param colorTable RGB integers representing colortable of image. * @param trans the transparency of image. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRaster */ public void updateRaster(float lt, float ln, int offset_x1, int offset_y1, int w, int h, byte[] bytes, Color[] colorTable, int trans, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRaster.write(lt, ln, offset_x1, offset_y1, w, h, bytes, colorTable, trans, properties, link.dos); } /** * Write a rectangle in the response. * * @param lt1 latitude of placement of upper left corner of rectangle. * @param ln1 longitude of placement of upper left corner of rectangle. * @param lt2 latitude of placement of lower right corner of rectangle. * @param ln2 longitude of placement of lower right corner of rectangle. * @param lType the line type to use for the rectangle - straight, rhumb, * great circle. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRectangle */ public void updateRectangle(float lt1, float ln1, float lt2, float ln2, int lType, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRectangle.write(lt1, ln1, lt2, ln2, lType, properties, link.dos); } /** * Write a rectangle in the response. * * @param lt1 latitude of placement of upper left corner of rectangle. * @param ln1 longitude of placement of upper left corner of rectangle. * @param lt2 latitude of placement of lower right corner of rectangle. * @param ln2 longitude of placement of lower right corner of rectangle. * @param lType the line type to use for the rectangle - straight, rhumb, * great circle. * @param nsegs number of segments to use to approximate curved rectangle. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRectangle */ public void updateRectangle(float lt1, float ln1, float lt2, float ln2, int lType, int nsegs, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRectangle.write(lt1, ln1, lt2, ln2, lType, nsegs, properties, link.dos); } /** * Write a rectangle in the response. * * @param x1 Horizontal pixel offset of upper left corner of rectangle.. * @param y1 Vertical pixel offset of upper left corner of rectangle. * @param x2 Horizontal pixel offset of lower right corner of rectangle.. * @param y2 Vertical pixel offset of lower right corner of rectangle. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRectangle */ public void updateRectangle(int x1, int y1, int x2, int y2, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRectangle.write(x1, y1, x2, y2, properties, link.dos); } /** * Write a rectangle in the response. * * @param lt1 latitude of placement of upper left corner of bitmap. * @param ln1 longitude of placement of upper left corner of bitmap. * @param x1 Horizontal pixel offset of upper left corner of rectangle.. * @param y1 Vertical pixel offset of upper left corner of rectangle. * @param x2 Horizontal pixel offset of lower right corner of rectangle.. * @param y2 Vertical pixel offset of lower right corner of rectangle. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkRectangle */ public void updateRectangle(float lt1, float ln1, int x1, int y1, int x2, int y2, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkRectangle.write(lt1, ln1, x1, y1, x2, y2, properties, link.dos); } /** * Write a point in the response. * * @param lt1 latitude of point. * @param ln1 longitude of point. * @param radius the radius of the point graphic. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkPoint */ public void updatePoint(float lt1, float ln1, int radius, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkPoint.write(lt1, ln1, radius, properties, link.dos); } /** * Write a point in the response. * * @param x1 the horizontal screen pixel location of the point. * @param y1 the vertical screen pixel location of the point. * @param radius the pixel radius size of the point. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkPoint */ public void updatePoint(int x1, int y1, int radius, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkPoint.write(x1, y1, radius, properties, link.dos); } /** * Write a point in the response. * * @param lt1 latitude of placement of upper left corner of bitmap. * @param ln1 longitude of placement of upper left corner of bitmap. * @param x1 Horizontal pixel offset of upper left corner of point.. * @param y1 Vertical pixel offset of upper left corner of point. * @param radius the pixel size of the point. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkPoint */ public void updatePoint(float lt1, float ln1, int x1, int y1, int radius, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkPoint.write(lt1, ln1, x1, y1, radius, properties, link.dos); } /** * Write a poly in the response. * * @param llPoints alternating latitude and longitude points of poly. * @param units degrees or radians. * @param lType straight, rhumb, great circle. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkPoly */ public void updatePoly(double[] llPoints, int units, int lType, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkPoly.write(llPoints, units, lType, properties, link.dos); } /** * Write a poly in the response. * * @param llpoints alternating latitude and longitude points of poly. * @param units degrees or radians. * @param lType straight, rhumb, great circle. * @param nsegs number of segments to use to approximate curved poly lines.. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkPoly */ public void updatePoly(double[] llpoints, int units, int lType, int nsegs, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkPoly.write(llpoints, units, lType, nsegs, properties, link.dos); } /** * Write a poly in the response. * * @param xypoints alternating x and y pixel locations of poly. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkPoly */ public void updatePoly(int[] xypoints, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkPoly.write(xypoints, properties, link.dos); } /** * Write a poly in the response. * * @param xpoints horizontal pixel locations of poly. * @param ypoints vertical pixel locations of poly. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkPoly */ public void updatePoly(int[] xpoints, int[] ypoints, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkPoly.write(xpoints, ypoints, properties, link.dos); } /** * Write a poly in the response. * * @param latPoint the latitude anchor point of the poly. * @param lonPoint the longitude anchor point of the poly. * @param xypoints alternating x and y offset polygon points. * @param cMode Coordinate Mode (Origin or Previous) that indicate whether * the x and y points are relative to the first point, or to the * previous point. . * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkPoly */ public void updatePoly(float latPoint, float lonPoint, int[] xypoints, int cMode, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkPoly.write(latPoint, lonPoint, xypoints, cMode, properties, link.dos); } /** * Write a poly in the response. * * @param latPoint the latitude anchor point of the poly. * @param lonPoint the longitude anchor point of the poly. * @param xpoints horizontal pixel offset polygon points. * @param ypoints vertical pixel offset polygon points. * @param cMode Coordinate Mode (Origin or Previous) that indicate whether * the x and y points are relative to the first point, or to the * previous point. . * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkPoly */ public void updatePoly(float latPoint, float lonPoint, int[] xpoints, int[] ypoints, int cMode, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkPoly.write(latPoint, lonPoint, xpoints, ypoints, cMode, properties, link.dos); } /** * Write a text in the response. * * @param latPoint latitude of placement of text. * @param lonPoint longitude of placement of text. * @param stuff the text. * @param justify place the text left, right or centered on location. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkText */ public void updateText(float latPoint, float lonPoint, String stuff, int justify, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkText.write(latPoint, lonPoint, stuff, LinkText.DEFAULT_FONT, justify, properties, link.dos); } /** * Write a text in the response. * * @param x Horizontal pixel location of text. * @param y Vertical pixel location of text. * @param stuff the text. * @param justify place the text left, right or centered on location. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkText */ public void updateText(int x, int y, String stuff, int justify, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkText.write(x, y, stuff, LinkText.DEFAULT_FONT, justify, properties, link.dos); } /** * Write a text in the response. * * @param latPoint latitude of text placement. * @param lonPoint longitude of text placement. * @param offset_x Horizontal pixel offset of text. * @param offset_y Vertical pixel offset of text. * @param stuff the text. * @param justify place the text left, right or centered on location. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkText */ public void updateText(float latPoint, float lonPoint, int offset_x, int offset_y, String stuff, int justify, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkText.write(latPoint, lonPoint, offset_x, offset_y, stuff, LinkText.DEFAULT_FONT, justify, properties, link.dos); } /** * Write a text in the response. * * @param latPoint latitude of placement of text. * @param lonPoint longitude of placement of text. * @param stuff the text. * @param font a text representation of the font. * @param justify place the text left, right or centered on location. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkText */ public void updateText(float latPoint, float lonPoint, String stuff, String font, int justify, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkText.write(latPoint, lonPoint, stuff, font, justify, properties, link.dos); } /** * Write a text in the response. * * @param x Horizontal pixel location of text. * @param y Vertical pixel location of text. * @param stuff the text. * @param font a text representation of the font. * @param justify place the text left, right or centered on location. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkText */ public void updateText(int x, int y, String stuff, String font, int justify, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkText.write(x, y, stuff, font, justify, properties, link.dos); } /** * Write a text in the response. * * @param latPoint latitude of text placement. * @param lonPoint longitude of text placement. * @param offset_x Horizontal pixel offset of text. * @param offset_y Vertical pixel offset of text. * @param stuff the text. * @param font a text representation of the font. * @param justify place the text left, right or centered on location. * @param properties description of drawing attributes. * @param graphicUpdateMask the mask describing the graphic update. * @throws IOException * @see com.bbn.openmap.layer.link.LinkText */ public void updateText(float latPoint, float lonPoint, int offset_x, int offset_y, String stuff, String font, int justify, LinkProperties properties, int graphicUpdateMask) throws IOException { writeGraphicGestureHeader(graphicUpdateMask); LinkText.write(latPoint, lonPoint, offset_x, offset_y, stuff, font, justify, properties, link.dos); } /** * Write an OMGraphic to the response. * * @throws IOException * @see com.bbn.openmap.layer.link.LinkText */ public void updateGraphic(OMGraphic omGraphic, int graphicUpdateMask) throws IOException { } }