Esempio n. 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);
            }
Esempio n. 2
0
        static void DoNewRepositoryButton(
            Action <RepositoryCreationData> createRepositoryAction,
            EditorWindow parentWindow,
            IPlasticWebRestApi plasticWebRestApi,
            string repositoryName,
            string defaultServer)
        {
            string proposedRepositoryName = string.Empty;
            string proposedServer         = string.Empty;

            RepositorySpec repSpec = GetRepSpecFromName(repositoryName);

            if (repSpec != null)
            {
                proposedRepositoryName = repSpec.Name;
                proposedServer         = repSpec.Server;
            }

            RepositoryCreationData creationData = CreateRepositoryDialog.CreateRepository(
                parentWindow,
                plasticWebRestApi,
                proposedRepositoryName,
                proposedServer,
                defaultServer,
                ClientConfig.Get().GetWorkspaceServer());

            createRepositoryAction(creationData);
        }
Esempio n. 3
0
        internal static void ShowWindow(IPlasticWebRestApi restApi)
        {
            CloudEditionWelcomeWindow window = GetWindow <CloudEditionWelcomeWindow>();

            window.mRestApi     = restApi;
            window.titleContent = new GUIContent(
                PlasticLocalization.GetString(PlasticLocalization.Name.SignInToPlasticSCM));
            window.minSize = new Vector2(800, 460);
            window.Show();
        }
Esempio n. 4
0
        internal static void ShowWindow(IPlasticWebRestApi restApi)
        {
            TeamEditionConfigurationWindow window = GetWindow <TeamEditionConfigurationWindow>();

            window.mRestApi     = restApi;
            window.titleContent = new GUIContent(
                PlasticLocalization.GetString(PlasticLocalization.Name.WelcomeToPlasticSCM));
            window.minSize = new Vector2(650, 300);
            window.Show();
        }
Esempio n. 5
0
        internal SSOSignUpPanel(
            CloudEditionWelcomeWindow parentWindow,
            IPlasticWebRestApi restApi)
        {
            mParentWindow = parentWindow;
            mRestApi      = restApi;

            InitializeLayoutAndStyles();

            BuildComponents();
        }
Esempio n. 6
0
        void Initialize(PlasticAPI plasticApi, IPlasticWebRestApi plasticWebRestApi)
        {
            ((IProgressControls)mProgressControls).ShowProgress(string.Empty);

            WorkspaceInfo[] allWorkspaces   = null;
            IList           allRepositories = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(10);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                mDefaultServer = GetDefaultServer.ToCreateWorkspace(plasticWebRestApi);

                allWorkspaces = plasticApi.GetAllWorkspacesArray();

                allRepositories = plasticApi.GetAllRepositories(
                    mDefaultServer,
                    true);
            },
                /*afterOperationDelegate*/ delegate
            {
                ((IProgressControls)mProgressControls).HideProgress();

                if (waiter.Exception != null)
                {
                    DisplayException(mProgressControls, waiter.Exception);
                    return;
                }

                string serverSpecPart = string.Format("@{0}", mDefaultServer);

                mCreateWorkspaceState.RepositoryName = ValidRepositoryName.Get(
                    string.Format("{0}{1}",
                                  mCreateWorkspaceState.RepositoryName,
                                  serverSpecPart),
                    allRepositories);

                mCreateWorkspaceState.WorkspaceName =
                    mCreateWorkspaceState.RepositoryName.Replace(
                        serverSpecPart,
                        string.Empty);

                mDialogUserAssistant = new CreateWorkspaceDialogUserAssistant(
                    mWorkspacePath,
                    allWorkspaces);

                OnRepositoryChanged(
                    mDialogUserAssistant,
                    mCreateWorkspaceState,
                    mWorkspacePath);
            });
        }
Esempio n. 7
0
        internal SignInWithEmailPanel(
            CloudEditionWelcomeWindow parentWindow,
            IWelcomeWindowNotify notify,
            IPlasticWebRestApi restApi)
        {
            mParentWindow = parentWindow;
            mNotify       = notify;
            mRestApi      = restApi;

            InitializeLayoutAndStyles();

            BuildComponents();
        }
Esempio n. 8
0
        internal SignInPanel(
            CloudEditionWelcomeWindow parentWindow,
            IPlasticWebRestApi restApi,
            CmConnection cmConnection)
        {
            mParentWindow = parentWindow;
            mRestApi      = restApi;
            mCmConnection = cmConnection;

            InitializeLayoutAndStyles();

            BuildComponents();
        }
        static RepositoryExplorerDialog Create(
            IPlasticWebRestApi plasticWebRestApi,
            ProgressControlsForDialogs progressControls,
            string defaultServer,
            GuiMessage.IGuiMessage guiMessage)
        {
            var instance = CreateInstance <RepositoryExplorerDialog>();

            instance.mGuiMessage       = guiMessage;
            instance.mEscapeKeyAction  = instance.CancelButtonAction;
            instance.mProgressControls = progressControls;
            instance.BuildComponents(defaultServer, plasticWebRestApi);
            return(instance);
        }
Esempio n. 10
0
        internal OrganizationPanel(
            CloudEditionWelcomeWindow parentWindow,
            IPlasticWebRestApi restApi,
            string title,
            List <string> organizations,
            bool canCreateAnOrganization)
        {
            mParentWindow  = parentWindow;
            mRestApi       = restApi;
            mOrganizations = organizations;

            InitializeLayoutAndStyles();

            BuildComponents(title, canCreateAnOrganization);
        }
Esempio n. 11
0
        static CreateRepositoryDialog Create(
            IPlasticWebRestApi plasticWebRestApi,
            ProgressControlsForDialogs progressControls,
            string proposedRepositoryName,
            string proposedServer)
        {
            var instance = CreateInstance <CreateRepositoryDialog>();

            instance.mEnterKeyAction    = instance.OkButtonWithValidationAction;
            instance.mEscapeKeyAction   = instance.CancelButtonAction;
            instance.mPlasticWebRestApi = plasticWebRestApi;
            instance.mProgressControls  = progressControls;
            instance.BuildComponents(proposedRepositoryName, proposedServer);
            return(instance);
        }
Esempio n. 12
0
        internal WaitingSignInPanel(
            IWelcomeWindowNotify parentNotify,
            OAuthSignIn.INotify notify,
            IPlasticWebRestApi restApi,
            CmConnection cmConnection)
        {
            mParentNotify = parentNotify;

            mNotify       = notify;
            mRestApi      = restApi;
            mCmConnection = cmConnection;

            InitializeLayoutAndStyles();

            BuildComponents();
        }
Esempio n. 13
0
        static void DoFieldsArea(
            Action <RepositoryCreationData> createRepositoryAction,
            EditorWindow parentWindow,
            IPlasticWebRestApi plasticWebRestApi,
            string defaultServer,
            ref CreateWorkspaceViewState state)
        {
            DoRepositoryField(
                createRepositoryAction,
                parentWindow,
                plasticWebRestApi,
                defaultServer,
                ref state);

            DoWorkspaceField(ref state);
        }
Esempio n. 14
0
        internal WelcomeView(
            EditorWindow parentWindow,
            CreateWorkspaceView.ICreateWorkspaceListener createWorkspaceListener,
            PlasticAPI plasticApi,
            IPlasticWebRestApi plasticWebRestApi)
        {
            mParentWindow            = parentWindow;
            mCreateWorkspaceListener = createWorkspaceListener;
            mPlasticApi        = plasticApi;
            mPlasticWebRestApi = plasticWebRestApi;

            mGuiMessage        = new UnityPlasticGuiMessage(parentWindow);
            mDownloadProgress  = new ProgressControlsForViews();
            mConfigureProgress = new ProgressControlsForViews();

            mInstallerFile = GetInstallerTmpFileName.ForPlatform();
        }
Esempio n. 15
0
        internal CreateWorkspaceView(
            PlasticWindow parentWindow,
            ICreateWorkspaceListener listener,
            PlasticAPI plasticApi,
            IPlasticWebRestApi plasticWebRestApi,
            string workspacePath)
        {
            mParentWindow            = parentWindow;
            mCreateWorkspaceListener = listener;
            mWorkspacePath           = workspacePath;
            mPlasticWebRestApi       = plasticWebRestApi;

            mProgressControls     = new ProgressControlsForViews();
            mWorkspaceOperations  = new WorkspaceOperations(this, mProgressControls);
            mCreateWorkspaceState = CreateWorkspaceViewState.BuildForProjectDefaults();

            Initialize(plasticApi, plasticWebRestApi);
        }
