This is an automated email from the git hooks/post-receive script. pini pushed a commit to tag upstream/1.1.0_beta1 in repository sikuli.
commit afb81140db0035335ab529c3a626d7b7ff83391d Author: Raimund Hocke <[email protected]> Date: Wed Feb 19 18:29:57 2014 +0100 made the local keyboard setup runnable (at least the preparation function) --- API/src/main/java/org/sikuli/script/Key.java | 80 ++++++++++----------- .../src/main/java/org/sikuli/basics/RunSetup.java | 31 +++++++- .../src/main/java/org/sikuli/basics/SikuliX.java | 18 +++-- Basics/src/main/resources/Images/SikuliLogo.png | Bin 0 -> 8578 bytes 4 files changed, 83 insertions(+), 46 deletions(-) diff --git a/API/src/main/java/org/sikuli/script/Key.java b/API/src/main/java/org/sikuli/script/Key.java index 9b2846d..13d9aba 100755 --- a/API/src/main/java/org/sikuli/script/Key.java +++ b/API/src/main/java/org/sikuli/script/Key.java @@ -214,11 +214,11 @@ public class Key { "VK_Z","90" //</editor-fold> }; - + // non function keys on US-Keyboard per line top down without modifier keys - public static String keyboardUS = + public static String keyboardUS = "1234567890-=" + "qwertyuiop[]" + "asdfghjkl;'\\" + "`zxcvbnm,./"; - + //<editor-fold defaultstate="collapsed" desc="KeyNames to UniCode (used in type() with Key.XXX)"> public static final String SPACE = " "; public static final String ENTER = "\n"; @@ -336,7 +336,7 @@ public class Key { public static final char C_CONTEXT = '\ue041'; // VK_CONTEXT_MENU public static final String NEXT = "\ue043"; public static final char C_NEXT = '\ue043'; // VK_CONTEXT_MENU - + public static final char cMax = '\ue050'; public static final char cMin = '\ue000'; public static int keyMaxLength; @@ -391,12 +391,12 @@ public class Key { } //</editor-fold> } - + //<editor-fold defaultstate="collapsed" desc="support functions for write()"> public static String getTextFromKeycode(int key) { return keys.get(key); } - + public static boolean isRepeatable(String token) { int key = toJavaKeyCodeFromText(token); switch (key) { @@ -411,7 +411,7 @@ public class Key { } return false; } - + public static boolean isModifier(String token) { if (toJavaKeyCodeFromText(token) == toJavaKeyCodeFromText("#S.") || toJavaKeyCodeFromText(token) == toJavaKeyCodeFromText("#C.") || @@ -421,7 +421,7 @@ public class Key { } return false; } - + public static int toJavaKeyCodeFromText(String key) { if (null == keyTexts.get(key)) { return -1; @@ -430,7 +430,7 @@ public class Key { } } //</editor-fold> - + /** * Convert Sikuli Key to Java virtual key code */ @@ -693,7 +693,7 @@ public class Key { case Key.C_DIVIDE: return "#NDIV."; case Key.C_DECIMAL: return "#NDEC."; case Key.C_CONTEXT: return "#NCON."; -//KeyModifiers +//KeyModifiers case Key.C_SHIFT: return "#SHIFT."; case Key.C_CTRL: return "#CTRL."; case Key.C_ALT: return "#ALT."; @@ -703,7 +703,7 @@ public class Key { return "" + key; } } - + protected static int convertModifiers(String mod) { int modNew = 0; char key; @@ -755,10 +755,10 @@ public class Key { return KeyEvent.VK_CONTROL; } } - + //<editor-fold defaultstate="collapsed" desc="keyboard setup - INTERNAL USE ONLY"> static String[] result = new String[] {""}; - + /** * INTERNAL USE ONLY * create an alternate keycode table for a non-US keyboard @@ -769,7 +769,7 @@ public class Key { String keysx = Key.keyboardUS; Screen s = new Screen(0); - ImagePath.add("org.sikuli.script.SikuliX/images"); + ImagePath.add("org.sikuli.basics.SikuliX/Images"); ShowKeyBoardSetupWindow win = new ShowKeyBoardSetupWindow(); win.start(); @@ -780,6 +780,7 @@ public class Key { s.click(txtArea); s.wait(1.0F); String[] mods = new String[]{"", "S", "A", "SA"}; + Debug.setDebugLevel(0); for (String modx : mods) { s.paste((modx.isEmpty() ? "NO" : modx) + " modifier" + "\n"); if (!modx.isEmpty()) { @@ -804,9 +805,14 @@ public class Key { s.paste("\n"); s.type(Key.ENTER); } + Debug.setDebugLevel(3); s.click(btnOK); while (true) { - s.wait(1.0F); + try { + Thread.sleep(1000); + } catch (InterruptedException ex) { + } + Debug.log(3, "waiting for result\n" + result[0]); if (!result[0].isEmpty()) { break; } @@ -815,15 +821,14 @@ public class Key { String keysNew; String mod; int nKDE = 0; - for (int n = 0; n < keyNewx.length; n++) { + for (int n = 0; n < keyNewx.length; n += 6) { mod = keyNewx[n].substring(0, 2); keysNew = keyNewx[n + 1] + keyNewx[n + 2] + keyNewx[n + 3] + keyNewx[n + 4]; keyXX[nKDE] = mod + ": " + keysNew; - //System.out.println(keyXX[nKDE]); - n += 4; + Debug.log(3, "%s", keyXX[nKDE]); nKDE++; } - String kSet; + String kSet; int offset = 4; char keyOld, keyNew; int[] codeA; @@ -841,7 +846,7 @@ public class Key { } else if ("SA".equals(mod)) { modText = "SHIFT ALT "; } - //System.out.println(mod + "\n" + kSet); + Debug.log(3, mod + "\n" + kSet); nOld = 0; for (int i = 0; i < kSet.length(); i++) { if (!" ".equals("" + kSet.charAt(i + 3))) { @@ -881,21 +886,21 @@ public class Key { if (keyLocal.get(keyNew) == null) { keyLocal.put(keyNew, codeI); } - //System.out.println(String.format("%s %c %c %s", mod, keyOld, keyNew, codeS)); + Debug.log(3,"%s %c %c %s", mod, keyOld, keyNew, codeS); i += offset - 1; offset = 4; nOld += 1; } } - - System.out.println("--------------- keyLocal"); + + Debug.log(3,"--------------- keyLocal"); Integer[] codeI; for (Character kc : keyLocal.keySet()) { codeI = keyLocal.get(kc); - System.out.println(String.format("%c %s %s %s", kc.charValue(), + Debug.log(3,"%c %s %s %s", kc.charValue(), (codeI[0] == -1 ? "" : KeyEvent.getKeyText(codeI[0])), (codeI[1] == -1 ? "" : KeyEvent.getKeyText(codeI[1])), - (codeI[2] == -1 ? "" : KeyEvent.getKeyText(codeI[2])) )); + (codeI[2] == -1 ? "" : KeyEvent.getKeyText(codeI[2])) ); } } @@ -910,11 +915,11 @@ public class Key { } return ret; } - + static class ShowKeyBoardSetupWindow extends Thread { - + JFrame kbSetup; - + @Override public void run() { kbSetup = new JFrame("Localized Keyboard Setup"); @@ -928,13 +933,8 @@ public class Key { win.setLogo(new ImageIcon(Image.create("SikuliLogo").get())); kbSetup.setVisible(true); } - - public void setResult(String text) { - kbSetup.setVisible(false); - result[0] = text; - } } - + /** * INTERNAL USE ONLY * create a table containing all relevant key, keycode and keytext settings for VK_xxx @@ -944,7 +944,7 @@ public class Key { for (int i = 0; i < keyVK.length; i += 2) { namesVK.put(keyVK[i+1], keyVK[i].substring(3)); } - + String keyText; int upper = 66000; String form = "%05d: %-25s %-20s %-15s %15s %s"; @@ -972,7 +972,7 @@ public class Key { if (key < 32) { key = ' '; } - System.out.println(String.format(form, key, keyText, "...", "...", k2, k1)); + Debug.log(3, form, key, keyText, "...", "...", k2, k1); } continue; } @@ -982,11 +982,11 @@ public class Key { vkey = "..."; } if (null == getTextFromKeycode(key)) { - System.out.println(String.format(form, key, keyText.toUpperCase(), - vkey, "...", k2, k1)); + Debug.log(3, form, key, keyText.toUpperCase(), + vkey, "...", k2, k1); } else { - System.out.println(String.format(form, key, keyText.toUpperCase(), - vkey, getTextFromKeycode(key), k2, k1)); + Debug.log(3, form, key, keyText.toUpperCase(), + vkey, getTextFromKeycode(key), k2, k1); } } } diff --git a/Basics/src/main/java/org/sikuli/basics/RunSetup.java b/Basics/src/main/java/org/sikuli/basics/RunSetup.java index 1b6620c..d872708 100644 --- a/Basics/src/main/java/org/sikuli/basics/RunSetup.java +++ b/Basics/src/main/java/org/sikuli/basics/RunSetup.java @@ -79,7 +79,7 @@ public class RunSetup { private static boolean runningSetup = false; private static boolean generallyDoUpdate = false; public static String timestampBuilt; - private static final String tsb = "##--##Tue Jan 21 15:52:52 CET 2014##--##"; + private static final String tsb = "##--##Mi 19 Feb 2014 16:41:13 CET##--##"; static { timestampBuilt = SikuliX.makeTimestamp(tsb); @@ -168,7 +168,34 @@ public class RunSetup { options.remove(0); } - runningJar = FileManager.getJarName(); + if (args.length == 1 && "keyboardsetup".equals(args[0].toLowerCase())) { + String dir = System.getProperty("user.dir"); + String jar = "sikulixapi.jar"; + File jf = new File(dir, jar); + if (jf.exists()) { + SikuliX.addToClasspath(jf.getAbsolutePath()); + jf = null; + } + if (jf != null) { + jar = "sikulix.jar"; + jf = new File(dir, jar); + if (jf.exists()) { + SikuliX.addToClasspath(jf.getAbsolutePath()); + jf = null; + } + } + if (jf != null) { + Debug.error("no suitable jar found"); + System.exit(1); + } + Settings.ActionLogs = false; + Settings.InfoLogs = false; + Debug.setDebugLevel(3); + SikuliX.callKeyBoardSetup(); + System.exit(0); + } + + runningJar = FileManager.getJarName(); if (runningJar.isEmpty()) { popError("error accessing jar - terminating"); System.exit(1); diff --git a/Basics/src/main/java/org/sikuli/basics/SikuliX.java b/Basics/src/main/java/org/sikuli/basics/SikuliX.java index 0ba6ef6..3830f5a 100644 --- a/Basics/src/main/java/org/sikuli/basics/SikuliX.java +++ b/Basics/src/main/java/org/sikuli/basics/SikuliX.java @@ -56,7 +56,7 @@ public class SikuliX { private static final String ScriptSikuliXCL = "org.sikuli.script.SikuliX"; private static final String ScriptKeyCL = "org.sikuli.script.Key"; private static Class ScriptCl, KeyCl; - private static Method endWhat, toJavaKeyCode, setBundlePath; + private static Method endWhat, keyBoardSetup, setBundlePath; private static boolean runningSetup = false; private static boolean runningFromJar; private static String jarPath; @@ -148,15 +148,25 @@ public class SikuliX { public static int[] callKeyToJavaKeyCodeMethod(String key) { try { KeyCl = Class.forName(ScriptKeyCL); - toJavaKeyCode = KeyCl.getMethod("toJavaKeyCode", new Class[]{String.class}); - return (int[]) toJavaKeyCode.invoke(KeyCl, new Object[]{key}); + keyBoardSetup = KeyCl.getMethod("toJavaKeyCode", new Class[]{String.class}); + return (int[]) keyBoardSetup.invoke(KeyCl, new Object[]{key}); } catch (Exception ex) { Debug.error("Invoke KeyToJavaKeyCodeMethod: Fatal Error 999: could not be run!"); return null; } } - public static void callImagePathSetBundlePath(String path) { + public static void callKeyBoardSetup() { + try { + KeyCl = Class.forName(ScriptKeyCL); + keyBoardSetup = KeyCl.getMethod("keyBoardSetup", new Class[]{}); + keyBoardSetup.invoke(KeyCl, new Object[]{}); + } catch (Exception ex) { + Debug.error("Invoke Key.keyBoardSetup: Fatal Error 999: could not be run!"); + } + } + + public static void callImagePathSetBundlePath(String path) { try { ScriptCl = Class.forName("org.sikuli.script.ImagePath"); setBundlePath = ScriptCl.getMethod("setBundlePath", new Class[]{String.class}); diff --git a/Basics/src/main/resources/Images/SikuliLogo.png b/Basics/src/main/resources/Images/SikuliLogo.png new file mode 100644 index 0000000..960f35a Binary files /dev/null and b/Basics/src/main/resources/Images/SikuliLogo.png differ -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/sikuli.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

