@Override
		public void valueChanged(ListSelectionEvent e) {
			if (e.getValueIsAdjusting() || firingTableDataChanged) {
				return;
			}

			helpButton.setEnabled(false);
			String fullActionName = getSelectedActionName();
			if (fullActionName == null) {
				statusLabel.setText("");
				actionBindingPanel.setEnabled(false);
				return;
			}

			actionBindingPanel.setEnabled(true);

			helpButton.setEnabled(true);
			clearInfoPanel();

			KeyStroke ks = keyBindings.getKeyStroke(fullActionName);
			if (ks != null) {
				showActionsMappedToKeyStroke(ks);
			}

			MouseBinding mb = keyBindings.getMouseBinding(fullActionName);
			actionBindingPanel.setKeyBindingData(ks, mb);

			// make sure the label gets enough space
			statusLabel.setPreferredSize(
				new Dimension(statusLabel.getPreferredSize().width, STATUS_LABEL_HEIGHT));

			DockingActionIf action = getSelectedAction();
			String description = action.getDescription();
			if (description == null || description.trim().isEmpty()) {
				description = action.getName();
			}

			statusLabel.setText("<html>" + HTMLUtilities.escapeHTML(description));
		}
Selection listener class for the table model.
Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/dialog/KeyBindingsPanel.java