From a98ee0d632b6d7b81ea04eeecd3d009d5f6baecb Mon Sep 17 00:00:00 2001 From: Edward Jakubowski Date: Mon, 21 Jul 2014 20:27:03 -0400 Subject: [PATCH] Added Win32 Refresh only commands and Disable Status command --- src/org/synthuse/CommandPopupMenu.java | 7 +++++++ src/org/synthuse/CommandProcessor.java | 4 ++++ src/org/synthuse/WindowsEnumeratedXml.java | 20 +++++++++++++++----- src/org/synthuse/commands/BaseCommand.java | 9 +++++++++ src/org/synthuse/commands/MainCommands.java | 15 +++++++++++++++ 5 files changed, 50 insertions(+), 5 deletions(-) diff --git a/src/org/synthuse/CommandPopupMenu.java b/src/org/synthuse/CommandPopupMenu.java index 5feaefb..7e032f9 100644 --- a/src/org/synthuse/CommandPopupMenu.java +++ b/src/org/synthuse/CommandPopupMenu.java @@ -165,6 +165,13 @@ public class CommandPopupMenu extends JPopupMenu { CommandMenuItem mntmForceRefresh = new CommandMenuItem("forceRefresh", 1, false); add(mntmForceRefresh); + CommandMenuItem mntmForcewin32Refresh = new CommandMenuItem("forceWin32Refresh", 1, false); + add(mntmForcewin32Refresh); + + CommandMenuItem mntmOnlyRefreshWin32 = new CommandMenuItem("onlyRefreshWin32", 2, false); + add(mntmOnlyRefreshWin32); + + CommandMenuItem mntmOpen = new CommandMenuItem("open", 2, false); add(mntmOpen); diff --git a/src/org/synthuse/CommandProcessor.java b/src/org/synthuse/CommandProcessor.java index ce794b3..9aba605 100644 --- a/src/org/synthuse/CommandProcessor.java +++ b/src/org/synthuse/CommandProcessor.java @@ -279,6 +279,10 @@ public class CommandProcessor implements Runnable{ return main.cmdDisableStatus(args); if (command.equals("forceRefresh")) return main.cmdForceRefresh(args); + if (command.equals("forceWin32Refresh")) + return main.cmdForceWin32Refresh(args); + if (command.equals("onlyRefreshWin32")) + return main.cmdOnlyRefreshWin32(args); if (command.equals("setSpeed")) return main.cmdSetSpeed(args); if (command.equals("setTimeout")) diff --git a/src/org/synthuse/WindowsEnumeratedXml.java b/src/org/synthuse/WindowsEnumeratedXml.java index 6320995..dcfd946 100644 --- a/src/org/synthuse/WindowsEnumeratedXml.java +++ b/src/org/synthuse/WindowsEnumeratedXml.java @@ -78,6 +78,20 @@ public class WindowsEnumeratedXml implements Runnable{ } public static String getXml() { + final Map infoList = getWin32XmlMap(); + + //process all windows that have been flagged for uiaBridge (useUiaBridge == true) + appendUiaBridgeWindows(infoList); + + return generateWindowsXml(infoList, "EnumeratedWindows"); + } + + public static String getWin32Xml() { + final Map infoList = getWin32XmlMap(); + return generateWindowsXml(infoList, "EnumeratedWindows"); + } + + public static Map getWin32XmlMap() { final Map infoList = new LinkedHashMap(); HWND desktopRootHwnd = Api.User32Ex.instance.GetDesktopWindow(); @@ -95,11 +109,7 @@ public class WindowsEnumeratedXml implements Runnable{ } } Api.User32Ex.instance.EnumWindows(new ParentWindowCallback(), 0); - - //process all windows that have been flagged for uiaBridge (useUiaBridge == true) - appendUiaBridgeWindows(infoList); - - return generateWindowsXml(infoList, "EnumeratedWindows"); + return infoList; } public static void appendUiaBridgeWindows(Map infoList) diff --git a/src/org/synthuse/commands/BaseCommand.java b/src/org/synthuse/commands/BaseCommand.java index a0080a0..4025c0c 100644 --- a/src/org/synthuse/commands/BaseCommand.java +++ b/src/org/synthuse/commands/BaseCommand.java @@ -107,6 +107,15 @@ public class BaseCommand { WIN_XML = WindowsEnumeratedXml.getXml(); LAST_UPDATED_XML = System.nanoTime(); } + + public void forceWin32OnlyXmlRefresh() { + WIN_XML = WindowsEnumeratedXml.getWin32Xml(); + LAST_UPDATED_XML = System.nanoTime(); + } + + public void onlyRefreshWin32(boolean flg) { + SynthuseDlg.config.disableUiaBridge = flg + ""; + } public void targetXmlRefresh(String xpath) { if (WIN_XML.isEmpty()) //can't target refresh unless there is XML to start with diff --git a/src/org/synthuse/commands/MainCommands.java b/src/org/synthuse/commands/MainCommands.java index da4bb63..406db3e 100644 --- a/src/org/synthuse/commands/MainCommands.java +++ b/src/org/synthuse/commands/MainCommands.java @@ -76,6 +76,21 @@ public class MainCommands extends BaseCommand { return true; } + public boolean cmdForceWin32Refresh(String[] args) { + if (!checkArgumentLength(args, 0)) + return false; + forceWin32OnlyXmlRefresh(); + return true; + } + + public boolean cmdOnlyRefreshWin32(String[] args) { + if (!checkArgumentLength(args, 1)) + return false; + boolean flg = Boolean.parseBoolean(args[0]); + onlyRefreshWin32(flg); + return true; + } + public boolean cmdTargetRefresh(String[] args) { if (!checkArgumentLength(args, 1)) return false;