private IEnumerator LoadNestedComponentCoroutine <T>(string prefabName, IWrappedRef <T> refObject) where T : Component
    {
        refObject.Reference = GetInjectedComponent <T>(prefabName, true);
        while (refObject.Reference == null)
        {
            yield return(null);

            refObject.Reference = GetInjectedComponent <T>(prefabName, true);
        }
        log.DebugMS("LoadNestedComponentCoroutine - success. injectedComponent: " + refObject.Reference + ", refObject.Value: " + refObject.Reference);
    }
    public void OnButton(GameObject sender)
    {
        if (sender == null)
        {
            log.Error(_Logger.User.Msaw, "(GameObject)sender == null. Not forwarding button event.");
            return;
        }

        log.DebugMS("AbstractPanelDeclarations.OnButton( " + sender.name + " )");

        if (OnButtonClicked != null)
        {
            OnButtonClicked(sender);
        }

        OnGUIButton(sender);
    }