195 lines
6.3 KiB
Java
195 lines
6.3 KiB
Java
/*
|
|
* Copyright 2014, Synthuse.org
|
|
* Released under the Apache Version 2.0 License.
|
|
*
|
|
* last modified by ejakubowski
|
|
*/
|
|
|
|
package org.synthuse;
|
|
|
|
import javax.swing.JMenuItem;
|
|
import javax.swing.JOptionPane;
|
|
import javax.swing.JPopupMenu;
|
|
import javax.swing.JMenu;
|
|
|
|
import java.awt.event.ActionListener;
|
|
import java.awt.event.ActionEvent;
|
|
|
|
@SuppressWarnings("serial")
|
|
public class CommandPopupMenu extends JPopupMenu {
|
|
|
|
public static interface menuEvents {
|
|
void menuItemClicked(String command, int paramCount, boolean useXpath, ActionEvent e);
|
|
}
|
|
public menuEvents events = new menuEvents() {
|
|
public void menuItemClicked(String command, int paramCount, boolean useXpath, ActionEvent e) {
|
|
JOptionPane.showMessageDialog(null, command);
|
|
}
|
|
};
|
|
|
|
public CommandPopupMenu() {
|
|
|
|
JMenu mnKeyboard = new JMenu("Keyboard");
|
|
add(mnKeyboard);
|
|
|
|
CommandMenuItem mntmSendkeys = new CommandMenuItem("sendKeys", 2, false);
|
|
mnKeyboard.add(mntmSendkeys);
|
|
|
|
CommandMenuItem mntmKeydown = new CommandMenuItem("keyDown", 2, false);
|
|
mnKeyboard.add(mntmKeydown);
|
|
|
|
CommandMenuItem mntmKeyup = new CommandMenuItem("keyUp", 2, false);
|
|
mnKeyboard.add(mntmKeyup);
|
|
|
|
CommandMenuItem mntmKeycopy = new CommandMenuItem("keyCopy", 1);
|
|
mnKeyboard.add(mntmKeycopy);
|
|
|
|
CommandMenuItem mntmKeypaste = new CommandMenuItem("keyPaste", 1);
|
|
mnKeyboard.add(mntmKeypaste);
|
|
|
|
CommandMenuItem mntmKeyEsc = new CommandMenuItem("keyEscape", 1);
|
|
mnKeyboard.add(mntmKeyEsc);
|
|
|
|
CommandMenuItem mntmKeyFunc = new CommandMenuItem("keyFunctionX", 2, false);
|
|
mnKeyboard.add(mntmKeyFunc);
|
|
|
|
JMenu mnMouse = new JMenu("Mouse");
|
|
add(mnMouse);
|
|
|
|
CommandMenuItem mntmClick = new CommandMenuItem("click", 1, false);
|
|
mnMouse.add(mntmClick);
|
|
|
|
CommandMenuItem mntmDoubleclick = new CommandMenuItem("doubleClick", 1, false);
|
|
mnMouse.add(mntmDoubleclick);
|
|
|
|
CommandMenuItem mntmRightclick = new CommandMenuItem("rightClick", 1, false);
|
|
mnMouse.add(mntmRightclick);
|
|
|
|
CommandMenuItem mntmwinClick = new CommandMenuItem("winClick", 2);
|
|
mnMouse.add(mntmwinClick);
|
|
|
|
CommandMenuItem mntmwinDoubleClick = new CommandMenuItem("winDoubleClick", 2);
|
|
mnMouse.add(mntmwinDoubleClick);
|
|
|
|
CommandMenuItem mntmwinRightClick = new CommandMenuItem("winRightClick", 2);
|
|
mnMouse.add(mntmwinRightClick);
|
|
|
|
CommandMenuItem mntmDraganddrop = new CommandMenuItem("dragAndDrop", 3);
|
|
mnMouse.add(mntmDraganddrop);
|
|
|
|
CommandMenuItem mntmMousedown = new CommandMenuItem("mouseDown", 1, false);
|
|
mnMouse.add(mntmMousedown);
|
|
|
|
CommandMenuItem mntmMouseup = new CommandMenuItem("mouseUp", 1, false);
|
|
mnMouse.add(mntmMouseup);
|
|
|
|
CommandMenuItem mntmMousedownright = new CommandMenuItem("mouseDownRight", 1, false);
|
|
mnMouse.add(mntmMousedownright);
|
|
|
|
CommandMenuItem mntmMouseupright = new CommandMenuItem("mouseUpRight", 1, false);
|
|
mnMouse.add(mntmMouseupright);
|
|
|
|
CommandMenuItem mntmMousemove = new CommandMenuItem("mouseMove", 3, false);
|
|
mnMouse.add(mntmMousemove);
|
|
|
|
JMenu mnWinMessages = new JMenu("Win Messages");
|
|
add(mnWinMessages);
|
|
|
|
CommandMenuItem mntmWindowfocus = new CommandMenuItem("windowFocus", 2);
|
|
mnWinMessages.add(mntmWindowfocus);
|
|
|
|
CommandMenuItem mntmWindowSwitchToThis = new CommandMenuItem("windowSwitchToThis", 2);
|
|
mnWinMessages.add(mntmWindowSwitchToThis);
|
|
|
|
CommandMenuItem mntmSetcursorposition = new CommandMenuItem("setCursorPosition", 3);
|
|
mnWinMessages.add(mntmSetcursorposition);
|
|
|
|
CommandMenuItem mntmWindowminimize = new CommandMenuItem("windowMinimize", 2);
|
|
mnWinMessages.add(mntmWindowminimize);
|
|
|
|
CommandMenuItem mntmWindowmaximize = new CommandMenuItem("windowMaximize", 2);
|
|
mnWinMessages.add(mntmWindowmaximize);
|
|
|
|
CommandMenuItem mntmWindowrestore = new CommandMenuItem("windowRestore", 2);
|
|
mnWinMessages.add(mntmWindowrestore);
|
|
|
|
CommandMenuItem mntmWindowhide = new CommandMenuItem("windowHide", 2);
|
|
mnWinMessages.add(mntmWindowhide);
|
|
|
|
CommandMenuItem mntmWindowshow = new CommandMenuItem("windowShow", 2);
|
|
mnWinMessages.add(mntmWindowshow);
|
|
|
|
CommandMenuItem mntmWindowclose = new CommandMenuItem("windowClose", 2);
|
|
mnWinMessages.add(mntmWindowclose);
|
|
|
|
CommandMenuItem mntmSetwindowtext = new CommandMenuItem("setWindowText", 3);
|
|
mnWinMessages.add(mntmSetwindowtext);
|
|
|
|
CommandMenuItem mntmGetwindowtext = new CommandMenuItem("getWindowText", 2);
|
|
mnWinMessages.add(mntmGetwindowtext);
|
|
|
|
CommandMenuItem mntmGetwindowclass = new CommandMenuItem("getWindowClass", 2);
|
|
mnWinMessages.add(mntmGetwindowclass);
|
|
|
|
CommandMenuItem mntmPause = new CommandMenuItem("pause", 2, false);
|
|
add(mntmPause);
|
|
|
|
CommandMenuItem mntmWaitfortitle = new CommandMenuItem("waitForTitle", 2, false);
|
|
add(mntmWaitfortitle);
|
|
|
|
CommandMenuItem mntmWaitfortext = new CommandMenuItem("waitForText", 2, false);
|
|
add(mntmWaitfortext);
|
|
|
|
CommandMenuItem mntmWaitforclass = new CommandMenuItem("waitForClass", 2, false);
|
|
add(mntmWaitforclass);
|
|
|
|
CommandMenuItem mntmWaitforvisible = new CommandMenuItem("waitForVisible", 2);
|
|
add(mntmWaitforvisible);
|
|
|
|
CommandMenuItem mntmSettimeout = new CommandMenuItem("setTimeout", 2, false);
|
|
add(mntmSettimeout);
|
|
|
|
CommandMenuItem mntmSetspeed = new CommandMenuItem("setSpeed", 2, false);
|
|
add(mntmSetspeed);
|
|
}
|
|
|
|
class CommandMenuItem extends JMenuItem {
|
|
public String commandText = "";
|
|
public int paramCount = 2;
|
|
public boolean useXpath = true;
|
|
|
|
public CommandMenuItem(String arg0, int paramCount) {
|
|
super(arg0);
|
|
init(arg0, paramCount, true);
|
|
}
|
|
|
|
public CommandMenuItem(String arg0, int paramCount, boolean useXpath) {
|
|
super(arg0);
|
|
init(arg0, paramCount, useXpath);
|
|
}
|
|
|
|
public void init(String arg0, int paramCount, boolean useXpath) {
|
|
this.commandText = arg0;
|
|
this.paramCount = paramCount;
|
|
this.useXpath = useXpath;
|
|
this.addActionListener(new ActionListener() {
|
|
public void actionPerformed(ActionEvent e) {
|
|
events.menuItemClicked(commandText, CommandMenuItem.this.paramCount, CommandMenuItem.this.useXpath, e);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
public static String buildSkeletonCommand(String command, int paramCount, String xpathStr, boolean useXpath) {
|
|
String xpathItem = xpathStr;
|
|
if (!useXpath)
|
|
xpathItem = "";
|
|
String actionStr = "| do | " + command + " | ";
|
|
if (paramCount > 1)
|
|
actionStr += "on | " + xpathItem + " | ";
|
|
if (paramCount > 2)
|
|
actionStr += "with | |";
|
|
return actionStr;
|
|
}
|
|
}
|