Package ghidra.app.services
Interface MarkerService
-
public interface MarkerService
Service to manage navigation markers displayed around a scrollable window like the codebrowser. The navigation bar displays the general location of markers for the entire view. The marker bar displays a marker at each marked address visible within the view.
The interface defines priorities for display of markers in Marker Margin and colored bars in Navigation Margin. The higher the priority, the more likely the marker/bar will be displayed on the top. Areas will always be lower than marker priorities.
Recommended Usage
The service used to work independent ofProgram
s. In order to work effectively this service has been changed to associate created markers with individual programs. Thus, it is up to the clients of this class perform lifecycle management of markers created by this service. For example, a client that creates a marker fromcreateAreaMarker(String, String, Program, int, boolean, boolean, boolean, Color)
should callremoveMarker(MarkerSet, Program)
when the markers are no longer used, such as when a program has become deactivated. In this example usage markers are added and removed as the user tabs through open programs.
-
-
Field Summary
Fields Modifier and Type Field Description static int
BOOKMARK_PRIORITY
Display priority for bookmarked locations.static int
BREAKPOINT_PRIORITY
Display priority for marking locations of breakpoints.static int
CHANGE_PRIORITY
Display priority for marking a change set.static int
CURSOR_PRIORITY
Display priority for marking the cursor location.static int
DIFF_PRIORITY
Display priority for marking locations where a program diff difference exists.static int
FUNCTION_COMPARE_CURSOR_PRIORITY
Display priority for marking the cursor location.static int
GROUP_PRIORITY
Display priority for marking a change set for members in a group.static java.lang.String
HIGHLIGHT_GROUP
A group name for highlights.static int
HIGHLIGHT_PRIORITY
Display priority for marking the highlight.static int
PROPERTY_PRIORITY
Display priority for marking locations where a property exists.static int
REFERENCE_PRIORITY
Display priority for marking references.static int
SEARCH_PRIORITY
Display priority for marking locations of search hits.static int
SELECTION_PRIORITY
Display priority for marking the selection.
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description void
addChangeListener(javax.swing.event.ChangeListener listener)
Adds a change listener to be notified when markers are added/removed or the addresses in any current markerSets are changed.MarkerSet
createAreaMarker(java.lang.String name, java.lang.String markerDescription, int priority, boolean showMarkers, boolean showNavigation, boolean colorBackground, java.awt.Color color)
Deprecated.MarkerSet
createAreaMarker(java.lang.String name, java.lang.String markerDescription, Program program, int priority, boolean showMarkers, boolean showNavigation, boolean colorBackground, java.awt.Color color)
Create a Marker display which shows area type markers.MarkerSet
createAreaMarker(java.lang.String name, java.lang.String markerDescription, Program program, int priority, boolean showMarkers, boolean showNavigation, boolean colorBackground, java.awt.Color color, boolean isPreferred)
Create a Marker display which shows area type markers.MarkerSet
createPointMarker(java.lang.String name, java.lang.String markerDescription, int priority, boolean showMarkers, boolean showNavigation, boolean colorBackground, java.awt.Color color, javax.swing.ImageIcon icon)
Deprecated.MarkerSet
createPointMarker(java.lang.String name, java.lang.String markerDescription, Program program, int priority, boolean showMarkers, boolean showNavigation, boolean colorBackground, java.awt.Color color, javax.swing.ImageIcon icon)
Create a Marker display which shows point type markers.MarkerSet
createPointMarker(java.lang.String name, java.lang.String markerDescription, Program program, int priority, boolean showMarkers, boolean showNavigation, boolean colorBackground, java.awt.Color color, javax.swing.ImageIcon icon, boolean isPreferred)
Create a Marker display which shows point type markers.java.awt.Color
getBackgroundColor(Address address)
Returns the background color associated with the given address.MarkerSet
getMarkerSet(java.lang.String name)
Deprecated.MarkerSet
getMarkerSet(java.lang.String name, Program program)
Return the markerset with the given name;void
removeChangeListener(javax.swing.event.ChangeListener listener)
Removes the given change listener from the list of listeners to be notified of changes.void
removeMarker(MarkerSet markerManager)
Deprecated.void
removeMarker(MarkerSet markerManager, Program program)
Remove the marker managervoid
removeMarkerForGroup(java.lang.String groupName, MarkerSet markerSet, Program program)
Removes a marker set for a given group name.void
setMarkerForGroup(java.lang.String groupName, MarkerSet markerSet, Program program)
Sets a marker set for a given group name.
-
-
-
Field Detail
-
SELECTION_PRIORITY
static final int SELECTION_PRIORITY
Display priority for marking the selection.- See Also:
- Constant Field Values
-
HIGHLIGHT_PRIORITY
static final int HIGHLIGHT_PRIORITY
Display priority for marking the highlight.- See Also:
- Constant Field Values
-
CHANGE_PRIORITY
static final int CHANGE_PRIORITY
Display priority for marking a change set.- See Also:
- Constant Field Values
-
GROUP_PRIORITY
static final int GROUP_PRIORITY
Display priority for marking a change set for members in a group.- See Also:
- Constant Field Values
-
CURSOR_PRIORITY
static final int CURSOR_PRIORITY
Display priority for marking the cursor location.- See Also:
- Constant Field Values
-
FUNCTION_COMPARE_CURSOR_PRIORITY
static final int FUNCTION_COMPARE_CURSOR_PRIORITY
Display priority for marking the cursor location.- See Also:
- Constant Field Values
-
SEARCH_PRIORITY
static final int SEARCH_PRIORITY
Display priority for marking locations of search hits.- See Also:
- Constant Field Values
-
BREAKPOINT_PRIORITY
static final int BREAKPOINT_PRIORITY
Display priority for marking locations of breakpoints.- See Also:
- Constant Field Values
-
BOOKMARK_PRIORITY
static final int BOOKMARK_PRIORITY
Display priority for bookmarked locations.- See Also:
- Constant Field Values
-
PROPERTY_PRIORITY
static final int PROPERTY_PRIORITY
Display priority for marking locations where a property exists.- See Also:
- Constant Field Values
-
DIFF_PRIORITY
static final int DIFF_PRIORITY
Display priority for marking locations where a program diff difference exists.- See Also:
- Constant Field Values
-
REFERENCE_PRIORITY
static final int REFERENCE_PRIORITY
Display priority for marking references.- See Also:
- Constant Field Values
-
HIGHLIGHT_GROUP
static final java.lang.String HIGHLIGHT_GROUP
A group name for highlights. This is intended to be used with#setMarkerForGroup(String, MarkerSet)
and#removeMarkerForGroup(String, MarkerSet)
- See Also:
- Constant Field Values
-
-
Method Detail
-
createAreaMarker
MarkerSet createAreaMarker(java.lang.String name, java.lang.String markerDescription, Program program, int priority, boolean showMarkers, boolean showNavigation, boolean colorBackground, java.awt.Color color)
Create a Marker display which shows area type markers.- Parameters:
name
- name of the navigation markersmarkerDescription
- description of the navigation markersprogram
- The program with which the created markers will be associated.priority
- to sort out what displays on top, higher is more likely to be on topshowMarkers
- true indicates to show area markers (on the left side of the browser.)showNavigation
- true indicates to show area navigation markers (on the right side of the browser.)colorBackground
- if true, then the browser's background color will reflect the marker.color
- the color of marked areas.- Returns:
- set of navigation markers
-
createAreaMarker
MarkerSet createAreaMarker(java.lang.String name, java.lang.String markerDescription, Program program, int priority, boolean showMarkers, boolean showNavigation, boolean colorBackground, java.awt.Color color, boolean isPreferred)
Create a Marker display which shows area type markers.- Parameters:
name
- name of the navigation markersmarkerDescription
- description of the navigation markersprogram
- The program with which the created markers will be associated.priority
- to sort out what displays on top, higher is more likely to be on topshowMarkers
- true indicates to show area markers (on the left side of the browser.)showNavigation
- true indicates to show area navigation markers (on the right side of the browser.)colorBackground
- if true, then the browser's background color will reflect the marker.color
- the color of marked areas.isPreferred
- true indicates higher priority than all non-preferred MarkerSets- Returns:
- set of navigation markers
-
createAreaMarker
@Deprecated MarkerSet createAreaMarker(java.lang.String name, java.lang.String markerDescription, int priority, boolean showMarkers, boolean showNavigation, boolean colorBackground, java.awt.Color color)
Deprecated.This version of createAreaMarker() does not take a program and has thus been deprecated. See the recommended usage for more information.- Parameters:
name
- name of the navigation markersmarkerDescription
- description of the navigation markerspriority
- to sort out what displays on top, higher is more likely to be on topshowMarkers
- true indicates to show area markers (on the left side of the browser.)showNavigation
- true indicates to show area navigation markers (on the right side of the browser.)colorBackground
- if true, then the browser's background color will reflect the marker.color
- the color of marked areas.
-
createPointMarker
MarkerSet createPointMarker(java.lang.String name, java.lang.String markerDescription, Program program, int priority, boolean showMarkers, boolean showNavigation, boolean colorBackground, java.awt.Color color, javax.swing.ImageIcon icon)
Create a Marker display which shows point type markers.- Parameters:
name
- name of the navigation markersmarkerDescription
- description of the navigation markersprogram
- The program with which the created markers will be associated.priority
- to sort out what displays on top, higher is more likely to be on topshowMarkers
- true indicates to show area markers (on the left side of the browser.)showNavigation
- true indicates to show area navigation markers (on the right side of the browser.)colorBackground
- if true, then the browser's background color will reflect the marker.color
- the color of marked areas in navigation baricon
- icon to display in marker bar- Returns:
- set of navigation markers
-
createPointMarker
MarkerSet createPointMarker(java.lang.String name, java.lang.String markerDescription, Program program, int priority, boolean showMarkers, boolean showNavigation, boolean colorBackground, java.awt.Color color, javax.swing.ImageIcon icon, boolean isPreferred)
Create a Marker display which shows point type markers.- Parameters:
name
- name of the navigation markersmarkerDescription
- description of the navigation markersprogram
- The program with which the created markers will be associated.priority
- to sort out what displays on top, higher is more likely to be on topshowMarkers
- true indicates to show area markers (on the left side of the browser.)showNavigation
- true indicates to show area navigation markers (on the right side of the browser.)colorBackground
- if true, then the browser's background color will reflect the marker.color
- the color of marked areas in navigation baricon
- icon to display in marker barisPreferred
- is prioritized over non-preferred MarkersSets- Returns:
- set of navigation markers
-
createPointMarker
@Deprecated MarkerSet createPointMarker(java.lang.String name, java.lang.String markerDescription, int priority, boolean showMarkers, boolean showNavigation, boolean colorBackground, java.awt.Color color, javax.swing.ImageIcon icon)
Deprecated.This version of createPointMarker() does not take a program and has thus been deprecated. See the recommended usage for more information.- Parameters:
name
- name of the navigation markersmarkerDescription
- description of the navigation markerspriority
- to sort out what displays on top, higher is more likely to be on topshowMarkers
- true indicates to show area markers (on the left side of the browser.)showNavigation
- true indicates to show area navigation markers (on the right side of the browser.)colorBackground
- if true, then the browser's background color will reflect the marker.color
- the color of marked areas in navigation bar If navigation color is null, no results are displayed in the navigation baricon
- icon to display in marker bar- Returns:
- set of navigation markers
-
removeMarker
void removeMarker(MarkerSet markerManager, Program program)
Remove the marker manager- Parameters:
markerManager
- marker manager to be removed from navigation bars.program
- The program with which the markers are associated.
-
removeMarker
@Deprecated void removeMarker(MarkerSet markerManager)
Deprecated.Remove the marker manager. This method is deprecated, see the recommended usage for more information.- Parameters:
markerManager
- marker manager to be removed from navigation bars.program
- The program with which the markers are associated.
-
getMarkerSet
MarkerSet getMarkerSet(java.lang.String name, Program program)
Return the markerset with the given name;- Parameters:
The
- name of the marker set for which to searchprogram
- The program with which the created markers will be associated.- Returns:
- the markerset with the given name;
-
getMarkerSet
@Deprecated MarkerSet getMarkerSet(java.lang.String name)
Deprecated.Return the markerset with the given name. This method is deprecated, see the recommended usage for more information.- Parameters:
The
- name of the marker set for which to searchprogram
- The program with which the created markers will be associated.- Returns:
- the markerset with the given name;
-
setMarkerForGroup
void setMarkerForGroup(java.lang.String groupName, MarkerSet markerSet, Program program)
Sets a marker set for a given group name. Any previous marker set associated with the given group name will be removed from this marker service. This method is used to ensure that only one marker set is used at any time for a give group.- Parameters:
groupName
- The name to associate the marker set with.markerSet
- The marker set to add to this serviceprogram
- The program with which the markers are associated.- See Also:
#removeMarkerForGroup(String, MarkerSet)
-
removeMarkerForGroup
void removeMarkerForGroup(java.lang.String groupName, MarkerSet markerSet, Program program)
Removes a marker set for a given group name. If the given marker set is not the marker set associated with the given group name, then no action will be taken.- Parameters:
groupName
- The name associated the marker set with.markerSet
- The marker set to add to this serviceprogram
- The program with which the markers are associated. May be null if the marker is- See Also:
#setMarkerForGroup(String, MarkerSet)
-
getBackgroundColor
java.awt.Color getBackgroundColor(Address address)
Returns the background color associated with the given address. Each markerSet that supports background coloring is checked in priority order to see if it wants to specify a background color for the given address.- Parameters:
address
- the address to check for a background color.- Returns:
- the background color to use for that address or null if no markers contain that address.
-
addChangeListener
void addChangeListener(javax.swing.event.ChangeListener listener)
Adds a change listener to be notified when markers are added/removed or the addresses in any current markerSets are changed.- Parameters:
listener
- the listener to be notified.
-
removeChangeListener
void removeChangeListener(javax.swing.event.ChangeListener listener)
Removes the given change listener from the list of listeners to be notified of changes.- Parameters:
listener
-
-
-