Esempio n. 16
0
        static void DoBrowseRepositoryButton(
            EditorWindow parentWindow,
            IPlasticWebRestApi plasticWebRestApi,
            string defaultServer,
            ref CreateWorkspaceViewState state)
        {
            string result = RepositoryExplorerDialog.BrowseRepository(
                parentWindow,
                plasticWebRestApi,
                defaultServer);

            if (string.IsNullOrEmpty(result))
            {
                return;
            }

            state.RepositoryName = result;
        }
        internal static void ShowWindow(
            IPlasticWebRestApi restApi,
            CmConnection cmConnection,
            WelcomeView welcomeView,
            bool autoLogin = false)
        {
            sRestApi      = restApi;
            sCmConnection = cmConnection;
            sAutoLogin    = autoLogin;
            CloudEditionWelcomeWindow window = GetWindow <CloudEditionWelcomeWindow>();

            window.titleContent = new GUIContent(
                PlasticLocalization.GetString(PlasticLocalization.Name.SignInToPlasticSCM));
            window.minSize = window.maxSize = new Vector2(500, 460);

            window.mWelcomeView = welcomeView;

            window.Show();
        }
Esempio n. 18
0
        internal WelcomeView(
            PlasticWindow parentWindow,
            CreateWorkspaceView.ICreateWorkspaceListener createWorkspaceListener,
            PlasticAPI plasticApi,
            CmConnection cmConnection,
            IPlasticWebRestApi plasticWebRestApi)
        {
            mParentWindow            = parentWindow;
            mCreateWorkspaceListener = createWorkspaceListener;
            mPlasticApi        = plasticApi;
            mCmConnection      = cmConnection;
            mPlasticWebRestApi = plasticWebRestApi;

            mGuiMessage        = new UnityPlasticGuiMessage();
            mConfigureProgress = new ProgressControlsForViews();

            mInstallerFile = GetInstallerTmpFileName.ForPlatform();
            autoLoginState = AutoLogin.State.Off;
        }
        internal static string BrowseRepository(
            EditorWindow parentWindow,
            IPlasticWebRestApi plasticWebRestApi,
            string defaultServer)
        {
            RepositoryExplorerDialog dialog = Create(
                plasticWebRestApi,
                new ProgressControlsForDialogs(),
                defaultServer,
                new UnityPlasticGuiMessage(parentWindow));

            ResponseType dialogResult = dialog.RunModal(parentWindow);

            if (dialogResult != ResponseType.Ok)
            {
                return(null);
            }

            return(dialog.mRepositoriesListView.GetSelectedRepository());
        }
Esempio n. 20
0
        internal CreateOrganizationPanel(
            CloudEditionWelcomeWindow parentWindow,
            VisualElement parentPanel,
            IPlasticWebRestApi restApi)
        {
            mParentWindow = parentWindow;
            mParentPanel  = parentPanel;
            mRestApi      = restApi;

            InitializeLayoutAndStyles();

            BuildComponents();

            var progressControls = new ProgressControlsForDialogs(new VisualElement[] { mCreateButton, mBackButton });

            mProgressControls = progressControls;
            mGettingDatacentersProgressContainer.Add(progressControls);

            GetDatacenters.Run(
                mRestApi, mProgressControls, this);
        }
        void BuildComponents(
            string defaultServer,
            IPlasticWebRestApi plasticWebRestApi)
        {
            mSearchField = new SearchField();
            mSearchField.downOrUpArrowKeyPressed += SearchField_OnDownOrUpArrowKeyPressed;

            RepositoriesListHeaderState headerState =
                RepositoriesListHeaderState.GetDefault();

            TreeHeaderSettings.Load(headerState,
                                    UnityConstants.REPOSITORIES_TABLE_SETTINGS_NAME,
                                    (int)RepositoriesListColumn.Name);

            mRepositoriesListView = new RepositoriesListView(
                headerState,
                RepositoriesListHeaderState.GetColumnNames(),
                OkButtonAction);
            mRepositoriesListView.Reload();

            mFillRepositoriesTable = new FillRepositoriesTable(
                new LocalRepositoriesProvider());

            mState = new State()
            {
                Server       = defaultServer,
                ProgressData = new ProgressControlsForDialogs.Data()
            };

            KnownServersListOperations.GetCombinedServers(
                true,
                new List <string>(),
                mProgressControls,
                this,
                plasticWebRestApi,
                CmConnection.Get().GetProfileManager());
        }
