package com.niklim.clicktrace.model; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; import com.google.common.base.Strings; import com.google.common.collect.Lists; /** * Represents mouse click - mouse coordinates and clicked button. */ public class Click { private int x; private int y; private Button button; public enum Button { LEFT, RIGHT, OTHER } public Click(int x, int y, Button button) { this.x = x; this.y = y; this.button = button; } public Click(int x, int y, int button) { this.x = x; this.y = y; if (button == 1) { this.button = Button.LEFT; } else if (button == 2) { this.button = Button.RIGHT; } else { this.button = Button.OTHER; } } public int getX() { return x; } public int getY() { return y; } public Button getButton() { return button; } @Override public String toString() { return "(" + x + "-" + y + "-" + button + ")"; } public static List<Click> getList(String string) { List<Click> clicks = new ArrayList<Click>(); if (Strings.isNullOrEmpty(string)) { return clicks; } for (String click : string.split(";")) { String[] vals = click.substring(1, click.length() - 1).split("-"); int x = Integer.parseInt(vals[0]); int y = Integer.parseInt(vals[1]); Button button = Button.valueOf(vals[2]); clicks.add(new Click(x, y, button)); } return clicks; } public static String getString(List<Click> clicks) { List<String> strings = Lists.newArrayListWithCapacity(clicks.size()); for (Click c : clicks) { strings.add(c.toString()); } return StringUtils.join(strings, ";"); } }