示例#1
0
            internal static string ToCreateWorkspace(IPlasticWebRestApi plasticWebRestApi)
            {
                string clientConfServer = PlasticGui.Plastic.ConfigAPI.GetClientConfServer();

                if (!EditionToken.IsCloudEdition())
                {
                    return(clientConfServer);
                }

                string cloudServer = PlasticGuiConfig.Get().
                                     Configuration.DefaultCloudServer;

                if (!string.IsNullOrEmpty(cloudServer))
                {
                    return(cloudServer);
                }

                CloudEditionCreds.Data config =
                    CloudEditionCreds.GetFromClientConf();

                cloudServer = GetFirstCloudServer.
                              GetCloudServer(plasticWebRestApi, config.Email, config.Password);

                if (string.IsNullOrEmpty(cloudServer))
                {
                    return(clientConfServer);
                }

                SaveCloudServer.ToPlasticGuiConfig(cloudServer);

                return(cloudServer);
            }
示例#2
0
        static bool TryGetPlasticEditionToDownload(
            GuiMessage.IGuiMessage guiMessage,
            out Edition plasticEdition)
        {
            plasticEdition = Edition.Cloud;

            if (EditionToken.IsCloudEdition())
            {
                return(true);
            }

            GuiMessage.GuiMessageResponseButton result = guiMessage.ShowQuestion(
                PlasticLocalization.GetString(PlasticLocalization.Name.PlasticSCM),
                PlasticLocalization.GetString(PlasticLocalization.Name.WhichVersionInstall),
                PlasticLocalization.GetString(PlasticLocalization.Name.DownloadCloudEdition),
                PlasticLocalization.GetString(PlasticLocalization.Name.DownloadEnterpriseEdition),
                PlasticLocalization.GetString(PlasticLocalization.Name.CancelButton),
                true);

            if (result == GuiMessage.GuiMessageResponseButton.Third)
            {
                return(false);
            }

            if (result == GuiMessage.GuiMessageResponseButton.First)
            {
                return(true);
            }

            plasticEdition = Edition.Enterprise;
            return(true);
        }
示例#3
0
            internal static string ToCreateWorkspace()
            {
                string clientConfServer = Plastic.ConfigAPI.GetClientConfServer();

                if (!EditionToken.IsCloudEdition())
                {
                    return(clientConfServer);
                }

                string organizationName = PlasticGuiConfig.Get().
                                          Configuration.CloudOrganization;

                if (!string.IsNullOrEmpty(organizationName))
                {
                    return(GetCloudServer(organizationName));
                }

                CloudEditionCreds.Data config =
                    CloudEditionCreds.GetFromClientConf();

                organizationName = CloudOrganizationRetriever.
                                   GetOrganization(config.Email, config.Password);

                if (string.IsNullOrEmpty(organizationName))
                {
                    return(clientConfServer);
                }

                SaveCloudOrganization.ToPlasticGuiConfig(organizationName);

                return(GetCloudServer(organizationName));
            }
        internal static void ShowWindow(
            RepositorySpec repSpec,
            bool isGluonMode,
            string installCloudFrom,
            string installEnterpriseFrom,
            string cancelInstallFrom)
        {
            DownloadPlasticExeWindow window = GetWindow <DownloadPlasticExeWindow>();

            window.mRepSpec               = repSpec;
            window.mIsGluonMode           = isGluonMode;
            window.mInstallCloudFrom      = installCloudFrom;
            window.mInstallEnterpriseFrom = installEnterpriseFrom;
            window.mCancelInstallFrom     = cancelInstallFrom;

            window.titleContent = new GUIContent(
                PlasticLocalization.GetString(PlasticLocalization.Name.PlasticSCM));

            if (EditionToken.IsCloudEdition())
            {
                window.minSize = window.maxSize = new Vector2(700, 160);
            }
            else
            {
                window.minSize = window.maxSize = new Vector2(700, 230);
            }

            window.Show();
        }
        internal static void FromPlasticInstallation(string plasticClientBinDir)
        {
            bool isCloudPlasticInstall = EditionToken.IsCloudEditionForPath(plasticClientBinDir);
            bool isDvcsPlasticInstall  = EditionToken.IsDvcsEditionForPath(plasticClientBinDir);

            SetupTokenFiles(
                isCloudPlasticInstall,
                isDvcsPlasticInstall);
        }
 void Dispose()
 {
     mDownloadCloudEditionButton.clicked -= DownloadCloudEditionButton_Clicked;
     if (!EditionToken.IsCloudEdition())
     {
         mDownloadEnterpriseButton.clicked -= DownloadEnterpriseEditionButton_Clicked;
     }
     mCancelButton.clicked    -= CancelButton_Clicked;
     EditorApplication.update -= CheckForPlasticExe;
 }
