org.ka2ddo.yaac.gui
Class MainFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by org.ka2ddo.yaac.gui.MainFrame
All Implemented Interfaces:
java.awt.event.ComponentListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants, GuiIfc, ShutdownHandler, GpsDataListener, PortMgmtListener, PrintableView

public class MainFrame
extends javax.swing.JFrame
implements GpsDataListener, PortMgmtListener, ShutdownHandler, PrintableView, GuiIfc, java.awt.event.ComponentListener

This class defines the main window of the default GUI for YAAC.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Nested classes/interfaces inherited from interface org.ka2ddo.yaac.core.GuiIfc
GuiIfc.MessagingParams, GuiIfc.OsmImportParams, GuiIfc.TileDownloadParams
 
Field Summary
 OSMLayer osmLayer
          The layer that draws OpenStreetMap-based roads, water bodies, etc., on the map.
 RasterMapOverlay rasterMapOverlay
          The layer the draws raster image overlays on the map.
 StationRenderer stationRenderer
          The layer that draws APRS Stations and Objects on the map, along with decorations related to those Stations and Objects (such as movement tracks, status color codes, labels, AttentionAlert pointers, etc.
 TopoLayer topoLayer
          The layer that draws topographic (terrain elevation) contour lines and colored regions on the map.
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
MainFrame(java.io.File baseDir)
          Create the main window of YAAC, containing the geographic map, the menu bar, and a few other toolbar controls.
 
Method Summary
 void addSpecificTrackStripe(java.lang.String identifier)
          Add the identifier of a single station or object whose track stripe is to be plotted.
 void approveTacticalSender(java.lang.String originatingCallsign, java.lang.String tacticalMsgText)
          Queue up a request to ask the user whether this TACTICAL message should be accepted and processed.
static void buildMenus(java.util.ArrayList<AbstractMenuAction> actionList, javax.swing.JMenuBar menuBar, java.awt.Window menuContainingWindow)
          Build the contents of a JFrame's JMenuBar.
 javax.swing.JComboBox buildStationComboBox(boolean addStandardAliases, boolean excludeObjects)
          Create a choice widget populated with all the known station callsigns heard by YAAC, sorted in alphanumeric order.
 void checkForUpdates(boolean interactive)
          Check whether a newer release of YAAC is available, displaying status.
 void clearAllSpecificTrackStripes()
          Clear the plotting of all specific station/object track stripes.
 void closeCurrentWindow()
          Close the window that currently has the keyboard focus (if it is part of the YAAC application).
 void componentHidden(java.awt.event.ComponentEvent e)
          Invoked when the component has been made invisible.
 void componentMoved(java.awt.event.ComponentEvent e)
          Invoked when the component's position changes.
 void componentResized(java.awt.event.ComponentEvent e)
          Invoked when the component's size changes.
 void componentShown(java.awt.event.ComponentEvent e)
          Invoked when the component has been made visible.
 void composeWinlinkMessage()
          Display a form to allow transmitting a multi-line email message to someone via the APRS-WinLink gateways.
 void confirmSendBroadcastQuery(java.lang.String confirmTag, java.lang.String query)
          Broadcast a specified global query message after confirming the user really wants to send it.
 void connectToStation()
          Set up a dumb-terminal connection to an old-style packet BBS.
 java.awt.image.RenderedImage copyMap()
          Make a screenshot copy of the current map.
 StatusListener createProgressReporter(java.lang.String title, boolean modal)
          Open whatever the local operating system uses for a progress dialog and return an interface to send progress information to the dialog.
 void displayAttentionAlert(double latitude, double longitude, AX25Message.Precedence precedence)
          Display an AttentionAlert (flashing arrows) on the map for a particular position.
 void displayAttentionAlert(StationState ss)
          Display an AttentionAlert (flashing arrows) on the map for a particular station or object.
 java.lang.Object[] displayHeardByDialog(StationState[] stationsToPickFrom)
          Display a dialog asking for the parameters for a Heard-By (?APRSH) query.
 void displayHelp(java.lang.String startingHelpId, java.lang.Object parentWindow)
          Launch the JavaHelp browser, starting with the help corresponding to the specified help ID
 void displayLocateAmenityDialog()
          Display the Locate Amenity dialog, and handle user input to it.
 void displayLocateLandmarkDialog()
          Display the Locate Landmark dialog, and handle user input to it.
 GuiIfc.MessagingParams displayMessagingDialog(java.util.ArrayList ssList)
          Display a dialog asking the user for the parameters needed to send a text message to another station.
 GuiIfc.OsmImportParams displayOsmImportDialog(java.io.File osmFileDir)
          Ask the user how and where from to import an OpenStreetMap compressed data file.
 void displayOsmMirrorSiteList()
          Display a popup with buttons to launch the user's web browser pointed at any of the major download sites for raw OpenStreetMap data.
 GuiIfc.TileDownloadParams displayOsmTileDownloadDialog(ChangeSet localChangeSet, ChangeSet serverChangeSet)
          Display a dialog asking the user which pre-compiled OSM tiles to download.
 GuiIfc.TileDownloadParams displayTopoTileDownloadDialog(java.io.File tileDir)
          Display a dialog asking the user which SRTM tiles to download.
 void disposeOfSplash(java.lang.Object oSplash)
          Get rid of the splash screen.
 void editTopoColors()
          Invoke an editor for adjusting the colors and elevation thresholds used to render topographic map layers.
 boolean ensureKeystoreIsOpen(boolean dontBlock)
          Test if keystore has been opened with the correct password.
static PrintableView findPrintableView(java.awt.Component c, int depthLeft)
          Search the specified widget and its child widgets for a visible PrintableView.
 java.awt.geom.Point2D getCenter()
          Get the latitude/longitude coordinates of the center of the rendered map.
 double getCenterLatitude()
          Get the latitude of the current center of the map.
 double getCenterLongitude()
          Get the longitude of the current center of the map.
static java.awt.Window getCurrentlyFocusedWindow()
          Determine which YAAC top-level window currently has the keyboard focus.
static javax.swing.ImageIcon getImageIcon(Provider p)
          Load a Provider's image into a usable ImageIcon object.
 KenwoodMessageListTableModel getKenwoodMessageListTableModel()
          Get the singleton KenwoodMessageListTableModel.
 long getLastElapsedPaintTime()
          Return the amount of time (in milliseconds) for the last station render.
 int getLastNumDrawnObjects()
          Return the number of Objects (non-transmitters) rendered in the last station render.
 int getLastNumDrawnStations()
          Return the number of stations (transmitters) rendered in the last station render.
 MapBean getMapBean()
          Get the JavaBean that actually contains the map canvas.
 BasicMapPanel getMapPanel()
          Get the panel containing the rendered map.
 long getMaxAgeDRObject()
          Get the maximum time that dead reckoning will be projected for an object (non-self-transmitter).
 long getMaxAgeDRSpecialObject()
           
 long getMaxAgeDRStation()
          Get the maximum time that dead reckoning will be projected for a station (self-transmitter).
 long getMaxTrackDuration()
          Get the maximum duration of a track stripe in milliseconds.
 int getMessageCount()
          Get the number of APRS Messages collected by the application.
 MessageModel getMessageModel()
          Get the data structure used to cache incoming APRS Messages.
 MouseDelegator getMouseDelegator()
           
 RawPacketTableModel getRawPacketTableModel()
           
 SaveableTable getSaveableTableInView(java.lang.Object c)
          Get the SaveableTable (if any) in the specified view.
 float getScale()
          Get the current scale factor of the map.
 java.awt.Image getTitleBarIcon()
          Get a reference to the Image used as the title bar icon of the main frame.
 void gpsDataUpdated(GPSDistributor distributor, GpsFix currentFix, boolean isLocal, java.lang.String source)
          Do not call.
 void initializeWindowMenu(java.lang.Object item, java.lang.Object view)
          Create the entries on the dynamic Window menu on the menu bar corresponding to every window except the one containing the menu bar.
 void initMainWindowMenuBar()
          Phase 2 of initializing the GUI (stuff that needs the GUI property of the main YAAC object to be already initialized).
 void invokeConfigWizard()
          Start the configuration wizard at its first window.
 void invokeObjectEditor(java.lang.String dialogTitleTag, Message or, int mouseX, int mouseY, ObjectReportTransmitter tx)
          Display the Object editing dialog, possibly initialized with the contents of an existing ObjectReport.
 boolean isAutoLoadMapTiles()
          Report whether map tiles will be auto-downloaded (if the author's website can be reached) for any tiles that have not already been downloaded.
 boolean isDrawAge()
          Report whether the time interval since last receipt of a message from or about a station or object is plotted below the station/object's name.
 boolean isDrawAliasInsteadOfCallsign()
          Report whether alias should be drawn instead of callsign should be drawn for each station/object if an alias is defined for the station/object..
 boolean isDrawAllTrackStripes()
          Indicate whether all moving stations should have track stripes plotted.
 boolean isDrawAlohaCircle()
          Report whether aloha circles (optimal maximum RF transmission range for the local station before causing excessive collisions) are plotted on the map.
 boolean isDrawAmbiguityCircle()
          Report whether a translucent ambiguity circle is drawn behind each station or object to indicate the area over which it could be located, given the precision of the position information reported.
 boolean isDrawCallsign()
          Report whether callsign label should be drawn for each station/object.
 boolean isDrawDeadObjects()
          Report whether Objects that have been "killed" are plotted on the map.
 boolean isDrawDeadReckoning()
          Report whether deadreckoning position updates for moving stations and objects are calculated and the positions offset and deadreckoning vectors plotted when the stations and objecfts are drawn.
 boolean isDrawDF()
          Report whether direction-finding cones are plotted from stations reporting DFS vector information
 boolean isDrawDoubleSizedSymbols()
          Report if symbols are being drawn double-sized.
 boolean isDrawItemStatus()
          Report whether a color-coded "halo" is drawn around each station or object icon indicating its status as one of the APRSdos categories: fixed, mobile, deadreckoned, old, emergency-reporting, locally-controlled Object, or other station's Object.
 boolean isDrawMicEStatusCircles()
          Report whether color-coded circles indicating Mic-E status codes are be drawn around stations reporting those codes.
 boolean isDrawNWSMultiLine()
          Report whether encoded polylines (generally used for National Weather Service severe weather regions) are plotted on the map.
 boolean isDrawRangeCircles()
          Report whether radio range circles are being drawn for stations reporting or implying transmission range limits.
 boolean isDrawSelf()
          Report whether the local station is plotted on the map.
 boolean isDrawSelfLikeOther()
          Report whether local station is drawn like any other station (using its APRS symbol icon) or as crosshairs or a pointer making it obvious where the station is on the map.
 boolean isDrawWeatherAsWeather()
          Report whether weather stations are drawn as old-style weather map circles with a flagged barb indicating wind direction and speed.
 boolean isGraticuleVisible()
          Indicate whether the graticule (latitude/longitude grid lines) are displayed on the map.
 boolean isKeepSpecificallyTrackedStationsOnScreen()
          Report whether the map should auto-pan to keep specifically tracked mobile stations on the map.
 boolean isMapAutoCentered()
          Report whether the map should automatically pan to keep the local station centered on the map.
 boolean isMemoryGCPanelVisible()
          Report the current visibility of the MemoryGCPanel.
 boolean isNightMode()
          Report if the displays are in night mode.
 boolean isShowLabelsInEnglish()
          Report whether map labels should be displayed in English if the default name is in some other locale and OpenStreetMap provides an English translation.
 boolean isShowOnlyRFOnRadioView()
           
 boolean isShowRadioViewOnStartup()
           
 boolean isShowTopoContours()
          Report whether the topographic map should be rendered as contour lines.
 boolean isShowTopoRegions()
          Report whether the topographic map overlay should be displayed as filled regions.
 boolean isShowUnlabeledWays()
          Report if unlabeled and untyped map features should be displayed.
 boolean isSpecificallyTracked(java.lang.String identifier)
          Test if a given identifier is on the tracking list.
 boolean isSpecificallyTracking()
          Test if any identifiers are on the tracking list.
 boolean isViewPrintable(java.lang.Object o, int depthLeft)
          Test if specified GUI view is printable.
 void loadAprsPackets()
          Query the user for a file from which to load saved APRS messages.
 void loadDrawing()
          Load drawing overlay.
 void loadObjectsFromFile()
          Load APRS Object definitions from a user-specified file, using the .pos file format originated by UI-View.
 void loadTacticalNames()
          Load alias names and symbol codes for station callsigns and object names.
 void locateASpecificStation(java.util.ArrayList<StationState> matchList, java.lang.String callsign)
          Locate a specific station on the map window.
static java.awt.GridBagConstraints makeGBC(int x, int y)
          Convenience method to help build GridBagConstraints for any handlers created by the Provider that are laid out with GridBagLayout, creating a cell position for a 1x1 cell with left-aligned contents, weighted equally.
static java.awt.GridBagConstraints makeGBC(int x, int y, int w)
          Convenience method to help build GridBagConstraints for any handlers created by the Provider that are laid out with GridBagLayout, creating a cell position for a 1x1 cell with left-aligned contents, weighted equally.
static java.awt.GridBagConstraints makeGBC(int x, int y, int w, int h)
          Convenience method to help build GridBagConstraints for any handlers created by the Provider that are laid out with GridBagLayout, creating a cell position for a 1x1 cell with left-aligned contents, weighted equally.
 void moveObject(StationState ss, ObjectReport or, MoveObjectListener moveObjectListener)
          Graphically drag a station or object across the map to a new location, updating the object's position appropriately and converting a station to an object if needed.
 StationState pickAStation(java.util.ArrayList<StationState> matchList, java.lang.String titleTag)
          Select one of several stations.
 void portCreated(PortConnector connector)
          Do not call.
 void portDeleted(PortConnector connector)
          Do not call.
 void printThisView()
          Print this PrintableView to the Java printing subsystem.
 void printWindow()
          Print the window that currently has the focus.
 void refresh()
          Force the map to immediately regenerate itself based on current state data.
 void regenerateStations()
          Force the station renderer layer to regenerate its overlay immediately.
 void regenerateTopo()
          Force the topographic layer to regenerate its overlay immediately.
 boolean removeSpecificTrackStripe(java.lang.String identifier)
          Remove the identifier of a single station or object whose track stripe is no longer to be plotted.
 void rotateView(double angleDeg)
           
 void satDataUpdated(GPSDistributor distributor, SatelliteCatalog satCatalog, boolean isLocal, java.lang.String source)
          Do not call.
 void saveAprsPackets()
          Query the user for a file in which to save the current visible set of APRS messages.
 void saveObjectsToFile()
          Save the currently known APRS Objects to a file.
 void saveTacticalNames()
          Save alias names and symbol codes for station callsigns and object names.
 void scheduleToGuiThread(java.lang.Runnable r)
          Schedule a short-running operation that should only occur on the GUI dispatch thread (however the implementing GUI chooses to do it).
 java.io.File selectFileForWrite(java.io.File dir, java.lang.String fileExtensionTag, java.lang.String fileExtension)
          Open a file selection dialog for saving a file.
 int selectOneOf(java.lang.String title, java.lang.String[] choices)
          Create a popup dialog to ask the user which of several choices should be used.
static int selectOneOf(java.awt.Window window, java.lang.String title, java.lang.String[] choices)
          Create a popup dialog to ask the user which of several choices should be used.
 java.lang.Object selectStation(java.lang.String titleBarTag, boolean stationsOnly)
          Select one station (or object, if allowed) from the currently known list, or allow the user to manually type in a station callsign-SSID, and return the user selected value.
 void sendQRU()
          Broadcast a specified QRU query message after confirming the user really wants to send it.
 void setAutoLoadMapTiles(boolean autoLoadMapTiles)
          Specify whether missing OpenStreetMap imported tiles should be automatically downloaded from the author's website.
 void setCenter(double lat, double lon)
          Set the current center position of the map.
 void setCenter(LatLonPoint p)
          Set the current center position of the map.
 void setDrawAge(boolean drawAge)
          Specify whether the time interval since last receipt of a message from or about a station or object should be plotted below the station/object's name.
 void setDrawAliasInsteadOfCallsign(boolean drawAliasInsteadOfCallsign)
          Specify whether alias should be drawn instead of callsign should be drawn for each station/object if an alias is defined for the station/object..
 void setDrawAllTrackStripes(boolean drawAllTrackStripes)
          Specify whether all moving stations should have track stripes plotted.
 void setDrawAlohaCircle(boolean drawAlohaCircle)
          Specify whether aloha circles (optimal maximum RF transmission range for the local station before causing excessive collisions) should be plotted on the map.
 void setDrawAmbiguityCircle(boolean drawAmbiguityCircle)
          Specify whether a translucent ambiguity circle should be drawn behind each station or object to indicate the area over which it could be located, given the precision of the position information reported.
 void setDrawCallsign(boolean drawCallsign)
          Specify whether callsign labels should be drawn for each station/object.
 void setDrawDeadObjects(boolean drawDeadObjects)
          Specify whether Objects that have been "killed" should still be plotted on the map.
 void setDrawDeadReckoning(boolean drawDeadReckoning)
          Specify whether deadreckoning position updates for moving stations and objects should be calculated and the positions offset and deadreckoning vectors plotted when the stations and objecfts are drawn.
 void setDrawDF(boolean drawDF)
          Specify whether direction-finding cones should be plotted from stations reporting DFS vector information
 void setDrawDoubleSizedSymbols(boolean drawDoubleSizedSymbols)
          Specify whether symbols should be drawn double-sized (32x32 pixels) instead of single-sized (16x16).
 void setDrawItemStatus(boolean drawItemStatus)
          Specify whether a color-coded "halo" should be drawn around each station or object icon indicating its status as one of the APRSdos categories: fixed, mobile, deadreckoned, old, emergency-reporting, locally-controlled Object, or other station's Object.
 void setDrawMicEStatusCircles(boolean drawMicEStatusCircles)
          Specify whether color-coded circles indicating Mic-E status codes should be drawn around stations reporting those codes.
 void setDrawNWSMultiLine(boolean drawNWSMultiLine)
          Specify whether encoded polylines (generally used for National Weather Service severe weather regions) should be plotted on the map.
 void setDrawRangeCircles(boolean drawRangeCircles)
          Specify whether range circles should be drawn around stations reporting or implying transmission range limits.
 void setDrawSelf(boolean drawSelf)
          Specify whether the local station should be plotted on the map.
 void setDrawSelfLikeOther(boolean drawSelfLikeOther)
          Specify whether local station should be drawn like any other station (using its APRS symbol icon) or as crosshairs or a pointer making it obvious where the station is on the map.
 void setDrawToolBarVisibility(boolean isVisible)
          Specify whether the toolbar for the drawing tools should be visible or not.
 void setDrawWeatherAsWeather(boolean drawWeatherAsWeather)
          Specify whether weather stations should be drawn as old-style weather map circles with a flagged barb indicating wind direction and speed.
 void setGraticuleVisible(boolean visible)
          Specify whether the graticule (latitude/longitude grid lines) are displayed on the map.
 void setKeepSpecificallyTrackedStationsOnScreen(boolean keepSpecificallyTrackedStationsOnScreen)
          Specify whether the map should auto-pan to keep specifically tracked mobile stations on the map.
 void setMainFrameTitle()
          Specify the title displayed in the main window's title bar.
 void setMapAutoCentering(boolean isAutoCentered)
          Specify whether the map should automatically pan to keep the local station centered on the map.
 void setMaxAgeDRObject(long maxAgeDRObject)
          Set the maximum time that dead reckoning will be projected for an object (non-self-transmitter).
 void setMaxAgeDRSpecialObject(long maxAgeDRSpecialObject)
           
 void setMaxAgeDRStation(long maxAgeDRStation)
          Set the maximum time that dead reckoning will be projected for a station (self-transmitter).
 void setMaxTrackDuration(long maxTrackDuration)
          Set the maximum duration of a track stripe in milliseconds.
 void setMemoryGCPanelVisible(boolean visible)
          Change the visibility of the memory usage status monitor.
 void setNightMode(boolean isNight)
          Specify that the displays should be in night mode (black backgrounds with white text/lines, for not ruining the night vision of the operator).
 void setScale(float scale)
          Change the scale of the map.
 void setShowLabelsInEnglish(boolean showLabelsInEnglish)
          Specify whether map labels should be displayed in English if the default name is in some other locale and OpenStreetMap provides an English translation.
 void setShowOnlyRFOnRadioView(boolean showOnlyRFOnRadioView)
           
 void setShowRadioViewOnStartup(boolean showRadioViewOnStartup)
           
 void setShowTopoContours(boolean visible)
          Specify whether the topographic map overlay should be rendered as contour lines.
 void setShowTopoRegions(boolean visible)
          Specify whether the topographic map overlay should be rendered as filled region.
 void setShowUnlabeledWays(boolean showUnlabeledWays)
          Specify if unlabeled and untyped map features should be displayed.
 void showAboutDialog()
          Display the About dialog for the YAAC application.
 void showBandwidthMonitor()
          Display a bandwidth monitor for each open I/O port in YAAC.
 void showBulletinBoard()
          Display the window used to display bulletin messages, and compose locally originated bulletins for transmission.
 void showConfigurationDialog()
          Start the regular configuration dialog.
 void showConnectionReport()
          Display outstanding connected (I-frame) AX.25 sessions.
 void showDXReports()
          Show a table view of all DX reports received by this station.
 void showEditBlacklistDialog()
          Generate and display the blacklist editor.
 void showEditFilterDialog(Filter mainFilter, java.lang.String dialogTitleTag)
          Generate and display the filter dialog.
 int showGenericConfirmDialog(java.lang.String titleTag, java.lang.String msg)
          Show a generic retry/skip/cancel dialog, with the specified title and message text.
 void showGenericErrorDialog(java.lang.String titleTag, java.lang.String msg)
          Show a generic error message dialog, with the specified title and message text.
 void showGenericInfoDialog(java.lang.String titleTag, java.lang.String msg)
          Show a generic informational message dialog, with the specified title and message text.
 java.lang.String showGenericInputDialog(java.lang.String titleTag, java.lang.String msg)
          Show a generic text input dialog, with the specified title and message text.
 int showGenericQuestionDialog(java.lang.String titleTag, java.lang.String msg)
          Show a generic yes/no question dialog, with the specified title and message text.
 int showGenericQuestionDialogWithHelp(java.lang.String titleTag, java.lang.String msg)
          Show a generic yes/no question dialog, with the specified title and message text.
 void showGpsStatusDialog()
          Display a monitor of the current status of all GPS receivers connected to YAAC.
 void showHealthMonitorReport()
          Show the current station health reports for all remote stations being monitored.
 void showHeardList()
          Display a report of number of packets received from each station (or about each APRS Object/Item) over 15 minute intervals in the YAAC history.
 void showHistory(StationState ss)
          Display the message history for a specified station or object.
 void showIOFailureDialog(PortConfig config, java.lang.String reason, PortFailureReportListener listener)
          Display an asynchronous non-blocking dialog on the screen to report an I/O error.
 void showKeys()
          Show a table view of the keys used to authenticate and verify the integrity of signed messages.
 void showLayerSelectorTool()
          Display the dialog for selecting which parts of the OpenStreetMap database should be rendered on the map.
 void showLocalObjects()
          Display a table of all Objects/Items being transmitted by this station.
 void showMap()
          Make visible and foreground the map window.
 void showMessageFilterPane()
          Display the window used for receiving and logging filtered text messages.
 void showMessageFrame()
          Open the MessageFrame (window displaying text message traffic in a table) and move it to the foreground.
 void showOutstandingMessages()
          Display the window showing all messages (except beacons and status messages) pending for transmission from the local station.
 void showPluginStore()
          Display a dialog for selecting new officially supported plugins to install.
 void showRadioView(Message msg, java.lang.String identifier)
          Show the dialog that looks like the Kenwood D710 control head APRS display.
 void showRasterMapDialog()
          Display the dialog for managing raster map images overlays on the map window.
 void showRawPacketFrame()
          Display the singleton raw packet window.
 void showReleaseNotes()
          Display the release notes history for the YAAC application.
static java.lang.Object showSplashScreen()
          Display the splash screen while YAAC is starting up.
 void showStationList()
          Show the window listing all the stations and objects heard by this station.
 void showTelemetryReport()
          Display all the current telemetry data heard by this station.
 void showTXIGatedStations()
          Show a table view of the stations currently being Tx I-gated by this station.
 void showWeatherDialog()
          Display a monitor of the current conditions reported by the local weather station attached to YAAC.
 void shutdown()
          Do whatever cleanup this object needs for program shutdown.
 void startChatSession(java.lang.String callsign)
          Open a Chat session window pointed at the specified remote station.
 void startLineOfSight()
          Enable defining a line of sight between two points on the map; the user presses the mouse at the starting point, drags to the ending position, and releases.
 void startLineOfSightFromMe(int mouseX, int mouseY)
          Show the line of sight between this station's position and the position clicked on the map, updating this station's end of the line if it moves.
 void startLineOfSightFromMe(StationState targetStation)
          Show the line of sight between this station's position and the station or object clicked on the map, updating both ends of the line if either moves.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.ka2ddo.yaac.core.GuiIfc
setVisible, toFront
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

stationRenderer

public final StationRenderer stationRenderer
The layer that draws APRS Stations and Objects on the map, along with decorations related to those Stations and Objects (such as movement tracks, status color codes, labels, AttentionAlert pointers, etc.


osmLayer

public final OSMLayer osmLayer
The layer that draws OpenStreetMap-based roads, water bodies, etc., on the map.


topoLayer

public final TopoLayer topoLayer
The layer that draws topographic (terrain elevation) contour lines and colored regions on the map.


rasterMapOverlay

public final RasterMapOverlay rasterMapOverlay
The layer the draws raster image overlays on the map.

Constructor Detail

MainFrame

public MainFrame(java.io.File baseDir)
Create the main window of YAAC, containing the geographic map, the menu bar, and a few other toolbar controls.

Parameters:
baseDir - File referencing the installation directory for the YAAC software
Method Detail

showSplashScreen

public static java.lang.Object showSplashScreen()
Display the splash screen while YAAC is starting up. Note that this is called only by Java Reflection.

Returns:
the GUI object of the splash window

setMainFrameTitle

public void setMainFrameTitle()
Specify the title displayed in the main window's title bar.

Specified by:
setMainFrameTitle in interface GuiIfc

disposeOfSplash

public void disposeOfSplash(java.lang.Object oSplash)
Get rid of the splash screen.

Specified by:
disposeOfSplash in interface GuiIfc
Parameters:
oSplash - Object wrapped around the splash screen

setScale

public void setScale(float scale)
Change the scale of the map.

Specified by:
setScale in interface GuiIfc
Parameters:
scale - new scaling factor

getScale

public float getScale()
Get the current scale factor of the map.

Specified by:
getScale in interface GuiIfc
Returns:
scaling factor

setCenter

public void setCenter(double lat,
                      double lon)
Set the current center position of the map.

Specified by:
setCenter in interface GuiIfc
Parameters:
lat - latitude in degrees North
lon - longitude in degrees East

setCenter

public void setCenter(LatLonPoint p)
Set the current center position of the map.

Specified by:
setCenter in interface GuiIfc
Parameters:
p - LatLonPoint for new center

getCenterLatitude

public double getCenterLatitude()
Get the latitude of the current center of the map.

Specified by:
getCenterLatitude in interface GuiIfc
Returns:
map center latitude in fractional degrees North

getCenterLongitude

public double getCenterLongitude()
Get the longitude of the current center of the map.

Specified by:
getCenterLongitude in interface GuiIfc
Returns:
map center longitude in fractional degrees East

initMainWindowMenuBar

public void initMainWindowMenuBar()
Phase 2 of initializing the GUI (stuff that needs the GUI property of the main YAAC object to be already initialized).

Specified by:
initMainWindowMenuBar in interface GuiIfc

componentHidden

public void componentHidden(java.awt.event.ComponentEvent e)
Invoked when the component has been made invisible.

Specified by:
componentHidden in interface java.awt.event.ComponentListener

componentResized

public void componentResized(java.awt.event.ComponentEvent e)
Invoked when the component's size changes.

Specified by:
componentResized in interface java.awt.event.ComponentListener

componentMoved

public void componentMoved(java.awt.event.ComponentEvent e)
Invoked when the component's position changes.

Specified by:
componentMoved in interface java.awt.event.ComponentListener

componentShown

public void componentShown(java.awt.event.ComponentEvent e)
Invoked when the component has been made visible.

Specified by:
componentShown in interface java.awt.event.ComponentListener

buildMenus

public static void buildMenus(java.util.ArrayList<AbstractMenuAction> actionList,
                              javax.swing.JMenuBar menuBar,
                              java.awt.Window menuContainingWindow)
Build the contents of a JFrame's JMenuBar.

Parameters:
actionList - ArrayList of Actions to be sorted and built into the menu bar
menuBar - JMenuBar to be populated
menuContainingWindow - the Window that contains the menu bar

locateASpecificStation

public void locateASpecificStation(java.util.ArrayList<StationState> matchList,
                                   java.lang.String callsign)
Locate a specific station on the map window.

Specified by:
locateASpecificStation in interface GuiIfc
Parameters:
matchList - ArrayList of StationStates to locate
callsign - String callsign of the located station

displayAttentionAlert

public void displayAttentionAlert(StationState ss)
Display an AttentionAlert (flashing arrows) on the map for a particular station or object.

Specified by:
displayAttentionAlert in interface GuiIfc
Parameters:
ss - StationState of the station or object to highlight

displayAttentionAlert

public void displayAttentionAlert(double latitude,
                                  double longitude,
                                  AX25Message.Precedence precedence)
Display an AttentionAlert (flashing arrows) on the map for a particular position.

Specified by:
displayAttentionAlert in interface GuiIfc
Parameters:
latitude - double fractional degrees North
longitude - double fraction degrees East
precedence - code for color level to use; ROUTINE is used for station locates

getMessageModel

public MessageModel getMessageModel()
Get the data structure used to cache incoming APRS Messages.

Returns:
the MessageModel

getMessageCount

public int getMessageCount()
Get the number of APRS Messages collected by the application.

Specified by:
getMessageCount in interface GuiIfc
Returns:
message count

getKenwoodMessageListTableModel

public KenwoodMessageListTableModel getKenwoodMessageListTableModel()
Get the singleton KenwoodMessageListTableModel.

Returns:
KenwoodMessageListTableModel

invokeConfigWizard

public void invokeConfigWizard()
Start the configuration wizard at its first window.

Specified by:
invokeConfigWizard in interface GuiIfc

showConfigurationDialog

public void showConfigurationDialog()
Start the regular configuration dialog.

Specified by:
showConfigurationDialog in interface GuiIfc

isNightMode

public boolean isNightMode()
Report if the displays are in night mode.

Specified by:
isNightMode in interface GuiIfc
Returns:
boolean true if in night mode

setNightMode

public void setNightMode(boolean isNight)
Specify that the displays should be in night mode (black backgrounds with white text/lines, for not ruining the night vision of the operator).

Specified by:
setNightMode in interface GuiIfc
Parameters:
isNight - boolean true if should be in night mode

isMapAutoCentered

public boolean isMapAutoCentered()
Report whether the map should automatically pan to keep the local station centered on the map.

Specified by:
isMapAutoCentered in interface GuiIfc
Returns:
boolean true if map should auto-center, false otherwise

setMapAutoCentering

public void setMapAutoCentering(boolean isAutoCentered)
Specify whether the map should automatically pan to keep the local station centered on the map.

Specified by:
setMapAutoCentering in interface GuiIfc
Parameters:
isAutoCentered - boolean true if map should auto-center, false otherwise

refresh

public void refresh()
Force the map to immediately regenerate itself based on current state data.

Specified by:
refresh in interface GuiIfc

regenerateTopo

public void regenerateTopo()
Force the topographic layer to regenerate its overlay immediately.

Specified by:
regenerateTopo in interface GuiIfc

regenerateStations

public void regenerateStations()
Force the station renderer layer to regenerate its overlay immediately.

Specified by:
regenerateStations in interface GuiIfc

getMapBean

public MapBean getMapBean()
Get the JavaBean that actually contains the map canvas.

Returns:
MapBean

getMapPanel

public BasicMapPanel getMapPanel()
Get the panel containing the rendered map.

Returns:
BasicMapPanel

getCenter

public java.awt.geom.Point2D getCenter()
Get the latitude/longitude coordinates of the center of the rendered map.

Returns:
Point2D containing the latitude (Y) and longitude (X) coordinates

gpsDataUpdated

public void gpsDataUpdated(GPSDistributor distributor,
                           GpsFix currentFix,
                           boolean isLocal,
                           java.lang.String source)
Do not call. Listener method used to inform the map bean that the map should be refreshed because the GPS position of the local station has changed.

Specified by:
gpsDataUpdated in interface GpsDataListener
Parameters:
distributor - GPSDistributor containing the current GPS state
currentFix - current GpsFix
isLocal - boolean true if this is GPS data for the local station, false if for a remote GPS receiver
source - String name assigned to remote GPS receiver, or null if for the local receiver

satDataUpdated

public void satDataUpdated(GPSDistributor distributor,
                           SatelliteCatalog satCatalog,
                           boolean isLocal,
                           java.lang.String source)
Do not call. Listener method called when the satellite constellation in use changes (ignored).

Specified by:
satDataUpdated in interface GpsDataListener
Parameters:
distributor - instance of the GPSDistributor
satCatalog - updated SatelliteCatalog instance
isLocal - boolean true if this is GPS data for the local station, false if for a remote GPS receiver
source - String name assigned to remote GPS receiver, or null if for the local receiver

copyMap

public java.awt.image.RenderedImage copyMap()
Make a screenshot copy of the current map.

Returns:
RenderedImage containing the current map panel contents

getTitleBarIcon

public java.awt.Image getTitleBarIcon()
Get a reference to the Image used as the title bar icon of the main frame.

Returns:
Image of the program icon

setDrawToolBarVisibility

public void setDrawToolBarVisibility(boolean isVisible)
Specify whether the toolbar for the drawing tools should be visible or not.

Specified by:
setDrawToolBarVisibility in interface GuiIfc
Parameters:
isVisible - boolean true if draw toolbar should be shown

getMouseDelegator

public MouseDelegator getMouseDelegator()

portCreated

public void portCreated(PortConnector connector)
Do not call. Callback to report that the specified port has been added to the configuration.

Specified by:
portCreated in interface PortMgmtListener
Parameters:
connector - PortConnector that was added

portDeleted

public void portDeleted(PortConnector connector)
Do not call. Callback to report that the specified port has been removed from the configuration..

Specified by:
portDeleted in interface PortMgmtListener
Parameters:
connector - PortConnector that was removed

shutdown

public void shutdown()
Do whatever cleanup this object needs for program shutdown.

Specified by:
shutdown in interface GuiIfc
Specified by:
shutdown in interface ShutdownHandler

createProgressReporter

public StatusListener createProgressReporter(java.lang.String title,
                                             boolean modal)
Open whatever the local operating system uses for a progress dialog and return an interface to send progress information to the dialog.

Specified by:
createProgressReporter in interface GuiIfc
Parameters:
title - already-localized title String for the dialog
modal - whether the dialog should be application-modal or modeless
Returns:
StatusListener to use for sending progress reports to the dialog

initializeWindowMenu

public void initializeWindowMenu(java.lang.Object item,
                                 java.lang.Object view)
Create the entries on the dynamic Window menu on the menu bar corresponding to every window except the one containing the menu bar.

Specified by:
initializeWindowMenu in interface GuiIfc
Parameters:
item - JMenuItem corresponding to the Window menu
view - RootPaneContainer containing the menu bar

showGenericErrorDialog

public void showGenericErrorDialog(java.lang.String titleTag,
                                   java.lang.String msg)
Show a generic error message dialog, with the specified title and message text.

Specified by:
showGenericErrorDialog in interface GuiIfc
Parameters:
titleTag - String tag to look up locale-specific dialog title
msg - already-localized and variable-substituted error message text String

showGenericInfoDialog

public void showGenericInfoDialog(java.lang.String titleTag,
                                  java.lang.String msg)
Show a generic informational message dialog, with the specified title and message text.

Specified by:
showGenericInfoDialog in interface GuiIfc
Parameters:
titleTag - String tag to look up locale-specific dialog title
msg - already-localized and variable-substituted error message text String

showGenericQuestionDialog

public int showGenericQuestionDialog(java.lang.String titleTag,
                                     java.lang.String msg)
Show a generic yes/no question dialog, with the specified title and message text.

Specified by:
showGenericQuestionDialog in interface GuiIfc
Parameters:
titleTag - String tag to look up locale-specific dialog title
msg - already-localized and variable-substituted error message text String
Returns:
0 for Yes, 1 for No, -1 for dialog closed without an explicit answer

showGenericQuestionDialogWithHelp

public int showGenericQuestionDialogWithHelp(java.lang.String titleTag,
                                             java.lang.String msg)
Show a generic yes/no question dialog, with the specified title and message text.

Specified by:
showGenericQuestionDialogWithHelp in interface GuiIfc
Parameters:
titleTag - String tag to look up locale-specific dialog title
msg - already-localized and variable-substituted error message text String
Returns:
0 for Yes, 1 for No, 2 for Help, -1 for dialog closed without an explicit answer

showGenericConfirmDialog

public int showGenericConfirmDialog(java.lang.String titleTag,
                                    java.lang.String msg)
Show a generic retry/skip/cancel dialog, with the specified title and message text.

Specified by:
showGenericConfirmDialog in interface GuiIfc
Parameters:
titleTag - String tag to look up locale-specific dialog title
msg - already-localized and variable-substituted error message text String
Returns:
0 for Retry, 1 for Skip, 2 for Cancel, -1 for dialog closed without an explicit answer

showGenericInputDialog

public java.lang.String showGenericInputDialog(java.lang.String titleTag,
                                               java.lang.String msg)
Show a generic text input dialog, with the specified title and message text.

Specified by:
showGenericInputDialog in interface GuiIfc
Parameters:
titleTag - String tag to look up locale-specific dialog title
msg - already-localized and variable-substituted error message text String
Returns:
String text entered by user, or null to indicate dialog was closed without text entry

getImageIcon

public static javax.swing.ImageIcon getImageIcon(Provider p)
Load a Provider's image into a usable ImageIcon object.

Parameters:
p - Provider to specify the image relative path
Returns:
ImageIcon of the Provider's specified image, or null if the Provider does not specify an icon image

showAboutDialog

public void showAboutDialog()
Display the About dialog for the YAAC application.

Specified by:
showAboutDialog in interface GuiIfc

showReleaseNotes

public void showReleaseNotes()
Display the release notes history for the YAAC application. Note this fetches the release notes over the Internet, so the notes may show changes in the future of the currently running build (if it hasn't been upgraded to the latest released build yet).

Specified by:
showReleaseNotes in interface GuiIfc

getSaveableTableInView

public SaveableTable getSaveableTableInView(java.lang.Object c)
Get the SaveableTable (if any) in the specified view.

Specified by:
getSaveableTableInView in interface GuiIfc
Parameters:
c - top-level window or view to be tested
Returns:
SaveableTable object in the view, or null if there isn't a SaveableTable in the view

buildStationComboBox

public javax.swing.JComboBox buildStationComboBox(boolean addStandardAliases,
                                                  boolean excludeObjects)
Create a choice widget populated with all the known station callsigns heard by YAAC, sorted in alphanumeric order.

Parameters:
addStandardAliases - boolean true if standard service aliases should be prefixed to the list of station callsigns
excludeObjects - boolean true if entries that only appear as Objects or Items should be excluded
Returns:
editable JComboBox whose model is loaded with the currently known callsigns

selectStation

public java.lang.Object selectStation(java.lang.String titleBarTag,
                                      boolean stationsOnly)
Select one station (or object, if allowed) from the currently known list, or allow the user to manually type in a station callsign-SSID, and return the user selected value.

Specified by:
selectStation in interface GuiIfc
Parameters:
titleBarTag - String tag for localized title to display in popup dialog
stationsOnly - boolean true if entries appearing only as Objects/Items should be excluded from the pick list
Returns:
String if user manually entered, StationState if selected from the pick list, or null if user cancelled the operation

selectOneOf

public int selectOneOf(java.lang.String title,
                       java.lang.String[] choices)
Create a popup dialog to ask the user which of several choices should be used.

Specified by:
selectOneOf in interface GuiIfc
Parameters:
title - String title to display in dialog box title
choices - array of String choices to choose from
Returns:
index of selected choice, or -1 if the dialog was cancelled without selecting a choice

selectOneOf

public static int selectOneOf(java.awt.Window window,
                              java.lang.String title,
                              java.lang.String[] choices)
Create a popup dialog to ask the user which of several choices should be used.

Parameters:
window - Window to parent the displayed dialog
title - String title to display in dialog box title
choices - array of String choices to choose from
Returns:
index of selected choice, or -1 if the dialog was cancelled without selecting a choice

makeGBC

public static java.awt.GridBagConstraints makeGBC(int x,
                                                  int y)
Convenience method to help build GridBagConstraints for any handlers created by the Provider that are laid out with GridBagLayout, creating a cell position for a 1x1 cell with left-aligned contents, weighted equally.

Parameters:
x - int value to use for gridx
y - int value to use for gridy
Returns:
GridBagConstraints

makeGBC

public static java.awt.GridBagConstraints makeGBC(int x,
                                                  int y,
                                                  int w)
Convenience method to help build GridBagConstraints for any handlers created by the Provider that are laid out with GridBagLayout, creating a cell position for a 1x1 cell with left-aligned contents, weighted equally.

Parameters:
x - int value to use for gridx
y - int value to use for gridy
w - int value to use for gridwidth
Returns:
GridBagConstraints

makeGBC

public static java.awt.GridBagConstraints makeGBC(int x,
                                                  int y,
                                                  int w,
                                                  int h)
Convenience method to help build GridBagConstraints for any handlers created by the Provider that are laid out with GridBagLayout, creating a cell position for a 1x1 cell with left-aligned contents, weighted equally.

Parameters:
x - int value to use for gridx
y - int value to use for gridy
w - int value to use for gridwidth
h - int value to use for gridheight
Returns:
GridBagConstraints

loadAprsPackets

public void loadAprsPackets()
Query the user for a file from which to load saved APRS messages.

Specified by:
loadAprsPackets in interface GuiIfc

saveAprsPackets

public void saveAprsPackets()
Query the user for a file in which to save the current visible set of APRS messages.

Specified by:
saveAprsPackets in interface GuiIfc

displayOsmMirrorSiteList

public void displayOsmMirrorSiteList()
Display a popup with buttons to launch the user's web browser pointed at any of the major download sites for raw OpenStreetMap data.

Specified by:
displayOsmMirrorSiteList in interface GuiIfc

displayOsmImportDialog

public GuiIfc.OsmImportParams displayOsmImportDialog(java.io.File osmFileDir)
Ask the user how and where from to import an OpenStreetMap compressed data file.

Specified by:
displayOsmImportDialog in interface GuiIfc
Parameters:
osmFileDir - File pointing at the directory to initially look for importable OSM data files
Returns:
null if user cancelled the request, or an OsmImportParams object containing the import parameters

displayOsmTileDownloadDialog

public GuiIfc.TileDownloadParams displayOsmTileDownloadDialog(ChangeSet localChangeSet,
                                                              ChangeSet serverChangeSet)
Display a dialog asking the user which pre-compiled OSM tiles to download.

Specified by:
displayOsmTileDownloadDialog in interface GuiIfc
Parameters:
localChangeSet - the OSM ChangeSet of the last data downloaded or imported here (or null if OSM data was never installed)
serverChangeSet - the OSM ChangeSet currently available on the YAAC website
Returns:
null if the user cancelled the request, or a TileDownloadParams structure containing the needed parameters for the download

displayTopoTileDownloadDialog

public GuiIfc.TileDownloadParams displayTopoTileDownloadDialog(java.io.File tileDir)
Display a dialog asking the user which SRTM tiles to download.

Specified by:
displayTopoTileDownloadDialog in interface GuiIfc
Parameters:
tileDir - File pointing at the directory where tiles are kept
Returns:
null if the user cancelled the request, or a TileDownloadParams structure containing the needed parameters for the download

selectFileForWrite

public java.io.File selectFileForWrite(java.io.File dir,
                                       java.lang.String fileExtensionTag,
                                       java.lang.String fileExtension)
Open a file selection dialog for saving a file.

Specified by:
selectFileForWrite in interface GuiIfc
Parameters:
dir - File for the initial directory
fileExtensionTag - String tag for looking up localized string of file type description
fileExtension - String file type
Returns:
selected File to save the content to, or null if cancelled

showRawPacketFrame

public void showRawPacketFrame()
Display the singleton raw packet window.

Specified by:
showRawPacketFrame in interface GuiIfc

showMessageFrame

public void showMessageFrame()
Open the MessageFrame (window displaying text message traffic in a table) and move it to the foreground. This may be called from any thread (not just the GUI dispatch thread).

Specified by:
showMessageFrame in interface GuiIfc

showMessageFilterPane

public void showMessageFilterPane()
Display the window used for receiving and logging filtered text messages. Intended to support proposed field event logging as described in http://aprs.org/aprsevent.html

Specified by:
showMessageFilterPane in interface GuiIfc

showBulletinBoard

public void showBulletinBoard()
Display the window used to display bulletin messages, and compose locally originated bulletins for transmission.

Specified by:
showBulletinBoard in interface GuiIfc

showOutstandingMessages

public void showOutstandingMessages()
Display the window showing all messages (except beacons and status messages) pending for transmission from the local station.

Specified by:
showOutstandingMessages in interface GuiIfc

showBandwidthMonitor

public void showBandwidthMonitor()
Display a bandwidth monitor for each open I/O port in YAAC.

Specified by:
showBandwidthMonitor in interface GuiIfc

showGpsStatusDialog

public void showGpsStatusDialog()
Display a monitor of the current status of all GPS receivers connected to YAAC.

Specified by:
showGpsStatusDialog in interface GuiIfc

showWeatherDialog

public void showWeatherDialog()
Display a monitor of the current conditions reported by the local weather station attached to YAAC.

Specified by:
showWeatherDialog in interface GuiIfc

showLocalObjects

public void showLocalObjects()
Display a table of all Objects/Items being transmitted by this station.

Specified by:
showLocalObjects in interface GuiIfc

showHeardList

public void showHeardList()
Display a report of number of packets received from each station (or about each APRS Object/Item) over 15 minute intervals in the YAAC history.

Specified by:
showHeardList in interface GuiIfc

showLayerSelectorTool

public void showLayerSelectorTool()
Display the dialog for selecting which parts of the OpenStreetMap database should be rendered on the map.

Specified by:
showLayerSelectorTool in interface GuiIfc

showRadioView

public void showRadioView(Message msg,
                          java.lang.String identifier)
Show the dialog that looks like the Kenwood D710 control head APRS display.

Specified by:
showRadioView in interface GuiIfc
Parameters:
msg - a historical APRS Message to display, or null to display current real-time data
identifier - the originating station callsign associated with the historical message (ignored if null msg)

isShowOnlyRFOnRadioView

public boolean isShowOnlyRFOnRadioView()

setShowOnlyRFOnRadioView

public void setShowOnlyRFOnRadioView(boolean showOnlyRFOnRadioView)

isShowRadioViewOnStartup

public boolean isShowRadioViewOnStartup()

setShowRadioViewOnStartup

public void setShowRadioViewOnStartup(boolean showRadioViewOnStartup)

showMap

public void showMap()
Make visible and foreground the map window.

Specified by:
showMap in interface GuiIfc

showStationList

public void showStationList()
Show the window listing all the stations and objects heard by this station.

Specified by:
showStationList in interface GuiIfc

showEditFilterDialog

public void showEditFilterDialog(Filter mainFilter,
                                 java.lang.String dialogTitleTag)
Generate and display the filter dialog.

Specified by:
showEditFilterDialog in interface GuiIfc
Parameters:
mainFilter - the top Filter in the Filter hierarchy
dialogTitleTag - bundle tag for title to display on dialog

showEditBlacklistDialog

public void showEditBlacklistDialog()
Generate and display the blacklist editor.

Specified by:
showEditBlacklistDialog in interface GuiIfc

loadObjectsFromFile

public void loadObjectsFromFile()
Load APRS Object definitions from a user-specified file, using the .pos file format originated by UI-View.

Specified by:
loadObjectsFromFile in interface GuiIfc

saveObjectsToFile

public void saveObjectsToFile()
Save the currently known APRS Objects to a file.

Specified by:
saveObjectsToFile in interface GuiIfc

loadTacticalNames

public void loadTacticalNames()
Load alias names and symbol codes for station callsigns and object names.

Specified by:
loadTacticalNames in interface GuiIfc

saveTacticalNames

public void saveTacticalNames()
Save alias names and symbol codes for station callsigns and object names.

Specified by:
saveTacticalNames in interface GuiIfc

loadDrawing

public void loadDrawing()
Load drawing overlay.

Specified by:
loadDrawing in interface GuiIfc

showHistory

public void showHistory(StationState ss)
Display the message history for a specified station or object.

Specified by:
showHistory in interface GuiIfc
Parameters:
ss - StationState of the desired station or object

showTelemetryReport

public void showTelemetryReport()
Display all the current telemetry data heard by this station.

Specified by:
showTelemetryReport in interface GuiIfc

showHealthMonitorReport

public void showHealthMonitorReport()
Show the current station health reports for all remote stations being monitored.

Specified by:
showHealthMonitorReport in interface GuiIfc

showTXIGatedStations

public void showTXIGatedStations()
Show a table view of the stations currently being Tx I-gated by this station.

Specified by:
showTXIGatedStations in interface GuiIfc

ensureKeystoreIsOpen

public boolean ensureKeystoreIsOpen(boolean dontBlock)
Test if keystore has been opened with the correct password. If it hasn't, prompt the user for the password so the keystore can be opened,

Specified by:
ensureKeystoreIsOpen in interface GuiIfc
Parameters:
dontBlock - boolean true if this method should return immediately without blocking
Returns:
boolean true if the keystore is now open

showKeys

public void showKeys()
Show a table view of the keys used to authenticate and verify the integrity of signed messages.

Specified by:
showKeys in interface GuiIfc

showDXReports

public void showDXReports()
Show a table view of all DX reports received by this station.

Specified by:
showDXReports in interface GuiIfc

showConnectionReport

public void showConnectionReport()
Display outstanding connected (I-frame) AX.25 sessions.

Specified by:
showConnectionReport in interface GuiIfc

moveObject

public void moveObject(StationState ss,
                       ObjectReport or,
                       MoveObjectListener moveObjectListener)
Graphically drag a station or object across the map to a new location, updating the object's position appropriately and converting a station to an object if needed.

Specified by:
moveObject in interface GuiIfc
Parameters:
ss - StationState object describing the station or object
or - ObjectReport to be modified by the move
moveObjectListener - MoveObjectListener to inform when movement is over

composeWinlinkMessage

public void composeWinlinkMessage()
Display a form to allow transmitting a multi-line email message to someone via the APRS-WinLink gateways.

Specified by:
composeWinlinkMessage in interface GuiIfc

connectToStation

public void connectToStation()
Set up a dumb-terminal connection to an old-style packet BBS.

Specified by:
connectToStation in interface GuiIfc

confirmSendBroadcastQuery

public void confirmSendBroadcastQuery(java.lang.String confirmTag,
                                      java.lang.String query)
Broadcast a specified global query message after confirming the user really wants to send it.

Specified by:
confirmSendBroadcastQuery in interface GuiIfc
Parameters:
confirmTag - tag for resource file message for the confirmation query
query - the actual APRS message to send (must be valid according to the APRS protocol specification)

approveTacticalSender

public void approveTacticalSender(java.lang.String originatingCallsign,
                                  java.lang.String tacticalMsgText)
Queue up a request to ask the user whether this TACTICAL message should be accepted and processed. This is expected to be called from a background thread, so the implementor is required to move it to the GUI dispatch thread.

Specified by:
approveTacticalSender in interface GuiIfc
Parameters:
originatingCallsign - callsign String of message originator
tacticalMsgText - String of text message body (the TACTICAL directive)

sendQRU

public void sendQRU()
Broadcast a specified QRU query message after confirming the user really wants to send it. and asking which QRU category to ask for.

Specified by:
sendQRU in interface GuiIfc

showRasterMapDialog

public void showRasterMapDialog()
Display the dialog for managing raster map images overlays on the map window.

Specified by:
showRasterMapDialog in interface GuiIfc

invokeObjectEditor

public void invokeObjectEditor(java.lang.String dialogTitleTag,
                               Message or,
                               int mouseX,
                               int mouseY,
                               ObjectReportTransmitter tx)
Display the Object editing dialog, possibly initialized with the contents of an existing ObjectReport.

Specified by:
invokeObjectEditor in interface GuiIfc
Parameters:
dialogTitleTag - String tag for localized title to display on dialog title bar
or - APRS Message to initialize the editor, or null for creating an object from scratch
mouseX - window X coordinate of mouse click (to generate initial coordinates), or -1 to not init position from map
mouseY - window Y coordinate of mouse click (to generate initial coordinates), or -1 to not init position from map
tx - ObjectReportTransmitter to give any created or updated objects to

showIOFailureDialog

public void showIOFailureDialog(PortConfig config,
                                java.lang.String reason,
                                PortFailureReportListener listener)
Display an asynchronous non-blocking dialog on the screen to report an I/O error. This method should only be called from background threads (such as port I/O handling threads), and not from the AWT dispatch thread.

Specified by:
showIOFailureDialog in interface GuiIfc
Parameters:
config - PortConfig object describing the port with the problem
reason - String describing why the port is down
listener - I/O subsystem that wants to be informed if the user dismisses the dialog

closeCurrentWindow

public void closeCurrentWindow()
Close the window that currently has the keyboard focus (if it is part of the YAAC application).

Specified by:
closeCurrentWindow in interface GuiIfc

pickAStation

public StationState pickAStation(java.util.ArrayList<StationState> matchList,
                                 java.lang.String titleTag)
Select one of several stations.

Specified by:
pickAStation in interface GuiIfc
Parameters:
matchList - ArrayList of StationState objects to pick from
titleTag - String name of resource tag for title of prompting dialog
Returns:
selected StationState, or null if the user cancelled

getCurrentlyFocusedWindow

public static java.awt.Window getCurrentlyFocusedWindow()
Determine which YAAC top-level window currently has the keyboard focus.

Returns:
currently focused Window

getRawPacketTableModel

public RawPacketTableModel getRawPacketTableModel()

scheduleToGuiThread

public void scheduleToGuiThread(java.lang.Runnable r)
Schedule a short-running operation that should only occur on the GUI dispatch thread (however the implementing GUI chooses to do it).

Specified by:
scheduleToGuiThread in interface GuiIfc
Parameters:
r - Runnable to be scheduled as soon as possible on the GUI thread

isViewPrintable

public boolean isViewPrintable(java.lang.Object o,
                               int depthLeft)
Test if specified GUI view is printable.

Specified by:
isViewPrintable in interface GuiIfc
Parameters:
o - Object of view container
depthLeft - number of levels of recursion allowed for the search
Returns:
boolean true if view is printable
See Also:
GuiIfc.printWindow()

findPrintableView

public static PrintableView findPrintableView(java.awt.Component c,
                                              int depthLeft)
Search the specified widget and its child widgets for a visible PrintableView.

Parameters:
c - Component to check
depthLeft - int number of child generations that can still be searched
Returns:
found visible PrintableView, or null if nothing visible in the hierarchy can be printed

printWindow

public void printWindow()
Print the window that currently has the focus.

Specified by:
printWindow in interface GuiIfc
See Also:
isViewPrintable(Object, int)

printThisView

public void printThisView()
Print this PrintableView to the Java printing subsystem. All operations necessary, including finding an appropriate print service, creating some type of print job, and sending the contents to the job, are the responsibility of this method and the methods it calls.

Specified by:
printThisView in interface PrintableView

setMemoryGCPanelVisible

public void setMemoryGCPanelVisible(boolean visible)
Change the visibility of the memory usage status monitor.

Specified by:
setMemoryGCPanelVisible in interface GuiIfc
Parameters:
visible - boolean true if memory status monitor should be visible

isMemoryGCPanelVisible

public boolean isMemoryGCPanelVisible()
Report the current visibility of the MemoryGCPanel.

Specified by:
isMemoryGCPanelVisible in interface GuiIfc
Returns:
boolean true if panel is visible

displayHeardByDialog

public java.lang.Object[] displayHeardByDialog(StationState[] stationsToPickFrom)
Display a dialog asking for the parameters for a Heard-By (?APRSH) query.

Specified by:
displayHeardByDialog in interface GuiIfc
Parameters:
stationsToPickFrom - array of StationState objects specifying the list of stations to choose from, or null to get all currently known stations
Returns:
null if the query was cancelled, or a two-element array specifying the station to query and the station that the queried station might have heard

displayMessagingDialog

public GuiIfc.MessagingParams displayMessagingDialog(java.util.ArrayList ssList)
Display a dialog asking the user for the parameters needed to send a text message to another station.

Specified by:
displayMessagingDialog in interface GuiIfc
Parameters:
ssList - list of stations to populate the list with, or null for entire list of known stations
Returns:
null if the user cancelled the request, or a MessagingParams structure containing the parameters

displayLocateLandmarkDialog

public void displayLocateLandmarkDialog()
Display the Locate Landmark dialog, and handle user input to it.

Specified by:
displayLocateLandmarkDialog in interface GuiIfc

displayLocateAmenityDialog

public void displayLocateAmenityDialog()
Display the Locate Amenity dialog, and handle user input to it.

Specified by:
displayLocateAmenityDialog in interface GuiIfc

startChatSession

public void startChatSession(java.lang.String callsign)
Open a Chat session window pointed at the specified remote station.

Specified by:
startChatSession in interface GuiIfc
Parameters:
callsign - String senderCallsign of the remote station

isDrawAllTrackStripes

public boolean isDrawAllTrackStripes()
Indicate whether all moving stations should have track stripes plotted.

Specified by:
isDrawAllTrackStripes in interface GuiIfc
Returns:
boolean true if all moving stations should have track stripes

setDrawAllTrackStripes

public void setDrawAllTrackStripes(boolean drawAllTrackStripes)
Specify whether all moving stations should have track stripes plotted.

Specified by:
setDrawAllTrackStripes in interface GuiIfc
Parameters:
drawAllTrackStripes - boolean true if all moving stations should have track stripes

clearAllSpecificTrackStripes

public void clearAllSpecificTrackStripes()
Clear the plotting of all specific station/object track stripes.

Specified by:
clearAllSpecificTrackStripes in interface GuiIfc

addSpecificTrackStripe

public void addSpecificTrackStripe(java.lang.String identifier)
Add the identifier of a single station or object whose track stripe is to be plotted.

Specified by:
addSpecificTrackStripe in interface GuiIfc
Parameters:
identifier - String station or object identifier

removeSpecificTrackStripe

public boolean removeSpecificTrackStripe(java.lang.String identifier)
Remove the identifier of a single station or object whose track stripe is no longer to be plotted.

Specified by:
removeSpecificTrackStripe in interface GuiIfc
Parameters:
identifier - String station or object identifier
Returns:
boolean true if identifier was removed

isSpecificallyTracked

public boolean isSpecificallyTracked(java.lang.String identifier)
Test if a given identifier is on the tracking list.

Specified by:
isSpecificallyTracked in interface GuiIfc
Parameters:
identifier - String station or object identifier
Returns:
boolean true if this identifier is marked for track stripe display

isSpecificallyTracking

public boolean isSpecificallyTracking()
Test if any identifiers are on the tracking list.

Specified by:
isSpecificallyTracking in interface GuiIfc
Returns:
boolean true if any stations are specifically tagged for tracking

getMaxTrackDuration

public long getMaxTrackDuration()
Get the maximum duration of a track stripe in milliseconds.

Specified by:
getMaxTrackDuration in interface GuiIfc
Returns:
maximum plotted track duration in milliseconds

setMaxTrackDuration

public void setMaxTrackDuration(long maxTrackDuration)
Set the maximum duration of a track stripe in milliseconds.

Specified by:
setMaxTrackDuration in interface GuiIfc
Parameters:
maxTrackDuration - maximum plotted track duration in milliseconds

isDrawRangeCircles

public boolean isDrawRangeCircles()
Report whether radio range circles are being drawn for stations reporting or implying transmission range limits.

Specified by:
isDrawRangeCircles in interface GuiIfc
Returns:
boolean true if range circles are being drawn

setDrawRangeCircles

public void setDrawRangeCircles(boolean drawRangeCircles)
Specify whether range circles should be drawn around stations reporting or implying transmission range limits.

Specified by:
setDrawRangeCircles in interface GuiIfc
Parameters:
drawRangeCircles - boolean true if range circles should be drawn

isDrawMicEStatusCircles

public boolean isDrawMicEStatusCircles()
Report whether color-coded circles indicating Mic-E status codes are be drawn around stations reporting those codes.

Specified by:
isDrawMicEStatusCircles in interface GuiIfc
Returns:
boolean true if Mic-E status color circles are drawn

setDrawMicEStatusCircles

public void setDrawMicEStatusCircles(boolean drawMicEStatusCircles)
Specify whether color-coded circles indicating Mic-E status codes should be drawn around stations reporting those codes.

Specified by:
setDrawMicEStatusCircles in interface GuiIfc
Parameters:
drawMicEStatusCircles - boolean true if Mic-E status color circles should be drawn

isDrawSelf

public boolean isDrawSelf()
Report whether the local station is plotted on the map.

Specified by:
isDrawSelf in interface GuiIfc
Returns:
boolean true if local station is drawn

setDrawSelf

public void setDrawSelf(boolean drawSelf)
Specify whether the local station should be plotted on the map.

Specified by:
setDrawSelf in interface GuiIfc
Parameters:
drawSelf - boolean true if local station should be drawn

isDrawSelfLikeOther

public boolean isDrawSelfLikeOther()
Report whether local station is drawn like any other station (using its APRS symbol icon) or as crosshairs or a pointer making it obvious where the station is on the map.

Specified by:
isDrawSelfLikeOther in interface GuiIfc
Returns:
boolean true to use APRS symbol, or false to use crosshairs for fixed station or pointer arrowhead for moving station
See Also:
isDrawSelf()

setDrawSelfLikeOther

public void setDrawSelfLikeOther(boolean drawSelfLikeOther)
Specify whether local station should be drawn like any other station (using its APRS symbol icon) or as crosshairs or a pointer making it obvious where the station is on the map.

Specified by:
setDrawSelfLikeOther in interface GuiIfc
Parameters:
drawSelfLikeOther - boolean true to use APRS symbol, or false to use crosshairs for fixed station or pointer arrowhead for moving station
See Also:
setDrawSelf(boolean)

isDrawWeatherAsWeather

public boolean isDrawWeatherAsWeather()
Report whether weather stations are drawn as old-style weather map circles with a flagged barb indicating wind direction and speed.

Specified by:
isDrawWeatherAsWeather in interface GuiIfc
Returns:
boolean true if weather stations should be plotted with weather map symbols, false if using APRS icon

setDrawWeatherAsWeather

public void setDrawWeatherAsWeather(boolean drawWeatherAsWeather)
Specify whether weather stations should be drawn as old-style weather map circles with a flagged barb indicating wind direction and speed.

Specified by:
setDrawWeatherAsWeather in interface GuiIfc
Parameters:
drawWeatherAsWeather - boolean true if weather stations should be plotted with weather map symbols, false if using APRS icon

isDrawAge

public boolean isDrawAge()
Report whether the time interval since last receipt of a message from or about a station or object is plotted below the station/object's name.

Specified by:
isDrawAge in interface GuiIfc
Returns:
boolean true if age is to be plotted

setDrawAge

public void setDrawAge(boolean drawAge)
Specify whether the time interval since last receipt of a message from or about a station or object should be plotted below the station/object's name.

Specified by:
setDrawAge in interface GuiIfc
Parameters:
drawAge - boolean true if age is to be plotted

isDrawDeadObjects

public boolean isDrawDeadObjects()
Report whether Objects that have been "killed" are plotted on the map.

Specified by:
isDrawDeadObjects in interface GuiIfc
Returns:
boolean true if "killed" Objects are plotted

setDrawDeadObjects

public void setDrawDeadObjects(boolean drawDeadObjects)
Specify whether Objects that have been "killed" should still be plotted on the map.

Specified by:
setDrawDeadObjects in interface GuiIfc
Parameters:
drawDeadObjects - boolean true if "killed" Objects should be plotted

isDrawAlohaCircle

public boolean isDrawAlohaCircle()
Report whether aloha circles (optimal maximum RF transmission range for the local station before causing excessive collisions) are plotted on the map.

Specified by:
isDrawAlohaCircle in interface GuiIfc
Returns:
boolean true if aloha circles are drawn

setDrawAlohaCircle

public void setDrawAlohaCircle(boolean drawAlohaCircle)
Specify whether aloha circles (optimal maximum RF transmission range for the local station before causing excessive collisions) should be plotted on the map. Note these will only appear if the local station has RF ports that can have collisions.

Specified by:
setDrawAlohaCircle in interface GuiIfc
Parameters:
drawAlohaCircle - boolean true if aloha circles should be drawn

isDrawItemStatus

public boolean isDrawItemStatus()
Report whether a color-coded "halo" is drawn around each station or object icon indicating its status as one of the APRSdos categories: fixed, mobile, deadreckoned, old, emergency-reporting, locally-controlled Object, or other station's Object.

Specified by:
isDrawItemStatus in interface GuiIfc
Returns:
boolean true if status halo is drawm
See Also:
StationState.SpecialState

setDrawItemStatus

public void setDrawItemStatus(boolean drawItemStatus)
Specify whether a color-coded "halo" should be drawn around each station or object icon indicating its status as one of the APRSdos categories: fixed, mobile, deadreckoned, old, emergency-reporting, locally-controlled Object, or other station's Object.

Specified by:
setDrawItemStatus in interface GuiIfc
Parameters:
drawItemStatus - boolean true if status halo should be drawm
See Also:
StationState.SpecialState

isDrawAmbiguityCircle

public boolean isDrawAmbiguityCircle()
Report whether a translucent ambiguity circle is drawn behind each station or object to indicate the area over which it could be located, given the precision of the position information reported.

Specified by:
isDrawAmbiguityCircle in interface GuiIfc
Returns:
boolean true if ambiguity circles are plotted

setDrawAmbiguityCircle

public void setDrawAmbiguityCircle(boolean drawAmbiguityCircle)
Specify whether a translucent ambiguity circle should be drawn behind each station or object to indicate the area over which it could be located, given the precision of the position information reported.

Specified by:
setDrawAmbiguityCircle in interface GuiIfc
Parameters:
drawAmbiguityCircle - boolean true if ambiguity circles should be plotted

isDrawDeadReckoning

public boolean isDrawDeadReckoning()
Report whether deadreckoning position updates for moving stations and objects are calculated and the positions offset and deadreckoning vectors plotted when the stations and objecfts are drawn.

Specified by:
isDrawDeadReckoning in interface GuiIfc
Returns:
boolean true if deadreckoning is plotted

setDrawDeadReckoning

public void setDrawDeadReckoning(boolean drawDeadReckoning)
Specify whether deadreckoning position updates for moving stations and objects should be calculated and the positions offset and deadreckoning vectors plotted when the stations and objecfts are drawn.

Specified by:
setDrawDeadReckoning in interface GuiIfc
Parameters:
drawDeadReckoning - boolean true if deadreckoning should be plotted

getMaxAgeDRStation

public long getMaxAgeDRStation()
Get the maximum time that dead reckoning will be projected for a station (self-transmitter).

Specified by:
getMaxAgeDRStation in interface GuiIfc
Returns:
maximum dead reckon interval in milliseconds

setMaxAgeDRStation

public void setMaxAgeDRStation(long maxAgeDRStation)
Set the maximum time that dead reckoning will be projected for a station (self-transmitter).

Specified by:
setMaxAgeDRStation in interface GuiIfc
Parameters:
maxAgeDRStation - maximum dead reckon interval in milliseconds

getMaxAgeDRObject

public long getMaxAgeDRObject()
Get the maximum time that dead reckoning will be projected for an object (non-self-transmitter).

Specified by:
getMaxAgeDRObject in interface GuiIfc
Returns:
maximum dead reckon interval in milliseconds

setMaxAgeDRObject

public void setMaxAgeDRObject(long maxAgeDRObject)
Set the maximum time that dead reckoning will be projected for an object (non-self-transmitter).

Specified by:
setMaxAgeDRObject in interface GuiIfc
Parameters:
maxAgeDRObject - maximum dead reckon interval in milliseconds

getMaxAgeDRSpecialObject

public long getMaxAgeDRSpecialObject()
Specified by:
getMaxAgeDRSpecialObject in interface GuiIfc

setMaxAgeDRSpecialObject

public void setMaxAgeDRSpecialObject(long maxAgeDRSpecialObject)
Specified by:
setMaxAgeDRSpecialObject in interface GuiIfc

isDrawDF

public boolean isDrawDF()
Report whether direction-finding cones are plotted from stations reporting DFS vector information

Specified by:
isDrawDF in interface GuiIfc
Returns:
boolean true if direction-finding cones are drawm

setDrawDF

public void setDrawDF(boolean drawDF)
Specify whether direction-finding cones should be plotted from stations reporting DFS vector information

Specified by:
setDrawDF in interface GuiIfc
Parameters:
drawDF - boolean true if direction-finding cones should be drawm

isDrawNWSMultiLine

public boolean isDrawNWSMultiLine()
Report whether encoded polylines (generally used for National Weather Service severe weather regions) are plotted on the map.

Specified by:
isDrawNWSMultiLine in interface GuiIfc
Returns:
boolean true if multilines are plotted

setDrawNWSMultiLine

public void setDrawNWSMultiLine(boolean drawNWSMultiLine)
Specify whether encoded polylines (generally used for National Weather Service severe weather regions) should be plotted on the map.

Specified by:
setDrawNWSMultiLine in interface GuiIfc
Parameters:
drawNWSMultiLine - boolean true if multilines should be plotted

isDrawCallsign

public boolean isDrawCallsign()
Report whether callsign label should be drawn for each station/object.

Specified by:
isDrawCallsign in interface GuiIfc
Returns:
boolean true if callsign label should be drawn on map

setDrawCallsign

public void setDrawCallsign(boolean drawCallsign)
Specify whether callsign labels should be drawn for each station/object.

Specified by:
setDrawCallsign in interface GuiIfc
Parameters:
drawCallsign - boolean true if callsign label should be drawn on map

isDrawAliasInsteadOfCallsign

public boolean isDrawAliasInsteadOfCallsign()
Report whether alias should be drawn instead of callsign should be drawn for each station/object if an alias is defined for the station/object..

Specified by:
isDrawAliasInsteadOfCallsign in interface GuiIfc
Returns:
boolean true if alias should be drawn instead of callsign

setDrawAliasInsteadOfCallsign

public void setDrawAliasInsteadOfCallsign(boolean drawAliasInsteadOfCallsign)
Specify whether alias should be drawn instead of callsign should be drawn for each station/object if an alias is defined for the station/object..

Specified by:
setDrawAliasInsteadOfCallsign in interface GuiIfc
Parameters:
drawAliasInsteadOfCallsign - boolean true if alias should be drawn instead of callsign

isKeepSpecificallyTrackedStationsOnScreen

public boolean isKeepSpecificallyTrackedStationsOnScreen()
Report whether the map should auto-pan to keep specifically tracked mobile stations on the map.

Specified by:
isKeepSpecificallyTrackedStationsOnScreen in interface GuiIfc
Returns:
boolean true if map should pan to keep tracked stations on the map

setKeepSpecificallyTrackedStationsOnScreen

public void setKeepSpecificallyTrackedStationsOnScreen(boolean keepSpecificallyTrackedStationsOnScreen)
Specify whether the map should auto-pan to keep specifically tracked mobile stations on the map.

Specified by:
setKeepSpecificallyTrackedStationsOnScreen in interface GuiIfc
Parameters:
keepSpecificallyTrackedStationsOnScreen - boolean true if map should pan to keep tracked stations on the map

isDrawDoubleSizedSymbols

public boolean isDrawDoubleSizedSymbols()
Report if symbols are being drawn double-sized.

Specified by:
isDrawDoubleSizedSymbols in interface GuiIfc
Returns:
boolean true if symbols are rendered double-size

setDrawDoubleSizedSymbols

public void setDrawDoubleSizedSymbols(boolean drawDoubleSizedSymbols)
Specify whether symbols should be drawn double-sized (32x32 pixels) instead of single-sized (16x16).

Specified by:
setDrawDoubleSizedSymbols in interface GuiIfc
Parameters:
drawDoubleSizedSymbols - boolean true if symbols should be rendered double-size

isShowUnlabeledWays

public boolean isShowUnlabeledWays()
Report if unlabeled and untyped map features should be displayed.

Specified by:
isShowUnlabeledWays in interface GuiIfc
Returns:
boolean true if unlabeled/untyped map elements should be plotted

setShowUnlabeledWays

public void setShowUnlabeledWays(boolean showUnlabeledWays)
Specify if unlabeled and untyped map features should be displayed.

Specified by:
setShowUnlabeledWays in interface GuiIfc
Parameters:
showUnlabeledWays - boolean true if unlabeled/untyped map elements should be plotted

isShowLabelsInEnglish

public boolean isShowLabelsInEnglish()
Report whether map labels should be displayed in English if the default name is in some other locale and OpenStreetMap provides an English translation.

Specified by:
isShowLabelsInEnglish in interface GuiIfc
Returns:
boolean true if English labels should be used

setShowLabelsInEnglish

public void setShowLabelsInEnglish(boolean showLabelsInEnglish)
Specify whether map labels should be displayed in English if the default name is in some other locale and OpenStreetMap provides an English translation.

Specified by:
setShowLabelsInEnglish in interface GuiIfc
Parameters:
showLabelsInEnglish - boolean true if English labels should be used

isAutoLoadMapTiles

public boolean isAutoLoadMapTiles()
Report whether map tiles will be auto-downloaded (if the author's website can be reached) for any tiles that have not already been downloaded.

Specified by:
isAutoLoadMapTiles in interface GuiIfc
Returns:
boolean true if auto-download is enabled

setAutoLoadMapTiles

public void setAutoLoadMapTiles(boolean autoLoadMapTiles)
Specify whether missing OpenStreetMap imported tiles should be automatically downloaded from the author's website.

Specified by:
setAutoLoadMapTiles in interface GuiIfc
Parameters:
autoLoadMapTiles - boolean true to enable auto-download

isShowTopoContours

public boolean isShowTopoContours()
Report whether the topographic map should be rendered as contour lines.

Specified by:
isShowTopoContours in interface GuiIfc
Returns:
boolean true if topography should be rendered as contour lines

isGraticuleVisible

public boolean isGraticuleVisible()
Indicate whether the graticule (latitude/longitude grid lines) are displayed on the map.

Specified by:
isGraticuleVisible in interface GuiIfc
Returns:
boolean true if graticule is displayed

setGraticuleVisible

public void setGraticuleVisible(boolean visible)
Specify whether the graticule (latitude/longitude grid lines) are displayed on the map.

Specified by:
setGraticuleVisible in interface GuiIfc
Parameters:
visible - boolean true if graticule is displayed

isShowTopoRegions

public boolean isShowTopoRegions()
Report whether the topographic map overlay should be displayed as filled regions.

Specified by:
isShowTopoRegions in interface GuiIfc
Returns:
boolean true if topographic overlay is displayed

setShowTopoRegions

public void setShowTopoRegions(boolean visible)
Specify whether the topographic map overlay should be rendered as filled region. Note this is independent of whether there actually is any topographic data to render.

Specified by:
setShowTopoRegions in interface GuiIfc
Parameters:
visible - boolean true if topographic layer should be rendered as regions

setShowTopoContours

public void setShowTopoContours(boolean visible)
Specify whether the topographic map overlay should be rendered as contour lines. Note this is independent of whether there actually is any topographic data to render.

Specified by:
setShowTopoContours in interface GuiIfc
Parameters:
visible - boolean true if topographic layer should be rendered as contour lines

editTopoColors

public void editTopoColors()
Invoke an editor for adjusting the colors and elevation thresholds used to render topographic map layers.

Specified by:
editTopoColors in interface GuiIfc

startLineOfSight

public void startLineOfSight()
Enable defining a line of sight between two points on the map; the user presses the mouse at the starting point, drags to the ending position, and releases.

Specified by:
startLineOfSight in interface GuiIfc

startLineOfSightFromMe

public void startLineOfSightFromMe(int mouseX,
                                   int mouseY)
Show the line of sight between this station's position and the position clicked on the map, updating this station's end of the line if it moves.

Specified by:
startLineOfSightFromMe in interface GuiIfc
Parameters:
mouseX - int horizontal pixel coordinate in map
mouseY - int vertical pixel coordinate in map

startLineOfSightFromMe

public void startLineOfSightFromMe(StationState targetStation)
Show the line of sight between this station's position and the station or object clicked on the map, updating both ends of the line if either moves.

Specified by:
startLineOfSightFromMe in interface GuiIfc
Parameters:
targetStation - StationState of station or object to trace the path to

displayHelp

public void displayHelp(java.lang.String startingHelpId,
                        java.lang.Object parentWindow)
Launch the JavaHelp browser, starting with the help corresponding to the specified help ID

Specified by:
displayHelp in interface GuiIfc
Parameters:
startingHelpId - String help ID corresponding to an entry in a *.jhm file; null indicates the top of the TOC view, empty string indicates the top of the Index view
parentWindow - window to parent an incarnation of the HelpBroker

checkForUpdates

public void checkForUpdates(boolean interactive)
Check whether a newer release of YAAC is available, displaying status.

Specified by:
checkForUpdates in interface GuiIfc
Parameters:
interactive - boolean true if no-upgrade-needed status should be reported (out-of-date status is always reported)

showPluginStore

public void showPluginStore()
Display a dialog for selecting new officially supported plugins to install.

Specified by:
showPluginStore in interface GuiIfc

rotateView

public void rotateView(double angleDeg)

getLastElapsedPaintTime

public long getLastElapsedPaintTime()
Return the amount of time (in milliseconds) for the last station render.

Specified by:
getLastElapsedPaintTime in interface GuiIfc
Returns:
elapsed time in milliseconds for last StationRenderer run

getLastNumDrawnObjects

public int getLastNumDrawnObjects()
Return the number of Objects (non-transmitters) rendered in the last station render.

Specified by:
getLastNumDrawnObjects in interface GuiIfc
Returns:
count of rendered Objects

getLastNumDrawnStations

public int getLastNumDrawnStations()
Return the number of stations (transmitters) rendered in the last station render.

Specified by:
getLastNumDrawnStations in interface GuiIfc
Returns:
count of rendered stations