Package org.ka2ddo.yaac.filter
Class SymbolFilter
java.lang.Object
org.ka2ddo.yaac.filter.Filter
org.ka2ddo.yaac.filter.SymbolFilter
- All Implemented Interfaces:
Cloneable
,PersistingFilter
This filter selects messages by the APRS symbol code, indicated by
symbol table ID and symbol type. The selection information is presented
as a table of symbol codes and icons, plus a checkbox to specify which
station types are enabled and disabled.
- Author:
- Andrew Pavlin, KA2DDO
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
This class associates a SymbolAttr (description of one APRS symbol) with a boolean enable flag for controlling the filtering by symbol. -
Field Summary
Fields inherited from class org.ka2ddo.yaac.filter.Filter
RESULT_NEUTRAL, RESULT_PASS, RESULT_REJECT, RESULT_WEAK_PASS, RESULT_WEAK_REJECT
-
Constructor Summary
ConstructorDescriptionCreate a filter that will select messages and stations based on the symbol code. -
Method Summary
Modifier and TypeMethodDescriptionint
acceptAX25Frame
(AX25Frame frame) Indicate whether the specified message should be displayed or used to determine if a station should be displayed (if recursively called from acceptStation()).int
acceptMessage
(AX25Message axmsg) Indicate whether the specified message should be displayed or used to determine if a station should be displayed (if recursively called from acceptStation()).int
Indicate whether the specified station should be displayed.void
Register a listener for changes of this Filter.void
Build the currently known symbols (APRS 1.0.1 basic or APRS 1.2 extended) into the filter.boolean
Specifies that this filter may reject some stations, messages, and/or frames.clone()
Creates and returns a copy of this object.void
Report to all listeners that this SymbolFilter's settings have changed.Report a tag name used to look up JavaHelp for a filter editor.Report a tag name used to look up the labelling for an editor panel for this editor instance in a ResourceBundle of translated names.Get the class name of a dynamically loadable class for the the GUI for this filter.int
Get the greatest number of possible symbol table/overlay values for any symbol code.Get the persistence name prefix for this Filter.Get all the symbol flags in arrays indexed by symbol code, then by symbol table ID/overlay.void
Deregisters a listener.void
setPrefPrefix
(String prefPrefix) Change the persisted parameter prefix for this Filter instance.void
Reset the filter to a configuration that would pass the maximum amount of messages, packets, and stations.
-
Constructor Details
-
SymbolFilter
public SymbolFilter()Create a filter that will select messages and stations based on the symbol code. Note that, if APRS 1.2 extended symbols are enabled, matches for overlaid symbols will only match if either the overlay matches a defined extended symbol, or will match the alternate table symbol if no pre-defined extended overlay meaning is defined.
-
-
Method Details
-
setPrefPrefix
Change the persisted parameter prefix for this Filter instance.- Specified by:
setPrefPrefix
in interfacePersistingFilter
- Parameters:
prefPrefix
- prefix String (can be empty string "") or null to indicate this filter should not be persisted
-
getPrefPrefix
Get the persistence name prefix for this Filter.- Returns:
- String prefix to be used on persistence value names, or null to indicate this filter is not persisted.
-
buildSymbolArray
public void buildSymbolArray()Build the currently known symbols (APRS 1.0.1 basic or APRS 1.2 extended) into the filter. -
getFilterTypeTagName
Report a tag name used to look up the labelling for an editor panel for this editor instance in a ResourceBundle of translated names.- Specified by:
getFilterTypeTagName
in classFilter
- Returns:
- String to use in looking up form label for this filter's editor
-
getFilterHelpTagName
Report a tag name used to look up JavaHelp for a filter editor.- Specified by:
getFilterHelpTagName
in classFilter
- Returns:
- String name (as defined in HelpMap.jhm) for this filter's online help
-
getFilterUIName
Get the class name of a dynamically loadable class for the the GUI for this filter. The name is allowed to have a wildcard '*' in it where a GUI type ("gui" for standard Java or "android" for Android) can be substituted.- Specified by:
getFilterUIName
in classFilter
- Returns:
- String name of GUI class for this filter
-
getMaxOverlaysPerCode
public int getMaxOverlaysPerCode()Get the greatest number of possible symbol table/overlay values for any symbol code.- Returns:
- maximum overlays + 2 (for the base tables)
-
getTypeEnableFlags
Get all the symbol flags in arrays indexed by symbol code, then by symbol table ID/overlay.- Returns:
- 2-dimensional array of SymbolFlag structures
-
acceptAX25Frame
Indicate whether the specified message should be displayed or used to determine if a station should be displayed (if recursively called from acceptStation()).- Specified by:
acceptAX25Frame
in classFilter
- Parameters:
frame
- the timestamped AX25 frame record to analyze- Returns:
- RESULT_xxx constant indicating if message information should be displayed
-
acceptMessage
Indicate whether the specified message should be displayed or used to determine if a station should be displayed (if recursively called from acceptStation()).- Specified by:
acceptMessage
in classFilter
- Parameters:
axmsg
- the AX25Message record to analyze- Returns:
- RESULT_xxx constant indicating if message information should be displayed
-
acceptStation
Indicate whether the specified station should be displayed. The acceptMessage() and acceptAX25Frame() methods may be called to assist in the determination.- Specified by:
acceptStation
in classFilter
- Parameters:
ss
- StationState record to analyze- Returns:
- RESULT_xxx constant indicating if station information should be displayed
-
addFilterChangeListener
Register a listener for changes of this Filter.- Specified by:
addFilterChangeListener
in classFilter
- Parameters:
l
- FilterChangeListener to register
-
removeFilterChangeListener
Deregisters a listener. The listener will no longer be informed of changes to this filter.- Specified by:
removeFilterChangeListener
in classFilter
- Parameters:
l
- FilterChangeListener to deregister
-
setToPassall
public void setToPassall()Reset the filter to a configuration that would pass the maximum amount of messages, packets, and stations.- Specified by:
setToPassall
in classFilter
-
canRejectSome
public boolean canRejectSome()Specifies that this filter may reject some stations, messages, and/or frames. Used to tell combining filters whether a sub-filter is in passall mode and therefore doesn't need to be checked for every call to the combiner, thereby saving CPU time when filtering when most filters are in passall mode.- Overrides:
canRejectSome
in classFilter
- Returns:
- boolean true if this filter is currently capable of rejecting something
- See Also:
-
fireFilterChange
public void fireFilterChange()Report to all listeners that this SymbolFilter's settings have changed. -
clone
Creates and returns a copy of this object.- Overrides:
clone
in classFilter
- Returns:
- a clone of this instance.
- Throws:
CloneNotSupportedException
- if the object's class does not support theCloneable
interface. Subclasses that override theclone
method can also throw this exception to indicate that an instance cannot be cloned.- See Also:
-