Package Snow

## Class SnowAnn

- java.lang.Object
- - Snow.SnowAnn

- All Implemented Interfaces:
    `java.io.Serializable`

      public class SnowAnn
      extends java.lang.Object
      implements java.io.Serializable

  This class is used for creating or reading annotation objects from a file. The default constructor for SnowAnn takes two parameters, the height and width respectively, of the image object on which to display annotations. This class represents a set of annotation objects for a particular image and all of the operations you can perform on those annotations.
  - To construct a new SnowAnn object, you must set the height and width of the annotation object to the height and width of the image to which they are related.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected int` | `action` |
    `float` | `ann_alpha` |
    `int` | `ann_bblue` | Current blue value background drawing color.
    `int` | `ann_bgreen` | Current green value background drawing color.
    `int` | `ann_bold` | Bold attribute for text
    `int` | `ann_bred` | Current red value background drawing color.
    `static int` | `ANN_BUFF_SIZE` | Sets the annotation buffer size, 10 * 1024.
    `int` | `ann_crop_xe` | Current cropping rectangle x size
    `int` | `ann_crop_xs` | Current cropping rectangle x position
    `int` | `ann_crop_ye` | Current cropping rectangle y size
    `int` | `ann_crop_ys` | Current cropping rectangle y position
    `int` | `ann_cur_object_id` | Current type of object
    `int` | `ann_dpi` | Integer representing resolution for Filenet annotation
    `int` | `ann_fblue` | Current blue value foreground drawing color.
    `Snow.ANN_GRAPHIC_STRUCT` | `ann_fcs` |
    `int` | `ann_fgreen` | Current green value foreground drawing color.
    `short` | `ann_font_height` | Current font height
    `java.lang.String` | `ann_font_name` | Current selected font drawing name
    `int` | `ann_fred` | Current red value foreground drawing color.
    `int` | `ann_height` | Height of annotated image
    `java.util.Vector<java.lang.String[]>` | `ann_history` | Vector<String[]> Annotation History
    `int` | `ann_idmCreateTimestamp` | IDM Create_Timestamp
    `int` | `ann_idmLastModifyTimestamp` | IDM Last_Modify_Timestamp
    `int` | `ann_idmStatus` | IDM Status
    `int` | `ann_idmSubpage_Number` | IDM Subpage_Number
    `int` | `ann_italic` | Italic attribute for text
    `int` | `ann_line_style` | Current line styles such as solid or dashed
    `int` | `ann_line_width` | Current line width for drawing
    `java.util.Vector<java.lang.String[]>` | `ann_notes` | Vector<String[]> of Annotation Notes
    `Snow.SANN_RECT` | `ann_rc` | Bounding rectangle of annotation object
    `int` | `ann_rotation_angle` | Current rotation angle, ANN_GRAPHIC_STRUCT
    `static int` | `ANN_SOLID` |
    `java.util.Vector<java.lang.String>` | `ann_tags` | Vector<String> of Annotation Tags
    `boolean` | `ann_use_exact_points` | Use exact point sizes in calculating font sizes in Text objects
    `int` | `ann_width` | Width of annotated image
    `java.lang.String` | `annClassId` | String indicating class id of annotation object.
    `java.lang.String` | `annCreateDate` | String denoting annotation creation date.
    `java.lang.String` | `annCreateUser` | String indicating which user created the annotation object.
    `java.lang.String` | `annDelete` | String indicating if annotation object is to be deleted.
    `java.lang.String` | `annDeleteDate` | String indicating date of annotation deletion.
    `java.lang.String` | `annDeleteUser` | String indicating user who deleted annotation.
    `java.lang.String` | `annHeight` | String denoting annotation height or Y axis offset in XML annotations.
    `java.lang.String` | `annID` | String denoting annotation ID in XML annotations
    `java.lang.String` | `annModifyDate` | String indicating modification date of current annotation.
    `java.lang.String` | `annModifyUser` | String indicating user who preformed last modification.
    `java.lang.String` | `annOrdinal` | String denoting annotation ordering in resulting XML file where 0 indicated first annotation object.
    `java.lang.String` | `annotatedDocumentID` | String indicating document id annotated file.
    `java.lang.String` | `annotatedFileName` | String indicating name of annotated file.
    `java.lang.String` | `annStartX` | String denoting X axis annotation start position in XML annotations.
    `java.lang.String` | `annStartY` | String denoting Y axis annotation start position in XML annotations.
    `java.lang.String` | `annTransparent` | String denoting annotation opacity level in XML annotations.
    `java.lang.String` | `annType` | String denoting annotation type in XML annotations, based on supported Snowbound annotation types.
    `java.lang.String` | `annWidth` | String denoting annotations width or X axis offset in XML annotations.
    `java.lang.String` | `bitmapData` | String denoting annotated page width in XML annotations
    `int` | `bTrack` |
    `static int` | `CLOUD_BUMPS` | Deprecated.
    `java.lang.String` | `createDate` | Denotes annotation creation date.
    `java.lang.String` | `createUser` | Indicates which user created the annotation object.
    `static double` | `DAEJA_DPI` | Daeja (FileNet) default resolution
    `static float` | `DEFAULT_HIGHLIGHT_OPACITY` |
    `boolean` | `deleted` |
    `java.lang.String` | `deleteDate` |
    `java.lang.String` | `deleteUser` |
    `boolean` | `double_byte` | Used for using double byte edit controls.
    `boolean` | `EnableEditText` |
    `boolean` | `EnableProperties` |
    `Snow.ANN_GRAPHIC_STRUCT` | `fcs` | Specifies the object to resize.
    `java.lang.String` | `fillColor` | String indicating fill color for solid annotation objects.
    `java.lang.String` | `fontBold` | String indicating if font is bold or not in XML annotation supporting text.
    `java.lang.String` | `fontColor` | String indicating font color in XML annotation supporting text.
    `java.lang.String` | `fontItalic` | String indicating if font is italized or not in XML annotations support text.
    `java.lang.String` | `fontName` | String indicating the font face name.
    `java.lang.String` | `fontSize` | String indicating font point size.
    `java.lang.String` | `fontStrike` | String indicating if font has a strike-through text.
    `java.lang.String` | `fontUnderline` | String indicating if font should be underlined or not.
    `static java.lang.String` | `gCancelCommand` | The Cancel command
    `static java.lang.String` | `gCopyCommand` | The Copy command
    `static java.lang.String` | `gCutCommand` | The Cut command
    `static java.lang.String` | `gDeleteCommand` | The Delete command
    `static java.lang.String` | `gEditTextCommand` | The Edit Text command
    `static java.lang.String` | `gMoveCommand` | The Move command
    `static java.lang.String` | `gPermissionsCommand` | The Permissions command
    `static java.lang.String` | `gPropertiesCommand` | The Properties command
    `int` | `graphic_id` | Object type to add when using user controlled adding of objects
    `int` | `graphic_num` | Number or handle of graphic object.
    `static java.lang.String` | `gResizeCommand` | The Resize command
    `static java.lang.String` | `gRotateCommand` | The Rotate command
    `static int` | `IDM_DPI` |
    `static int` | `IDM_MAX` |
    `static int` | `IDM_SANN_DELETE` |
    `static int` | `IDM_SANN_EDIT` |
    `static int` | `IDM_SANN_EXIT` |
    `static int` | `IDM_SANN_MOVE` |
    `static int` | `IDM_SANN_OK` |
    `static int` | `IDM_SANN_RESIZE` |
    `static int` | `IDM_STATUS_DELETE` |
    `static int` | `IDM_STATUS_MODIFIED` |
    `static int` | `IDM_STATUS_NEW` |
    `static int` | `IDM_STATUS_ORIGINAL` |
    `boolean` | `isDaeja` |
    `boolean` | `isFilenet` |
    `boolean` | `isIdm` |
    `java.lang.String` | `lineColor` | String denoting line color in XML annotations.
    `java.lang.String` | `lineStyle` | String denoting line style in XML annotations
    `java.lang.String` | `lineTransparent` | String indicating line opacity level for XML annotation.
    `java.lang.String` | `lineWidth` | String indicating line width for XML annotations.
    `java.lang.String` | `modifyUser` |
    `Snow.SANN_POINT` | `Next` |
    `Snow.SANN_POINT` | `Org` |
    `java.awt.Component` | `p` | Important - Panel p must be tagged as transient to allow for proper serialization.
    `java.lang.String` | `pageHeight` | String denoting annotated page height in XML annotations.
    `int` | `pageNumber` |
    `java.lang.String` | `pageWidth` | String denoting annotated page width in XML annotations.
    `java.lang.String` | `pointArray` | String indicating a point array for freehand or polygon annotations.
    `java.awt.PopupMenu` | `popup` | Defines the popup menu.
    `Snow.SANN_POINT` | `Prev` |
    `java.lang.String` | `rotationAngle` | String indicating rotation angle of annotation object.
    `static int` | `SANN_ARROW` | Previous Annotation object
    `static int` | `SANN_BITMAP` | Bitmap annotation
    `static int` | `SANN_BUBBLE` | Bubble annotation
    `static int` | `SANN_CIRCLE` | Circle annotation
    `static int` | `SANN_CLOUD_EDIT` | Cloud Edit annotation
    `static int` | `SANN_CUSTOM_STAMP` | Custom stamp annotation
    `static int` | `SANN_EDIT` | Edit annotation
    `static int` | `SANN_ELLIPSE` | Ellipse annotation
    `static int` | `SANN_FILLED_ELLIPSE` | Filled ellipse annotation
    `static int` | `SANN_FILLED_POLYGON` | Filled Polygon annotation
    `static int` | `SANN_FILLED_RECT` | Filled Rectangle annotation
    `static int` | `SANN_FREEHAND` | Freehand annotation
    `static int` | `SANN_HIGHLIGHT_RECT` | Highlight Rectangle annotation
    `static int` | `SANN_LINE` | Line annotation
    `static int` | `SANN_POINT_SIZE` | Sets the point size.
    `static int` | `SANN_POLYGON` | Polygon annotation
    `static int` | `SANN_POSTIT` | Post-it annotation
    `static int` | `SANN_RECTANGLE` | Rectangle annotation
    `static int` | `SANN_TRANSPARENT_BITMAP` | Transparent bitmap annotation
    `javax.swing.JPopupMenu` | `swing_popup` |
    `java.lang.String` | `textString` | String denoting annotated page width in XML annotations
    `static int` | `WM_LBUTTONDOWN` | Down Button annotation
    `boolean` | `xmlannotations` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SnowAnn​(int width, int height)` | Constructor.
    `SnowAnn​(int width, int height, int dpi)` | Constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `ann_dblclick​(java.awt.Container sf, int xpos, int ypos)` | Selects the annotation under the mouse coordinates.
    `boolean` | `annLinePainting()` |
    `void` | `centerTagInRect​(java.awt.Graphics g, java.awt.Container sf, Snow.SANN_RECT disp, java.lang.String tagString, Snow.SANN_RECT rc, int[] xx, int[] yy, int[] ptSize)` |
    `void` | `GetClientRect​(java.awt.Container sf, Snow.SANN_RECT rc)` | This method fills a SANN_RECT object with the current height and width of the display area.
    `static java.awt.Graphics` | `getGraphics​(java.awt.Container sf)` |
    `boolean` | `getVisibilityFlag​(int type)` | Get the visibility flag for the specified annotation type
    `int` | `read_xml_file​(Snow.SnbdFileio fd, int page)` | Converts an XML file containing FileNet annotations
    `int` | `remove_non_text_objects()` |
    `int` | `remove_text_objects()` |
    `int` | `resize_object​(Snow.ANN_GRAPHIC_STRUCT fcs, Snow.SANN_RECT rc)` | Resizes (or moves) the specific ANN_GRAPHIC_STRUCT object.
    `int` | `SANN_activate_all_objects​(java.awt.Container sf)` | Activates all text based annotation objects to allow text editing in the TextArea represented by these objects.
    `int` | `SANN_activate_object​(java.awt.Container sf, int graphicNum)` | Used only on the SANN_EDIT and SANN_POSTIT objects to allow editing of the text in the object.
    `int` | `SANN_add_object​(int graphicId, Snow.SANN_RECT rc, byte[] data, Snow.SANN_POINT[] pointArray, int dataSize)` | Adds a new object to the current annotation.
    `int` | `SANN_add_object​(int graphicId, Snow.SANN_RECT rc, byte[] data, Snow.SANN_POINT[] pointArray, int dataSize, float opacity)` |
    `int` | `SANN_count_objects()` |
    `int` | `SANN_deactivate_all_objects()` | Used on the SANN_EDIT and SANN_POSTIT objects to disallow editing of text in all text based objects.
    `int` | `SANN_deactivate_object​(int graphicNum)` | Used on the SANN_EDIT and SANN_POSTIT objects to stop the editing of text in TextArea.
    `int` | `SANN_delete_all_objects()` | Deletes all graphics and memory associated with the current annotation object.
    `int` | `SANN_delete_object​(int graphicNum)` | Deletes an object from the current annotation list.
    `int` | `SANN_display_annotations​(java.awt.Graphics g, java.awt.Container sf, int xs, int ys, int xz, int yz)` | Displays all current annotations (superimposed on the image) to the Graphics context pointed by g.
    `int` | `SANN_display_annotations​(java.awt.Graphics g, java.awt.Container sf, int xs, int ys, int xz, int yz, boolean includeTextAnnotations, boolean includeNonTextAnnotations)` | This method displays all current annotations (superimposed on the image) to the Graphics context pointed by g.
    `int` | `SANN_draw_object​(java.awt.Graphics g, java.awt.Container sf, int graphicNum, int xs, int ys, int xz, int yz)` | Draws the object (graphicNum) at the coordinates passed in (xs, ys, xz, and yz).
    `int` | `SANN_flipx()` | Flips all annotation objects about the horizontal
    `int` | `SANN_flipy()` | Flips all annotation objects about the vertical
    `int` | `SANN_get_croprect​(Snow.SANN_RECT rc)` | Returns the cropping rectangle for the current annotation display area (the visible display area).
    `Snow.ANN_GRAPHIC_STRUCT` | `SANN_get_graphic_struct​(int graphic_num)` | Returns the ANN_GRAPHIC_STRUCT class.
    `int` | `SANN_get_object_bounds​(int graphicNum, Snow.SANN_RECT rc)` | Returns the bounding box of the object (graphic_num) in image pixel coordinates.
    `int` | `SANN_get_object_data​(int graphicNum, byte[] data)` | Used to get the text data from a Post-it note or text annotation object.
    `Snow.ANN_GRAPHIC_STRUCT` | `SANN_get_object_info​(int graphicNum)` | Returns an instance of the Snow.ANN_GRAPHIC_STRUCT class, which is the internal wrapper for the object number passed in.
    `int` | `SANN_get_object_num​(java.awt.Container sf, int xpos, int ypos)` | Finds the graphic_num of the annotation object whose bounding box completely surrounds the points xpos and ypos.
    `int` | `SANN_highlight_object​(java.awt.Container sf, Snow.SANN_RECT disp, int graphicNum)` | Highlights the bounding box of the annotation object specified by.
    `int` | `SANN_map_image_to_wnd​(Snow.SANN_RECT disprect, Snow.SANN_POINT pt, java.awt.Container sf)` | Converts the internal graphics coordinates of the image to coordinates of the current window.
    `int` | `SANN_map_wnd_to_image​(java.awt.Container sf, Snow.SANN_POINT pt)` | Converts coordinates of the current window to the internal graphics coordinates of the image.
    `int` | `SANN_merge_annotations​(Snowbnd snow, java.awt.Container sf)` | This method will permanently merge annotations onto the Snowbound image object passed in.
    `int` | `SANN_move_object​(int graphicNum, Snow.SANN_RECT rc)` | Moves or resizes the object (graphicNum).
    `byte[]` | `SANN_output_pdf​(double xsize, double ysize, double xpos, double ypos, int angle, int[] error)` | Converts the current annotation object to Pdf content in a buffer.
    `int` | `SANN_print_annotations​(java.awt.Graphics g, java.awt.Container sf, int xs, int ys, int xz, int yz)` | Prints the current annotation to the graphic context pointed by g.
    `int` | `SANN_print_annotations​(java.awt.Graphics g, java.awt.Container sf, int xs, int ys, int xz, int yz, boolean includeTextAnnotations, boolean includeNonTextAnnotations)` | Prints the current annotation to the graphic context pointed by g.
    `int` | `SANN_read_ann​(java.io.DataInputStream dis, int page)` | Reads an annotation file from a DataInputStream.
    `int` | `SANN_read_ann​(java.lang.String filename)` | Reads an annotation file from disk.
    `int` | `SANN_read_ann​(java.lang.String filename, int page)` | Reads an annotation file from disk.
    `int` | `SANN_read_ann_stream​(java.lang.String filename)` | Reads an annotation file from a fully qualified URL address.
    `int` | `SANN_read_ann_stream​(java.lang.String filename, int page)` | Reads an annotation file from a fully qualified URL address.
    `int` | `SANN_recalc_size​(int nWidth, int nHeight)` | Recalculates objects dimensions and positions.
    `int` | `SANN_recalc_size​(int nWidth, int nHeight, int nDpi)` | Recalculates objects dimensions and positions.
    `int` | `SANN_resize_object​(int graphicNum, Snow.SANN_RECT rc)` | Resizes (or moves) the object indicated by graphicNum.
    `int` | `SANN_rotate​(int angle)` | Rotates all annotations on the currently displayed image.
    `int` | `SANN_rotate_object​(int graphicNum, int angle)` | Rotates given annotation object by angle
    `int` | `SANN_set_bcolor​(int red, int green, int blue)` | Sets the current background drawing color for all graphics.
    `int` | `SANN_set_croprect​(int xs, int ys, int xe, int ye)` | The cropping rectangle is essentially the size of the display container (which is usually a subclass of java.awt.Container), mapped onto the image (corrected for image scaling).
    `int` | `SANN_set_fcolor​(int red, int green, int blue)` | Sets the current foreground drawing color for all annotation objects.
    `int` | `SANN_set_fcolor​(int graphicId, int red, int green, int blue)` | Sets the current foreground drawing color for all annotation objects.
    `void` | `SANN_set_fnx_dpi​(int dpi)` | This method sets the resolution used for Filenet annotations.
    `int` | `SANN_set_font​(int graphicNum, java.lang.String name, int italic, int bold, int fontHeight)` | Sets the current type of font to use for the specified Edit or PostIt text annotation.
    `int` | `SANN_set_font​(java.lang.String name, int italic, int bold, int fontHeight)` | Sets the current type of font to use for all Edit and PostIt text annotations.
    `int` | `SANN_set_line_style​(int style)` | Sets the style of the line according to predefined constants.
    `int` | `SANN_set_line_width​(int width)` | Sets the width of lines in the annotation library in pixels.
    `int` | `SANN_set_line_width​(int graphicNum, int width)` |
    `int` | `SANN_set_scrollbars​(int ssetting)` | Allows setting the type of scrollbar used in a Post-it note or text annotation object.
    `int` | `SANN_set_size​(int width, int height)` | Sets the height and width of the current image being annotated.
    `int` | `SANN_write_ann​(byte[] dos, int extra_size, byte[] extra_data)` | Writes out annotations to a memory buffer.
    `int` | `SANN_write_ann​(java.lang.String filename, int extra_size, byte[] extra_data)` | Writes out annotations to the disk file.
    `byte[]` | `SANN_write_ann_fnx​(java.lang.String filenetAnnId, int[] error)` | This method returns a byte array containing xml filenet annotations.
    `int` | `SANN_write_ann_fnx​(java.lang.String pathname, java.lang.String filenetAnnId, int extra_size, byte[] extra_data)` | This method writes out filenet annotations to the disk file as xml.
    `byte[]` | `SANN_write_ann_idm​(java.lang.String userName, java.lang.String groupName, int status, int page, int[] error)` | This method returns a byte array containing IDM annotations.
    `int` | `SANN_write_ann_idm​(java.lang.String pathname, java.lang.String userName, java.lang.String groupName, int status, int page)` | This method writes out IDM annotations to the disk file.
    `int` | `SANN_write_ann_pages​(byte[] dos, int extra_size, byte[] extra_data)` | Writes out annotations to a memory buffer.
    `int` | `SANN_write_ann_pages​(java.lang.String filename, int extra_size, byte[] extra_data)` | Writes out annotations to the disk file.
    `int` | `SANN_write_ann_xml​(byte[] dos, Snow.SnowXMLWriter xmlwriter)` | This method will write out the contents of SnowXMLWriter to a byte[] array.
    `int` | `SANN_write_ann_xml​(java.lang.String filename, int extra_size, byte[] extra_data)` | Writes out annotations to the disk file as xml.
    `Snow.SnowXMLWriter` | `SANN_write_ann_xml_document​(Snow.SnowXMLWriter xmlPagesWriter)` | This method will write out <document> data.
    `Snow.SnowXMLWriter` | `SANN_write_ann_xml_page​(Snow.SnowXMLWriter xmlwriter)` | This method will write out <page> and <annObject> data the associated ANN_GRAPHIC_STRUCT and return a populated SnowXMLWriter.
    `Snow.SnowXMLWriter` | `SANN_write_ann_xml_page​(Snow.SnowXMLWriter xmlwriter, java.lang.String annLayerId)` | This method will write out <page> and <annObject> data the associated ANN_GRAPHIC_STRUCT and return a populated SnowXMLWriter.
    `void` | `setAutoDetect​(boolean autoDetect)` |
    `static void` | `setPopupMenuStrings​(java.lang.String moveCommand, java.lang.String resizeCommand, java.lang.String rotateCommand, java.lang.String deleteCommand, java.lang.String editTextCommand, java.lang.String propertiesCommand, java.lang.String cancelCommand, java.lang.String copyCommand, java.lang.String cutCommand, java.lang.String permissionsCommand)` |
    `void` | `setVisibilityFlag​(int type, boolean value)` | This method sets the visibility flag for the specified annotation type
    `void` | `setVisibilityFlags​(boolean[] valueArray)` | This method sets all of the visibility flags
    `void` | `setVisibilityFlagsEnabled​(boolean value)` | This method enables or disables the use of the visibility flags altogether.
    `int` | `ui_delete​(java.awt.Container sf)` | Deletes the currently selected annotation object.
    `int` | `ui_exit()` | Deselects the currently selected annotation object.
    `int` | `ui_rotate_object​(java.awt.Container sf, int degrees)` | Rotates the currently selected annotation object.
    `int` | `ui_startmove​(java.awt.Container sf)` | This method notifies the annotation library that the current annotation object is being moved.
    `int` | `ui_startresize​(java.awt.Container sf)` | This method notifies the annotation library that the current annotation object is being resized.
    `protected int` | `ui_wm_endmove​(java.awt.Container sf)` |
    `protected int` | `ui_wm_endresize​(java.awt.Container sf)` |
    `int` | `ui_wm_lbuttondown​(java.awt.Container sf, int xpos, int ypos, byte[] textbuff)` | Begins tracking mouse movements when the mouse button is pressed.
    `int` | `ui_wm_lbuttonup​(java.awt.Container sf, int xpos, int ypos, byte[] textbuff)` | This method notifies the annotation library that the mouse button has been released.
    `int` | `ui_wm_mousemove​(java.awt.Container sf, int xpos, int ypos, byte[] textbuff)` | Notifies the library of the current mouse coordinates.
    `boolean` | `xml_boolean​(byte[] pString)` | Converts a boolean string to boolean value
    `void` | `xml_color​(byte[] pString, short[] r, short[] g, short[] b)` | Converts color integer into r,g,b
    `Snow.ANN_GRAPHIC_STRUCT` | `xml_convert​(Snow.ANN_GRAPHIC_STRUCT pFcs, byte[] pKeyword, byte[] pValue, int page, int[] xmax, int[] ymax, int[] nPoints, int[] bDone)` | Converts an XML FileNet annotation file to a Snowbound annotation file.
    `int` | `xml_find_page​(Snow.SnbdFileio fd, int page)` | Skips to the desired XML annotation page
    `int` | `xml_inches_pixels​(double dVal)` | Converts inches to pixels.
    `int` | `xml_read​(Snow.SnbdFileio fd, byte[] pBuffer, int[] nPos, int[] nBytesToRead)` | Reads from the XML file into a buffer

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### gCopyCommand

          public static java.lang.String gCopyCommand

      The Copy command

    - #### gCutCommand

          public static java.lang.String gCutCommand

      The Cut command

    - #### gPermissionsCommand

          public static java.lang.String gPermissionsCommand

      The Permissions command

    - #### gMoveCommand

          public static java.lang.String gMoveCommand

      The Move command

    - #### gResizeCommand

          public static java.lang.String gResizeCommand

      The Resize command

    - #### gRotateCommand

          public static java.lang.String gRotateCommand

      The Rotate command

    - #### gDeleteCommand

          public static java.lang.String gDeleteCommand

      The Delete command

    - #### gEditTextCommand

          public static java.lang.String gEditTextCommand

      The Edit Text command

    - #### gPropertiesCommand

          public static java.lang.String gPropertiesCommand

      The Properties command

    - #### gCancelCommand

          public static java.lang.String gCancelCommand

      The Cancel command

    - #### SANN_FILLED_RECT

          public static final int SANN_FILLED_RECT

      Filled Rectangle annotation
      See Also:
        Constant Field Values

    - #### SANN_HIGHLIGHT_RECT

          public static final int SANN_HIGHLIGHT_RECT

      Highlight Rectangle annotation
      See Also:
        Constant Field Values

    - #### SANN_RECTANGLE

          public static final int SANN_RECTANGLE

      Rectangle annotation
      See Also:
        Constant Field Values

    - #### SANN_LINE

          public static final int SANN_LINE

      Line annotation
      See Also:
        Constant Field Values

    - #### SANN_ELLIPSE

          public static final int SANN_ELLIPSE

      Ellipse annotation
      See Also:
        Constant Field Values

    - #### SANN_FILLED_ELLIPSE

          public static final int SANN_FILLED_ELLIPSE

      Filled ellipse annotation
      See Also:
        Constant Field Values

    - #### SANN_FREEHAND

          public static final int SANN_FREEHAND

      Freehand annotation
      See Also:
        Constant Field Values

    - #### SANN_BITMAP

          public static final int SANN_BITMAP

      Bitmap annotation
      See Also:
        Constant Field Values

    - #### SANN_POSTIT

          public static final int SANN_POSTIT

      Post-it annotation
      See Also:
        Constant Field Values

    - #### SANN_POLYGON

          public static final int SANN_POLYGON

      Polygon annotation
      See Also:
        Constant Field Values

    - #### SANN_FILLED_POLYGON

          public static final int SANN_FILLED_POLYGON

      Filled Polygon annotation
      See Also:
        Constant Field Values

    - #### SANN_ARROW

          public static final int SANN_ARROW

      Previous Annotation object
      See Also:
        Constant Field Values

    - #### SANN_EDIT

          public static final int SANN_EDIT

      Edit annotation
      See Also:
        Constant Field Values

    - #### SANN_TRANSPARENT_BITMAP

          public static final int SANN_TRANSPARENT_BITMAP

      Transparent bitmap annotation
      See Also:
        Constant Field Values

    - #### SANN_BUBBLE

          public static final int SANN_BUBBLE

      Bubble annotation
      See Also:
        Constant Field Values

    - #### SANN_CLOUD_EDIT

          public static final int SANN_CLOUD_EDIT

      Cloud Edit annotation
      See Also:
        Constant Field Values

    - #### SANN_CUSTOM_STAMP

          public static final int SANN_CUSTOM_STAMP

      Custom stamp annotation
      See Also:
        Constant Field Values

    - #### SANN_CIRCLE

          public static final int SANN_CIRCLE

      Circle annotation
      See Also:
        Constant Field Values

    - #### IDM_SANN_EDIT

          public static final int IDM_SANN_EDIT

      See Also:
        Constant Field Values

    - #### IDM_SANN_MOVE

          public static final int IDM_SANN_MOVE

      See Also:
        Constant Field Values

    - #### IDM_SANN_DELETE

          public static final int IDM_SANN_DELETE

      See Also:
        Constant Field Values

    - #### IDM_SANN_EXIT

          public static final int IDM_SANN_EXIT

      See Also:
        Constant Field Values

    - #### IDM_SANN_OK

          public static final int IDM_SANN_OK

      See Also:
        Constant Field Values

    - #### IDM_SANN_RESIZE

          public static final int IDM_SANN_RESIZE

      See Also:
        Constant Field Values

    - #### ANN_SOLID

          public static final int ANN_SOLID

      See Also:
        Constant Field Values

    - #### SANN_POINT_SIZE

          public static final int SANN_POINT_SIZE

      Sets the point size.
      See Also:
        Constant Field Values

    - #### WM_LBUTTONDOWN

          public static final int WM_LBUTTONDOWN

      Down Button annotation
      See Also:
        Constant Field Values

    - #### ANN_BUFF_SIZE

          public static final int ANN_BUFF_SIZE

      Sets the annotation buffer size, 10 * 1024.
      See Also:
        Constant Field Values

    - #### CLOUD_BUMPS

          public static final int CLOUD_BUMPS

      Deprecated.
      Number of 'bumps' for cloud annotation
      See Also:
        Constant Field Values

    - #### DAEJA_DPI

          public static final double DAEJA_DPI

      Daeja (FileNet) default resolution
      See Also:
        Constant Field Values

    - #### IDM_DPI

          public static final int IDM_DPI

      See Also:
        Constant Field Values

    - #### IDM_MAX

          public static final int IDM_MAX

      See Also:
        Constant Field Values

    - #### IDM_STATUS_ORIGINAL

          public static final int IDM_STATUS_ORIGINAL

      See Also:
        Constant Field Values

    - #### IDM_STATUS_NEW

          public static final int IDM_STATUS_NEW

      See Also:
        Constant Field Values

    - #### IDM_STATUS_MODIFIED

          public static final int IDM_STATUS_MODIFIED

      See Also:
        Constant Field Values

    - #### IDM_STATUS_DELETE

          public static final int IDM_STATUS_DELETE

      See Also:
        Constant Field Values

    - #### DEFAULT_HIGHLIGHT_OPACITY

          public static final float DEFAULT_HIGHLIGHT_OPACITY

      See Also:
        Constant Field Values

    - #### fcs

          public Snow.ANN_GRAPHIC_STRUCT fcs

      Specifies the object to resize. ANN_GRAPHIC_STRUCT

    - #### ann_fred

          public int ann_fred

      Current red value foreground drawing color.

    - #### ann_fgreen

          public int ann_fgreen

      Current green value foreground drawing color.

    - #### ann_fblue

          public int ann_fblue

      Current blue value foreground drawing color.

    - #### ann_bred

          public int ann_bred

      Current red value background drawing color.

    - #### ann_bgreen

          public int ann_bgreen

      Current green value background drawing color.

    - #### ann_bblue

          public int ann_bblue

      Current blue value background drawing color.

    - #### ann_tags

          public java.util.Vector<java.lang.String> ann_tags

      Vector<String> of Annotation Tags

    - #### ann_notes

          public java.util.Vector<java.lang.String[]> ann_notes

      Vector<String[]> of Annotation Notes

    - #### ann_history

          public java.util.Vector<java.lang.String[]> ann_history

      Vector<String[]> Annotation History

    - #### ann_line_width

          public int ann_line_width

      Current line width for drawing

    - #### ann_line_style

          public int ann_line_style

      Current line styles such as solid or dashed

    - #### ann_cur_object_id

          public int ann_cur_object_id

      Current type of object

    - #### ann_alpha

          public float ann_alpha

    - #### ann_font_name

          public java.lang.String ann_font_name

      Current selected font drawing name

    - #### ann_width

          public int ann_width

      Width of annotated image

    - #### ann_height

          public int ann_height

      Height of annotated image

    - #### ann_crop_xs

          public int ann_crop_xs

      Current cropping rectangle x position

    - #### ann_crop_xe

          public int ann_crop_xe

      Current cropping rectangle x size

    - #### ann_crop_ys

          public int ann_crop_ys

      Current cropping rectangle y position

    - #### ann_crop_ye

          public int ann_crop_ye

      Current cropping rectangle y size

    - #### ann_italic

          public int ann_italic

      Italic attribute for text

    - #### ann_bold

          public int ann_bold

      Bold attribute for text

    - #### ann_font_height

          public short ann_font_height

      Current font height

    - #### ann_use_exact_points

          public boolean ann_use_exact_points

      Use exact point sizes in calculating font sizes in Text objects

    - #### ann_rotation_angle

          public int ann_rotation_angle

      Current rotation angle, ANN_GRAPHIC_STRUCT

    - #### ann_rc

          public Snow.SANN_RECT ann_rc

      Bounding rectangle of annotation object

    - #### ann_fcs

          public Snow.ANN_GRAPHIC_STRUCT ann_fcs

    - #### EnableProperties

          public boolean EnableProperties

    - #### EnableEditText

          public boolean EnableEditText

    - #### isFilenet

          public boolean isFilenet

    - #### isDaeja

          public boolean isDaeja

    - #### isIdm

          public boolean isIdm

    - #### Org

          public Snow.SANN_POINT Org

    - #### Next

          public Snow.SANN_POINT Next

    - #### Prev

          public Snow.SANN_POINT Prev

    - #### bTrack

          public int bTrack

    - #### action

          protected int action

    - #### graphic_num

          public int graphic_num

      Number or handle of graphic object.

    - #### graphic_id

          public int graphic_id

      Object type to add when using user controlled adding of objects

    - #### p

          public transient java.awt.Component p

      Important - Panel p must be tagged as transient to allow for proper serialization. Essentially this means we are ignoring this member variable during serialization.

    - #### popup

          public transient java.awt.PopupMenu popup

      Defines the popup menu.

    - #### swing_popup

          public transient javax.swing.JPopupMenu swing_popup

    - #### pageWidth

          public java.lang.String pageWidth

      String denoting annotated page width in XML annotations.

    - #### pageHeight

          public java.lang.String pageHeight

      String denoting annotated page height in XML annotations.

    - #### annStartX

          public java.lang.String annStartX

      String denoting X axis annotation start position in XML annotations.

    - #### annStartY

          public java.lang.String annStartY

      String denoting Y axis annotation start position in XML annotations.

    - #### annHeight

          public java.lang.String annHeight

      String denoting annotation height or Y axis offset in XML annotations.

    - #### annWidth

          public java.lang.String annWidth

      String denoting annotations width or X axis offset in XML annotations.

    - #### annTransparent

          public java.lang.String annTransparent

      String denoting annotation opacity level in XML annotations.

    - #### annID

          public java.lang.String annID

      String denoting annotation ID in XML annotations

    - #### annType

          public java.lang.String annType

      String denoting annotation type in XML annotations, based on supported Snowbound annotation types. For example, annType of 12 would denote a SANN_ARROW.

    - #### annOrdinal

          public java.lang.String annOrdinal

      String denoting annotation ordering in resulting XML file where 0 indicated first annotation object.

    - #### annDelete

          public java.lang.String annDelete

      String indicating if annotation object is to be deleted. If true, object will not be written back out to XML after a call to SANN_write_xml_ann_pages().

    - #### annDeleteDate

          public java.lang.String annDeleteDate

      String indicating date of annotation deletion.

    - #### annDeleteUser

          public java.lang.String annDeleteUser

      String indicating user who deleted annotation.

    - #### annModifyDate

          public java.lang.String annModifyDate

      String indicating modification date of current annotation.

    - #### annModifyUser

          public java.lang.String annModifyUser

      String indicating user who preformed last modification.

    - #### annCreateDate

          public java.lang.String annCreateDate

      String denoting annotation creation date.

    - #### annCreateUser

          public java.lang.String annCreateUser

      String indicating which user created the annotation object.

    - #### annClassId

          public java.lang.String annClassId

      String indicating class id of annotation object.

    - #### fontBold

          public java.lang.String fontBold

      String indicating if font is bold or not in XML annotation supporting text.

    - #### fontColor

          public java.lang.String fontColor

      String indicating font color in XML annotation supporting text.

    - #### fontItalic

          public java.lang.String fontItalic

      String indicating if font is italized or not in XML annotations support text.

    - #### fontName

          public java.lang.String fontName

      String indicating the font face name.

    - #### fontSize

          public java.lang.String fontSize

      String indicating font point size.

    - #### fontStrike

          public java.lang.String fontStrike

      String indicating if font has a strike-through text.

    - #### fontUnderline

          public java.lang.String fontUnderline

      String indicating if font should be underlined or not.

    - #### lineColor

          public java.lang.String lineColor

      String denoting line color in XML annotations.

    - #### lineStyle

          public java.lang.String lineStyle

      String denoting line style in XML annotations

    - #### lineTransparent

          public java.lang.String lineTransparent

      String indicating line opacity level for XML annotation.

    - #### lineWidth

          public java.lang.String lineWidth

      String indicating line width for XML annotations.

    - #### pointArray

          public java.lang.String pointArray

      String indicating a point array for freehand or polygon annotations.

    - #### fillColor

          public java.lang.String fillColor

      String indicating fill color for solid annotation objects.

    - #### textString

          public java.lang.String textString

      String denoting annotated page width in XML annotations

    - #### bitmapData

          public java.lang.String bitmapData

      String denoting annotated page width in XML annotations

    - #### rotationAngle

          public java.lang.String rotationAngle

      String indicating rotation angle of annotation object.

    - #### annotatedFileName

          public java.lang.String annotatedFileName

      String indicating name of annotated file.

    - #### annotatedDocumentID

          public java.lang.String annotatedDocumentID

      String indicating document id annotated file.

    - #### pageNumber

          public int pageNumber

    - #### modifyUser

          public java.lang.String modifyUser

    - #### deleted

          public boolean deleted

    - #### deleteDate

          public java.lang.String deleteDate

    - #### deleteUser

          public java.lang.String deleteUser

    - #### createDate

          public java.lang.String createDate

      Denotes annotation creation date.

    - #### createUser

          public java.lang.String createUser

      Indicates which user created the annotation object.

    - #### xmlannotations

          public boolean xmlannotations

    - #### double_byte

          public boolean double_byte

      Used for using double byte edit controls.

    - #### ann_dpi

          public int ann_dpi

      Integer representing resolution for Filenet annotation

    - #### ann_idmStatus

          public int ann_idmStatus

      IDM Status

    - #### ann_idmCreateTimestamp

          public int ann_idmCreateTimestamp

      IDM Create_Timestamp

    - #### ann_idmSubpage_Number

          public int ann_idmSubpage_Number

      IDM Subpage_Number

    - #### ann_idmLastModifyTimestamp

          public int ann_idmLastModifyTimestamp

      IDM Last_Modify_Timestamp

  - ### Constructor Detail

    - #### SnowAnn

          public SnowAnn​(int width,
                         int height)

      Constructor.
      Parameters:
        `width` -
        `height` -

    - #### SnowAnn

          public SnowAnn​(int width,
                         int height,
                         int dpi)

      Constructor.
      Parameters:
        `width` -
        `height` -
        `dpi` -

  - ### Method Detail

    - #### getGraphics

          public static java.awt.Graphics getGraphics​(java.awt.Container sf)

      Parameters:
        `sf` -
      Returns:

    - #### setPopupMenuStrings

          public static void setPopupMenuStrings​(java.lang.String moveCommand,
                                                 java.lang.String resizeCommand,
                                                 java.lang.String rotateCommand,
                                                 java.lang.String deleteCommand,
                                                 java.lang.String editTextCommand,
                                                 java.lang.String propertiesCommand,
                                                 java.lang.String cancelCommand,
                                                 java.lang.String copyCommand,
                                                 java.lang.String cutCommand,
                                                 java.lang.String permissionsCommand)

      Parameters:
        `moveCommand` -
        `resizeCommand` -
        `rotateCommand` -
        `deleteCommand` -
        `editTextCommand` -
        `propertiesCommand` -
        `cancelCommand` -
        `copyCommand` -
        `cutCommand` -
        `permissionsCommand` -

    - #### annLinePainting

          public boolean annLinePainting()

      Returns:

    - #### SANN_set_size

          public int SANN_set_size​(int width,
                                   int height)

      Sets the height and width of the current image being annotated. The internal format for Snowbound annotations contains this information. When reading in other annotation file formats, you need to call this method to set the height and width of the current annotation image being annotated after reading in the annotation file. A negative value indicates an error. See Appendix G for more information.
      Parameters:
        `width` - Width of current image being annotated.
        `height` - Height of current image being annotated.

    - #### SANN_set_scrollbars

          public int SANN_set_scrollbars​(int ssetting)

      Allows setting the type of scrollbar used in a Post-it note or text annotation object. A negative value indicates an error. See Appendix G for more information.
      Parameters:
        `ssetting` - Variable to indicate the desired scrollbars. ssetting = 0 TextArea.SCROLLBARS_NONE; ssetting = 1 TextArea.SCROLLBARS_HORIZONTAL_ONLY; ssetting = 2 TextArea.SCROLLBARS_VERTICAL_ONLY; ssetting = 3 TextArea.SCROLLBARS_BOTH

    - #### xml_inches_pixels

          public int xml_inches_pixels​(double dVal)

      Converts inches to pixels.
      Parameters:
        `dVal` - value to convert.
      Returns:
        The converted value in pixels.

    - #### xml_color

          public void xml_color​(byte[] pString,
                                short[] r,
                                short[] g,
                                short[] b)

      Converts color integer into r,g,b
      Parameters:
        `pString` - Integer value as ascii string
        `r` - red color component
        `g` - green color component
        `b` - blue color component

    - #### xml_boolean

          public boolean xml_boolean​(byte[] pString)

      Converts a boolean string to boolean value
      Parameters:
        `pString` - String to convert
      Returns:
        Boolean.

    - #### xml_convert

          public Snow.ANN_GRAPHIC_STRUCT xml_convert​(Snow.ANN_GRAPHIC_STRUCT pFcs,
                                                     byte[] pKeyword,
                                                     byte[] pValue,
                                                     int page,
                                                     int[] xmax,
                                                     int[] ymax,
                                                     int[] nPoints,
                                                     int[] bDone)

      Converts an XML FileNet annotation file to a Snowbound annotation file.
      Parameters:
        `pFcs` - Annotation object list
        `pKeyword` - XML keyword
        `pValue` -
        `page` - page number
        `xmax` - maximum x value
        `ymax` - maximum y value
        `nPoints` - number of points
      Returns:
        new ANN_GRAPHIC_STRUCT

    - #### SANN_count_objects

          public int SANN_count_objects()

      Returns:
        count of annotation objects

    - #### remove_non_text_objects

          public int remove_non_text_objects()

      Returns:

    - #### remove_text_objects

          public int remove_text_objects()

      Returns:

    - #### xml_read

          public int xml_read​(Snow.SnbdFileio fd,
                              byte[] pBuffer,
                              int[] nPos,
                              int[] nBytesToRead)

      Reads from the XML file into a buffer
      Parameters:
        `fd` - Snowbound file descriptor
        `pBuffer` - buffer to hold data read in
        `nPos` - current buffer position
        `nBytesToRead` - size of buffer
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### xml_find_page

          public int xml_find_page​(Snow.SnbdFileio fd,
                                   int page)

      Skips to the desired XML annotation page
      Parameters:
        `fd` - Snowbnound file descriptor
        `page` - desired page
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### read_xml_file

          public int read_xml_file​(Snow.SnbdFileio fd,
                                   int page)

      Converts an XML file containing FileNet annotations
      Parameters:
        `fd` - Snowbound file descriptor
        `page` - desired page
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_read_ann

          public int SANN_read_ann​(java.lang.String filename)

      Reads an annotation file from disk. Pathnames are absolute. It supports multipage annotation files.
      Parameters:
        `filename` - File name to read in
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_read_ann

          public int SANN_read_ann​(java.lang.String filename,
                                   int page)

      Reads an annotation file from disk. Pathnames are absolute. It supports multipage annotation files.
      Parameters:
        `filename` - File name to read in
        `page` - Page number to read
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_read_ann

          public int SANN_read_ann​(java.io.DataInputStream dis,
                                   int page)

      Reads an annotation file from a DataInputStream. It supports multipage annotation files.
      Parameters:
        `dis` - DataInputStream
        `page` - Page number to read
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_read_ann_stream

          public int SANN_read_ann_stream​(java.lang.String filename)

      Reads an annotation file from a fully qualified URL address. It is used to load in annotations from the web. It supports multipage annotation files.
      Parameters:
        `filename` - File name to read in (ex. http://www.snowbound.com/file.ann)
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_read_ann_stream

          public int SANN_read_ann_stream​(java.lang.String filename,
                                          int page)

      Reads an annotation file from a fully qualified URL address. It is used to load in annotations from the web. It supports multipage annotation files.
      Parameters:
        `filename` - File name to read in (ex. http://www.snowbound.com/file.ann)
        `page` - Page number to read
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_write_ann

          public int SANN_write_ann​(java.lang.String filename,
                                    int extra_size,
                                    byte[] extra_data)

      Writes out annotations to the disk file. The extra_size and extra_data parameters allow the embedding of other data into the file such as company name or any data you wish to put in the file. There is currently no method to retrieve extra information.
      Parameters:
        `filename` - File/Path name to write
        `extra_size` - Size of extra data to write after the first header
        `extra_data` - Buffer for extra data to write
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_write_ann_xml

          public int SANN_write_ann_xml​(java.lang.String filename,
                                        int extra_size,
                                        byte[] extra_data)

      Writes out annotations to the disk file as xml. The extra_size and extra_data parameters allow the embedding of other data into the file such as company name or any data you wish to put in the file. There is currently no method to retrieve extra information.
      Parameters:
        `filename` - File/Path name to write
        `extra_size` - Size of extra data to write after the first header
        `extra_data` - Buffer for extra data to write
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_write_ann

          public int SANN_write_ann​(byte[] dos,
                                    int extra_size,
                                    byte[] extra_data)

      Writes out annotations to a memory buffer. The method can be used to write data back to a server. The extra_size and extra_data parameters allow the embedding of other data into the file such as company name or any other data you wish to save. After writing the data to the buffer you can write it to a file with a standard subclass of java.io.OutputStream.
      Parameters:
        `dos` - Byte array buffer to hold data
        `extra_size` - Size of extra data to write, after the first header
        `extra_data` - Buffer for extra data to write
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_write_ann_pages

          public int SANN_write_ann_pages​(java.lang.String filename,
                                          int extra_size,
                                          byte[] extra_data)

      Writes out annotations to the disk file. The extra_size and extra_data parameters allow the embedding of other data into the file such as company name or any data you wish to put in the file. There is currently no method to retrieve extra information. This method appends a new page to the annotation file if one currently exists.
      Parameters:
        `filename` - File/Path name to write
        `extra_size` - Size of extra data to write after the first header
        `extra_data` - Buffer for extra data to write
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_write_ann_pages

          public int SANN_write_ann_pages​(byte[] dos,
                                          int extra_size,
                                          byte[] extra_data)

      Writes out annotations to a memory buffer. The method can be used to write data back to a server. The extra_size and extra_data parameters allow the embedding of other data into the file such as company name or any other data you wish to save. This method appends a new page to the annotation file if one currently exists.
      Parameters:
        `dos` - Byte array buffer to hold data
        `extra_size` - Size of extra data to write, after the first header
        `extra_data` - Buffer for extra data to write
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_add_object

          public int SANN_add_object​(int graphicId,
                                     Snow.SANN_RECT rc,
                                     byte[] data,
                                     Snow.SANN_POINT[] pointArray,
                                     int dataSize)

      Adds a new object to the current annotation. Use data_array to hold the text of a SnowAnn.EDIT or SnowAnn.POSTIT object. Use point_array for freehand annotations.
      Parameters:
        `graphicId` - A unique number for each graphic object.
        `rc` - Rectangle defining outline of points for most graphics objects in the current image's coordinates.
        `data` - Data for text in freehand annotations and edits.
        `pointArray` - Array of SANN_POINTs defining freehand line drawing.
        `dataSize` - The size in bytes for freehand or edits.
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `SANN_map_wnd_to_image(Container, SANN_POINT)`, `ErrorCodes`

    - #### SANN_add_object

          public int SANN_add_object​(int graphicId,
                                     Snow.SANN_RECT rc,
                                     byte[] data,
                                     Snow.SANN_POINT[] pointArray,
                                     int dataSize,
                                     float opacity)

    - #### SANN_delete_object

          public int SANN_delete_object​(int graphicNum)

      Deletes an object from the current annotation list. This action is permanent and all object data is lost.
      Parameters:
        `graphicNum` - internal number for each graphic returned by SANN_get_object_num. It is merely the number in a linked list of graphics objects. Note: Use this number only after the call to SANN_get_object_num as SANN_delete_object may change the number of existing graphics.
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `SANN_get_object_num(Container, int, int)`, `ErrorCodes`

    - #### SANN_delete_all_objects

          public int SANN_delete_all_objects()

      Deletes all graphics and memory associated with the current annotation object.
      - This action is permanent; all annotation object data is lost.
      - After making this call, the current annotation object is not valid.
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_get_object_num

          public int SANN_get_object_num​(java.awt.Container sf,
                                         int xpos,
                                         int ypos)

      Finds the graphic_num of the annotation object whose bounding box completely surrounds the points xpos and ypos. If successful, it returns the graphic number usable by SANN_delete_object and other functions.
      Parameters:
        `sf` - java.awt.Container for displayed image
        `xpos` - X coordinate in the windows coordinates
        `ypos` - Y coordinate in the windows coordinates
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `SANN_delete_object(int)`, `ErrorCodes`

    - #### SANN_recalc_size

          public int SANN_recalc_size​(int nWidth,
                                      int nHeight)

      Recalculates objects dimensions and positions.
      Parameters:
        `nWidth` - new width for ann object
        `nHeight` - new height for ann object
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_recalc_size

          public int SANN_recalc_size​(int nWidth,
                                      int nHeight,
                                      int nDpi)

      Recalculates objects dimensions and positions.
      Parameters:
        `nWidth` - new width for ann object
        `nHeight` - new height for ann object
        `nDpi` - new dpi for ann object
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_display_annotations

          public int SANN_display_annotations​(java.awt.Graphics g,
                                              java.awt.Container sf,
                                              int xs,
                                              int ys,
                                              int xz,
                                              int yz)

      Displays all current annotations (superimposed on the image) to the Graphics context pointed by g. This function always assumes the image is aspect ratio corrected into the coordinates xs, ys, xz, and yz.
      - Before calling this method, you may want to call SANN_set_croprect to allow for zooming and scrolling.
      Parameters:
        `g` - java.awt.Graphics context
        `sf` - java.awt.Container in which to display the annotations
        `xs` - Starting X position
        `ys` - Starting Y position
        `xz` - X size of display area
        `yz` - Y size of display area
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `SANN_set_croprect(int, int, int, int)`, `ErrorCodes`

    - #### SANN_display_annotations

          public int SANN_display_annotations​(java.awt.Graphics g,
                                              java.awt.Container sf,
                                              int xs,
                                              int ys,
                                              int xz,
                                              int yz,
                                              boolean includeTextAnnotations,
                                              boolean includeNonTextAnnotations)

      This method displays all current annotations (superimposed on the image) to the Graphics context pointed by g. This function always assumes the image is aspect ratio corrected into the coordinates xs, ys, xz, and yz.
      - Before calling this method, you may want to call SANN_set_croprect to allow for zooming and scrolling.
      Parameters:
        `g` - java.awt.Graphics context
        `sf` - java.awt.Container in which to display the annotations
        `xs` - Starting X position
        `ys` - Starting Y position
        `xz` - X size of display area
        `yz` - Y size of display area
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `SANN_set_croprect(int, int, int, int)`, `ErrorCodes`

    - #### SANN_output_pdf

          public byte[] SANN_output_pdf​(double xsize,
                                        double ysize,
                                        double xpos,
                                        double ypos,
                                        int angle,
                                        int[] error)

      Converts the current annotation object to Pdf content in a buffer.
      Parameters:
        `xsize` - size of PDF file to add in.
        `ysize` - size of PDF file to add in.
        `xpos` - horizontal position.
        `ypos` - vertical position.
        `angle` - page angle if PDF page is rotated.
        `error` - error code returned.
      Returns:
        byte array with PDF content contained. Returns null if no more objects.

    - #### SANN_set_fcolor

          public int SANN_set_fcolor​(int graphicId,
                                     int red,
                                     int green,
                                     int blue)

      Sets the current foreground drawing color for all annotation objects.
      Parameters:
        `graphicId` - Object type to add when using user controlled adding of objects
        `red` - Red value 0 - 255
        `green` - Green value 0 - 255
        `blue` - Blue value 0 - 255
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_set_fcolor

          public int SANN_set_fcolor​(int red,
                                     int green,
                                     int blue)

      Sets the current foreground drawing color for all annotation objects.
      Parameters:
        `red` - Red value 0 - 255
        `green` - Green value 0 - 255
        `blue` - Blue value 0 - 255
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_set_bcolor

          public int SANN_set_bcolor​(int red,
                                     int green,
                                     int blue)

      Sets the current background drawing color for all graphics. Only used by the Edit, Post-it and Highlight objects.
      Parameters:
        `red` - Red value 0 - 255
        `green` - Green value 0 - 255
        `blue` - Blue value 0 - 255
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_get_graphic_struct

          public Snow.ANN_GRAPHIC_STRUCT SANN_get_graphic_struct​(int graphic_num)

      Returns the ANN_GRAPHIC_STRUCT class. The class contains all information on this annotation object including type of object, color, dimensions, positions and more.
      Parameters:
        `graphicNum` - The number to identify the annotation object to return data for.
      Returns:
        the ANN_GRAPHIC_STRUCT class.

    - #### SANN_set_line_width

          public int SANN_set_line_width​(int width)

      Sets the width of lines in the annotation library in pixels.
      Parameters:
        `width` - Width of line in pixels
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_set_line_width

          public int SANN_set_line_width​(int graphicNum,
                                         int width)

      Parameters:
        `graphicNum` -
        `width` -
      Returns:

    - #### SANN_set_line_style

          public int SANN_set_line_style​(int style)

      Sets the style of the line according to predefined constants. Currently only solid lines are supported.
      Parameters:
        `style` - Style of line
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_highlight_object

          public int SANN_highlight_object​(java.awt.Container sf,
                                           Snow.SANN_RECT disp,
                                           int graphicNum)

      Highlights the bounding box of the annotation object specified by. This graphicNum is retrieved by the SANN_get_object_num function.
      Parameters:
        `sf` - java.awt.Container for displayed image
        `disp` - Rectangle of client area of frame or window
        `graphicNum` - Annotation object to highlight
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `SANN_get_object_num(Container, int, int)`, `ErrorCodes`

    - #### SANN_print_annotations

          public int SANN_print_annotations​(java.awt.Graphics g,
                                            java.awt.Container sf,
                                            int xs,
                                            int ys,
                                            int xz,
                                            int yz,
                                            boolean includeTextAnnotations,
                                            boolean includeNonTextAnnotations)

      Prints the current annotation to the graphic context pointed by g. It always assumes the image is aspect ratio corrected into the absolute image coordinates xs, ys, xz, and yz.
      Parameters:
        `g` - java.awtGraphics printer context into which to draw image
        `sf` - java.awt.Container for the Snowbnd image object
        `xs` - Starting X position
        `ys` - Starting Y position
        `xz` - Size of window along its X axis
        `yz` - Size of window along its Y axis
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_print_annotations

          public int SANN_print_annotations​(java.awt.Graphics g,
                                            java.awt.Container sf,
                                            int xs,
                                            int ys,
                                            int xz,
                                            int yz)

      Prints the current annotation to the graphic context pointed by g. It always assumes the image is aspect ratio corrected into the absolute image coordinates xs, ys, xz, and yz.
      Parameters:
        `g` - java.awtGraphics printer context into which to draw image
        `sf` - java.awt.Container for the Snowbnd image object
        `xs` - Starting X position
        `ys` - Starting Y position
        `xz` - Size of window along its X axis
        `yz` - Size of window along its Y axis
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_set_font

          public int SANN_set_font​(int graphicNum,
                                   java.lang.String name,
                                   int italic,
                                   int bold,
                                   int fontHeight)

      Sets the current type of font to use for the specified Edit or PostIt text annotation.
      Parameters:
        `graphicNum` - This is an internal number for each graphic returned by SANN_get_object_num. It is merely the number in a linked list of graphics objects. Note: Use this number only after the call to SANN_get_object_num as SANN_delete_object may change the number of existing graphics.
        `name` - Name of font to use
        `italic` - Use italic font 0 or 1
        `bold` - Use bold font 0 or 1
        `fontHeight` - Size of the font in pixels
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `SANN_get_object_num(Container, int, int)`, `SANN_delete_object(int)`, `ErrorCodes`

    - #### SANN_set_font

          public int SANN_set_font​(java.lang.String name,
                                   int italic,
                                   int bold,
                                   int fontHeight)

      Sets the current type of font to use for all Edit and PostIt text annotations.
      Parameters:
        `name` - Name of font to use
        `italic` - Use italic font 0 or 1
        `bold` - Use bold font 0 or 1
        `fontHeight` - Size of the font in points
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_move_object

          public int SANN_move_object​(int graphicNum,
                                      Snow.SANN_RECT rc)

      Moves or resizes the object (graphicNum).
      Parameters:
        `graphicNum` - Specify the object to move.
        `rc` - Rectangle for new object position and size. Coordinates are absolute.
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_resize_object

          public int SANN_resize_object​(int graphicNum,
                                        Snow.SANN_RECT rc)

      Resizes (or moves) the object indicated by graphicNum. It populates rc with the absolute rectangle coordinates of the new bounding box of the annotation object.
      Parameters:
        `graphicNum` - Specify the object to resize
        `rc` - Snow.SANN_RECT populated with new object size and location
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### resize_object

          public int resize_object​(Snow.ANN_GRAPHIC_STRUCT fcs,
                                   Snow.SANN_RECT rc)

      Resizes (or moves) the specific ANN_GRAPHIC_STRUCT object. It populates rc with the absolute rectangle coordinates of the new bounding box of the annotation object.
      Parameters:
        `fcs` - Specify the object to resize
        `rc` - Snow.SANN_RECT populated with new object size and location
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### centerTagInRect

          public void centerTagInRect​(java.awt.Graphics g,
                                      java.awt.Container sf,
                                      Snow.SANN_RECT disp,
                                      java.lang.String tagString,
                                      Snow.SANN_RECT rc,
                                      int[] xx,
                                      int[] yy,
                                      int[] ptSize)

    - #### SANN_draw_object

          public int SANN_draw_object​(java.awt.Graphics g,
                                      java.awt.Container sf,
                                      int graphicNum,
                                      int xs,
                                      int ys,
                                      int xz,
                                      int yz)

      Draws the object (graphicNum) at the coordinates passed in (xs, ys, xz, and yz). It can be used to draw selected annotations.
      Parameters:
        `g` - java.awt.Graphics context in which to draw
        `sf` - Container for currently displayed image
        `graphicNum` - Specified object to draw
        `xs` - X position at which to start drawing
        `ys` - Y position at which to start drawing
        `xz` - X size to draw object
        `yz` - Y size to draw object
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_get_object_bounds

          public int SANN_get_object_bounds​(int graphicNum,
                                            Snow.SANN_RECT rc)

      Returns the bounding box of the object (graphic_num) in image pixel coordinates. The coordinates are absolute.
      Parameters:
        `graphicNum` - Object contained by rc
        `rc` - Rectangle of bounding box
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_get_object_data

          public int SANN_get_object_data​(int graphicNum,
                                          byte[] data)

      Used to get the text data from a Post-it note or text annotation object.
      Parameters:
        `graphicNum` - The number to identify the annotation object to return data for.
        `data` - The byte array to return data in.
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_activate_object

          public int SANN_activate_object​(java.awt.Container sf,
                                          int graphicNum)

      Used only on the SANN_EDIT and SANN_POSTIT objects to allow editing of the text in the object.

      - In this mode you can move, edit, and delete the object.
      Parameters:
        `sf` - Container class for frame or window
        `graphicNum` - Specify the object to activate
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_deactivate_object

          public int SANN_deactivate_object​(int graphicNum)

      Used on the SANN_EDIT and SANN_POSTIT objects to stop the editing of text in TextArea. It makes the window inactive and draws the object data statically, superimposed on the image. In this mode you cannot move, resize or delete the object. You must call SANN_activate_object method to edit the text.
      - In this mode you cannot move, resize or delete the object. You must call SANN_activate_object method to edit the text.
      Parameters:
        `graphicNum` - Specify the object to activate
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_activate_all_objects

          public int SANN_activate_all_objects​(java.awt.Container sf)

      Activates all text based annotation objects to allow text editing in the TextArea represented by these objects. Currently used only on the SANN_EDIT and SANN_POSTIT objects.
      - In this mode you can move, edit, and delete the object.
      Parameters:
        `sf` - Container for currently displayed image
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_deactivate_all_objects

          public int SANN_deactivate_all_objects()

      Used on the SANN_EDIT and SANN_POSTIT objects to disallow editing of text in all text based objects. It makes the window inactive and draws the object data statically, superimposed on the image. In this mode you cannot move, resize or delete the object. You must call SANN_activate_object to enable text editing. This call deactivates all objects on the page.
      - In this mode you cannot move, resize or delete the object. You must call SANN_activate_object to enable text editing. This call deactivates all objects on the page.
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `SANN_activate_object(Container, int)`, `ErrorCodes`

    - #### SANN_get_object_info

          public Snow.ANN_GRAPHIC_STRUCT SANN_get_object_info​(int graphicNum)

      Returns an instance of the Snow.ANN_GRAPHIC_STRUCT class, which is the internal wrapper for the object number passed in. This has information about the size, color and object attributes.
      Parameters:
        `graphicNum` - Specify the object for which to return a structure pointer
      Returns:
        Snow.ANN_GRAPHIC_STRUCT.

    - #### SANN_rotate

          public int SANN_rotate​(int angle)

      Rotates all annotations on the currently displayed image. Rotation is in increments of 90 degrees up to 270 degrees.
      Parameters:
        `angle` - The amount by which to rotate annotation, in increments of 90 degrees.
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_rotate_object

          public int SANN_rotate_object​(int graphicNum,
                                        int angle)

      Rotates given annotation object by angle
      Parameters:
        `graphicNum` -
        `angle` -
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_flipx

          public int SANN_flipx()

      Flips all annotation objects about the horizontal
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_flipy

          public int SANN_flipy()

      Flips all annotation objects about the vertical
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_map_image_to_wnd

          public int SANN_map_image_to_wnd​(Snow.SANN_RECT disprect,
                                           Snow.SANN_POINT pt,
                                           java.awt.Container sf)

      Converts the internal graphics coordinates of the image to coordinates of the current window.
      Parameters:
        `disprect` -
        `pt` - Absolute X and Y coordinates to convert
        `sf` - Current display container
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_map_wnd_to_image

          public int SANN_map_wnd_to_image​(java.awt.Container sf,
                                           Snow.SANN_POINT pt)

      Converts coordinates of the current window to the internal graphics coordinates of the image.
      Parameters:
        `sf` - Current display container
        `pt` - Absolute X and Y coordinates to convert
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### SANN_set_croprect

          public int SANN_set_croprect​(int xs,
                                       int ys,
                                       int xe,
                                       int ye)

      The cropping rectangle is essentially the size of the display container (which is usually a subclass of java.awt.Container), mapped onto the image (corrected for image scaling). To use cropping methods with zooming, SANN_map_wnd_to_image(java.awt.Container, java.awt.Point) SANN_map_image_to_wnd(java.awt.Container, java.awt.Point).
      Parameters:
        `xs` - X starting coordinate
        `ys` - Y starting coordinate
        `xe` - X crop rectangle size
        `ye` - Y crop rectangle size
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `SANN_map_wnd_to_image(Container, SANN_POINT)`, `SANN_map_image_to_wnd(SANN_RECT, SANN_POINT, Container)`, `ErrorCodes`

    - #### SANN_get_croprect

          public int SANN_get_croprect​(Snow.SANN_RECT rc)

      Returns the cropping rectangle for the current annotation display area (the visible display area).
      Parameters:
        `rc` - rc.bottom, rc.top, rc.right, rc.left, rectangle coordinates
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### ann_dblclick

          public int ann_dblclick​(java.awt.Container sf,
                                  int xpos,
                                  int ypos)

      Selects the annotation under the mouse coordinates. It then activates and enables it for editing if a SANN_EDIT or SANN_POSTIT. Call this during mouse-click events.
      Parameters:
        `sf` - Container for currently displayed image
        `xpos` - Position of mouse cursor on X-axis
        `ypos` - Position of mouse cursor on Y-axis
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### ui_delete

          public int ui_delete​(java.awt.Container sf)

      Deletes the currently selected annotation object. It is used by built in annotation editing pop-up menu to fire the SANN_delete_object method on the currently selected annotation object.
      Parameters:
        `sf` - java.awt.Container for the currently displayed image
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### ui_rotate_object

          public int ui_rotate_object​(java.awt.Container sf,
                                      int degrees)

      Rotates the currently selected annotation object. It is used by built in annotation editing pop-up menu to fire the SANN_rotate_object method on the currently selected annotation object.
      Parameters:
        `sf` - java.awt.Container for the currently displayed image
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### ui_exit

          public int ui_exit()

      Deselects the currently selected annotation object. It is used by pop-up menu to set current graphic_id to -1.
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### ui_wm_lbuttondown

          public int ui_wm_lbuttondown​(java.awt.Container sf,
                                       int xpos,
                                       int ypos,
                                       byte[] textbuff)

      Begins tracking mouse movements when the mouse button is pressed. Call this method during the mouse down or mouse pressed events.
      Parameters:
        `sf` - java.awt.Container for currently displayed image.
        `xpos` - Position of mouse cursor on X-axis.
        `ypos` - Position of mouse cursor on Y-axis.
        `textbuff` - Used internally. Set to null.
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      See Also:
        `ErrorCodes`

    - #### ui_wm_mousemove

          public int ui_wm_mousemove​(java.awt.Container sf,
                                     int xpos,
                                     int ypos,
                                     byte[] textbuff)

      Notifies the library of the current mouse coordinates. Call this method during mouse move events. A negative value indicates an error. See Appendix G for more information.
      Parameters:
        `sf` - java.awt.Container for currently displayed image.
        `xpos` - Position of mouse cursor on X-axis.
        `ypos` - Position of mouse cursor on Y-axis.
        `textbuff` - Used internally. Set to null.
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.

    - #### ui_wm_lbuttonup

          public int ui_wm_lbuttonup​(java.awt.Container sf,
                                     int xpos,
                                     int ypos,
                                     byte[] textbuff)

      This method notifies the annotation library that the mouse button has been released. Call this method during the mouse released or mouse up event. A negative value indicates an error. See Appendix G for more information.
      Parameters:
        `sf` - java.awt.Container for currently displayed image.
        `xpos` - Position of mouse cursor on X-axis.
        `ypos` - Position of mouse cursor on Y-axis.
        `textbuff` - Used internally. Set to null.
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.

    - #### ui_wm_endmove

          protected int ui_wm_endmove​(java.awt.Container sf)

    - #### ui_wm_endresize

          protected int ui_wm_endresize​(java.awt.Container sf)

    - #### ui_startresize

          public int ui_startresize​(java.awt.Container sf)

      This method notifies the annotation library that the current annotation object is being resized. A negative value indicates an error. See Appendix G for more information.
      Parameters:
        `sf` - java.awt.Container for currently displayed image
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.

    - #### ui_startmove

          public int ui_startmove​(java.awt.Container sf)

      This method notifies the annotation library that the current annotation object is being moved. A negative value indicates an error. See Appendix G for more information.
      Parameters:
        `sf` - java.awt.Container for currently displayed image
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.

    - #### GetClientRect

          public void GetClientRect​(java.awt.Container sf,
                                    Snow.SANN_RECT rc)

      This method fills a SANN_RECT object with the current height and width of the display area. It subtracts the height and width of the scrollbars for the calculation.
      Parameters:
        `sf` - Container for currently displayed image
        `rc` - Snow.SANN_RECT to be filled with display area height and width

    - #### SANN_merge_annotations

          public int SANN_merge_annotations​(Snowbnd snow,
                                            java.awt.Container sf)

      This method will permanently merge annotations onto the Snowbound image object passed in.
      Parameters:
        `snow` - Current Snowbound image object to merge annotations onto.
        `sf` - Current display container. May be a frame, panel, or Jframe.
      Returns:
        the current display container. A value of 0 indicates success. A negative value indicates an error. Any value less than zero is a Snowbound error code

    - #### SANN_write_ann_xml

          public int SANN_write_ann_xml​(byte[] dos,
                                        Snow.SnowXMLWriter xmlwriter)
                                 throws java.io.IOException

      This method will write out the contents of SnowXMLWriter to a byte[] array. This method should be called after the SnowXMLWriter has been wrapped in <document> tags or after SANN_write_ann_xml_document() has been called. This method will thrown in IOException if there is a problem writing out to the byte[] array.
      Parameters:
        `dos` - Byte array buffer to hold annotation data
        `xmlwriter` - Contains XML data
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      Throws:
        `java.io.IOException`

    - #### SANN_write_ann_xml_document

          public Snow.SnowXMLWriter SANN_write_ann_xml_document​(Snow.SnowXMLWriter xmlPagesWriter)
                                                         throws java.io.IOException

      This method will write out <document> data. This method should be called once all <page> and <annObject> data has been written. This method will wrap the contents on SnowXMLWriter in to <document> tag and return a full SnowXMLWriter containing valid XML. Should be the last method called prior to writing annotation data to disk. This method will thrown in IOException if there is a problem writing out annotation data to XML.
      Parameters:
        `xmlPagesWriter` - Contains <page> and <annObject> data to be wrapped in <document> tags
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      Throws:
        `java.io.IOException`

    - #### SANN_write_ann_xml_page

          public Snow.SnowXMLWriter SANN_write_ann_xml_page​(Snow.SnowXMLWriter xmlwriter)
                                                     throws java.io.IOException

      This method will write out <page> and <annObject> data the associated ANN_GRAPHIC_STRUCT and return a populated SnowXMLWriter. This should should be called for each annotated page in the document. This method will thrown in IOException if there is a problem writing out annotation data to XML.
      Parameters:
        `xmlwriter` - Can be empty or contain <page> and <annObject> data from a previous page
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      Throws:
        `java.io.IOException`

    - #### SANN_write_ann_xml_page

          public Snow.SnowXMLWriter SANN_write_ann_xml_page​(Snow.SnowXMLWriter xmlwriter,
                                                            java.lang.String annLayerId)
                                                     throws java.io.IOException

      This method will write out <page> and <annObject> data the associated ANN_GRAPHIC_STRUCT and return a populated SnowXMLWriter. This should should be called for each annotated page in the document. This method will thrown in IOException if there is a problem writing out annotation data to XML.
      Parameters:
        `xmlwriter` - Can be empty or contain <page> and <annObject> data from a previous page
        `annLayerId` - annLayerID value to insert into page metadata
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.
      Throws:
        `java.io.IOException`

    - #### SANN_write_ann_fnx

          public int SANN_write_ann_fnx​(java.lang.String pathname,
                                        java.lang.String filenetAnnId,
                                        int extra_size,
                                        byte[] extra_data)

      This method writes out filenet annotations to the disk file as xml. The extra_size and extra_data parameters allow the embedding of other data into the file such as company name or any data you wish to put in the file. There is currently no method to retrieve extra information. A negative value indicates an error. See Appendix G for more information.
      Parameters:
        `pathname` - Path name in which to write annotation files
        `filenetAnnId` - FileNet annotation ID
        `extra_size` - Size of extra data to write after the first header
        `extra_data` - Buffer for extra data to write
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.

    - #### SANN_write_ann_fnx

          public byte[] SANN_write_ann_fnx​(java.lang.String filenetAnnId,
                                           int[] error)

      This method returns a byte array containing xml filenet annotations. A null pointer indicates an error.
      Parameters:
        `filenetAnnId` - FileNet annotation ID
        `error` - Array for returning an integer error code. See Appendix G for more information.
      Returns:
        byte Array containing FileNet annotations in XML.

    - #### SANN_write_ann_idm

          public int SANN_write_ann_idm​(java.lang.String pathname,
                                        java.lang.String userName,
                                        java.lang.String groupName,
                                        int status,
                                        int page)

      This method writes out IDM annotations to the disk file. The extra_size and extra_data parameters allow the embedding of other data into the file such as company name or any data you wish to put in the file. There is currently no method to retrieve extra information. A negative value indicates an error. See Appendix G for more information.
      Parameters:
        `pathname` - Path name in which to write annotation file
        `userName` - Creator's user name
        `groupName` - Creator's group name
        `status` - Annotation status: 0:Original, 1:New, 2:Modify, 3:Delete
        `page` - Page number
      Returns:
        Any non-negative value indicates success. A negative value indicates an error.

    - #### SANN_write_ann_idm

          public byte[] SANN_write_ann_idm​(java.lang.String userName,
                                           java.lang.String groupName,
                                           int status,
                                           int page,
                                           int[] error)

      This method returns a byte array containing IDM annotations. A null pointer indicates an error.
      Parameters:
        `userName` - Creator's user name
        `groupName` - Creator's group name
        `status` - Annotation status: 0:Original, 1:New, 2:Modify, 3:Delete
        `page` - Page number
        `error` - Array for returning an integer error code. See Appendix G for more information.
      Returns:
        byte Array containing IDM annotations.

    - #### SANN_set_fnx_dpi

          public void SANN_set_fnx_dpi​(int dpi)

      This method sets the resolution used for Filenet annotations.
      Parameters:
        `dpi` - Integer Horizontal resolution in dots per inch

    - #### setAutoDetect

          public void setAutoDetect​(boolean autoDetect)

    - #### setVisibilityFlag

          public void setVisibilityFlag​(int type,
                                        boolean value)

      This method sets the visibility flag for the specified annotation type
      Parameters:
        `type` - The numeric annotation type
        `value` - The boolean value for this type

    - #### getVisibilityFlag

          public boolean getVisibilityFlag​(int type)

      Get the visibility flag for the specified annotation type
      Parameters:
        `type` - The numeric annotation type

    - #### setVisibilityFlags

          public void setVisibilityFlags​(boolean[] valueArray)

      This method sets all of the visibility flags
      Parameters:
        `valueArray` - A boolean array (boolean[]) containing one cell for each annotation type (right now indices [1]-[18]) and one cell to use to disable the use of the flags altogether (index [0])

    - #### setVisibilityFlagsEnabled

          public void setVisibilityFlagsEnabled​(boolean value)

      This method enables or disables the use of the visibility flags altogether.
      Parameters:
        `value` - A boolean which enables or disables the visibility flag usage