Esempio n. 1
0
        private static void UpdateUiToConfig(CompilerPane pane, CompilerConfigurationNode config)
        {
            if (pane.CurrentCompilerConfiguration != null)
            {
                pane.CurrentCompilerConfiguration.UnSubscribePropertyChangedRecursive(pane);

                if (pane._lastNamespaceImportsChangedHandler != null)
                {
                    pane.CurrentCompilerConfiguration.OpenSimCompilerSettings.GeneratedNamespaceImports
                    .CollectionChanged -= pane._lastNamespaceImportsChangedHandler;
                }
            }


            pane.CurrentConfigIsEdited        = false;
            pane.CurrentCompilerConfiguration = config;

            var compilerConfig = pane.CurrentCompilerConfiguration.OpenSimCompilerSettings;


            pane.GeneratedClassName = compilerConfig.GeneratedClassName != null
                ? compilerConfig.GeneratedClassName.FullSignature
                : "";

            pane.GeneratedClassNamespace = compilerConfig.GeneratedClassNamespace != null
                ? compilerConfig.GeneratedClassNamespace.FullSignature
                : "";

            pane.GeneratedConstructorSignature = compilerConfig.GeneratedConstructorSignature != null
                ? compilerConfig.GeneratedConstructorSignature.FullSignature
                : "";

            pane.GeneratedInheritanceList = compilerConfig.GeneratedInheritanceList != null
                ? compilerConfig.GeneratedInheritanceList.FullSignature
                : "";

            pane.CoOpTerminationFunctionCall = compilerConfig.CoOpTerminationFunctionCall != null
                ? compilerConfig.CoOpTerminationFunctionCall.FullSignature
                : "";


            pane.CurrentCompilerConfiguration.SubscribePropertyChangedRecursive(pane,
                                                                                AnyCurrentCompilerConfigSubPropertyChanged);

            pane._lastNamespaceImportsChangedHandler = (sender, args) =>
            {
                if (!AppSettings.Settings.CompilerConfigurations.ContainsKey(pane.SelectedCompilerConfigurationName))
                {
                    return;
                }

                var settingsConfig =
                    AppSettings.Settings.CompilerConfigurations[pane.SelectedCompilerConfigurationName];

                pane.CurrentConfigIsEdited = !pane.CurrentCompilerConfiguration.Equals(settingsConfig);
            };

            pane.CurrentCompilerConfiguration.OpenSimCompilerSettings.GeneratedNamespaceImports
            .CollectionChanged += pane._lastNamespaceImportsChangedHandler;

            var bindingExpression = pane.GetBindingExpression(GeneratedClassNameProperty);

            if (bindingExpression != null)
            {
                bindingExpression.UpdateSource();
            }
        }