Beispiel #1
0
        void Init()
        {
            _authorized = false;

            _unityLogo      = (Texture2D)Resources.Load("Pwrd_By_Unity_Pri_In_sm", typeof(Texture2D));
            _litteratusLogo = (Texture2D)Resources.Load("Litteratus_Logo_sm", typeof(Texture2D));
            _separator      = (Texture2D)Resources.Load("separator", typeof(Texture2D));
            _helpButton     = (Texture2D)Resources.Load("help", typeof(Texture2D));
            _browseButton   = (Texture2D)Resources.Load("folder", typeof(Texture2D));

            _username                   = GetString("username", _username);
            _password                   = GetString("password", _password);
            _activeWorkbookname         = GetString("activeworkbookname", _activeWorkbookname);
            _objDBResourcesDirectory    = GetString("objDBResourcesDirectory", _objDBResourcesDirectory);
            _objDBEditorDirectory       = GetString("objDBEditorDirectory", _objDBEditorDirectory);
            _staticDBResourcesDirectory = GetString("staticDBResourcesDirectory", _staticDBResourcesDirectory);
            _nguiDirectory              = GetString("nguiDirectory", _nguiDirectory);
            _xmlDirectory               = GetString("xmlDirectory", _xmlDirectory);
            _jsonDirectory              = GetString("jsonDirectory", _jsonDirectory);
            _csvDirectory               = GetString("csvDirectory", _csvDirectory);
            _playmakerDirectory         = GetString("playmakerDirectory", _playmakerDirectory);
            _daikonforgeDirectory       = GetString("daikonforgeDirectory", _daikonforgeDirectory);
            _editorLanguage             = GetString("editorLanguage", _editorLanguage);
            _saveCredentials            = GetBool("saveCredientials", _saveCredentials);
            _autoLogin                  = GetBool("autoLogin", _autoLogin);
            _useObjDB                   = GetBool("useObjDB", _useObjDB);
            _useStaticDB                = GetBool("useStaticDB", _useStaticDB);
            _useNGUI        = GetBool("useNGUI", _useNGUI);
            _useNGUILegacy  = GetBool("useNGUILegacy", _useNGUILegacy);
            _useXML         = GetBool("useXML", _useXML);
            _useJSON        = GetBool("useJSON", _useJSON);
            _useCSV         = GetBool("useCSV", _useCSV);
            _useDaikonForge = GetBool("useDaikonForge", _useDaikonForge);
            _usePlaymaker   = GetBool("usePlaymaker", _usePlaymaker);
            _languagesIndex = GetInt("languagesIndex", _languagesIndex);
            _projectPath    = Application.dataPath;
            _currentHelpDoc = string.Empty;

            _ArrayDelimiters            = GetString("arrayDelimiters", _ArrayDelimiters);
            _StringArrayDelimiters      = GetString("stringArrayDelimiters", _StringArrayDelimiters);
            _ComplexTypeDelimiters      = GetString("complexTypeDelimiters", _ComplexTypeDelimiters);
            _ComplexTypeArrayDelimiters = GetString("complexTypeArrayDelimiters", _ComplexTypeArrayDelimiters);

            _TrimStrings      = GetBool("trimStrings", _TrimStrings);
            _TrimStringArrays = GetBool("trimStringArrays", _TrimStringArrays);

            System.Net.ServicePointManager.ServerCertificateValidationCallback = Validator;
            _service          = new Google.GData.Spreadsheets.SpreadsheetsService("UnityGoogleFu");
            _authenticateTick = -1;

            if (System.IO.Directory.GetFiles(Application.dataPath, "NGUITools.cs", System.IO.SearchOption.AllDirectories).Length > 0)
            {
                _foundNGUI = true;
            }

            if (System.IO.Directory.GetFiles(Application.dataPath, "PlayMaker.dll", System.IO.SearchOption.AllDirectories).Length > 0)
            {
                _foundPlaymaker = true;
            }

            if (System.IO.Directory.GetFiles(Application.dataPath, "dfScriptLite.dll", System.IO.SearchOption.AllDirectories).Length > 0)
            {
                _foundDaikonForge = true;
            }

            if (_autoLogin == true)
            {
                DoRefreshWorkbooks = true;
            }
            else
            {
                string    tmpManualWorkbooks    = GetString("manualworkbookurls", System.String.Empty);
                string [] split_ManualWorkbooks = tmpManualWorkbooks.Split(new char[] { '|' }, System.StringSplitOptions.RemoveEmptyEntries);
                foreach (string s in split_ManualWorkbooks)
                {
                    WorkBookInfo info = AddManualWorkbookByURL(s);
                    if (info != null && info.Title == _activeWorkbookname)
                    {
                        _activeWorkbook = info;
                    }
                }
            }
        }
