@Override
	public void propertyChange(PropertyChangeEvent event) {
		if (activeProject == null || activeWorkspace == null) {
			return;
		}

		// get the active workspace and type of property being changed
		String eventPropertyName = event.getPropertyName();

		// if this is a workspace name change, update our running
		// tools map so we can identify the runningToolsPanel properly
		if (eventPropertyName.equals(ToolManager.WORKSPACE_NAME_PROPERTY)) {
			String oldName = (String) event.getOldValue();
			String newName = (String) event.getNewValue();
			renameWorkspace(activeWorkspace, oldName, newName);
			return;
		}

		// if this is a change in a tool, update the running tools panel
		// containing the tool
		Object eventSource = event.getSource();
		if (eventSource instanceof PluginTool) {
			PluginTool tool = (PluginTool) eventSource;
			ToolTemplate template = tool.getToolTemplate(true);
			Icon icon = tool.getIconURL().getIcon();
			String workspaceName = activeWorkspace.getName();
			RunningToolsPanel rtp = runningToolsMap.get(workspaceName);
			if (eventPropertyName.equals(PluginTool.TOOL_NAME_PROPERTY)) {
				rtp.toolNameChanged(tool);
			}
			else {
				rtp.updateToolButton(tool, template, icon);
			}
		}
	}
called when a workspace is setActive() by the ToolManager
Ghidra/Framework/Project/src/main/java/ghidra/framework/main/WorkspacePanel.java