private void addActions(ComponentProvider provider) {

		toggleSatelliteAction = new ToggleDockingAction("Display Satellite View", owner) {
			@Override
			public void actionPerformed(ActionContext context) {
				view.setSatelliteVisible(isSelected());
			}

			@Override
			public boolean isAddToPopup(ActionContext context) {
				ComponentProvider componentProvider = context.getComponentProvider();
				if (componentProvider != provider && componentProvider != satelliteProvider) {
					// appear in satellite and the main provider
					return false;
				}

				if (!(context instanceof VisualGraphActionContext vgContext)) {
					return false;
				}

				return vgContext.shouldShowSatelliteActions();
			}
		};
		toggleSatelliteAction.setSelected(true);
		toggleSatelliteAction.setPopupMenuData(
			new MenuData(new String[] { "Display Satellite View" }));
		toggleSatelliteAction.setHelpLocation(
			new HelpLocation("FunctionCallGraphPlugin", "Satellite_View"));

		dockSatelliteAction = new ToggleDockingAction("Dock Satellite View", owner) {
			@Override
			public void actionPerformed(ActionContext context) {
				view.setSatelliteDocked(isSelected());
			}

			@Override
			public boolean isAddToPopup(ActionContext context) {
				ComponentProvider componentProvider = context.getComponentProvider();
				if (componentProvider != provider && componentProvider != satelliteProvider) {
					// appear in satellite and the main provider
					return false;
				}

				if (!(context instanceof VisualGraphActionContext vgContext)) {
					return false;
				}

				return vgContext.shouldShowSatelliteActions();
			}
		};
		dockSatelliteAction.setSelected(true);
		dockSatelliteAction.setPopupMenuData(new MenuData(new String[] { "Dock Satellite View" }));
		dockSatelliteAction.setHelpLocation(
			new HelpLocation("FunctionCallGraphPlugin", "Satellite_View"));

		upperLeftAction = new SatellitePositionAction("Upper Left", UPPER_LEFT, provider);
		upperRightAction = new SatellitePositionAction("Upper Right", UPPER_RIGHT, provider);
		lowerLeftAction = new SatellitePositionAction("Lower Left", LOWER_LEFT, provider);
		lowerRightAction = new SatellitePositionAction("Lower Right", LOWER_RIGHT, provider);
		lowerRightAction.setSelected(true);

		// Note: these are not local actions, since they should appear in satellite and the main view
		tool.addAction(toggleSatelliteAction);
		tool.addAction(dockSatelliteAction);
		tool.addAction(upperLeftAction);
		tool.addAction(upperRightAction);
		tool.addAction(lowerLeftAction);
		tool.addAction(lowerRightAction);

	}
A sub-feature that provides a satellite viewer to {@link VisualGraphComponentProvider}s

<p>Note: this class installs actions to manipulate the satellite view.  For these to be 
correctly enabled, you must produce {@link VgActionContext} objects in your
{@link VisualGraphComponentProvider#getActionContext(MouseEvent)} method.  Specifically, 
the context returned must be a type of {@link VgActionContext}, with the 
{@link VgActionContext#shouldShowSatelliteActions()} returning true.

@param <V> the vertex type 
@param <E> the edge type
@param <G> the graph type
Ghidra/Framework/Graph/src/main/java/ghidra/graph/featurette/VgSatelliteFeaturette.java