Beispiel #2
0
        void DrawAccountWorkbooksGUI()
        {

            EditorGUILayout.BeginHorizontal();
            GUILayout.Label("", EditorStyles.miniLabel);
            if (GUILayout.Button(Localize("ID_MANUAL_REFRESH"), EditorStyles.toolbarButton, GUILayout.Width(135)))
            {
                var feed = _Service.Query(_Query);

                if (feed.Entries.Count == 0)
                {
                    _EditorInfo = Localize("ID_NO_DB_ERROR");
                }
                else
                {
                    Debug.Log("Manually Refreshing Workbooks.. This could take a while");
                    _Workbooks.Clear();
                    foreach (var entry in feed.Entries.Cast<Google.GData.Spreadsheets.SpreadsheetEntry>())
                    {
                        try
                        {
                            var info = _Workbooks.Find(
                                in_i => GfuStrCmp(in_i.Title, entry.Feed.Title.Text)
                                );
                            if (info == null)
                            {
                                info = new WorkBookInfo(entry);
                                _Workbooks.Add(info);
                            }
                            if (GfuStrCmp(info.Title, _ActiveWorkbookname))
                                SetActiveWorkbook(info);
                        }
                        catch (System.Exception ex)
                        {
                            Debug.Log(Localize("ID_INACCESSIBLE_ERROR"));
                            Debug.Log(ex.Message);
                        }
                    }
                    Debug.Log("Manual Refresh Complete");
                }
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            DrawHelpButtonGUI("ID_HELP_ACCOUNT_WORKBOOKS");
            DrawLabelHeader("ID_ACCOUNT_WORKBOOK");
            EditorGUILayout.EndHorizontal();

            foreach (WorkBookInfo wbInfo in _Workbooks)
            {
                if (wbInfo == _ActiveWorkbook)
                    GUI.enabled = false;
                EditorGUILayout.BeginHorizontal();
                GUILayout.Label(wbInfo.Title, EditorStyles.miniLabel);

                if (GUILayout.Button(Localize("ID_OPEN_URL"), EditorStyles.miniButton, GUILayout.Width(65)))
                {
                    ClearMessages();
                    Application.OpenURL(wbInfo.Url);
                }

                if (GUILayout.Button(Localize("ID_ACTIVATE"), EditorStyles.miniButton, GUILayout.Width(65)))
                {
                    ClearMessages();
                    SetActiveWorkbook(wbInfo);
                    SetString("activeworkbookname", wbInfo.Title);
                    _CurrentPage = GfPage.Toolbox;
                }
                EditorGUILayout.EndHorizontal();
                GUI.enabled = true;
            }
        }
Beispiel #3
0
        void RefreshWorkbooks()
        {
            if (!string.IsNullOrEmpty(_Username) && !string.IsNullOrEmpty(_Password))
            {
                Google.GData.Spreadsheets.SpreadsheetFeed feed = null;
                var doWorkbookQuery = false;
                try
                {
                    _Service.setUserCredentials(_Username, _Password);

                    var savedToken = GetString("AuthToken_" + _Username, string.Empty);

                    if (savedToken != string.Empty)
                    {
                        _Service.SetAuthenticationToken(savedToken);
                    }
                    else
                    {
                        var token = _Service.QueryClientLoginToken();
                        SetString("AuthToken_" + _Username, token);
                        _Service.SetAuthenticationToken(token);
                    }

                    //_Workbooks.Clear();

                    feed = _Service.Query(_Query);

                    if (feed.Entries.Count == 0)
                    {
                        _EditorInfo = Localize("ID_NO_DB_ERROR");
                    }
                    else if(_Workbooks.Count == 0)
                    {
                        doWorkbookQuery = true;
                    }
                    else
                    {
                        foreach (var info in _Workbooks.Where(in_info => GfuStrCmp(in_info.Title, _ActiveWorkbookname)))
                        {
                            SetActiveWorkbook(info);
                        }
                        _Authorized = true;
                    }
                }
                catch (System.Exception ex)
                {
                    Debug.Log(ex.Message);
                    _EditorInfo = Localize("ID_AUTH_ERROR");
                    SetString("AuthToken", string.Empty);
                }

                if (doWorkbookQuery)
                {
                    foreach (var entry in feed.Entries.Cast<Google.GData.Spreadsheets.SpreadsheetEntry>())
                    {
                        try
                        {
                            var info = _Workbooks.Find(
                                in_i => GfuStrCmp(in_i.Title, entry.Feed.Title.Text)
                                );
                            if (info == null)
                            {
                                info = new WorkBookInfo(entry);
                                _Workbooks.Add(info);
                            }
                            if (GfuStrCmp(info.Title, _ActiveWorkbookname))
                                SetActiveWorkbook(info);
                        }
                        catch (System.Exception ex)
                        {
                            Debug.Log(Localize("ID_INACCESSIBLE_ERROR"));
                            Debug.Log(ex.Message);
                        }
                    }

                    _Authorized = true;
                }
            }

            _Manualworkbookurls.Clear();
            var tmpManualWorkbooks = GetString("manualworkbookurls", System.String.Empty);
            var splitManualWorkbooks = tmpManualWorkbooks.Split(new[] { '|' }, System.StringSplitOptions.RemoveEmptyEntries);
            foreach (var info in splitManualWorkbooks.Select(in_s => AddManualWorkbookByUrl(in_s)).Where(in_info => in_info != null && GfuStrCmp(in_info.Title, _ActiveWorkbookname)))
            {
                SetActiveWorkbook(info);
            }
        }
Beispiel #4
0
        WorkBookInfo AddManualWorkbookByUrl(string in_manualUrl)
        {
            WorkBookInfo info = null;
            if (string.IsNullOrEmpty(in_manualUrl))
            {
                _EditorInfo = Localize("ID_NO_URL_ERROR");
                return null;
            }

            try
            {
                var key = in_manualUrl.Substring(in_manualUrl.IndexOf("key=", System.StringComparison.InvariantCultureIgnoreCase) + 4);
                key = key.Split(new[] { '&' })[0];

                var singleQuery = new Google.GData.Spreadsheets.WorksheetQuery(key, "public", "values");
                Google.GData.Spreadsheets.WorksheetFeed feed = _Service.Query(singleQuery);
                var finalUrl = in_manualUrl.Split(new[] { '&' })[0];
                if (feed != null)
                {
                    foreach (var atomEntry in feed.Entries)
                    {
                        var entry = (Google.GData.Spreadsheets.WorksheetEntry)atomEntry;
                        info = _Manualworkbooks.Find(
                            in_i => GfuStrCmp(in_i.Url, finalUrl)
                            ) ?? _Workbooks.Find(
                                in_i => GfuStrCmp(in_i.Url, finalUrl)
                                );
                        if (info == null)
                        {
                            info = new WorkBookInfo();

                            _Manualworkbooks.Add(info);
                            if (_Manualworkbookurls.Contains(in_manualUrl) == false)
                                _Manualworkbookurls.Add(in_manualUrl);
                            var newManualWorkbookUrls = _Manualworkbookurls.Aggregate(System.String.Empty, (in_current, in_s) => in_current + (in_s + "|"));
                            SetString("manualworkbookurls", newManualWorkbookUrls);
                        }

                        info.AddWorksheetEntry(entry, finalUrl);
                    }
                }
            }
            catch
            {
                try
                {
                    var key = in_manualUrl.Substring(in_manualUrl.IndexOf("spreadsheets/d/", System.StringComparison.InvariantCultureIgnoreCase) + 15);
                    key = key.Split(new[] { '/' })[0];

                    var singleQuery = new Google.GData.Spreadsheets.WorksheetQuery(key, "public", "values");
                    var feed = _Service.Query(singleQuery);
                    var urlParts = in_manualUrl.Split(new[] { '/' });

                    var finalUrl = "";
                    var urlBuild = 0;
                    string urlPart;
                    do
                    {
                        urlPart = urlParts[urlBuild];
                        finalUrl += urlPart + '/';
                        urlBuild++;
                    } while (urlPart != key);
                    if (feed != null)
                    {
                        foreach (var atomEntry in feed.Entries)
                        {
                            var entry = (Google.GData.Spreadsheets.WorksheetEntry)atomEntry;
                            info = _Manualworkbooks.Find(
                                in_i => GfuStrCmp(in_i.Url, finalUrl)
                                ) ?? _Workbooks.Find(
                                    in_i => GfuStrCmp(in_i.Url, finalUrl)
                                    );
                            if (info == null)
                            {
                                info = new WorkBookInfo();

                                _Manualworkbooks.Add(info);
                                if (_Manualworkbookurls.Contains(in_manualUrl) == false)
                                    _Manualworkbookurls.Add(in_manualUrl);
                                string newManualWorkbookUrls = _Manualworkbookurls.Aggregate(System.String.Empty, (in_current, in_s) => in_current + (in_s + "|"));
                                SetString("manualworkbookurls", newManualWorkbookUrls);
                            }

                            info.AddWorksheetEntry(entry, finalUrl);
                        }
                    }
                }
                catch
                {
                    _EditorInfo = Localize("ID_INVALID_URL_ERROR");
                }
            }

            return info;
        }
Beispiel #5
0
        void SetActiveWorkbook(WorkBookInfo in_workBook)
        {
            _ActiveWorkbook = in_workBook;

            if(_ActiveWorkbook == null)
                return;
            if (_Service == null)
                return;

            var feed = _Service.Query(new Google.GData.Spreadsheets.SpreadsheetQuery());
            foreach (var entry in feed.Entries.Cast<Google.GData.Spreadsheets.SpreadsheetEntry>().Where(in_entry => in_entry.Title.Text.Equals(in_workBook.Title)))
            {
                _ActiveWorkbook.SetupFromSpreadsheetEntry(entry);
                _CurrentPage = GfPage.Toolbox;
            }

        }