Class ObjectEditor

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, ObjectEditorSettingsIfc

public class ObjectEditor extends JPanel implements ObjectEditorSettingsIfc
This class allows a user to create or update the information regarding an Object or Item. Information includes:
  • object name
  • whether object is killed
  • timestamp (Objects only)
  • latitude and longitude
  • symbol table ID and code
  • overlay for symbol (opt)
  • one of:
    • course and speed
    • PHG for the object's antenna
    • radio range (assuming an omni antenna)
    • DF signal strength
    • area object parameters
  • comment
  • QRU group (if needed)
  • beaconing rate for object
  • digipeat path choice(s)
Author:
Andrew Pavlin, KA2DDO
See Also:
  • Constructor Details

    • ObjectEditor

      public ObjectEditor()
      Create an ObjectEditor GUI widget,
  • Method Details

    • setName

      public void setName(String name)
      Set the name of the Object or Item being edited by this editor.
      Overrides:
      setName in class Component
      Parameters:
      name - String name for APRS Object/Item (should be 9 or fewer ASCII characters, but is not checked)
    • setLocation

      public void setLocation(double lat, double lon)
      Set the geographical position of the APRS Object/Item being edited.
      Parameters:
      lat - latitude in fractional degrees North
      lon - longitude in fractional degrees East
    • setAll

      public void setAll(Message msg)
      Initialize all of the editor's sub-widgets from the contents of the specified APRS Message.
      Parameters:
      msg - APRS Message (expected to be an ObjectReport, but other types are accepted for doing takeovers of failed transmitters for PositionReported stations)
    • setAll

      public void setAll(ObjectReport msg)
      Initialize the editor from the contents of an ObjectReport message.
      Parameters:
      msg - ObjectReport whose contents are to be copied into the editor
    • setStillAlive

      public void setStillAlive(boolean alive)
      Specify whether generated Object or Item should specify that the object is still alive.
      Parameters:
      alive - boolean true if Object is still alive
    • setScope

      public void setScope(Scope scope)
      Specify the transmission scope of the generated Object or Item as not transmitted at all, RF only, or allowed to be forwarded to the APRS-IS Internet backbone.
      Parameters:
      scope - desired Scope of transmission
    • getObjectReport

      public ObjectReport getObjectReport()
      Extract the current values in the editor into an APRS ObjectReport. Note this does not check that the editor values are complete and valid before exporting the ObjectReport; the caller is required to confirm validity before calling this method.
      Returns:
      ObjectReport with the current values in the editor
    • isSendable

      public boolean isSendable()
      Test if the current state of the editor would create a sendable ObjectReport record.
      Returns:
      boolean true if enough information has been entered to transmit the current Object data
    • getFastSendRate

      public int getFastSendRate()
      Get the currently configured fast send rate for this object.
      Specified by:
      getFastSendRate in interface ObjectEditorSettingsIfc
      Returns:
      fast send rate in seconds
    • getDecayRatio

      public int getDecayRatio()
      Get the currently configured decay ratio for this object.
      Specified by:
      getDecayRatio in interface ObjectEditorSettingsIfc
      Returns:
      decay ratio
    • getSlowSendRate

      public int getSlowSendRate()
      Get the currently configured slow send rate for this object.
      Specified by:
      getSlowSendRate in interface ObjectEditorSettingsIfc
      Returns:
      slow send rate in seconds
    • showDialog

      public void showDialog(Component parent, String title, ObjectReportTransmitter transmitter)
      Display a non-blocking JDialog with the ObjectEditor panel inside it, and extra buttons to save and cancel the dialog in a footer panel at the bottom.
      Parameters:
      parent - Component that will be the positioning parent of the JDialog
      title - already-localized title String for the JDialog's title bar
      transmitter - the ObjectReportTransmitter callback object to be informed when the editor contents are to be extracted and transmitted; this may be called multiple times if the user presses the Send button to transmit the Object without closing the editor, edits again, and resends