示例#7
0
        void DoConfigureButton(ProgressControlsForViews configureProgress)
        {
            bool isAutoLoginRunning = autoLoginState > AutoLogin.State.Running && autoLoginState <= AutoLogin.State.InitializingPlastic;

            GUI.enabled = !(configureProgress.ProgressData.IsOperationRunning || isAutoLoginRunning);

            if (GUILayout.Button(PlasticLocalization.GetString(
                                     PlasticLocalization.Name.LoginOrSignUp),
                                 GUILayout.Width(BUTTON_WIDTH)))
            {
                if (autoLoginState > AutoLogin.State.Off && autoLoginState <= AutoLogin.State.InitializingPlastic)
                {
                    autoLoginState = AutoLogin.State.Running;
                    AutoLogin autoLogin = new AutoLogin();
                    autoLogin.Run();
                    return;
                }

                ((IProgressControls)configureProgress).ShowProgress(string.Empty);

                // Login button defaults to Cloud sign up
                CloudEditionWelcomeWindow.ShowWindow(
                    mPlasticWebRestApi,
                    mCmConnection,
                    this);

                GUIUtility.ExitGUI();
            }

            // If client configuration cannot be determined, keep login button default as Cloud
            // sign in window, but show Enterprise option as well
            if (EditionToken.IsCloudEdition())
            {
                GUILayout.FlexibleSpace();

                var anchorStyle = new GUIStyle(GUI.skin.label);
                anchorStyle.normal.textColor = new Color(0.129f, 0.588f, 0.953f);
                anchorStyle.hover.textColor  = new Color(0.239f, 0.627f, 0.949f);
                anchorStyle.active.textColor = new Color(0.239f, 0.627f, 0.949f);

                if (GUILayout.Button(
                        PlasticLocalization.GetString(
                            PlasticLocalization.Name.NeedEnterprise),
                        anchorStyle,
                        GUILayout.Width(BUTTON_WIDTH),
                        GUILayout.Height(20)))
                {
                    TeamEditionConfigurationWindow.ShowWindow(mPlasticWebRestApi, this);
                }

                GUILayout.Space(BUTTON_MARGIN);
            }

            GUI.enabled = true;
        }
        void BuildComponents()
        {
            VisualElement root = rootVisualElement;

            root.Clear();
            InitializeLayoutAndStyles();

            mRequireMessageLabel        = root.Q <Label>("requireMessage");
            mMessageLabel               = root.Q <Label>("message");
            mDownloadCloudEditionButton = root.Q <Button>("downloadCloudEdition");
            mDownloadEnterpriseButton   = root.Q <Button>("downloadEnterpriseEdition");
            mCancelButton               = root.Q <Button>("cancel");
            mProgressControlsContainer  = root.Q <VisualElement>("progressControlsContainer");

            root.Q <Label>("title").text =
                PlasticLocalization.GetString(PlasticLocalization.Name.InstallPlasticSCM);

            mDownloadCloudEditionButton.text =
                PlasticLocalization.GetString(PlasticLocalization.Name.DownloadCloudEdition);
            mDownloadCloudEditionButton.clicked += DownloadCloudEditionButton_Clicked;

            if (EditionToken.IsCloudEdition())
            {
                mDownloadEnterpriseButton.AddToClassList("display-none");
                DownloadPlasticExeWindow window = GetWindow <DownloadPlasticExeWindow>();
            }
            else
            {
                mMessageLabel.text =
                    PlasticLocalization.GetString(
                        PlasticLocalization.Name.WhichVersionInstall);
                mDownloadEnterpriseButton.text =
                    PlasticLocalization.GetString(
                        PlasticLocalization.Name.DownloadEnterpriseEdition);
                mDownloadEnterpriseButton.clicked += DownloadEnterpriseEditionButton_Clicked;
            }

            mCancelButton.text =
                PlasticLocalization.GetString(PlasticLocalization.Name.CancelButton);
            mCancelButton.clicked += CancelButton_Clicked;

            mProgressControls = new ProgressControlsForDialogs(
                new VisualElement[] {
                mDownloadCloudEditionButton,
                mDownloadEnterpriseButton,
                mCancelButton
            });

            mProgressControlsContainer.Add(mProgressControls);
        }
        static void SetupEditionFile(string plasticInstallDir)
        {
            bool isCloudPlasticInstall = EditionToken.IsCloudEditionForPath(plasticInstallDir);
            bool isDvcsPlasticInstall  = EditionToken.IsDvcsEditionForPath(plasticInstallDir);

            string unityCloudEditionTokenFile = Path.Combine(
                ApplicationLocation.GetAppPath(),
                EditionToken.CLOUD_EDITION_FILE_NAME);

            string unityDvcsEditionTokenFile = Path.Combine(
                ApplicationLocation.GetAppPath(),
                EditionToken.DVCS_EDITION_FILE_NAME);

            SetupTokenFile(isCloudPlasticInstall, unityCloudEditionTokenFile);
            SetupTokenFile(isDvcsPlasticInstall, unityDvcsEditionTokenFile);
        }
