public static MouseBinding getMouseBinding(String mouseString) {

		int button = getButton(mouseString);
		if (button == -1) {
			return null;
		}

		// be flexible on the tokens for splitting, even though '+' seems to be the standard
		StringTokenizer tokenizer = new StringTokenizer(mouseString, "- +");
		List<String> pieces = new ArrayList<>();
		while (tokenizer.hasMoreTokens()) {
			String token = tokenizer.nextToken();
			if (!pieces.contains(token)) {
				pieces.add(token);
			}
		}

		int modifiers = 0;
		for (Iterator<String> iterator = pieces.iterator(); iterator.hasNext();) {
			String piece = iterator.next();
			if (indexOfIgnoreCase(piece, SHIFT) != -1) {
				modifiers |= InputEvent.SHIFT_DOWN_MASK;
				iterator.remove();
			}
			else if (indexOfIgnoreCase(piece, CTRL) != -1) {
				modifiers |= InputEvent.CTRL_DOWN_MASK;
				iterator.remove();
			}
			else if (indexOfIgnoreCase(piece, ALT) != -1) {
				modifiers |= InputEvent.ALT_DOWN_MASK;
				iterator.remove();
			}
			else if (indexOfIgnoreCase(piece, META) != -1) {
				modifiers |= InputEvent.META_DOWN_MASK;
				iterator.remove();
			}
		}

		return new MouseBinding(button, modifiers);
	}
Creates a mouse binding from the given string.  The string is expected to be of the form:
{@code Ctrl+Button1}, which is the form of the text generated by {@link #getDisplayText()}.

@param mouseString the mouse string
@return the mouse binding or null if an invalid string was given
Ghidra/Framework/Gui/src/main/java/gui/event/MouseBinding.java