@Override
	public boolean fieldElementClicked(Object clickedObject, Navigatable navigatable,
			ProgramLocation location, MouseEvent mouseEvent, ServiceProvider serviceProvider) {
		if (mouseEvent.getButton() != MouseEvent.BUTTON1) {
			return false;
		}

		OperandFieldLocation operandLocation = (OperandFieldLocation) location;
		if (mouseEvent.getClickCount() == 1) {
			return handleSingleClick(mouseEvent, navigatable, operandLocation);
		}

		if (mouseEvent.getClickCount() != 2) {
			return false;
		}

		Program program = navigatable.getProgram();
		Listing listing = program.getListing();
		CodeUnit codeUnit = listing.getCodeUnitContaining(operandLocation.getAddress());
		if (codeUnit instanceof Data) {
			int[] componentPath = operandLocation.getComponentPath();
			if (componentPath != null && componentPath.length > 0) { // we're in a structure
				Data d = (Data) codeUnit;
				codeUnit = d.getComponent(componentPath);
			}
		}
		if (codeUnit == null) {
			return false;
		}
		return checkOperandFieldLocation(navigatable, codeUnit, operandLocation, serviceProvider);
	}
A handler to process {@link OperandFieldLocation} mouse clicks.
Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/OperandFieldMouseHandler.java