示例#10
0
        internal static void ShowWindow(bool isGluonMode)
        {
            sIsGluonMode = isGluonMode;

            DownloadPlasticExeWindow window = GetWindow <DownloadPlasticExeWindow>();

            window.titleContent = new GUIContent(
                PlasticLocalization.GetString(PlasticLocalization.Name.PlasticSCM));

            if (EditionToken.IsCloudEdition())
            {
                window.minSize = window.maxSize = new Vector2(700, 160);
            }
            else
            {
                window.minSize = window.maxSize = new Vector2(700, 230);
            }

            window.Show();
        }
示例#11
0
            internal static string ToCreateWorkspace()
            {
                string clientConfServer = Plastic.ConfigAPI.GetClientConfServer();

                if (!EditionToken.IsCloudEdition())
                {
                    return(clientConfServer);
                }

                CloudEditionCreds.Data config =
                    CloudEditionCreds.GetFromClientConf();

                string organizationName = CloudOrganizationRetriever.GetOrganization(
                    config.Email, config.Password);

                if (string.IsNullOrEmpty(organizationName))
                {
                    return(clientConfServer);
                }

                return(string.Format("{0}@{1}", organizationName, CloudServer.Alias));
            }
        static void ShowSettingsContextMenu(
            WorkspaceInfo wkInfo,
            bool isGluonMode)
        {
            GenericMenu menu = new GenericMenu();

            string openToolText = isGluonMode ?
                                  PlasticLocalization.GetString(PlasticLocalization.Name.LaunchGluonButton) :
                                  PlasticLocalization.GetString(PlasticLocalization.Name.LaunchPlasticButton);

            menu.AddItem(
                new GUIContent(openToolText),
                false,
                () => LaunchTool.OpenGUIForMode(wkInfo, isGluonMode));

            if (EditionToken.IsCloudEdition())
            {
                menu.AddItem(new GUIContent(
                                 PlasticLocalization.GetString(
                                     PlasticLocalization.Name.InviteMembers)),
                             false,
                             InviteMemberButton_clicked,
                             PlasticGui.Plastic.API.GetRepositorySpec(wkInfo));
            }

            menu.AddSeparator("");

            menu.AddItem(
                new GUIContent(
                    PlasticLocalization.GetString(
                        PlasticLocalization.Name.Options)),
                false,
                () => SettingsService.OpenProjectSettings(UnityConstants.PROJECT_SETTINGS_MENU_TITLE));

            // If the user has the simplified UI key of type .txt in the Assets folder
            // TODO: Remove when Simplified UI is complete
            if (AssetDatabase.FindAssets("simplifieduikey t:textasset", new[] { "Assets" }).Any())
            {
                menu.AddItem(new GUIContent("Try Simplified UI"),
                             false,
                             TrySimplifiedUIButton_Clicked,
                             null);
            }

            //TODO: Localization
            menu.AddItem(
                new GUIContent(processor.AssetModificationProcessor.ForceCheckout ?
                               PlasticLocalization.GetString(PlasticLocalization.Name.DisableForcedCheckout) :
                               PlasticLocalization.GetString(PlasticLocalization.Name.EnableForcedCheckout)),
                false,
                ForceCheckout_Clicked,
                null);

            menu.AddSeparator("");

            menu.AddItem(
                new GUIContent(
                    PlasticLocalization.GetString(
                        PlasticLocalization.Name.TurnOffPlasticSCM)),
                false,
                TurnOffPlasticButton_Clicked,
                null);

            menu.ShowAsContext();
        }