public class MainGui extends java.lang.Object implements GuiIfc, ConnectionRequestListener
Modifier and Type | Class and Description |
---|---|
static class |
MainGui.InboundConnectedSessionListener
This class handles an inbound AX.25 connection as a keyboard-to-keyboard
Chat session, just as in the old packet radio days.
|
static class |
MainGui.LatitudeChangeListener
Listener to update an
AbstractTileUsagePanel when a latitude control changes. |
static class |
MainGui.LongitudeChangeListener
Listener to update an
AbstractTileUsagePanel when a longitude control changes. |
static class |
MainGui.MessagingPanel
This panel prompts for the information needed for sending an APRS text message.
|
static class |
MainGui.OsmSearchCancelAdapter
Handler to shut down search selections when search dialog is closed.
|
static class |
MainGui.OsmSearchResultsTableModel
TableModel for displaying searches for geographical locations as OpenStreetMap Nodes or Ways.
|
static class |
MainGui.PanToFoundMapFeatureListener
Table click listener to pan an associated map to view a selected GenericTaggedNode.
|
static class |
MainGui.RadiusChangeListener
Listener to update an
AbstractTileUsagePanel when a radius control changes. |
static interface |
MainGui.WrapperRowSource<T extends GTNWrapper>
Interface for providing access to table model's entire structore for a
row.
|
GuiIfc.FullMapFunctor, GuiIfc.MapFunctor, GuiIfc.MessagingParams, GuiIfc.OsmImportParams, GuiIfc.TileDownloadParams
Modifier and Type | Field and Description |
---|---|
static double |
MAX_RADIUS_KM
Maximum radius for geographical data downloads, in kilometers.
|
static double |
MIN_RADIUS_KM
Minimum radius for geographical data downloads, in kilometers.
|
Constructor and Description |
---|
MainGui(java.io.File baseDir,
FirstWindow firstWindow)
Create the main GUI manager of YAAC, which will subsequently create the default map view window
and provide the service functions for launching all other display modes and windows.
|
Modifier and Type | Method and Description |
---|---|
boolean |
acceptInbound(ConnState state,
AX25Callsign originator,
Connector port)
Decide whether to accept the specified inbound AX.25 connected-mode session request.
|
void |
addSpecificTrackStripe(java.lang.String identifier)
Add the identifier of a single station or object whose track stripe is to be plotted.
|
void |
analyzeConfiguration()
Analyze the current configuration to report what the station as a whole will do.
|
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.
|
static javax.swing.JPopupMenu |
buildPopupMenu(int mx,
int my,
java.util.List<StationState> matchList,
GuiContentType widgetContentType)
Create a popup menu contextually suitable for the point on the map that was
clicked.
|
static javax.swing.JPopupMenu |
buildPopupMenu(int mx,
int my,
com.bbn.openmap.proj.Projection p,
java.util.List<StationState> matchList,
AX25Frame frame,
GuiContentType widgetContentType)
Create a popup menu contextually suitable for the point on the map that was
clicked.
|
static javax.swing.JPopupMenu |
buildPopupMenu(int mx,
int my,
com.bbn.openmap.proj.Projection p,
java.util.List<StationState> matchList,
AX25Frame frame,
GuiContentType widgetContentType,
java.util.ArrayList<AbstractPopupMenuAction> actionList)
Create a popup menu contextually suitable for the point on the map that was
clicked.
|
static javax.swing.JPopupMenu |
buildPopupMenu(int mx,
int my,
com.bbn.openmap.proj.Projection p,
java.util.List<StationState> matchList,
GuiContentType widgetContentType)
Create a popup menu contextually suitable for the point on the map that was
clicked.
|
javax.swing.JComboBox |
buildStationComboBox(boolean addStandardAliases,
boolean excludeObjects,
boolean addTacticalAliases)
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.
|
static void |
clearAccruedHelpSets()
Clean up cached HelpSet data.
|
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 |
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.
|
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 station or object.
|
void |
displayAttentionAlert(StationState ss)
Display an AttentionAlert (flashing arrows) on the map for a particular station or object.
|
protected static void |
displayChangeSetContents(ChangeSet changeSet,
javax.swing.JTextArea ta) |
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 |
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,
java.lang.String serverTileDir)
Display a dialog asking the user which pre-compiled OSM tiles to download.
|
void |
displayStationSpecificMap(StationState station)
Open a map window centered on the station or object specified.
|
GuiIfc.TileDownloadParams |
displayTopoTileDownloadDialog(java.io.File tileDir)
Display a dialog asking the user which SRTM tiles to download.
|
static void |
disposeOfSplash(java.lang.Object oSplash)
Get rid of the splash screen.
|
void |
editStationNotes(StationState station,
int mouseX,
int mouseY)
Display and edit notes attached to a specific station or object.
|
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.lang.Object |
getCurrentlyFocusedView()
Get the UI platform top-level widget that currently holds the focus.
|
static java.awt.Window |
getCurrentlyFocusedWindow()
Determine which YAAC window currently has the keyboard focus.
|
java.lang.Object |
getCurrentTopLevelView()
Get the UI platform top-level widget that currently holds the focus, skipping child dialogs.
|
GeographicalMap |
getDefaultMap()
Get the default (main) map window.
|
java.awt.Image |
getIconImage()
Get a reference to the Image used as the title bar icon of the main frame.
|
static javax.swing.ImageIcon |
getImageIcon(Provider p)
Load a Provider's image into a usable ImageIcon object.
|
KenwoodMessageListTableModel |
getKenwoodMessageListTableModel()
Get the singleton KenwoodMessageListTableModel.
|
GeoMapIfc |
getMainMap()
Get the primary or default map display.
|
int |
getMessageCount()
Get the number of APRS Messages collected by the application.
|
MessageModel |
getMessageModel()
Get the data structure used to cache incoming APRS Messages.
|
RawPacketTableModel |
getRawPacketTableModel()
Get the raw packet table model managed by this GUI.
|
SaveableTable<?> |
getSaveableTableInView(java.lang.Object c)
Get the SaveableTable (if any) in the specified view.
|
SpeechMapGeneratorIfc |
getSpeechCustomGrammarForCurrentView()
Ask the current window whether it has any overriding grammar for speech command.
|
void |
importConfigFromFile()
Import a configuration from a saved XML file (File->Configure->Export to File)
with appropriate interferences for callsign, directory, and serial port changing.
|
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.
|
void |
invokeObjectEditor(java.lang.String dialogTitleTag,
Message or,
int mouseX,
int mouseY,
ObjectReportTransmitter tx,
Scope scope)
Display the Object editing dialog, possibly initialized with the contents of an existing
ObjectReport.
|
static boolean |
isDontShowAsOld()
Report whether rendering code should display old messages differently.
|
boolean |
isHideRealCallsignWhenHasTactical()
Report if callsign combobox lists should exclude callsigns of stations with
aliases (tactical names).
|
boolean |
isMemoryGCPanelVisible()
Report the current visibility of the MemoryGCPanel.
|
static boolean |
isMousePressed()
Check current state of mouse.
|
boolean |
isNightMode()
Report if the displays are in night mode.
|
boolean |
isShowOnlyRFOnRadioView()
Report if Radio View window should only display packets received from
RF.
|
boolean |
isShowRadioViewOnStartup()
Report if Radio View window should be automatically opened upon startup.
|
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 |
iterateOverAllMaps(GuiIfc.FullMapFunctor functor)
Apply the functor to every currently open map window.
|
void |
iterateOverAllMaps(GuiIfc.MapFunctor functor)
Apply the functor to every currently open map window.
|
void |
loadAprsPackets()
Query the user for a file from which to load saved APRS messages.
|
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.
|
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,
boolean fill)
Create a 1x1 cell GridBagConstraints with left alignment, specifying whether to
fill the cell with the contained widget.
|
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,
boolean fill)
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.
|
StationState |
pickAStation(java.util.List<StationState> matchList,
java.lang.String titleTag)
Select one of several stations.
|
java.lang.Object |
pickObject(java.lang.String titleTag,
java.util.List<java.lang.Object> matchList)
Select one of several objects.
|
void |
printWindow()
Print the window that currently has the focus.
|
void |
registerMapWindow(GeoMapIfc geoMapIfc)
Register a newly opened map widget for updates.
|
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 |
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.lang.String |
selectFile(boolean isDirectory,
java.lang.String promptTag,
java.lang.String fileSelectTag)
Select a file using an O/S-provided file chooser.
|
java.lang.String |
selectFile(boolean isDirectory,
java.lang.String promptTag,
java.lang.String fileSelectTag,
java.lang.String accessoryClassName)
Select a file using an O/S-provided file chooser with an optional panel of additional
controls.
|
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,
boolean inclTacticalAliases)
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.
|
static void |
setDontShowAsOld(boolean dontShowAsOld)
Specify whether rendering code should display old messages differently.
|
void |
setHideRealCallsignWhenHasTactical(boolean hideRealCallsignWhenHasTactical)
Specify if callsign combobox lists should exclude callsigns of stations with
aliases (tactical names).
|
void |
setMainFrameTitle()
Specify the title displayed in the map window's title bar.
|
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 |
setShowOnlyRFOnRadioView(boolean onlyRFOnRadioView)
Specify if Radio View window should only display packets received from
RF.
|
void |
setShowRadioViewOnStartup(boolean showRadioViewOnStartup)
Specify if Radio View window should be automatically opened upon startup.
|
void |
setStationTimeout(StationState station)
Edit the timeout value for the specified station.
|
static int |
setTableColumnsWidths(ColumnSizingTableModel tm,
javax.swing.JTable table)
Use the ColumnSizingTableModel to adjust the size of the table columns.
|
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.
|
java.lang.String |
showCallsignInputDialog(java.lang.String titleTag,
java.lang.String msg)
Show a text input dialog, with the specified title and
message text, that will only take a callsign-SSID value for input.
|
java.lang.String |
showCallsignInputDialog(java.lang.String titleTag,
java.lang.String msg,
java.lang.String oldValue)
Show a text input dialog, with the specified title and
message text, that will only take a callsign-SSID value for input.
|
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 |
showGenericErrorDialogAlreadyLocalized(java.lang.String title,
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.
|
java.lang.String |
showGenericInputDialog(java.lang.String titleTag,
java.lang.String msg,
java.lang.String oldValue)
Show a generic text input dialog, with the specified title and
message text, and initialized text in the text field.
|
java.lang.String |
showGenericPasswordDialog(java.lang.String titleTag,
java.lang.String msg)
Show a generic text input dialog, with the specified title and
message text, where the entered text is masked (as should be done when entering a password).
|
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.
|
int |
showGenericQuestionDialogWithWidget(java.lang.String titleTag,
java.lang.String widgetClassName)
Show a generic yes/no question dialog, with the specified title and
an arbitrary-named fully-qualified class name of a widget to display
as the "message".
|
java.lang.String |
showGenericStringChoiceDialog(java.lang.String titleTag,
java.lang.String msg,
java.lang.String[] choices)
Show a generic choice-box dialog pre-populated with the specified strings, with the specified title and
message text.
|
java.lang.String |
showGenericStringChoiceDialog(java.lang.String titleTag,
java.lang.String msg,
java.lang.String[] choices,
java.lang.String initialChoice)
Show a generic choice-box dialog pre-populated with the specified strings, 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 |
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 |
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 |
showTrackedStationsList()
Display a dialog for viewing and modifying the list of specifically tracked stations.
|
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 |
startChatSession(java.lang.String callsign)
Open a Chat session window pointed at the specified remote station.
|
void |
unregisterMapWindow(GeoMapIfc geoMapIfc)
Unregister a closed map widget from updates.
|
public static final double MIN_RADIUS_KM
public static final double MAX_RADIUS_KM
public MainGui(java.io.File baseDir, FirstWindow firstWindow)
baseDir
- File referencing the installation directory for the YAAC softwarefirstWindow
- FirstWindow enum value indicating which display should come up firstpublic static java.lang.Object showSplashScreen()
public static javax.swing.JPopupMenu buildPopupMenu(int mx, int my, com.bbn.openmap.proj.Projection p, java.util.List<StationState> matchList, GuiContentType widgetContentType)
mx
- screen X coordinate where popup menu was requestedmy
- screen Y coordinate where popup menu was requestedp
- the current Projection for the mapmatchList
- a List of StationStates describing stations and objects
at the point on the map that was clickedwidgetContentType
- GuiContentType of the widget that wants to launch a popup menupublic static javax.swing.JPopupMenu buildPopupMenu(int mx, int my, java.util.List<StationState> matchList, GuiContentType widgetContentType)
mx
- screen X coordinate where popup menu was requestedmy
- screen Y coordinate where popup menu was requestedmatchList
- a List of StationStates describing stations and objects
at the point on the map that was clickedwidgetContentType
- GuiContentType of the widget that wants to launch a popup menu @return a JPopupMenu of the chosen AbstractPopupMenuActions if any were enabled
for this point, or null if no menu items should be enabled herepublic static javax.swing.JPopupMenu buildPopupMenu(int mx, int my, com.bbn.openmap.proj.Projection p, java.util.List<StationState> matchList, AX25Frame frame, GuiContentType widgetContentType)
mx
- screen X coordinate where popup menu was requestedmy
- screen Y coordinate where popup menu was requestedp
- the current Projection for the mapmatchList
- a List of StationStates describing stations and objects
at the point on the map that was clickedframe
- AX25Frame in the selected table row, or null if not relevantwidgetContentType
- GuiContentType of the widget that wants to launch a popup menu @return a JPopupMenu of the chosen AbstractPopupMenuActions if any were enabled
for this point, or null if no menu items should be enabled herepublic static javax.swing.JPopupMenu buildPopupMenu(int mx, int my, com.bbn.openmap.proj.Projection p, java.util.List<StationState> matchList, AX25Frame frame, GuiContentType widgetContentType, java.util.ArrayList<AbstractPopupMenuAction> actionList)
mx
- screen X coordinate where popup menu was requestedmy
- screen Y coordinate where popup menu was requestedp
- the current Projection for the mapmatchList
- a List of StationStates describing stations and objects
at the point on the map that was clickedframe
- AX25Frame in the selected table row, or null if not relevantwidgetContentType
- GuiContentType of the widget that wants to launch a popup menuactionList
- ArrayList of AbstractPopupMenuAction objects to consider for menupublic void setMainFrameTitle()
setMainFrameTitle
in interface GuiIfc
public static void disposeOfSplash(java.lang.Object oSplash)
oSplash
- Object wrapped around the splash screenpublic void initMainWindowMenuBar()
initMainWindowMenuBar
in interface GuiIfc
public static void buildMenus(java.util.ArrayList<AbstractMenuAction> actionList, javax.swing.JMenuBar menuBar, java.awt.Window menuContainingWindow)
actionList
- ArrayList of AbstractMenuActions to be sorted and built into the menu barmenuBar
- JMenuBar to be populatedmenuContainingWindow
- the Window that contains the menu barpublic void iterateOverAllMaps(GuiIfc.MapFunctor functor)
iterateOverAllMaps
in interface GuiIfc
functor
- MapFunctor to be iteratively calledpublic void iterateOverAllMaps(GuiIfc.FullMapFunctor functor)
iterateOverAllMaps
in interface GuiIfc
functor
- FullMapFunctor to be iteratively calledpublic void registerMapWindow(GeoMapIfc geoMapIfc)
geoMapIfc
- GeoMapIfc implementor to registerpublic void unregisterMapWindow(GeoMapIfc geoMapIfc)
geoMapIfc
- GeoMapIfc implementor to registerpublic GeographicalMap getDefaultMap()
public GeoMapIfc getMainMap()
getMainMap
in interface GuiIfc
public void displayAttentionAlert(StationState ss)
displayAttentionAlert
in interface GuiIfc
ss
- StationState of the station or object to highlightpublic void displayAttentionAlert(double latitude, double longitude, AX25Message.Precedence precedence)
displayAttentionAlert
in interface GuiIfc
latitude
- double fractional degrees Northlongitude
- double fraction degrees Eastprecedence
- Precedence of the event to be reportedpublic static boolean isDontShowAsOld()
public static void setDontShowAsOld(boolean dontShowAsOld)
dontShowAsOld
- boolean true if old messages shouldn't be displayed as oldpublic MessageModel getMessageModel()
public int getMessageCount()
getMessageCount
in interface GuiIfc
public KenwoodMessageListTableModel getKenwoodMessageListTableModel()
public void invokeConfigWizard()
invokeConfigWizard
in interface GuiIfc
public void showConfigurationDialog()
showConfigurationDialog
in interface GuiIfc
public boolean isNightMode()
isNightMode
in interface GuiIfc
public void setNightMode(boolean isNight)
setNightMode
in interface GuiIfc
isNight
- boolean true if should be in night modepublic java.awt.Image getIconImage()
public StatusListener createProgressReporter(java.lang.String title, boolean modal)
createProgressReporter
in interface GuiIfc
title
- already-localized title String for the dialogmodal
- whether the dialog should be application-modal or modelesspublic void initializeWindowMenu(java.lang.Object item, java.lang.Object view)
initializeWindowMenu
in interface GuiIfc
item
- JMenuItem corresponding to the Window menuview
- RootPaneContainer containing the menu barpublic void showGenericErrorDialog(java.lang.String titleTag, java.lang.String msg)
showGenericErrorDialog
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlemsg
- already-localized and variable-substituted error message text Stringpublic void showGenericErrorDialogAlreadyLocalized(java.lang.String title, java.lang.String msg)
showGenericErrorDialogAlreadyLocalized
in interface GuiIfc
title
- String dialog title (already localized)msg
- already-localized and variable-substituted error message text Stringpublic void showGenericInfoDialog(java.lang.String titleTag, java.lang.String msg)
showGenericInfoDialog
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlemsg
- already-localized and variable-substituted error message text Stringpublic int showGenericQuestionDialog(java.lang.String titleTag, java.lang.String msg)
showGenericQuestionDialog
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlemsg
- already-localized and variable-substituted error message text Stringpublic int showGenericQuestionDialogWithHelp(java.lang.String titleTag, java.lang.String msg)
showGenericQuestionDialogWithHelp
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlemsg
- already-localized and variable-substituted error message text Stringpublic int showGenericQuestionDialogWithWidget(java.lang.String titleTag, java.lang.String widgetClassName)
showGenericQuestionDialogWithWidget
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlewidgetClassName
- package-qualified name of widget class to put in the dialogpublic int showGenericConfirmDialog(java.lang.String titleTag, java.lang.String msg)
showGenericConfirmDialog
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlemsg
- already-localized and variable-substituted error message text Stringpublic java.lang.String showGenericInputDialog(java.lang.String titleTag, java.lang.String msg)
showGenericInputDialog
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlemsg
- already-localized and variable-substituted prompt message text Stringpublic java.lang.String showGenericInputDialog(java.lang.String titleTag, java.lang.String msg, java.lang.String oldValue)
showGenericInputDialog
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlemsg
- already-localized and variable-substituted prompt message text StringoldValue
- String value to initialize the text field to; null is the same as empty Stringpublic java.lang.String showCallsignInputDialog(java.lang.String titleTag, java.lang.String msg)
showCallsignInputDialog
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlemsg
- already-localized and variable-substituted prompt message text Stringpublic java.lang.String showCallsignInputDialog(java.lang.String titleTag, java.lang.String msg, java.lang.String oldValue)
showCallsignInputDialog
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlemsg
- already-localized and variable-substituted prompt message text StringoldValue
- String previous value, or null to leave blankpublic java.lang.String showGenericPasswordDialog(java.lang.String titleTag, java.lang.String msg)
showGenericPasswordDialog
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlemsg
- already-localized and variable-substituted prompt message text Stringpublic java.lang.String showGenericStringChoiceDialog(java.lang.String titleTag, java.lang.String msg, java.lang.String[] choices)
showGenericStringChoiceDialog
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlemsg
- already-localized and variable-substituted error message text Stringchoices
- String array of choices to populate the dropdown, or null for a text fieldpublic java.lang.String showGenericStringChoiceDialog(java.lang.String titleTag, java.lang.String msg, java.lang.String[] choices, java.lang.String initialChoice)
showGenericStringChoiceDialog
in interface GuiIfc
titleTag
- String tag to look up locale-specific dialog titlemsg
- already-localized and variable-substituted error message text Stringchoices
- String array of choices to populate the dropdown, or null for a text fieldinitialChoice
- String to initialize the selection to, or null for no defaultpublic static javax.swing.ImageIcon getImageIcon(Provider p)
p
- Provider to specify the image relative path (null implies the CoreProvider
of YAAC)public void showAboutDialog()
showAboutDialog
in interface GuiIfc
public void showReleaseNotes()
showReleaseNotes
in interface GuiIfc
public SaveableTable<?> getSaveableTableInView(java.lang.Object c)
getSaveableTableInView
in interface GuiIfc
c
- top-level window or view to be testedpublic javax.swing.JComboBox buildStationComboBox(boolean addStandardAliases, boolean excludeObjects, boolean addTacticalAliases)
addStandardAliases
- boolean true if standard service aliases should be prefixed to the
list of station callsignsexcludeObjects
- boolean true if entries that only appear as Objects or Items should be excludedaddTacticalAliases
- boolean true if non-blank tactical aliases should be included in the listpublic java.lang.Object selectStation(java.lang.String titleBarTag, boolean stationsOnly, boolean inclTacticalAliases)
selectStation
in interface GuiIfc
titleBarTag
- String tag for localized title to display in popup dialogstationsOnly
- boolean true if entries appearing only as Objects/Items should be excluded
from the pick listinclTacticalAliases
- boolean true if tactical aliases of stations and objects should be included
in the selection listpublic int selectOneOf(java.lang.String title, java.lang.String[] choices)
selectOneOf
in interface GuiIfc
title
- String title to display in dialog box titlechoices
- array of String choices to choose frompublic static int selectOneOf(java.awt.Window window, java.lang.String title, java.lang.String[] choices)
window
- Window to parent the displayed dialogtitle
- String title to display in dialog box titlechoices
- array of String choices to choose frompublic static java.awt.GridBagConstraints makeGBC(int x, int y)
x
- int value to use for gridxy
- int value to use for gridypublic static java.awt.GridBagConstraints makeGBC(int x, int y, boolean fill)
x
- zero-based X cell coordinatey
- zero-based Y cell coordinatefill
- boolean true if widget inside cell should be stretched to fill the cellpublic static java.awt.GridBagConstraints makeGBC(int x, int y, int w)
x
- int value to use for gridxy
- int value to use for gridyw
- int value to use for gridwidthpublic static java.awt.GridBagConstraints makeGBC(int x, int y, int w, boolean fill)
x
- int value to use for gridxy
- int value to use for gridyw
- int value to use for gridwidthfill
- boolean true if constraints should specify filling the cell, false otherwisepublic static java.awt.GridBagConstraints makeGBC(int x, int y, int w, int h)
x
- int value to use for gridxy
- int value to use for gridyw
- int value to use for gridwidthh
- int value to use for gridheightpublic void loadAprsPackets()
loadAprsPackets
in interface GuiIfc
public void saveAprsPackets()
saveAprsPackets
in interface GuiIfc
public void displayOsmMirrorSiteList()
displayOsmMirrorSiteList
in interface GuiIfc
public GuiIfc.OsmImportParams displayOsmImportDialog(java.io.File osmFileDir)
displayOsmImportDialog
in interface GuiIfc
osmFileDir
- File pointing at the directory to initially look for importable OSM data filespublic GuiIfc.TileDownloadParams displayOsmTileDownloadDialog(ChangeSet localChangeSet, java.lang.String serverTileDir)
displayOsmTileDownloadDialog
in interface GuiIfc
localChangeSet
- the OSM ChangeSet of the last data downloaded or imported here (or null if
OSM data was never installed)serverTileDir
- String name of webserver directory for tiles, or null for default tile directoryprotected static void displayChangeSetContents(ChangeSet changeSet, javax.swing.JTextArea ta)
public GuiIfc.TileDownloadParams displayTopoTileDownloadDialog(java.io.File tileDir)
displayTopoTileDownloadDialog
in interface GuiIfc
tileDir
- File pointing at the directory where tiles are keptpublic java.io.File selectFileForWrite(java.io.File dir, java.lang.String fileExtensionTag, java.lang.String fileExtension)
selectFileForWrite
in interface GuiIfc
dir
- File for the initial directoryfileExtensionTag
- String tag for looking up localized string of file type descriptionfileExtension
- String file typepublic java.lang.String selectFile(boolean isDirectory, java.lang.String promptTag, java.lang.String fileSelectTag)
selectFile
in interface GuiIfc
isDirectory
- boolean true if user should select a directory, false to select a filepromptTag
- String key to ResourceBundle localized dialog titlefileSelectTag
- String key to ResourceBundle localized select button labelpublic java.lang.String selectFile(boolean isDirectory, java.lang.String promptTag, java.lang.String fileSelectTag, java.lang.String accessoryClassName)
selectFile
in interface GuiIfc
isDirectory
- boolean true if user should select a directory, false to select a filepromptTag
- String key to ResourceBundle localized dialog titlefileSelectTag
- String key to ResourceBundle localized select button labelaccessoryClassName
- String name of platform-specific UI class to insert into the
file chooser dialog, or null if no extra widget; this class is responsible for sending back
any additional selection data it obtains from the userpublic void importConfigFromFile()
importConfigFromFile
in interface GuiIfc
public void analyzeConfiguration()
analyzeConfiguration
in interface GuiIfc
public void showRawPacketFrame()
showRawPacketFrame
in interface GuiIfc
public void showMessageFrame()
showMessageFrame
in interface GuiIfc
public void showMessageFilterPane()
showMessageFilterPane
in interface GuiIfc
public void showBulletinBoard()
showBulletinBoard
in interface GuiIfc
public void showOutstandingMessages()
showOutstandingMessages
in interface GuiIfc
public void showBandwidthMonitor()
showBandwidthMonitor
in interface GuiIfc
public void showGpsStatusDialog()
showGpsStatusDialog
in interface GuiIfc
public void showWeatherDialog()
showWeatherDialog
in interface GuiIfc
public void showLocalObjects()
showLocalObjects
in interface GuiIfc
public void showHeardList()
showHeardList
in interface GuiIfc
public void showRadioView(Message msg, java.lang.String identifier)
showRadioView
in interface GuiIfc
msg
- a historical APRS Message to display, or null to display current real-time dataidentifier
- the originating station callsign associated with the historical message (ignored if null msg)public boolean isShowOnlyRFOnRadioView()
public void setShowOnlyRFOnRadioView(boolean onlyRFOnRadioView)
onlyRFOnRadioView
- boolean true if only RF packets will be displayed on Radio Viewpublic boolean isShowRadioViewOnStartup()
public void setShowRadioViewOnStartup(boolean showRadioViewOnStartup)
showRadioViewOnStartup
- boolean true if Radio View should be automatically openedpublic boolean isHideRealCallsignWhenHasTactical()
public void setHideRealCallsignWhenHasTactical(boolean hideRealCallsignWhenHasTactical)
hideRealCallsignWhenHasTactical
- boolean true if combo lists should exclude callsigns of included tactical namespublic void showMap()
public void displayStationSpecificMap(StationState station)
displayStationSpecificMap
in interface GuiIfc
station
- StationState to center onpublic void showStationList()
showStationList
in interface GuiIfc
public void showEditFilterDialog(Filter mainFilter, java.lang.String dialogTitleTag)
showEditFilterDialog
in interface GuiIfc
mainFilter
- the top Filter in the Filter hierarchydialogTitleTag
- bundle tag for title to display on dialogpublic void showEditBlacklistDialog()
showEditBlacklistDialog
in interface GuiIfc
public void loadObjectsFromFile()
loadObjectsFromFile
in interface GuiIfc
public void saveObjectsToFile()
saveObjectsToFile
in interface GuiIfc
public void loadTacticalNames()
loadTacticalNames
in interface GuiIfc
public void saveTacticalNames()
saveTacticalNames
in interface GuiIfc
public void showHistory(StationState ss)
showHistory
in interface GuiIfc
ss
- StationState of the desired station or objectpublic void showTelemetryReport()
showTelemetryReport
in interface GuiIfc
public void showHealthMonitorReport()
showHealthMonitorReport
in interface GuiIfc
public void showTXIGatedStations()
showTXIGatedStations
in interface GuiIfc
public boolean ensureKeystoreIsOpen(boolean dontBlock)
ensureKeystoreIsOpen
in interface GuiIfc
dontBlock
- boolean true if this method should return immediately without blockingpublic void showKeys()
public void showDXReports()
showDXReports
in interface GuiIfc
public void showConnectionReport()
showConnectionReport
in interface GuiIfc
public static int setTableColumnsWidths(ColumnSizingTableModel tm, javax.swing.JTable table)
tm
- ColumnSizingTableModel to extract widths fromtable
- JTable whose column sizes should be adjustedpublic void displayLocateLandmarkDialog()
displayLocateLandmarkDialog
in interface GuiIfc
public void composeWinlinkMessage()
composeWinlinkMessage
in interface GuiIfc
public void connectToStation()
connectToStation
in interface GuiIfc
public void confirmSendBroadcastQuery(java.lang.String confirmTag, java.lang.String query)
confirmSendBroadcastQuery
in interface GuiIfc
confirmTag
- tag for resource file message for the confirmation queryquery
- the actual APRS message to send (must be valid according to the APRS protocol specification)public void approveTacticalSender(java.lang.String originatingCallsign, java.lang.String tacticalMsgText)
approveTacticalSender
in interface GuiIfc
originatingCallsign
- callsign String of message originatortacticalMsgText
- String of text message body (the TACTICAL directive)public void sendQRU()
public void invokeObjectEditor(java.lang.String dialogTitleTag, Message or, int mouseX, int mouseY, ObjectReportTransmitter tx)
invokeObjectEditor
in interface GuiIfc
dialogTitleTag
- String tag for localized title to display on dialog title baror
- APRS Message to initialize the editor, or null for creating an object from scratchmouseX
- window X coordinate of mouse click (to generate initial coordinates), or -1 to not init position from mapmouseY
- window Y coordinate of mouse click (to generate initial coordinates), or -1 to not init position from maptx
- ObjectReportTransmitter to give any created or updated objects topublic void invokeObjectEditor(java.lang.String dialogTitleTag, Message or, int mouseX, int mouseY, ObjectReportTransmitter tx, Scope scope)
invokeObjectEditor
in interface GuiIfc
dialogTitleTag
- String tag for localized title to display on dialog title baror
- APRS Message to initialize the editor, or null for creating an object from scratchmouseX
- window X coordinate of mouse click (to generate initial coordinates), or -1 to not init position from mapmouseY
- window Y coordinate of mouse click (to generate initial coordinates), or -1 to not init position from maptx
- ObjectReportTransmitter to give any created or updated objects toscope
- Scope for new ObjectReport (ignored for existing ObjectReports), or null for defaultpublic void editStationNotes(StationState station, int mouseX, int mouseY)
editStationNotes
in interface GuiIfc
station
- StationState whose notes should be editedmouseX
- window X coordinate of mouse click (to generate initial coordinates), or -1 to not init position from mapmouseY
- window Y coordinate of mouse click (to generate initial coordinates), or -1 to not init position from mappublic void setStationTimeout(StationState station)
setStationTimeout
in interface GuiIfc
station
- StationState whose inactivity time limit is to be modifiedpublic void showTrackedStationsList()
showTrackedStationsList
in interface GuiIfc
public void showIOFailureDialog(PortConfig config, java.lang.String reason, PortFailureReportListener listener)
showIOFailureDialog
in interface GuiIfc
config
- PortConfig object describing the port with the problem, or null if not about a specific portreason
- String describing why the port is downlistener
- I/O subsystem that wants to be informed if the user dismisses the dialogpublic void closeCurrentWindow()
closeCurrentWindow
in interface GuiIfc
public StationState pickAStation(java.util.List<StationState> matchList, java.lang.String titleTag)
pickAStation
in interface GuiIfc
matchList
- ArrayList of StationState objects to pick fromtitleTag
- String name of resource tag for title of prompting dialogpublic java.lang.Object pickObject(java.lang.String titleTag, java.util.List<java.lang.Object> matchList)
pickObject
in interface GuiIfc
titleTag
- String name of resource tag for title of prompting dialogmatchList
- java.util.List of objects to pick frompublic static java.awt.Window getCurrentlyFocusedWindow()
public java.lang.Object getCurrentlyFocusedView()
getCurrentlyFocusedView
in interface GuiIfc
public java.lang.Object getCurrentTopLevelView()
getCurrentTopLevelView
in interface GuiIfc
public RawPacketTableModel getRawPacketTableModel()
public void scheduleToGuiThread(java.lang.Runnable r)
scheduleToGuiThread
in interface GuiIfc
r
- Runnable to be scheduled as soon as possible on the GUI threadpublic boolean isViewPrintable(java.lang.Object o, int depthLeft)
isViewPrintable
in interface GuiIfc
o
- Object of view containerdepthLeft
- number of levels of recursion allowed for the searchGuiIfc.printWindow()
public static PrintableView findPrintableView(java.awt.Component c, int depthLeft)
c
- Component to checkdepthLeft
- int number of child generations that can still be searchedpublic void printWindow()
printWindow
in interface GuiIfc
isViewPrintable(Object, int)
public void setMemoryGCPanelVisible(boolean visible)
setMemoryGCPanelVisible
in interface GuiIfc
visible
- boolean true if memory status monitor should be visiblepublic boolean isMemoryGCPanelVisible()
isMemoryGCPanelVisible
in interface GuiIfc
public java.lang.Object[] displayHeardByDialog(StationState[] stationsToPickFrom)
displayHeardByDialog
in interface GuiIfc
stationsToPickFrom
- array of StationState objects specifying the list of
stations to choose from, or null to get all currently known
stationspublic GuiIfc.MessagingParams displayMessagingDialog(java.util.ArrayList ssList)
displayMessagingDialog
in interface GuiIfc
ssList
- list of stations to populate the list with, or null for entire list of known stationspublic void startChatSession(java.lang.String callsign)
startChatSession
in interface GuiIfc
callsign
- String senderCallsign of the remote stationpublic void displayHelp(java.lang.String startingHelpId, java.lang.Object parentWindow)
displayHelp
in interface GuiIfc
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 viewparentWindow
- window to parent an incarnation of the HelpBrokerpublic static void clearAccruedHelpSets()
PluginStoreTableModel
when adding
a new plugin that provides help.public void checkForUpdates(boolean interactive)
checkForUpdates
in interface GuiIfc
interactive
- boolean true if no-upgrade-needed status should be reported (out-of-date status is always reported)public void showPluginStore()
showPluginStore
in interface GuiIfc
public void clearAllSpecificTrackStripes()
clearAllSpecificTrackStripes
in interface GuiIfc
public void addSpecificTrackStripe(java.lang.String identifier)
addSpecificTrackStripe
in interface GuiIfc
identifier
- String station or object identifierpublic boolean removeSpecificTrackStripe(java.lang.String identifier)
removeSpecificTrackStripe
in interface GuiIfc
identifier
- String station or object identifierpublic boolean isSpecificallyTracked(java.lang.String identifier)
isSpecificallyTracked
in interface GuiIfc
identifier
- String station or object identifierpublic boolean isSpecificallyTracking()
isSpecificallyTracking
in interface GuiIfc
public static boolean isMousePressed()
public boolean acceptInbound(ConnState state, AX25Callsign originator, Connector port)
ConnectionEstablishmentListener
on the
ConnState to be informed when the connection is fully established if the called code chooses to
accept the connection request. Note this code is called from the background AX25Stack thread, so should
respond quickly and not invoke any GUI functions directly.acceptInbound
in interface ConnectionRequestListener
state
- ConnState object describing the session being builtoriginator
- AX25Callsign of the originating stationport
- Connector through which the request was receivedConnState.listener
public SpeechMapGeneratorIfc getSpeechCustomGrammarForCurrentView()
For example, one command string for the message sender dialog could be:
to <callsign> via <alias>
getSpeechCustomGrammarForCurrentView
in interface GuiIfc