Ejemplo n.º 1
0
        /// <summary>
        /// Registers the new supplied model class collection definitor.
        /// </summary>
        public void DeclareCollection(MModelCollectionDefinitor CollectionDefinitor)
        {
            if (this.Collections_.ContainsKey(CollectionDefinitor.TechName))
            {
                throw new UsageAnomaly("Collection definitor is already registered for the model class.", CollectionDefinitor);
            }

            // Attach this declarator to its owner/class, and for generate qualified-names, plus maybe assemble interceptors.
            CollectionDefinitor.AssignDeclarator(this);

            // Register property
            this.Collections_.Add(CollectionDefinitor.TechName, CollectionDefinitor);
            MModelClassDefinitor.DeclaredMemberDefinitors_.Add(CollectionDefinitor.QualifiedTechName, CollectionDefinitor);
        }
Ejemplo n.º 2
0
        public void Initialize(Domain BaseDomain, string DefaultLanguageTechName, Type IdeaSourceType,
                               IModelEntity SourceEntity, MModelCollectionDefinitor TemplatesCollectionDef, MModelCollectionDefinitor BaseTemplatesCollectionDef,
                               bool ShowWindowButtons = false, params Tuple <string, ImageSource, string, Action <string> >[] TextEditorExtraButtons)
        {
            this.BaseDomain                 = BaseDomain;
            this.IdeaSourceType             = IdeaSourceType;
            this.SourceEntity               = SourceEntity;
            this.TemplatesCollectionDef     = TemplatesCollectionDef;
            this.BaseTemplatesCollectionDef = BaseTemplatesCollectionDef;

            this.WorkingTemplatesCollection = this.TemplatesCollectionDef.Read(this.SourceEntity) as IList <TextTemplate>;

            this.CbxLanguage.ItemsSource       = this.BaseDomain.ExternalLanguages;
            this.CbxLanguage.SelectionChanged += ((sdr, args) => this.TemplateLanguageSelection(args.AddedItems[0] as ExternalLanguageDeclaration));

            if (this.BaseTemplatesCollectionDef != null)
            {
                this.ChbExtendsBaseTemplate.Content = TextTemplate.__ExtendsBaseTemplate.Name;
                this.ChbExtendsBaseTemplate.ToolTip = TextTemplate.__ExtendsBaseTemplate.Summary;
            }
            else
            {
                this.BtnEditBaseTemplate.SetVisible(false);
                this.ChbExtendsBaseTemplate.SetVisible(false);
            }

            /*- Action BaseTemplateExtensionChange =
             *      () =>
             *      {
             *          var Editor = this;  // Notice the indirect reference, due to CurrentTemplate change depending on Language
             *          Editor.CurrentTemplate.ExtendsBaseTemplate = Editor.ChbExtendsBaseTemplate.IsChecked.IsTrue();
             *      };
             *
             * this.ChbExtendsBaseTemplate.Checked += ((sdr, args) => BaseTemplateExtensionChange());
             * this.ChbExtendsBaseTemplate.Unchecked += ((sdr, args) => BaseTemplateExtensionChange()); */

            this.SteSyntaxEditor.Initialize(this.EditEngine, this.SourceEntity.ToString(), this.TemplatesCollectionDef.TechName, this.TemplatesCollectionDef.Name,
                                            () => this.CurrentTemplate.Text,
                                            (text) => this.CurrentTemplate.Text = text,
                                            ShowWindowButtons, TextEditorExtraButtons);
            this.SteSyntaxEditor.SyntaxName          = "Template";
            this.SteSyntaxEditor.SyntaxFileExtension = "." + Domain.TEMPLATE_FILE_EXT;

            this.PostCall(ted => ted.CbxLanguage.SelectedItem = ted.BaseDomain.CurrentExternalLanguage);
        }