internal static void Initialize() { if (mInitialized) { return; } ConfigureLogging(); RegisterExceptionHandlers(); InitLocalization(); ThreadWaiter.Initialize(new UnityThreadWaiterBuilder()); ServicePointConfigurator.ConfigureServicePoint(); CertificateUi.RegisterHandler(new ChannelCertificateUiImpl()); DisableFsWatcherIfNeeded(); EditionManager.Get().DisableCapability( EnumEditionCapabilities.Extensions); ClientHandlers.Register(); PlasticGuiConfig.SetConfigFile( PlasticGuiConfig.UNITY_GUI_CONFIG_FILE); mInitialized = true; }
internal static void Run( bool isGluonMode, ProgressControlsForViews progressControls) { ((IProgressControls)progressControls).ShowProgress(string.Empty); IThreadWaiter waiter = ThreadWaiter.GetWaiter(); waiter.Execute( /*threadOperationDelegate*/ delegate { Process plasticProcess = LaunchTool.OpenConfigurationForMode(isGluonMode); if (plasticProcess != null) { plasticProcess.WaitForExit(); } }, /*afterOperationDelegate*/ delegate { ((IProgressControls)progressControls).HideProgress(); ClientConfig.Reset(); CmConnection.Reset(); ClientHandlers.Register(); if (waiter.Exception == null) { return; } ((IProgressControls)progressControls).ShowError( waiter.Exception.Message); }); }
internal void OnUserClosedConfigurationWindow() { ((IProgressControls)mConfigureProgress).HideProgress(); ClientConfig.Reset(); CmConnection.Reset(); ClientHandlers.Register(); }
internal static void InitializeIfNeeded() { if (sIsInitialized) { return; } sIsInitialized = true; PlasticAPI = new PlasticAPI(); PlasticWebRestApi = new PlasticWebRestApi(); ConfigureLogging(); GuiMessage.Initialize(new UnityPlasticGuiMessage()); RegisterExceptionHandlers(); InitLocalization(); ThreadWaiter.Initialize(new UnityThreadWaiterBuilder()); ServicePointConfigurator.ConfigureServicePoint(); CertificateUi.RegisterHandler(new ChannelCertificateUiImpl()); SetupFsWatcher(); EditionManager.Get().DisableCapability( EnumEditionCapabilities.Extensions); ClientHandlers.Register(); PlasticGuiConfig.SetConfigFile( PlasticGuiConfig.UNITY_GUI_CONFIG_FILE); sEventSenderScheduler = EventTracking.Configure( PlasticApp.PlasticWebRestApi, AssetsPath.IsRunningAsUPMPackage() ? ApplicationIdentifier.UnityPackage : ApplicationIdentifier.UnityAssetStorePlugin, IdentifyEventPlatform.Get()); if (sEventSenderScheduler != null) { sPingEventLoop = new PingEventLoop(); sPingEventLoop.Start(); sPingEventLoop.SetUnityVersion(Application.unityVersion); CollabPlugin.GetVersion(pluginVersion => sPingEventLoop.SetPluginVersion(pluginVersion)); } PlasticMethodExceptionHandling.InitializeAskCredentialsUi( new CredentialsUiImpl()); ClientEncryptionServiceProvider.SetEncryptionPasswordProvider( new MissingEncryptionPasswordPromptHandler()); }
// These two (ClientHandlers and ThreadWatier) need to be reinitialized if they have not been // or else an error will be thrown and the Plastic context menu will not show up internal static void RegisterClientHandlersIfNeeded() { if (sIsInitialized) { return; } ClientHandlers.Register(); ThreadWaiter.Initialize(new UnityThreadWaiterBuilder()); sIsInitialized = true; }
void OnEnable() { if (mException != null) { return; } GuiMessage.Initialize(new UnityPlasticGuiMessage(this)); ConfigureLogging(); RegisterExceptionHandlers(); RegisterApplicationFocusHandlers(this); InitLocalization(); ThreadWaiter.Initialize(new UnityThreadWaiterBuilder()); ServicePointConfigurator.ConfigureServicePoint(); CertificateUi.RegisterHandler(new ChannelCertificateUiImpl()); CredentialsUIRegistrar.RegisterCredentialsUI( new CredentialsUiImpl(this)); ClientEncryptionServiceProvider.SetEncryptionPasswordProvider( new MissingEncryptionPasswordPromptHandler(this)); DisableFsWatcherIfNeeded(); EditionManager.Get().DisableCapability( EnumEditionCapabilities.Extensions); mPlasticAPI = new PlasticAPI(); ClientHandlers.Register(); PlasticGuiConfig.SetConfigFile(PLASTIC_GUI_CONFIG_FILE); mPingEventLoop = new PingEventLoop(); mEventSenderRestApi = new SimpleEventSenderRestApi( PlasticWebApiUris.GetBaseUri()); mEventSenderScheduler = EventTracking.Configure( mEventSenderRestApi, ApplicationIdentifier.UnityPackage, IdentifyEventPlatform.Get()); if (mEventSenderScheduler != null) { mPingEventLoop.Start(); } InitializePlastic(); }