예제 #1
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);
            });
        }
예제 #2
0
        static void OnRepositoryChanged(
            CreateWorkspaceDialogUserAssistant dialogUserAssistant,
            CreateWorkspaceViewState createWorkspaceState)
        {
            if (dialogUserAssistant == null)
            {
                return;
            }

            dialogUserAssistant.RepositoryChanged(
                createWorkspaceState.RepositoryName,
                createWorkspaceState.WorkspaceName,
                createWorkspaceState.WorkspacePath);

            createWorkspaceState.WorkspaceName =
                dialogUserAssistant.GetProposedWorkspaceName();
        }
        static WorkspaceInfo CreateWorkspace(
            RepositorySpec repositorySpec,
            string projectPath)
        {
            CreateWorkspaceDialogUserAssistant assistant = new CreateWorkspaceDialogUserAssistant(
                PlasticGuiConfig.Get().Configuration.DefaultWorkspaceRoot,
                Plastic.API.GetAllWorkspacesArray());

            assistant.RepositoryChanged(
                repositorySpec.ToString(),
                string.Empty,
                string.Empty);

            return(Plastic.API.CreateWorkspace(
                       projectPath,
                       assistant.GetProposedWorkspaceName(),
                       repositorySpec.ToString()));
        }