@Override
	public void setValueAt(Object aValue, int rowIndex, int columnIndex) {

		// We only care about the install column here, as it's the only one that
		// is editable.
		if (columnIndex != INSTALLED_COL) {
			return;
		}

		// If the user does not have write permissions on the installation dir, they cannot
		// install.
		ResourceFile installDir =
			Application.getApplicationLayout().getExtensionInstallationDirs().get(0);
		if (!installDir.exists() && !installDir.mkdir()) {
			Msg.showError(this, null, "Directory Error",
				"Cannot install/uninstall extensions: Failed to create extension installation " +
					"directory.\nSee the \"Ghidra Extension Notes\" section of the Ghidra " +
					"Installation Guide for more information.");
		}
		if (!installDir.canWrite()) {
			Msg.showError(this, null, "Permissions Error",
				"Cannot install/uninstall extensions: Invalid write permissions on installation " +
					"directory.\nSee the \"Ghidra Extension Notes\" section of the Ghidra " +
					"Installation Guide for more information.");
			return;
		}

		boolean install = ((Boolean) aValue).booleanValue();
		ExtensionDetails extension = getSelectedExtension(rowIndex);
		if (!install) {
			if (extension.markForUninstall()) {
				refreshTable();
			}
			return;
		}

		// Restore an existing extension or install an archived extension
		if (extension.isPendingUninstall()) {
			if (extension.clearMarkForUninstall()) {
				refreshTable();
				return;
			}
		}

		// At this point, the extension is not installed, so we cannot simply clear the uninstall
		// state.  This means that the extension has not yet been installed.  The only way to get
		// into this state is by clicking an extension that was discovered in the 'extension 
		// archives folder'		
		if (extension.isFromArchive()) {
			if (ExtensionInstaller.installExtensionFromArchive(extension)) {
				refreshTable();
			}
			return;
		}

		// This is a programming error
		Msg.error(this,
			"Unable install an extension that no longer exists. Restart Ghidra and " +
				"try manually installing the extension: '" + extension.getName() + "'");
	}
Overridden to handle the case where a user has toggled the installation column
checkbox.
Ghidra/Framework/Project/src/main/java/ghidra/framework/project/extensions/ExtensionTableModel.java