gov.nasa.worldwind.symbology.milstd2525.MilStd2525PointGraphic Maven / Gradle / Ivy
The newest version!
/*
* Copyright (C) 2012 United States Government as represented by the Administrator of the
* National Aeronautics and Space Administration.
* All Rights Reserved.
*/
package gov.nasa.worldwind.symbology.milstd2525;
import gov.nasa.worldwind.avlist.AVListImpl;
import gov.nasa.worldwind.drag.*;
import gov.nasa.worldwind.geom.Position;
import gov.nasa.worldwind.render.*;
import gov.nasa.worldwind.symbology.*;
import gov.nasa.worldwind.symbology.milstd2525.graphics.*;
import gov.nasa.worldwind.util.*;
import java.awt.*;
import java.util.*;
import java.util.List;
/**
* Implementation of MIL-STD-2525 point graphics. Point graphics are rendered in the same way as tactical symbols: by
* drawing an icon at constant screen size.
*
* @author pabercrombie
* @version $Id: MilStd2525PointGraphic.java 560 2012-04-26 16:28:24Z pabercrombie $
*/
public class MilStd2525PointGraphic extends AVListImpl implements MilStd2525TacticalGraphic, TacticalPoint, Draggable
{
// Implementation note: This class wraps an instance of TacticalGraphicSymbol. TacticalGraphicSymbol implements the
// logic for rendering point graphics using the TacticalSymbol base classes. This class adapts the TacticalGraphic
// interface to the TacticalSymbol interface.
/** Symbol used to render this graphic. */
protected TacticalGraphicSymbol symbol;
/** Indicates whether or not the graphic is highlighted. */
protected boolean highlighted;
/** Indicates whether the object is draggable and provides additional information for dragging about this object. */
protected boolean dragEnabled = true;
protected DraggableSupport draggableSupport = null;
/**
* Attributes to apply when the graphic is not highlighted. These attributes override defaults determined by the
* graphic's symbol code.
*/
protected TacticalGraphicAttributes normalAttributes;
/**
* Attributes to apply when the graphic is highlighted. These attributes override defaults determined by the
* graphic's symbol code.
*/
protected TacticalGraphicAttributes highlightAttributes;
/** Current frame timestamp. */
protected long frameTimestamp = -1L;
/** Attributes to use for the current frame. */
protected TacticalSymbolAttributes activeSymbolAttributes = new BasicTacticalSymbolAttributes();
protected static TacticalSymbolAttributes defaultSymbolAttributes = new BasicTacticalSymbolAttributes();
/**
* Create a new point graphic.
*
* @param sidc MIL-STD-2525 SIDC code that identifies the graphic.
*/
public MilStd2525PointGraphic(String sidc)
{
this.symbol = this.createSymbol(sidc);
}
/**
* Create a tactical symbol to render this graphic.
*
* @param sidc Symbol code that identifies the graphic.
*
* @return A new tactical symbol.
*/
protected TacticalGraphicSymbol createSymbol(String sidc)
{
TacticalGraphicSymbol symbol = new TacticalGraphicSymbol(sidc);
symbol.setAttributes(this.activeSymbolAttributes);
symbol.setDelegateOwner(this);
return symbol;
}
/** {@inheritDoc} */
public boolean isVisible()
{
return this.symbol.isVisible();
}
/** {@inheritDoc} */
public void setVisible(boolean visible)
{
this.symbol.setVisible(visible);
}
/** {@inheritDoc} */
public Object getModifier(String modifier)
{
return this.symbol.getModifier(modifier);
}
/** {@inheritDoc} */
public void setModifier(String modifier, Object value)
{
this.symbol.setModifier(modifier, value);
}
/** {@inheritDoc} */
public boolean isShowTextModifiers()
{
return this.symbol.isShowTextModifiers();
}
/** {@inheritDoc} */
public void setShowTextModifiers(boolean showModifiers)
{
this.symbol.setShowTextModifiers(showModifiers);
}
/** {@inheritDoc} */
public boolean isShowGraphicModifiers()
{
return this.symbol.isShowGraphicModifiers();
}
/** {@inheritDoc} */
public void setShowGraphicModifiers(boolean showModifiers)
{
this.symbol.setShowGraphicModifiers(showModifiers);
}
/** {@inheritDoc} */
public boolean isShowLocation()
{
return this.symbol.isShowLocation();
}
/** {@inheritDoc} */
public void setShowLocation(boolean show)
{
this.symbol.setShowLocation(show);
}
/** {@inheritDoc} */
public boolean isShowHostileIndicator()
{
return this.symbol.isShowHostileIndicator();
}
/** {@inheritDoc} */
public void setShowHostileIndicator(boolean show)
{
this.symbol.setShowHostileIndicator(show);
}
/** {@inheritDoc} */
public String getIdentifier()
{
return this.symbol.getIdentifier();
}
/** {@inheritDoc} */
public void setText(String text)
{
this.symbol.setModifier(SymbologyConstants.UNIQUE_DESIGNATION, text);
}
/** {@inheritDoc} */
public String getText()
{
// Get the Unique Designation modifier. If it's an iterable, return the first value.
Object value = this.getModifier(SymbologyConstants.UNIQUE_DESIGNATION);
if (value instanceof String)
{
return (String) value;
}
else if (value instanceof Iterable)
{
Iterator iterator = ((Iterable) value).iterator();
Object o = iterator.hasNext() ? iterator.next() : null;
if (o != null)
return o.toString();
}
return null;
}
/**
* {@inheritDoc}
*
* @return Always returns an Iterable with only one position.
*/
public Iterable extends Position> getPositions()
{
return Arrays.asList(this.getPosition());
}
/**
* {@inheritDoc}
*
* @param positions Control points. This graphic uses only one control point.
*/
public void setPositions(Iterable extends Position> positions)
{
if (positions == null)
{
String message = Logging.getMessage("nullValue.PositionsListIsNull");
Logging.logger().severe(message);
throw new IllegalArgumentException(message);
}
Iterator extends Position> iterator = positions.iterator();
if (!iterator.hasNext())
{
String message = Logging.getMessage("generic.InsufficientPositions");
Logging.logger().severe(message);
throw new IllegalArgumentException(message);
}
this.setPosition(iterator.next());
}
/** {@inheritDoc} */
public TacticalGraphicAttributes getAttributes()
{
return this.normalAttributes;
}
/** {@inheritDoc} */
public void setAttributes(TacticalGraphicAttributes attributes)
{
this.normalAttributes = attributes;
}
/** {@inheritDoc} */
public TacticalGraphicAttributes getHighlightAttributes()
{
return this.highlightAttributes;
}
/** {@inheritDoc} */
public void setHighlightAttributes(TacticalGraphicAttributes attributes)
{
this.highlightAttributes = attributes;
}
/** {@inheritDoc} */
public Offset getLabelOffset()
{
return null; // Does not apply to point graphic
}
/** {@inheritDoc} */
public void setLabelOffset(Offset offset)
{
// Does not apply to point graphic
}
/**
* Indicates a location within the symbol to align with the symbol point. See {@link
* #setOffset(gov.nasa.worldwind.render.Offset) setOffset} for more information.
*
* @return the hot spot controlling the symbol's placement relative to the symbol point. null indicates default
* alignment.
*/
public Offset getOffset()
{
return this.symbol.getOffset();
}
/**
* Specifies a location within the tactical symbol to align with the symbol point. By default, ground symbols are
* aligned at the bottom center of the symbol, and other symbols are aligned to the center of the symbol. {@code
* setOffset(Offset.CENTER)} aligns the center of the symbol with the symbol point, and {@code
* setOffset(Offset.BOTTOM_CENTER)} aligns the center of the bottom edge with the symbol point.
*
* @param offset the hot spot controlling the symbol's placement relative to the symbol point. May be null to
* indicate default alignment.
*/
public void setOffset(Offset offset)
{
this.symbol.setOffset(offset);
}
/** {@inheritDoc} */
public Object getDelegateOwner()
{
// If the application has supplied a delegate owner, return that object. If the owner is this object (the
// default), return null to keep the contract of getDelegateOwner, which specifies that a value of null
// indicates that the graphic itself is used during picking.
Object owner = this.symbol.getDelegateOwner();
return owner != this ? owner : null;
}
/** {@inheritDoc} */
public void setDelegateOwner(Object owner)
{
// Apply new delegate owner if non-null. If the new owner is null, set this object as symbol's delegate owner
// (the default).
if (owner != null)
this.symbol.setDelegateOwner(owner);
else
this.symbol.setDelegateOwner(this);
}
/** {@inheritDoc} */
public UnitsFormat getUnitsFormat()
{
return this.symbol.getUnitsFormat();
}
/** {@inheritDoc} */
public void setUnitsFormat(UnitsFormat unitsFormat)
{
this.symbol.setUnitsFormat(unitsFormat);
}
/** {@inheritDoc} */
public Position getPosition()
{
return this.symbol.getPosition();
}
/** {@inheritDoc} */
public void setPosition(Position position)
{
if (position == null)
{
String message = Logging.getMessage("nullValue.PositionIsNull");
Logging.logger().severe(message);
throw new IllegalArgumentException(message);
}
this.symbol.setPosition(position);
}
/**
* Indicates this symbol's altitude mode. See {@link #setAltitudeMode(int)} for a description of the valid altitude
* modes.
*
* @return this symbol's altitude mode.
*/
public int getAltitudeMode()
{
return this.symbol.getAltitudeMode();
}
/**
* Specifies this graphic's altitude mode. Altitude mode defines how the altitude component of this symbol's
* position is interpreted. Recognized modes are: - WorldWind.CLAMP_TO_GROUND -- this graphic is placed on
* the terrain at the latitude and longitude of its position.
- WorldWind.RELATIVE_TO_GROUND -- this graphic
* is placed above the terrain at the latitude and longitude of its position and the distance specified by its
* elevation.
- WorldWind.ABSOLUTE -- this graphic is placed at its specified position.
*
* This graphic assumes the altitude mode WorldWind.ABSOLUTE if the specified mode is not recognized.
*
* @param altitudeMode this symbol's new altitude mode.
*/
public void setAltitudeMode(int altitudeMode)
{
this.symbol.setAltitudeMode(altitudeMode);
}
////////////////////////////////////////
// MilStd2525TacticalGraphic interface
////////////////////////////////////////
/** {@inheritDoc} */
public String getStatus()
{
return this.symbol.getStatus();
}
/** {@inheritDoc} */
public void setStatus(String value)
{
this.symbol.setStatus(value);
}
/////////////////////////////
// Movable interface
/////////////////////////////
/** {@inheritDoc} */
public Position getReferencePosition()
{
return this.getPosition();
}
/** {@inheritDoc} */
public void move(Position delta)
{
if (delta == null)
{
String msg = Logging.getMessage("nullValue.PositionIsNull");
Logging.logger().severe(msg);
throw new IllegalArgumentException(msg);
}
Position refPos = this.getReferencePosition();
// The reference position is null if this shape has no positions. In this case moving the shape by a
// relative delta is meaningless. Therefore we fail softly by exiting and doing nothing.
if (refPos == null)
return;
this.moveTo(refPos.add(delta));
}
/** {@inheritDoc} */
public void moveTo(Position position)
{
this.symbol.setPosition(position);
}
@Override
public boolean isDragEnabled()
{
return this.dragEnabled;
}
@Override
public void setDragEnabled(boolean enabled)
{
this.dragEnabled = enabled;
}
@Override
public void drag(DragContext dragContext)
{
if (!this.dragEnabled)
return;
if (this.draggableSupport == null)
this.draggableSupport = new DraggableSupport(this, this.getAltitudeMode());
this.doDrag(dragContext);
}
protected void doDrag(DragContext dragContext)
{
this.draggableSupport.dragScreenSizeConstant(dragContext);
}
/////////////////////////////
// Highlightable interface
/////////////////////////////
/** {@inheritDoc} */
public boolean isHighlighted()
{
return this.highlighted;
}
/** {@inheritDoc} */
public void setHighlighted(boolean highlighted)
{
this.highlighted = highlighted;
}
/////////////////////////////
// Rendering
/////////////////////////////
/** {@inheritDoc} */
public void render(DrawContext dc)
{
long timestamp = dc.getFrameTimeStamp();
if (this.frameTimestamp != timestamp)
{
this.determineActiveAttributes();
this.frameTimestamp = timestamp;
}
this.symbol.render(dc);
}
/** Determine active attributes for this frame. */
protected void determineActiveAttributes()
{
// Reset symbol attributes to default before applying overrides.
this.activeSymbolAttributes.copy(defaultSymbolAttributes);
if (this.isHighlighted())
{
TacticalGraphicAttributes highlightAttributes = this.getHighlightAttributes();
// If the application specified overrides to the highlight attributes, then apply the overrides
if (highlightAttributes != null)
{
// Apply overrides specified by application
this.applyAttributesToSymbol(highlightAttributes, this.activeSymbolAttributes);
}
}
else
{
// Apply overrides specified by application
TacticalGraphicAttributes normalAttributes = this.getAttributes();
if (normalAttributes != null)
{
this.applyAttributesToSymbol(normalAttributes, this.activeSymbolAttributes);
}
}
}
/**
* Apply graphic attributes to the symbol.
*
* @param graphicAttributes Tactical graphic attributes to apply to the tactical symbol.
* @param symbolAttributes Symbol attributes to be modified.
*/
protected void applyAttributesToSymbol(TacticalGraphicAttributes graphicAttributes,
TacticalSymbolAttributes symbolAttributes)
{
// Line and area graphics distinguish between interior and outline opacity. Tactical symbols only support one
// opacity, so use the interior opacity.
Double value = graphicAttributes.getInteriorOpacity();
if (value != null)
{
symbolAttributes.setOpacity(value);
}
value = graphicAttributes.getScale();
if (value != null)
{
symbolAttributes.setScale(value);
}
Material material = graphicAttributes.getInteriorMaterial();
symbolAttributes.setInteriorMaterial(material);
Font font = graphicAttributes.getTextModifierFont();
if (font != null)
{
symbolAttributes.setTextModifierFont(font);
}
material = graphicAttributes.getTextModifierMaterial();
if (material != null)
{
symbolAttributes.setTextModifierMaterial(material);
}
}
/**
* Indicates the graphics supported by this class.
*
* @return List of masked SIDC strings that identify graphics that this class supports.
*/
public static List getSupportedGraphics()
{
List graphics = new ArrayList();
graphics.addAll(getTacGrpGraphics());
graphics.addAll(getMetocGraphics());
graphics.addAll(getEmsGraphics());
return graphics;
}
/**
* Indicates the graphics in MIL-STD-2525C Appendix B supported by this class.
*
* @return List of masked SIDC strings that identify graphics that this class supports.
*/
public static List getTacGrpGraphics()
{
return Arrays.asList(
TacGrpSidc.TSK_DSTY,
TacGrpSidc.TSK_ITDT,
TacGrpSidc.TSK_NEUT,
TacGrpSidc.C2GM_GNL_PNT_USW_UH2_DTM,
TacGrpSidc.C2GM_GNL_PNT_USW_UH2_BCON,
TacGrpSidc.C2GM_GNL_PNT_USW_UH2_LCON,
TacGrpSidc.C2GM_GNL_PNT_USW_UH2_SNK,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY_PTNCTR,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY_DIFAR,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY_LOFAR,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY_CASS,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY_DICASS,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY_BT,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY_ANM,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY_VLAD,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY_ATAC,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY_RO,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY_KGP,
TacGrpSidc.C2GM_GNL_PNT_USW_SNBY_EXP,
TacGrpSidc.C2GM_GNL_PNT_USW_SRH,
TacGrpSidc.C2GM_GNL_PNT_USW_SRH_ARA,
TacGrpSidc.C2GM_GNL_PNT_USW_SRH_DIPPSN,
TacGrpSidc.C2GM_GNL_PNT_USW_SRH_CTR,
TacGrpSidc.C2GM_GNL_PNT_REFPNT,
TacGrpSidc.C2GM_GNL_PNT_REFPNT_NAVREF,
TacGrpSidc.C2GM_GNL_PNT_REFPNT_SPLPNT,
TacGrpSidc.C2GM_GNL_PNT_REFPNT_DLRP,
TacGrpSidc.C2GM_GNL_PNT_REFPNT_PIM,
TacGrpSidc.C2GM_GNL_PNT_REFPNT_MRSH,
TacGrpSidc.C2GM_GNL_PNT_REFPNT_WAP,
TacGrpSidc.C2GM_GNL_PNT_REFPNT_CRDRTB,
TacGrpSidc.C2GM_GNL_PNT_REFPNT_PNTINR,
TacGrpSidc.C2GM_GNL_PNT_WPN_AIMPNT,
TacGrpSidc.C2GM_GNL_PNT_WPN_DRPPNT,
TacGrpSidc.C2GM_GNL_PNT_WPN_ENTPNT,
TacGrpSidc.C2GM_GNL_PNT_WPN_GRDZRO,
TacGrpSidc.C2GM_GNL_PNT_WPN_MSLPNT,
TacGrpSidc.C2GM_GNL_PNT_WPN_IMTPNT,
TacGrpSidc.C2GM_GNL_PNT_WPN_PIPNT,
TacGrpSidc.C2GM_GNL_PNT_FRMN,
TacGrpSidc.C2GM_GNL_PNT_HBR,
TacGrpSidc.C2GM_GNL_PNT_HBR_PNTQ,
TacGrpSidc.C2GM_GNL_PNT_HBR_PNTA,
TacGrpSidc.C2GM_GNL_PNT_HBR_PNTY,
TacGrpSidc.C2GM_GNL_PNT_HBR_PNTX,
TacGrpSidc.C2GM_GNL_PNT_RTE,
TacGrpSidc.C2GM_GNL_PNT_RTE_RDV,
TacGrpSidc.C2GM_GNL_PNT_RTE_DVSN,
TacGrpSidc.C2GM_GNL_PNT_RTE_WAP,
TacGrpSidc.C2GM_GNL_PNT_RTE_PIM,
TacGrpSidc.C2GM_GNL_PNT_RTE_PNTR,
TacGrpSidc.C2GM_GNL_PNT_ACTL,
TacGrpSidc.C2GM_GNL_PNT_ACTL_CAP,
TacGrpSidc.C2GM_GNL_PNT_ACTL_ABNEW,
TacGrpSidc.C2GM_GNL_PNT_ACTL_TAK,
TacGrpSidc.C2GM_GNL_PNT_ACTL_ASBWF,
TacGrpSidc.C2GM_GNL_PNT_ACTL_ASBWR,
TacGrpSidc.C2GM_GNL_PNT_ACTL_SUWF,
TacGrpSidc.C2GM_GNL_PNT_ACTL_SUWR,
TacGrpSidc.C2GM_GNL_PNT_ACTL_MIWF,
TacGrpSidc.C2GM_GNL_PNT_ACTL_MIWR,
TacGrpSidc.C2GM_GNL_PNT_ACTL_SKEIP,
TacGrpSidc.C2GM_GNL_PNT_ACTL_TCN,
TacGrpSidc.C2GM_GNL_PNT_ACTL_TMC,
TacGrpSidc.C2GM_GNL_PNT_ACTL_RSC,
TacGrpSidc.C2GM_GNL_PNT_ACTL_RPH,
TacGrpSidc.C2GM_GNL_PNT_ACTL_UA,
TacGrpSidc.C2GM_GNL_PNT_ACTL_VTUA,
TacGrpSidc.C2GM_GNL_PNT_ACTL_ORB,
TacGrpSidc.C2GM_GNL_PNT_ACTL_ORBF8,
TacGrpSidc.C2GM_GNL_PNT_ACTL_ORBRT,
TacGrpSidc.C2GM_GNL_PNT_ACTL_ORBRD,
TacGrpSidc.C2GM_GNL_PNT_ACTPNT,
TacGrpSidc.C2GM_GNL_PNT_ACTPNT_CHKPNT,
TacGrpSidc.C2GM_GNL_PNT_ACTPNT_CONPNT,
TacGrpSidc.C2GM_GNL_PNT_ACTPNT_CRDPNT,
TacGrpSidc.C2GM_GNL_PNT_ACTPNT_DCNPNT,
TacGrpSidc.C2GM_GNL_PNT_ACTPNT_LNKUPT,
TacGrpSidc.C2GM_GNL_PNT_ACTPNT_PSSPNT,
TacGrpSidc.C2GM_GNL_PNT_ACTPNT_RAYPNT,
TacGrpSidc.C2GM_GNL_PNT_ACTPNT_RELPNT,
TacGrpSidc.C2GM_GNL_PNT_ACTPNT_STRPNT,
TacGrpSidc.C2GM_GNL_PNT_ACTPNT_AMNPNT,
TacGrpSidc.C2GM_GNL_PNT_ACTPNT_WAP,
TacGrpSidc.C2GM_GNL_PNT_SCTL,
TacGrpSidc.C2GM_GNL_PNT_SCTL_USV,
TacGrpSidc.C2GM_GNL_PNT_SCTL_USV_RMV,
TacGrpSidc.C2GM_GNL_PNT_SCTL_USV_ASW,
TacGrpSidc.C2GM_GNL_PNT_SCTL_USV_SUW,
TacGrpSidc.C2GM_GNL_PNT_SCTL_USV_MIW,
TacGrpSidc.C2GM_GNL_PNT_SCTL_ASW,
TacGrpSidc.C2GM_GNL_PNT_SCTL_SUW,
TacGrpSidc.C2GM_GNL_PNT_SCTL_MIW,
TacGrpSidc.C2GM_GNL_PNT_SCTL_PKT,
TacGrpSidc.C2GM_GNL_PNT_SCTL_RDV,
TacGrpSidc.C2GM_GNL_PNT_SCTL_RSC,
TacGrpSidc.C2GM_GNL_PNT_SCTL_REP,
TacGrpSidc.C2GM_GNL_PNT_SCTL_NCBTT,
TacGrpSidc.C2GM_GNL_PNT_UCTL,
TacGrpSidc.C2GM_GNL_PNT_UCTL_UUV,
TacGrpSidc.C2GM_GNL_PNT_UCTL_UUV_ASW,
TacGrpSidc.C2GM_GNL_PNT_UCTL_UUV_SUW,
TacGrpSidc.C2GM_GNL_PNT_UCTL_UUV_MIW,
TacGrpSidc.C2GM_GNL_PNT_UCTL_SBSTN,
TacGrpSidc.C2GM_GNL_PNT_UCTL_SBSTN_ASW,
TacGrpSidc.C2GM_DEF_PNT_TGTREF,
TacGrpSidc.C2GM_DEF_PNT_OBSPST,
TacGrpSidc.C2GM_DEF_PNT_OBSPST_CBTPST,
TacGrpSidc.C2GM_DEF_PNT_OBSPST_RECON,
TacGrpSidc.C2GM_DEF_PNT_OBSPST_FWDOP,
TacGrpSidc.C2GM_DEF_PNT_OBSPST_SOP,
TacGrpSidc.C2GM_DEF_PNT_OBSPST_CBRNOP,
TacGrpSidc.C2GM_OFF_PNT_PNTD,
TacGrpSidc.C2GM_AVN_PNT_DAPP,
TacGrpSidc.MOBSU_OBST_ATO_TDTSM_FIXPFD,
TacGrpSidc.MOBSU_OBST_ATO_TDTSM_MVB,
TacGrpSidc.MOBSU_OBST_ATO_TDTSM_MVBPFD,
TacGrpSidc.MOBSU_OBST_BBY,
TacGrpSidc.MOBSU_OBST_MNE_USPMNE,
TacGrpSidc.MOBSU_OBST_MNE_ATMNE,
TacGrpSidc.MOBSU_OBST_MNE_ATMAHD,
TacGrpSidc.MOBSU_OBST_MNE_ATMDIR,
TacGrpSidc.MOBSU_OBST_MNE_APMNE,
TacGrpSidc.MOBSU_OBST_MNE_WAMNE,
TacGrpSidc.MOBSU_OBST_AVN_TWR_LOW,
TacGrpSidc.MOBSU_OBST_AVN_TWR_HIGH,
TacGrpSidc.MOBSU_OBSTBP_CSGSTE_ERP,
TacGrpSidc.MOBSU_SU_ESTOF,
TacGrpSidc.MOBSU_SU_FRT,
TacGrpSidc.MOBSU_SU_SUFSHL,
TacGrpSidc.MOBSU_SU_UGDSHL,
TacGrpSidc.MOBSU_CBRN_NDGZ,
TacGrpSidc.MOBSU_CBRN_FAOTP,
TacGrpSidc.MOBSU_CBRN_REEVNT_BIO,
TacGrpSidc.MOBSU_CBRN_REEVNT_CML,
TacGrpSidc.MOBSU_CBRN_DECONP_USP,
TacGrpSidc.MOBSU_CBRN_DECONP_ALTUSP,
TacGrpSidc.MOBSU_CBRN_DECONP_TRP,
TacGrpSidc.MOBSU_CBRN_DECONP_EQT,
TacGrpSidc.MOBSU_CBRN_DECONP_EQTTRP,
TacGrpSidc.MOBSU_CBRN_DECONP_OPDECN,
TacGrpSidc.MOBSU_CBRN_DECONP_TRGH,
TacGrpSidc.FSUPP_PNT_TGT_PTGT,
TacGrpSidc.FSUPP_PNT_TGT_NUCTGT,
TacGrpSidc.FSUPP_PNT_C2PNT_FSS,
TacGrpSidc.FSUPP_PNT_C2PNT_SCP,
TacGrpSidc.FSUPP_PNT_C2PNT_FP,
TacGrpSidc.FSUPP_PNT_C2PNT_RP,
TacGrpSidc.FSUPP_PNT_C2PNT_HP,
TacGrpSidc.FSUPP_PNT_C2PNT_LP,
TacGrpSidc.CSS_PNT_AEP,
TacGrpSidc.CSS_PNT_CBNP,
TacGrpSidc.CSS_PNT_CCP,
TacGrpSidc.CSS_PNT_CVP,
TacGrpSidc.CSS_PNT_DCP,
TacGrpSidc.CSS_PNT_EPWCP,
TacGrpSidc.CSS_PNT_LRP,
TacGrpSidc.CSS_PNT_MCP,
TacGrpSidc.CSS_PNT_RRRP,
TacGrpSidc.CSS_PNT_ROM,
TacGrpSidc.CSS_PNT_TCP,
TacGrpSidc.CSS_PNT_TTP,
TacGrpSidc.CSS_PNT_UMC,
TacGrpSidc.CSS_PNT_SPT_GNL,
TacGrpSidc.CSS_PNT_SPT_CLS1,
TacGrpSidc.CSS_PNT_SPT_CLS2,
TacGrpSidc.CSS_PNT_SPT_CLS3,
TacGrpSidc.CSS_PNT_SPT_CLS4,
TacGrpSidc.CSS_PNT_SPT_CLS5,
TacGrpSidc.CSS_PNT_SPT_CLS6,
TacGrpSidc.CSS_PNT_SPT_CLS7,
TacGrpSidc.CSS_PNT_SPT_CLS8,
TacGrpSidc.CSS_PNT_SPT_CLS9,
TacGrpSidc.CSS_PNT_SPT_CLS10,
TacGrpSidc.CSS_PNT_AP_ASP,
TacGrpSidc.CSS_PNT_AP_ATP,
TacGrpSidc.OTH_ER_DTHAC,
TacGrpSidc.OTH_ER_PIW,
TacGrpSidc.OTH_ER_DSTVES,
TacGrpSidc.OTH_HAZ_SML,
TacGrpSidc.OTH_HAZ_IB,
TacGrpSidc.OTH_HAZ_OLRG,
TacGrpSidc.OTH_SSUBSR_BTMRTN,
TacGrpSidc.OTH_SSUBSR_BTMRTN_INS,
TacGrpSidc.OTH_SSUBSR_BTMRTN_SBRSOO,
TacGrpSidc.OTH_SSUBSR_BTMRTN_WRKND,
TacGrpSidc.OTH_SSUBSR_BTMRTN_WRKD,
TacGrpSidc.OTH_SSUBSR_MARLFE,
TacGrpSidc.OTH_SSUBSR_SA,
TacGrpSidc.OTH_FIX_ACU,
TacGrpSidc.OTH_FIX_EM,
TacGrpSidc.OTH_FIX_EOP);
}
public static List getMetocGraphics()
{
return Arrays.asList(
MetocSidc.AMPHC_PRS_LOWCTR,
MetocSidc.AMPHC_PRS_LOWCTR_CYC,
MetocSidc.AMPHC_PRS_LOWCTR_TROPLW,
MetocSidc.AMPHC_PRS_HGHCTR,
MetocSidc.AMPHC_PRS_HGHCTR_ACYC,
MetocSidc.AMPHC_PRS_HGHCTR_TROPHG,
MetocSidc.AMPHC_TRB_LIT,
MetocSidc.AMPHC_TRB_MOD,
MetocSidc.AMPHC_TRB_SVR,
MetocSidc.AMPHC_TRB_EXT,
MetocSidc.AMPHC_TRB_MNTWAV,
MetocSidc.AMPHC_ICG_CLR_LIT,
MetocSidc.AMPHC_ICG_CLR_MOD,
MetocSidc.AMPHC_ICG_CLR_SVR,
MetocSidc.AMPHC_ICG_RIME_LIT,
MetocSidc.AMPHC_ICG_RIME_MOD,
MetocSidc.AMPHC_ICG_RIME_SVR,
MetocSidc.AMPHC_ICG_MIX_LIT,
MetocSidc.AMPHC_ICG_MIX_MOD,
MetocSidc.AMPHC_ICG_MIX_SVR,
MetocSidc.AMPHC_WND_CALM,
// MetocSidc.AMPHC_WND_PLT,
MetocSidc.AMPHC_CUDCOV_SYM_SKC,
MetocSidc.AMPHC_CUDCOV_SYM_FEW,
MetocSidc.AMPHC_CUDCOV_SYM_SCT,
MetocSidc.AMPHC_CUDCOV_SYM_BKN,
MetocSidc.AMPHC_CUDCOV_SYM_OVC,
MetocSidc.AMPHC_CUDCOV_SYM_STOPO,
MetocSidc.AMPHC_WTH_RA_INMLIT,
MetocSidc.AMPHC_WTH_RA_INMLIT_CTSLIT,
MetocSidc.AMPHC_WTH_RA_INMMOD,
MetocSidc.AMPHC_WTH_RA_INMMOD_CTSMOD,
MetocSidc.AMPHC_WTH_RA_INMHVY,
MetocSidc.AMPHC_WTH_RA_INMHVY_CTSHVY,
MetocSidc.AMPHC_WTH_FZRA_LIT,
MetocSidc.AMPHC_WTH_FZRA_MODHVY,
MetocSidc.AMPHC_WTH_RASWR_LIT,
MetocSidc.AMPHC_WTH_RASWR_MODHVY,
MetocSidc.AMPHC_WTH_RASWR_TOR,
MetocSidc.AMPHC_WTH_DZ_INMLIT,
MetocSidc.AMPHC_WTH_DZ_INMLIT_CTSLIT,
MetocSidc.AMPHC_WTH_DZ_INMMOD,
MetocSidc.AMPHC_WTH_DZ_INMMOD_CTSMOD,
MetocSidc.AMPHC_WTH_DZ_INMHVY,
MetocSidc.AMPHC_WTH_DZ_INMHVY_CTSHVY,
MetocSidc.AMPHC_WTH_FZDZ_LIT,
MetocSidc.AMPHC_WTH_FZDZ_MODHVY,
MetocSidc.AMPHC_WTH_RASN_RDSLIT,
MetocSidc.AMPHC_WTH_RASN_RDSMH,
MetocSidc.AMPHC_WTH_RASN_SWRLIT,
MetocSidc.AMPHC_WTH_RASN_SWRMOD,
MetocSidc.AMPHC_WTH_SN_INMLIT,
MetocSidc.AMPHC_WTH_SN_INMLIT_CTSLIT,
MetocSidc.AMPHC_WTH_SN_INMMOD,
MetocSidc.AMPHC_WTH_SN_INMMOD_CTSMOD,
MetocSidc.AMPHC_WTH_SN_INMHVY,
MetocSidc.AMPHC_WTH_SN_INMHVY_CTSHVY,
MetocSidc.AMPHC_WTH_SN_BLSNLM,
MetocSidc.AMPHC_WTH_SN_BLSNHY,
MetocSidc.AMPHC_WTH_SG,
MetocSidc.AMPHC_WTH_SSWR_LIT,
MetocSidc.AMPHC_WTH_SSWR_MODHVY,
MetocSidc.AMPHC_WTH_HL_LIT,
MetocSidc.AMPHC_WTH_HL_MODHVY,
MetocSidc.AMPHC_WTH_IC,
MetocSidc.AMPHC_WTH_PE_LIT,
MetocSidc.AMPHC_WTH_PE_MOD,
MetocSidc.AMPHC_WTH_PE_HVY,
MetocSidc.AMPHC_WTH_STMS_TS,
MetocSidc.AMPHC_WTH_STMS_TSLMNH,
MetocSidc.AMPHC_WTH_STMS_TSHVNH,
MetocSidc.AMPHC_WTH_STMS_TSLMWH,
MetocSidc.AMPHC_WTH_STMS_TSHVWH,
MetocSidc.AMPHC_WTH_STMS_FC,
MetocSidc.AMPHC_WTH_STMS_SQL,
MetocSidc.AMPHC_WTH_STMS_LTG,
MetocSidc.AMPHC_WTH_FG_SHWPTH,
MetocSidc.AMPHC_WTH_FG_SHWCTS,
MetocSidc.AMPHC_WTH_FG_PTHY,
MetocSidc.AMPHC_WTH_FG_SKYVSB,
MetocSidc.AMPHC_WTH_FG_SKYOBD,
MetocSidc.AMPHC_WTH_FG_FZSV,
MetocSidc.AMPHC_WTH_FG_FZSNV,
MetocSidc.AMPHC_WTH_MIST,
MetocSidc.AMPHC_WTH_FU,
MetocSidc.AMPHC_WTH_HZ,
MetocSidc.AMPHC_WTH_DTSD_LITMOD,
MetocSidc.AMPHC_WTH_DTSD_SVR,
MetocSidc.AMPHC_WTH_DTSD_DTDVL,
// MetocSidc.AMPHC_WTH_DTSD_BLDTSD,
MetocSidc.AMPHC_WTH_TPLSYS_TROPDN,
MetocSidc.AMPHC_WTH_TPLSYS_TROPSM,
MetocSidc.AMPHC_WTH_TPLSYS_HC,
// MetocSidc.AMPHC_WTH_TPLSYS_TSWADL,
MetocSidc.AMPHC_WTH_VOLERN,
MetocSidc.AMPHC_WTH_VOLERN_VOLASH,
MetocSidc.AMPHC_WTH_TROPLV,
MetocSidc.AMPHC_WTH_FZLVL,
MetocSidc.AMPHC_WTH_POUTAI,
// MetocSidc.AMPHC_STOG_WOSMIC_SUFDRY,
// MetocSidc.AMPHC_STOG_WOSMIC_SUFMST,
// MetocSidc.AMPHC_STOG_WOSMIC_SUFWET,
// MetocSidc.AMPHC_STOG_WOSMIC_SUFFLD,
// MetocSidc.AMPHC_STOG_WOSMIC_SUFFZN,
MetocSidc.AMPHC_STOG_WOSMIC_GLZGRD,
// MetocSidc.AMPHC_STOG_WOSMIC_LDNCGC,
// MetocSidc.AMPHC_STOG_WOSMIC_TLDCGC,
// MetocSidc.AMPHC_STOG_WOSMIC_MLDCGC,
MetocSidc.AMPHC_STOG_WOSMIC_EXTDWC,
MetocSidc.AMPHC_STOG_WSMIC_PDMIC,
// MetocSidc.AMPHC_STOG_WSMIC_CWSNLH,
// MetocSidc.AMPHC_STOG_WSMIC_CSNALH,
// MetocSidc.AMPHC_STOG_WSMIC_ELCSCG,
// MetocSidc.AMPHC_STOG_WSMIC_ULCSCG,
// MetocSidc.AMPHC_STOG_WSMIC_LDSNLH,
// MetocSidc.AMPHC_STOG_WSMIC_LDSALH,
// MetocSidc.AMPHC_STOG_WSMIC_ELDSCG,
// MetocSidc.AMPHC_STOG_WSMIC_ULDSCG,
MetocSidc.AMPHC_STOG_WSMIC_SCGC,
MetocSidc.OCA_ISYS_IB,
MetocSidc.OCA_ISYS_IB_MNY,
MetocSidc.OCA_ISYS_IB_BAS,
MetocSidc.OCA_ISYS_IB_GNL,
MetocSidc.OCA_ISYS_IB_MNYGNL,
MetocSidc.OCA_ISYS_IB_BB,
MetocSidc.OCA_ISYS_IB_MNYBB,
MetocSidc.OCA_ISYS_IB_GWL,
MetocSidc.OCA_ISYS_IB_MNYGWL,
MetocSidc.OCA_ISYS_IB_FBG,
MetocSidc.OCA_ISYS_IB_II,
MetocSidc.OCA_ISYS_ICN_BW,
MetocSidc.OCA_ISYS_ICN_WWRT,
MetocSidc.OCA_ISYS_ICN_IF,
MetocSidc.OCA_ISYS_DYNPRO_CNG,
MetocSidc.OCA_ISYS_DYNPRO_DVG,
MetocSidc.OCA_ISYS_DYNPRO_SHAZ,
MetocSidc.OCA_ISYS_SI,
// MetocSidc.OCA_ISYS_SI_ITOBS,
// MetocSidc.OCA_ISYS_SI_ITEST,
MetocSidc.OCA_ISYS_SI_MPOFI,
MetocSidc.OCA_ISYS_SC,
MetocSidc.OCA_ISYS_SC_SWO,
MetocSidc.OCA_ISYS_TOPFTR_HUM,
MetocSidc.OCA_ISYS_TOPFTR_RFTG,
MetocSidc.OCA_ISYS_TOPFTR_JBB,
MetocSidc.OCA_HYDGRY_DPH_SNDG,
MetocSidc.OCA_HYDGRY_PRTHBR_PRT_BRHSO,
MetocSidc.OCA_HYDGRY_PRTHBR_PRT_BRHSA,
MetocSidc.OCA_HYDGRY_PRTHBR_PRT_ANCRG1,
MetocSidc.OCA_HYDGRY_PRTHBR_PRT_CIP,
MetocSidc.OCA_HYDGRY_PRTHBR_FSG_FSGHBR,
MetocSidc.OCA_HYDGRY_PRTHBR_FSG_FSTK1,
MetocSidc.OCA_HYDGRY_PRTHBR_FAC_LNDPLC,
MetocSidc.OCA_HYDGRY_PRTHBR_FAC_OSLF1,
MetocSidc.OCA_HYDGRY_PRTHBR_FAC_LNDRNG,
MetocSidc.OCA_HYDGRY_PRTHBR_FAC_DOPN,
MetocSidc.OCA_HYDGRY_ATN_BCN,
MetocSidc.OCA_HYDGRY_ATN_BUOY,
MetocSidc.OCA_HYDGRY_ATN_MRK,
MetocSidc.OCA_HYDGRY_ATN_PRH1_PRH2,
MetocSidc.OCA_HYDGRY_ATN_LIT,
MetocSidc.OCA_HYDGRY_ATN_LITVES,
MetocSidc.OCA_HYDGRY_ATN_LITHSE,
MetocSidc.OCA_HYDGRY_DANHAZ_RCKSBM,
MetocSidc.OCA_HYDGRY_DANHAZ_RCKAWD,
MetocSidc.OCA_HYDGRY_DANHAZ_FLGRD1_FLGRD2,
MetocSidc.OCA_HYDGRY_DANHAZ_KLP1_KLP2,
MetocSidc.OCA_HYDGRY_DANHAZ_MNENAV_DBT,
MetocSidc.OCA_HYDGRY_DANHAZ_MNENAV_DEFN,
MetocSidc.OCA_HYDGRY_DANHAZ_SNAG,
MetocSidc.OCA_HYDGRY_DANHAZ_WRK_UCOV,
MetocSidc.OCA_HYDGRY_DANHAZ_WRK_SBM,
MetocSidc.OCA_HYDGRY_DANHAZ_EOTR,
MetocSidc.OCA_HYDGRY_BTMFAT_BTMCHR_SD,
MetocSidc.OCA_HYDGRY_BTMFAT_BTMCHR_MUD,
MetocSidc.OCA_HYDGRY_BTMFAT_BTMCHR_CLAY,
MetocSidc.OCA_HYDGRY_BTMFAT_BTMCHR_SLT,
MetocSidc.OCA_HYDGRY_BTMFAT_BTMCHR_STNE,
MetocSidc.OCA_HYDGRY_BTMFAT_BTMCHR_GVL,
MetocSidc.OCA_HYDGRY_BTMFAT_BTMCHR_PBL,
MetocSidc.OCA_HYDGRY_BTMFAT_BTMCHR_COBL,
MetocSidc.OCA_HYDGRY_BTMFAT_BTMCHR_RCK,
MetocSidc.OCA_HYDGRY_BTMFAT_BTMCHR_CRL,
MetocSidc.OCA_HYDGRY_BTMFAT_BTMCHR_SHE,
MetocSidc.OCA_HYDGRY_BTMFAT_QLFYTM_FNE,
MetocSidc.OCA_HYDGRY_BTMFAT_QLFYTM_MDM,
MetocSidc.OCA_HYDGRY_BTMFAT_QLFYTM_CSE,
MetocSidc.OCA_HYDGRY_TDECUR_H2OTRB,
MetocSidc.OCA_HYDGRY_TDECUR_TDEDP,
MetocSidc.OCA_HYDGRY_TDECUR_TDEG,
MetocSidc.OCA_MMD_FRD,
MetocSidc.OCA_MMD_LCK,
MetocSidc.OCA_MMD_OLRG,
MetocSidc.OCA_MMD_PLE
);
}
public static List getEmsGraphics()
{
return Arrays.asList(
EmsSidc.NATEVT_GEO_AFTSHK,
EmsSidc.NATEVT_GEO_AVL,
EmsSidc.NATEVT_GEO_EQKEPI,
EmsSidc.NATEVT_GEO_LNDSLD,
EmsSidc.NATEVT_GEO_SBSDNC,
EmsSidc.NATEVT_GEO_VLCTHT,
EmsSidc.NATEVT_HYDMET_DRGHT,
EmsSidc.NATEVT_HYDMET_FLD,
EmsSidc.NATEVT_HYDMET_INV,
EmsSidc.NATEVT_HYDMET_TSNMI,
EmsSidc.NATEVT_INFST_BIRD,
EmsSidc.NATEVT_INFST_INSCT,
EmsSidc.NATEVT_INFST_MICROB,
EmsSidc.NATEVT_INFST_REPT,
EmsSidc.NATEVT_INFST_RDNT
);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy