public override void DisplayVisualTree() { if (!JavaAccNativeMethods._IsWindowsAccessBridgeAvailable) { JavaAccNativeMethods.LoadJavaAccessBridge(); JavaAccNativeMethods.Windows_run(); Trace.WriteLine("Initializing the java dda instance.."); JavaAccHelperMethods.InitializeJavaAccessBridge(true); System.Windows.Forms.Application.DoEvents(); System.Windows.Forms.Application.DoEvents(); System.Windows.Forms.Application.DoEvents(); System.Windows.Forms.Application.DoEvents(); System.Windows.Forms.Application.DoEvents(); } int vmId = 0; System.IntPtr accFromWindow = JavaAccHelperMethods.GetAccFromWindow(rootWindow, out vmId); jtvm = new JavaTreeViewModel(new JavaWindow(null, accFromWindow, vmId)); if (w != null) { w.Closing -= W_Closing; avv = null; w = null; } avv = new ApplicationVisualViewer(ApplicationName); avv.LoadTree(jtvm); w = new Window(); w.Closing += W_Closing; w.Content = avv; w.Show(); }
public override void Initialize() { try { JavaAccNativeMethods.LoadJavaAccessBridge(); JavaAccNativeMethods.Windows_run(); JavaAccNativeMethods._IsWindowsAccessBridgeAvailable = true; } catch (Exception ex) { LogWriter.Log(ex); } try { int num; JavaAccHelperMethods.GetAccFromWindow(rootWindow, out num); System.Windows.Forms.Application.DoEvents(); Trace.WriteLine("Initializing the java dda instance.."); JavaAccHelperMethods.InitializeJavaAccessBridge(true); //this.JavaAccEventListenerInstallTimer = new System.Threading.Timer(new System.Threading.TimerCallback(this.InstallAccEventListener_TimerCallback), null, (int)(-1), 0); } catch { } }
public override LookupRequestItem GetValue(IUSDAutomationObject automationObject) { /* * <Controls> * <JAccControl name="clickme"> * <Path> * <NextName offset = "1">Click Me</NextName> * </Path> * </JAccControl> * <JAccControl name="textbox"> * <Path> * <NextRole offset = "0">text</NextRole> * </Path> * </JAccControl> * </Controls> */ if (!JavaAccNativeMethods._IsWindowsAccessBridgeAvailable) { throw new Exception("Java Bridge not available"); } if (!(automationObject is JavaAutomationObject)) { throw new Exception("Invalid automation object"); } string controlValue = String.Empty; controlValue = JavaAccHelperMethods.GetValue(((JavaAutomationObject)automationObject).zero, ((JavaAutomationObject)automationObject).vmId); return(new LookupRequestItem(((JavaAutomationObject)automationObject).name, controlValue)); }
public override void SetValue(IUSDAutomationObject automationObject, string value) { if (!JavaAccNativeMethods._IsWindowsAccessBridgeAvailable) { throw new Exception("Java Bridge not available"); } if (!(automationObject is JavaAutomationObject)) { throw new Exception("Invalid automation object"); } JavaAccHelperMethods.SetValue(((JavaAutomationObject)automationObject).zero, ((JavaAutomationObject)automationObject).vmId, value); System.Windows.Forms.Application.DoEvents(); }
private bool disposedValue = false; // To detect redundant calls protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { JavaAccHelperMethods.ReleaseObject(zero, vmId); System.Windows.Forms.Application.DoEvents(); } // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below. // TODO: set large fields to null. disposedValue = true; } }
public override void Execute(IUSDAutomationObject automationObject, string action) { if (!JavaAccNativeMethods._IsWindowsAccessBridgeAvailable) { throw new Exception("Java Bridge not available"); } if (!(automationObject is JavaAutomationObject)) { throw new Exception("Invalid automation object"); } int failure; JavaAccHelperMethods.DoAction(((JavaAutomationObject)automationObject).zero, out failure, ((JavaAutomationObject)automationObject).vmId, false, action); System.Windows.Forms.Application.DoEvents(); }
static JavaAccEventListener() { try { Trace.WriteLine("Loading java event listener.."); System.AppDomain.CurrentDomain.DomainUnload += new System.EventHandler(JavaAccEventListener.CurrentDomain_DomainUnload); Trace.WriteLine("Initializing java event handlers.."); SetJavaEventHandlers(); SetAccEventHandlers(); SetEventHandlers(); } catch (System.Exception exception) { if (!JavaAccHelperMethods.IsJavaAccException(exception) || !JavaAccHelperMethods.IsJavaAccExceptionMaskable(exception)) { throw new Uii.HostedApplicationToolkit.DataDrivenAdapter.DataDrivenAdapterException("Java listener init failed", exception); } } }
/* * * * private string AccControl(OperationType op, string controlName, string controlValue) * { * int vmId = 0; * System.IntPtr zero = System.IntPtr.Zero; * // try * // { * // int num2; * // switch (op) * // { * // case OperationType.FindControl: * // zero = this.FindAccObj(controlName, out vmId, false); * // if (zero.Equals((System.IntPtr)System.IntPtr.Zero)) * // { * // return bool.FalseString; * // } * // return bool.TrueString; * * // case OperationType.GetControlValue: * // zero = this.FindAccObj(controlName, out vmId, true); * // return JavaAccHelperMethods.GetValue(zero, vmId); * * // case OperationType.SetControlValue: * // zero = this.FindAccObj(controlName, out vmId, true); * // JavaAccHelperMethods.SetValue(zero, vmId, controlValue); * // return null; * * // case OperationType.ExecuteControlAction: * // zero = this.FindAccObj(controlName, out vmId, true); * // if (!System.Threading.Thread.CurrentThread.CurrentCulture.Name.StartsWith(JavaDataDrivenAdapterConstants.FRENCH_CULTURE_TEXT, System.StringComparison.OrdinalIgnoreCase)) * // { * // break; * // } * // JavaAccHelperMethods.DoAction(zero, out num2, vmId, false, JavaDataDrivenAdapterConstants.FRENCH_DEFAULT_ACTION_NAME); * // goto Label_00D6; * * // default: * // goto Label_00E4; * // } * // JavaAccHelperMethods.DoAction(zero, out num2, vmId, true, string.Empty); * // Label_00D6: * // return null; * // } * // finally * // { * // JavaAccHelperMethods.ReleaseObject(zero, vmId); * // } * //Label_00E4: * return null; * } * * private string AccHyperlink(OperationType op, string controlName, string controlValue) * { * int vmId = 0; * System.IntPtr zero = System.IntPtr.Zero; * //try * //{ * // switch (op) * // { * // case OperationType.FindControl: * // zero = this.FindAccObj(controlName, out vmId, false); * // if (zero.Equals((System.IntPtr)System.IntPtr.Zero)) * // { * // return bool.FalseString; * // } * // return bool.TrueString; * * // case OperationType.GetControlValue: * // zero = this.FindAccObj(controlName, out vmId, true); * // return JavaAccHelperMethods.GetAccHyperlink(zero, vmId); * * // case OperationType.SetControlValue: * // zero = this.FindAccObj(controlName, out vmId, true); * // JavaAccHelperMethods.ActivateAccHyperlink(zero, vmId); * // return null; * * // case OperationType.ExecuteControlAction: * // int num2; * // zero = this.FindAccObj(controlName, out vmId, true); * // if (!JavaAccHelperMethods.DoAction(zero, out num2, vmId, true, string.Empty)) * // { * // return bool.FalseString; * // } * // return bool.TrueString; * // } * //} * //finally * //{ * // JavaAccHelperMethods.ReleaseObject(zero, vmId); * //} * return null; * } * * private string AccSelector(OperationType op, string controlName, string controlValue) * { * int vmId = 0; * System.IntPtr zero = System.IntPtr.Zero; * //try * //{ * // switch (op) * // { * // case OperationType.FindControl: * // zero = this.FindAccObj(controlName, out vmId, false); * // if (zero.Equals((System.IntPtr)System.IntPtr.Zero)) * // { * // return bool.FalseString; * // } * // return bool.TrueString; * * // case OperationType.GetControlValue: * // zero = this.FindAccObj(controlName, out vmId, true); * // return JavaAccHelperMethods.GetAccSelectionName(zero, vmId); * * // case OperationType.SetControlValue: * // zero = this.FindAccObj(controlName, out vmId, true); * // JavaAccHelperMethods.SetAccSelection(zero, vmId, controlValue); * // return null; * * // case OperationType.ExecuteControlAction: * // int num2; * // zero = this.FindAccObj(controlName, out vmId, true); * // JavaAccHelperMethods.DoAction(zero, out num2, vmId, false, JavaDataDrivenAdapterConstants.TOGGLE_POPUP_ACTION_NAME); * // return null; * // } * //} * //catch (System.ArgumentException) * //{ * // throw new DataDrivenAdapterException("Incorrect control value format"); * //} * //finally * //{ * // JavaAccHelperMethods.ReleaseObject(zero, vmId); * //} * return null; * } * * private string AccTable(OperationType op, string controlName, string controlValue) * { * int vmId = 0; * System.IntPtr zero = System.IntPtr.Zero; * //try * //{ * // switch (op) * // { * // case OperationType.FindControl: * // zero = this.FindAccObj(controlName, out vmId, false); * // if (zero.Equals((System.IntPtr)System.IntPtr.Zero)) * // { * // return bool.FalseString; * // } * // return bool.TrueString; * * // case OperationType.GetControlValue: * // zero = this.FindAccObj(controlName, out vmId, true); * // return JavaAccHelperMethods.GetAccTableCellValue(zero, vmId, controlValue); * * // case OperationType.SetControlValue: * // zero = this.FindAccObj(controlName, out vmId, true); * // JavaAccHelperMethods.SetAccTableCellValue(zero, vmId, controlName, controlValue); * // return null; * // } * //} * //catch (System.ArgumentException) * //{ * // throw new DataDrivenAdapterException("Incorrect control value format"); * //} * //finally * //{ * // JavaAccHelperMethods.ReleaseObject(zero, vmId); * //} * return null; * } * * private string AccTree(OperationType op, string controlName, string controlValue) * { * int vmId = 0; * System.IntPtr zero = System.IntPtr.Zero; * //try * //{ * // switch (op) * // { * // case OperationType.FindControl: * // zero = this.FindAccObj(controlName, out vmId); * // if (zero.Equals((System.IntPtr)System.IntPtr.Zero)) * // { * // return bool.FalseString; * // } * // return bool.TrueString; * * // case OperationType.GetControlValue: * // zero = this.FindAccObj(controlName, out vmId); * // return JavaAccHelperMethods.GetAccSelectionName(zero, vmId); * * // case OperationType.SetControlValue: * // zero = this.FindAccObj(controlName, out vmId); * // JavaAccHelperMethods.SetAccSelection(zero, vmId, controlValue); * // return null; * * // case OperationType.ExecuteControlAction: * // int num2; * // zero = this.FindAccObj(controlName, out vmId); * // JavaAccHelperMethods.DoAction(zero, out num2, vmId, false, JavaDataDrivenAdapterConstants.TOGGLE_EXPAND_ACTION_NAME); * // return null; * // } * //} * //catch (System.ArgumentException) * //{ * // throw new DataDrivenAdapterException("Incorrect control value format"); * //} * //finally * //{ * // JavaAccHelperMethods.ReleaseObject(zero, vmId); * //} * return null; * } */ protected System.IntPtr JavaFindAccObj(string controlName, out int vmId, string controlXml) { XmlDocument doc = new XmlDocument(); doc.LoadXml(controlXml); XmlNode firstDescendentUnderControlConfig = doc.SelectSingleNode("//Path"); if (firstDescendentUnderControlConfig == null) { throw new DataDrivenAdapterException(OperationType.FindControl, controlName, "No Path element found"); } //if (_NeedToCallWindowsRun) //{ // JavaAccNativeMethods.Windows_run(); // _NeedToCallWindowsRun = false; // System.Windows.Forms.Application.DoEvents(); //} System.IntPtr accFromWindow = JavaAccHelperMethods.GetAccFromWindow(rootWindow, out vmId); string defaultValue = System.Threading.Thread.CurrentThread.CurrentUICulture.ToString(); for (XmlNode node2 = firstDescendentUnderControlConfig.FirstChild; node2 != null; node2 = node2.NextSibling) { int num; int num2; bool flag; switch (node2.Name) { case "FindWindow": accFromWindow = JavaAccHelperMethods.GetAccFromWindow(this.FindWindowFromControlName(controlName, true), out vmId); break; case "Next": case "NextName": num = GetAttributeValue(node2, "match", 1); num2 = GetAttributeValue(node2, "offset", 0); flag = false; if (GetAttributeValue(node2, "culture", defaultValue).Equals(defaultValue, System.StringComparison.OrdinalIgnoreCase)) { if (num <= 0) { accFromWindow = System.IntPtr.Zero; } else { accFromWindow = JavaAccHelperMethods.GetNextChildByName(node2.InnerText, ref num, num2, ref flag, accFromWindow, vmId); } } break; case "NextRole": num = GetAttributeValue(node2, "match", 1); num2 = GetAttributeValue(node2, "offset", 0); flag = false; if (GetAttributeValue(node2, "culture", defaultValue).Equals(defaultValue, System.StringComparison.OrdinalIgnoreCase)) { if (num <= 0) { accFromWindow = System.IntPtr.Zero; } else { accFromWindow = JavaAccHelperMethods.GetNextChildByRole(node2.InnerText, ref num, num2, ref flag, accFromWindow, vmId); } } break; default: throw new DataDrivenAdapterException("Unsupported path element"); } if (accFromWindow.Equals((System.IntPtr)System.IntPtr.Zero)) { break; } } if (accFromWindow.Equals((System.IntPtr)System.IntPtr.Zero)) { throw new DataDrivenAdapterException("Unable to find control on UI"); } //this.KnownControls.RegisterControl(controlName, accFromWindow, vmId); return(accFromWindow); }
private static void FireEvent <T>(System.IntPtr source, string eventName, System.IntPtr jEvent, int vmId, T oldObject, T newObject) { System.Type type = null; try { if (JavaControlChanged != null) { if (eventName.Equals(JavaDataDrivenAdapterConstants.PropertyStateChangedEventName, System.StringComparison.OrdinalIgnoreCase)) { switch (JavaAccHelperMethods.GetRoleID(source, vmId)) { case 1: FireCheckBoxEvents <T>(source, vmId, oldObject, newObject); break; case 2: FireRadioButtonEvents <T>(source, vmId, oldObject, newObject); break; case 5: FireTreeNodeEvents <T>(source, vmId, oldObject, newObject); break; } } else if (eventName.Equals(JavaDataDrivenAdapterConstants.MousePressedEventName, System.StringComparison.OrdinalIgnoreCase)) { if (JavaAccHelperMethods.GetRoleID(source, vmId) == 0) { FireControlChangedEvent(source, vmId, JavaDataDrivenAdapterConstants.ButtonPressedEventName); } } else if (eventName.Equals(JavaDataDrivenAdapterConstants.MouseReleasedEventName, System.StringComparison.OrdinalIgnoreCase)) { if (JavaAccHelperMethods.GetRoleID(source, vmId) == 0) { FireControlChangedEvent(source, vmId, JavaDataDrivenAdapterConstants.ButtonReleasedEventName); } } else if ((eventName.Equals(JavaDataDrivenAdapterConstants.GotFocusEventName, System.StringComparison.OrdinalIgnoreCase) || eventName.Equals(JavaDataDrivenAdapterConstants.LostFocusEventName, System.StringComparison.OrdinalIgnoreCase)) || ((eventName.Equals(JavaDataDrivenAdapterConstants.MenuSelectedEventName, System.StringComparison.OrdinalIgnoreCase) || eventName.Equals(JavaDataDrivenAdapterConstants.MenuDeSelectedEventName, System.StringComparison.OrdinalIgnoreCase)) || eventName.Equals(JavaDataDrivenAdapterConstants.MenuCanceledEventName, System.StringComparison.OrdinalIgnoreCase))) { FireControlChangedEvent(source, vmId, eventName); } } if (JavaAccEventOccurred != null) { type = (oldObject == null) ? typeof(object) : oldObject.GetType(); FireAccEvent <T>(source, eventName, vmId, type, oldObject, newObject); } } catch (System.Exception exception) { if (!JavaAccHelperMethods.IsJavaAccException(exception) || !JavaAccHelperMethods.IsJavaAccExceptionMaskable(exception)) { Trace.WriteLine("An error occurred while listening to java events.."); } } finally { JavaAccHelperMethods.ReleaseObject(source, vmId); JavaAccHelperMethods.ReleaseObject(jEvent, vmId); if (((System.IntPtr)source).GetType().Equals(type)) { object obj2 = oldObject; object obj3 = newObject; JavaAccHelperMethods.ReleaseObject((System.IntPtr)((System.IntPtr)obj2), vmId); JavaAccHelperMethods.ReleaseObject((System.IntPtr)((System.IntPtr)obj3), vmId); } } }