internal void UpdateWorkspaceForMode( bool isGluonMode, WorkspaceWindow workspaceWindow) { if (isGluonMode) { PartialUpdateWorkspace(); return; } UpdateWorkspace(); }
internal static void For(WorkspaceInfo workspaceInfo, WorkspaceWindow workspaceWindow, IMergeViewLauncher mergeViewLauncher, IGluonViewSwitcher gluonSwitcher, bool isGluonMode, bool isVisible, NotificationPanelData notificationPanelData) { GUILayout.BeginVertical(); GUILayout.FlexibleSpace(); var icon = Images.GetImage( notificationPanelData.NotificationStyle == NotificationPanelData.StyleType.Green ? Images.Name.DownloadIconGreen : Images.Name.DownloadIconRed); GUILayout.Label(icon, GUILayout.Height(16), GUILayout.Width(16)); GUILayout.FlexibleSpace(); GUILayout.EndVertical(); GUILayout.BeginVertical(); GUILayout.FlexibleSpace(); GUIStyle labelStyle = new GUIStyle(EditorStyles.label); labelStyle.fontStyle = FontStyle.Bold; GUILayout.Label(notificationPanelData.InfoText, labelStyle); GUILayout.FlexibleSpace(); GUILayout.EndVertical(); GUILayout.BeginVertical(); GUILayout.FlexibleSpace(); GUIStyle buttonStyle = new GUIStyle(EditorStyles.miniButtonLeft); buttonStyle.fixedWidth = 60; DoActionButton( workspaceInfo, workspaceWindow, mergeViewLauncher, gluonSwitcher, isGluonMode, notificationPanelData.HasUpdateAction, new GUIContent( notificationPanelData.ActionText, notificationPanelData.TooltipText), buttonStyle); GUILayout.FlexibleSpace(); GUILayout.EndVertical(); }
internal static void For( WorkspaceInfo workspaceInfo, WorkspaceWindow workspaceWindow, IMergeViewLauncher mergeViewLauncher, IGluonViewSwitcher gluonSwitcher, bool isGluonMode, IIncomingChangesNotificationPanel notificationPanel) { var barStyle = new GUIStyle(); var barTexture = GetBarTexture(); barTexture.SetPixel(0, 0, UnityStyles.Colors.BackgroundBar); barTexture.Apply(); barStyle.normal.background = barTexture; EditorGUILayout.BeginVertical(barStyle, GUILayout.Height(mBarHeight)); GUILayout.FlexibleSpace(); EditorGUILayout.BeginHorizontal(); if (notificationPanel.IsVisible) { DrawIncomingChangesNotificationPanel.For( workspaceInfo, workspaceWindow, mergeViewLauncher, gluonSwitcher, isGluonMode, notificationPanel.IsVisible, notificationPanel.Data); } GUILayout.FlexibleSpace(); DrawStatusBarIcon(); DrawStatusBarLabel(workspaceWindow.WorkspaceStatus); EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); EditorGUILayout.EndVertical(); }
static void DoActionButton(WorkspaceInfo workspaceInfo, WorkspaceWindow workspaceWindow, IMergeViewLauncher mergeViewLauncher, IGluonViewSwitcher gluonSwitcher, bool isGluonMode, bool isUpdateAction, GUIContent buttonContent, GUIStyle buttonStyle) { if (GUILayout.Button(buttonContent, buttonStyle)) { if (isUpdateAction) { workspaceWindow.UpdateWorkspace(); return; } ShowIncomingChangesForMode( workspaceInfo, mergeViewLauncher, gluonSwitcher, isGluonMode); } }
internal static void ForMode( WorkspaceInfo workspaceInfo, WorkspaceWindow workspaceWindow, IMergeViewLauncher mergeViewLauncher, IGluonViewSwitcher gluonSwitcher, bool isGluonMode, bool isVisible, NotificationPanelData notificationPanelData) { if (!isVisible) { return; } GUIContent labelContent = new GUIContent( notificationPanelData.InfoText, notificationPanelData.TooltipText); GUIContent buttonContent = new GUIContent( notificationPanelData.ActionText, notificationPanelData.TooltipText); float panelWidth = GetPanelWidth( labelContent, buttonContent, UnityStyles.Notification.Label, EditorStyles.miniButton); EditorGUILayout.BeginHorizontal( GetStyle(notificationPanelData.NotificationStyle), GUILayout.Width(panelWidth)); GUILayout.Label(labelContent, UnityStyles.Notification.Label); DoActionButton( workspaceInfo, workspaceWindow, mergeViewLauncher, gluonSwitcher, isGluonMode, notificationPanelData.HasUpdateAction, buttonContent, EditorStyles.miniButton); EditorGUILayout.EndHorizontal(); }
internal void InitializePlastic() { if (mForceToOpen) { mForceToOpen = false; return; } try { if (UnityConfigurationChecker.NeedsConfiguration()) { return; } mWkInfo = FindWorkspace.InfoForApplicationPath( Application.dataPath, mPlasticAPI); if (mWkInfo == null) { return; } MonoFileSystemWatcher.IsEnabled = true; SetupCloudProjectIdIfNeeded(mWkInfo, mPlasticAPI); DisableVCSIfEnabled(mWkInfo.ClientPath); mIsGluonMode = mPlasticAPI.IsGluonWorkspace(mWkInfo); IAssetStatusCache assetStatusCache = new AssetStatusCache( mWkInfo, mIsGluonMode, RepaintProjectWindow); AssetsProcessors.Enable( mPlasticAPI, assetStatusCache); if (mEventSenderScheduler != null) { mPingEventLoop.SetWorkspace(mWkInfo); ((IPlasticWebRestApi)mPlasticWebRestApi).SetToken( CmConnection.Get().BuildWebApiTokenForCloudEditionDefaultUser()); } InitializeNewIncomingChanges(mWkInfo, mIsGluonMode); ViewHost viewHost = new ViewHost(); PlasticGui.WorkspaceWindow.PendingChanges.PendingChanges pendingChanges = new PlasticGui.WorkspaceWindow.PendingChanges.PendingChanges(mWkInfo); mViewSwitcher = new ViewSwitcher( mWkInfo, viewHost, mIsGluonMode, pendingChanges, mDeveloperNewIncomingChangesUpdater, mGluonNewIncomingChangesUpdater, mIncomingChangesNotifier, assetStatusCache, mStatusBar, this); mCooldownAutoRefreshPendingChangesAction = new CooldownWindowDelayer( mViewSwitcher.AutoRefreshPendingChangesView, UnityConstants.AUTO_REFRESH_PENDING_CHANGES_DELAYED_INTERVAL); mWorkspaceWindow = new WorkspaceWindow( mWkInfo, viewHost, mViewSwitcher, mViewSwitcher, mDeveloperNewIncomingChangesUpdater, this); mViewSwitcher.SetWorkspaceWindow(mWorkspaceWindow); mViewSwitcher.ShowInitialView(); UnityStyles.Initialize(Repaint); AssetOperations.IAssetSelection inspectorAssetSelection = new InspectorAssetSelection(); AssetOperations.IAssetSelection projectViewAssetSelection = new ProjectViewAssetSelection(); AssetOperations inspectorAssetOperations = new AssetOperations( mWkInfo, mWorkspaceWindow, mViewSwitcher, mViewSwitcher, viewHost, mDeveloperNewIncomingChangesUpdater, assetStatusCache, mViewSwitcher, mViewSwitcher, this, inspectorAssetSelection, mIsGluonMode); mAssetOperations = new AssetOperations( mWkInfo, mWorkspaceWindow, mViewSwitcher, mViewSwitcher, viewHost, mDeveloperNewIncomingChangesUpdater, assetStatusCache, mViewSwitcher, mViewSwitcher, this, projectViewAssetSelection, mIsGluonMode); DrawInspectorOperations.Enable( inspectorAssetOperations, assetStatusCache, inspectorAssetSelection); DrawAssetOverlay.Initialize( assetStatusCache, RepaintProjectWindow); mLastUpdateTime = EditorApplication.timeSinceStartup; mViewSwitcher.ShowBranchesViewIfNeeded(); } catch (Exception ex) { mException = ex; ExceptionsHandler.HandleException("InitializePlastic", ex); } }
internal void InitializePlastic() { if (mForceToOpen) { mForceToOpen = false; return; } try { if (UnityConfigurationChecker.NeedsConfiguration()) { return; } mWkInfo = FindWorkspace.InfoForApplicationPath( Application.dataPath, PlasticApp.PlasticAPI); if (mWkInfo == null) { return; } PlasticPlugin.EnableForWorkspace(); SetupCloudProjectIdIfNeeded(mWkInfo, PlasticApp.PlasticAPI); DisableVCSIfEnabled(mWkInfo.ClientPath); mIsGluonMode = PlasticApp.PlasticAPI.IsGluonWorkspace(mWkInfo); InitializeNewIncomingChanges(mWkInfo, mIsGluonMode); ViewHost viewHost = new ViewHost(); PlasticGui.WorkspaceWindow.PendingChanges.PendingChanges pendingChanges = new PlasticGui.WorkspaceWindow.PendingChanges.PendingChanges(mWkInfo); mViewSwitcher = new ViewSwitcher( mWkInfo, viewHost, mIsGluonMode, pendingChanges, mDeveloperNewIncomingChangesUpdater, mGluonNewIncomingChangesUpdater, mIncomingChangesNotifier, PlasticPlugin.AssetStatusCache, mStatusBar, this); mCooldownAutoRefreshPendingChangesAction = new CooldownWindowDelayer( mViewSwitcher.AutoRefreshPendingChangesView, UnityConstants.AUTO_REFRESH_PENDING_CHANGES_DELAYED_INTERVAL); mWorkspaceWindow = new WorkspaceWindow( mWkInfo, viewHost, mViewSwitcher, mViewSwitcher, mDeveloperNewIncomingChangesUpdater, this); mViewSwitcher.SetWorkspaceWindow(mWorkspaceWindow); mViewSwitcher.ShowInitialView(); UnityStyles.Initialize(Repaint); AssetOperations.IAssetSelection projectViewAssetSelection = new ProjectViewAssetSelection(); mAssetOperations = new AssetOperations( mWkInfo, mWorkspaceWindow, mViewSwitcher, mViewSwitcher, viewHost, mDeveloperNewIncomingChangesUpdater, PlasticPlugin.AssetStatusCache, mViewSwitcher, mViewSwitcher, this, projectViewAssetSelection, mIsGluonMode); DrawInspectorOperations.BuildOperations( mWkInfo, mWorkspaceWindow, mViewSwitcher, mViewSwitcher, viewHost, mDeveloperNewIncomingChangesUpdater, mViewSwitcher, mViewSwitcher, this, mIsGluonMode); DrawSceneOperations.Initialize( mWorkspaceWindow, viewHost, mDeveloperNewIncomingChangesUpdater, mIsGluonMode); mLastUpdateTime = EditorApplication.timeSinceStartup; mViewSwitcher.ShowBranchesViewIfNeeded(); } catch (Exception ex) { mException = ex; ExceptionsHandler.HandleException("InitializePlastic", ex); } }
internal void SetWorkspaceWindow(WorkspaceWindow workspaceWindow) { mWorkspaceWindow = workspaceWindow; }