static void DoRadioButtonsArea( ref CreateWorkspaceViewState state) { EditorGUILayout.BeginVertical(); DoLabel("How do you prefer to work?"); if (DoRadioButton( "I need branching, merging and the ability to push/pull (Plastic workspace)", state.WorkspaceMode == CreateWorkspaceViewState.WorkspaceModes.Developer, !state.ProgressData.IsOperationRunning, RADIO_BUTTON_MARGIN)) { state.WorkspaceMode = CreateWorkspaceViewState.WorkspaceModes.Developer; } if (DoRadioButton( "I simply need to checkin my work (Gluon workspace)", state.WorkspaceMode == CreateWorkspaceViewState.WorkspaceModes.Gluon, !state.ProgressData.IsOperationRunning, RADIO_BUTTON_MARGIN)) { state.WorkspaceMode = CreateWorkspaceViewState.WorkspaceModes.Gluon; } EditorGUILayout.EndVertical(); }
internal static void ForState( Action <RepositoryCreationData> createRepositoryAction, Action <CreateWorkspaceViewState> createWorkspaceAction, EditorWindow parentWindow, string defaultServer, ref CreateWorkspaceViewState state) { DoTitle(); GUILayout.Space(15); DoFieldsArea( createRepositoryAction, parentWindow, 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); }
static void DoCreateWorkspaceButton( Action <CreateWorkspaceViewState> createWorkspaceAction, ref CreateWorkspaceViewState state) { EditorGUILayout.BeginHorizontal(); bool isButtonEnabled = IsValidState(state) && !state.ProgressData.IsOperationRunning; string buttonText = PlasticLocalization.GetString( PlasticLocalization.Name.CreateWorkspace); bool isButtonClicked = DoButton(buttonText, isButtonEnabled, CREATE_WORKSPACE_BUTTON_MARGIN, CREATE_WORKSPACE_BUTTON_WIDTH); GUI.enabled = true; if (state.ProgressData.IsOperationRunning) { DoProgress(state.ProgressData, CREATE_WORKSPACE_BUTTON_MARGIN + PROGRESS_MARGIN + CREATE_WORKSPACE_BUTTON_WIDTH); } EditorGUILayout.EndHorizontal(); if (isButtonClicked) { createWorkspaceAction(state); } }
static void DoRadioButtonsArea( ref CreateWorkspaceViewState state) { EditorGUILayout.BeginVertical(); DoLabel( PlasticLocalization.GetString(PlasticLocalization.Name.WorkPreferenceQuestion)); if (DoRadioButton( PlasticLocalization.GetString(PlasticLocalization.Name.WorkPreferenceAnswerPlastic), state.WorkspaceMode == CreateWorkspaceViewState.WorkspaceModes.Developer, !state.ProgressData.IsOperationRunning, RADIO_BUTTON_MARGIN)) { state.WorkspaceMode = CreateWorkspaceViewState.WorkspaceModes.Developer; } if (DoRadioButton( PlasticLocalization.GetString(PlasticLocalization.Name.WorkPreferenceAnswerGluon), state.WorkspaceMode == CreateWorkspaceViewState.WorkspaceModes.Gluon, !state.ProgressData.IsOperationRunning, RADIO_BUTTON_MARGIN)) { state.WorkspaceMode = CreateWorkspaceViewState.WorkspaceModes.Gluon; } EditorGUILayout.EndVertical(); }
static void DoWorkspaceField( ref CreateWorkspaceViewState state) { EditorGUILayout.BeginHorizontal(); DoLabel( PlasticLocalization.GetString(PlasticLocalization.Name.WorkspaceName)); state.WorkspaceName = DoTextField( state.WorkspaceName, !state.ProgressData.IsOperationRunning, LABEL_WIDTH, TEXTBOX_WIDTH - BROWSE_BUTTON_WIDTH); ValidationResult validationResult = ValidateWorkspaceName( state.WorkspaceName); if (!validationResult.IsValid) { DoWarningLabel(validationResult.ErrorMessage, LABEL_WIDTH + TEXTBOX_WIDTH - BROWSE_BUTTON_WIDTH + LABEL_MARGIN); } EditorGUILayout.EndHorizontal(); }
static WorkspaceCreationData BuildCreationDataFromState( CreateWorkspaceViewState state, string workspacePath) { return(new WorkspaceCreationData( state.WorkspaceName, workspacePath, state.RepositoryName, state.WorkspaceMode == CreateWorkspaceViewState.WorkspaceModes.Gluon, false)); }
void ValidateAndCreateWorkspace( CreateWorkspaceViewState state) { mWkCreationData = BuildCreationDataFromState( state, mWorkspacePath); WorkspaceCreationValidation.AsyncValidation( mWkCreationData, this, mProgressControls); // validation calls IPlasticDialogCloser.CloseDialog() // when the validation is ok }
static void DoFieldsArea( Action <RepositoryCreationData> createRepositoryAction, EditorWindow parentWindow, string defaultServer, ref CreateWorkspaceViewState state) { DoRepositoryField( createRepositoryAction, parentWindow, defaultServer, ref state); DoWorkspaceField(ref state); }
static bool IsValidState( CreateWorkspaceViewState state) { if (!ValidateRepositoryName(state.RepositoryName).IsValid) { return(false); } if (!ValidateWorkspaceName(state.WorkspaceName).IsValid) { return(false); } return(true); }
static void DoBrowseRepositoryButton( EditorWindow parentWindow, string defaultServer, ref CreateWorkspaceViewState state) { string result = RepositoryExplorerDialog.BrowseRepository( parentWindow, defaultServer); if (string.IsNullOrEmpty(result)) { return; } state.RepositoryName = result; }
internal CreateWorkspaceView( EditorWindow parentWindow, ICreateWorkspaceListener listener, PlasticAPI plasticApi, string workspacePath) { mParentWindow = parentWindow; mCreateWorkspaceListener = listener; mWorkspacePath = workspacePath; mProgressControls = new ProgressControlsForViews(); mWorkspaceOperations = new WorkspaceOperations(this, mProgressControls); mCreateWorkspaceState = CreateWorkspaceViewState.BuildForProjectDefaults(); Initialize(plasticApi); }
static void OnRepositoryChanged( CreateWorkspaceDialogUserAssistant dialogUserAssistant, CreateWorkspaceViewState createWorkspaceState, string workspacePath) { if (dialogUserAssistant == null) { return; } dialogUserAssistant.RepositoryChanged( createWorkspaceState.RepositoryName, createWorkspaceState.WorkspaceName, workspacePath); createWorkspaceState.WorkspaceName = dialogUserAssistant.GetProposedWorkspaceName(); }
static void DoCreateWorkspaceButton( Action <CreateWorkspaceViewState> createWorkspaceAction, ref CreateWorkspaceViewState state) { EditorGUILayout.BeginHorizontal(); bool isButtonEnabled = IsValidState(state) && !state.ProgressData.IsOperationRunning; if (DoButton("Create workspace", isButtonEnabled, CREATE_WORKSPACE_BUTTON_MARGIN, CREATE_WORKSPACE_BUTTON_WIDTH)) { createWorkspaceAction(state); return; } GUI.enabled = true; EditorGUILayout.EndHorizontal(); }
static void DoRepositoryField( Action <RepositoryCreationData> createRepositoryAction, EditorWindow parentWindow, string defaultServer, ref CreateWorkspaceViewState state) { EditorGUILayout.BeginHorizontal(); DoLabel("Repository name"); 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, defaultServer, ref state); EditorGUIUtility.ExitGUI(); } float newButtonX = LABEL_WIDTH + TEXTBOX_WIDTH + BUTTON_MARGIN; float newButtonWidth = NEW_BUTTON_WIDTH - BUTTON_MARGIN; if (DoButton( "New", !state.ProgressData.IsOperationRunning, newButtonX, newButtonWidth)) { DoNewRepositoryButton( createRepositoryAction, parentWindow, 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(); }