Esempio n. 22
0
        internal static void ForState(
            Action <RepositoryCreationData> createRepositoryAction,
            Action <CreateWorkspaceViewState> createWorkspaceAction,
            EditorWindow parentWindow,
            IPlasticWebRestApi plasticWebRestApi,
            string defaultServer,
            ref CreateWorkspaceViewState state)
        {
            DoTitle();

            GUILayout.Space(15);

            DoFieldsArea(
                createRepositoryAction,
                parentWindow,
                plasticWebRestApi,
                defaultServer,
                ref state);

            GUILayout.Space(10);

            DoRadioButtonsArea(ref state);

            GUILayout.Space(3);

            DoHelpLabel();

            GUILayout.Space(10);

            DoCreateWorkspaceButton(
                createWorkspaceAction,
                ref state);

            GUILayout.Space(5);

            DoNotificationArea(state.ProgressData);
        }
Esempio n. 23
0
        internal static RepositoryCreationData CreateRepository(
            EditorWindow parentWindow,
            IPlasticWebRestApi plasticWebRestApi,
            string proposedRepositoryName,
            string proposedServer,
            string lastUsedRepServer,
            string clientConfServer)
        {
            string server = CreateRepositoryDialogUserAssistant.GetProposedServer(
                proposedServer, lastUsedRepServer, clientConfServer);

            CreateRepositoryDialog dialog = Create(
                plasticWebRestApi,
                new ProgressControlsForDialogs(),
                proposedRepositoryName,
                server);

            ResponseType dialogResult = dialog.RunModal(parentWindow);

            RepositoryCreationData result = dialog.BuildCreationData();

            result.Result = dialogResult == ResponseType.Ok;
            return(result);
        }
Esempio n. 24
0
        static void DoRepositoryField(
            Action <RepositoryCreationData> createRepositoryAction,
            EditorWindow parentWindow,
            IPlasticWebRestApi plasticWebRestApi,
            string defaultServer,
            ref CreateWorkspaceViewState state)
        {
            EditorGUILayout.BeginHorizontal();

            DoLabel(
                PlasticLocalization.GetString(PlasticLocalization.Name.RepositoryName));

            state.RepositoryName = DoTextField(
                state.RepositoryName,
                !state.ProgressData.IsOperationRunning,
                LABEL_WIDTH,
                TEXTBOX_WIDTH - BROWSE_BUTTON_WIDTH);

            float browseButtonX =
                LABEL_WIDTH + TEXTBOX_WIDTH + BUTTON_MARGIN -
                BROWSE_BUTTON_WIDTH;
            float browseButtonWidth =
                BROWSE_BUTTON_WIDTH - BUTTON_MARGIN;

            if (DoButton(
                    "...",
                    !state.ProgressData.IsOperationRunning,
                    browseButtonX,
                    browseButtonWidth))
            {
                DoBrowseRepositoryButton(
                    parentWindow,
                    plasticWebRestApi,
                    defaultServer,
                    ref state);
                EditorGUIUtility.ExitGUI();
            }

            float newButtonX =
                LABEL_WIDTH + TEXTBOX_WIDTH + BUTTON_MARGIN;
            float newButtonWidth =
                NEW_BUTTON_WIDTH - BUTTON_MARGIN;

            if (DoButton(
                    PlasticLocalization.GetString(PlasticLocalization.Name.NewButton),
                    !state.ProgressData.IsOperationRunning,
                    newButtonX, newButtonWidth))
            {
                DoNewRepositoryButton(
                    createRepositoryAction,
                    parentWindow,
                    plasticWebRestApi,
                    state.RepositoryName,
                    defaultServer);
                EditorGUIUtility.ExitGUI();
            }

            ValidationResult validationResult = ValidateRepositoryName(
                state.RepositoryName);

            if (!validationResult.IsValid)
            {
                DoWarningLabel(validationResult.ErrorMessage,
                               LABEL_WIDTH + TEXTBOX_WIDTH + NEW_BUTTON_WIDTH + LABEL_MARGIN);
            }

            EditorGUILayout.EndHorizontal();
        }