Ejemplo n.º 1
0
 public CategoryTableEntry(CategoryLocalizationHelper.CategoryName canonicalName, string localizedName, string unlocalizedName)
 {
     this.canonicalName          = canonicalName;
     this.localizedName          = localizedName;
     this.unlocalizedName        = unlocalizedName;
     this.canonicalLocalizedName = CategoryLocalizationHelper.GetLocalizedCategory(unlocalizedName);
 }
Ejemplo n.º 2
0
        private static CustomCategorySelector GetCategorySelectorByCategoryName(CategoryLocalizationHelper.CategoryName category)
        {
            CustomCategorySelector categorySelector;

            if (CategoryFactory.categoryNameLookup.TryGetValue(category, out categorySelector))
            {
                return(categorySelector);
            }
            return((CustomCategorySelector)null);
        }
Ejemplo n.º 3
0
 public static string GetLocalizedCategoryName(CategoryLocalizationHelper.CategoryName categoryName)
 {
     foreach (CategoryLocalizationHelper.CategoryTableEntry categoryTableEntry in CategoryLocalizationHelper.categoryEntries)
     {
         if (categoryTableEntry.CanonicalName == categoryName)
         {
             return(categoryTableEntry.LocalizedName);
         }
     }
     throw new InvalidOperationException(ExceptionStringTable.UnableToGetLocalizedCategoryNamesForNonBuiltInCategoriesThroughThisFunction);
 }
Ejemplo n.º 4
0
 public SceneNodeCategory(CategoryLocalizationHelper.CategoryName canonicalName, string localizedName, IMessageLoggingService messageLogger)
     : base(localizedName)
 {
     this.canonicalName = canonicalName;
     this.messageLogger = messageLogger;
     this.CategoryEditors.CollectionChanged += new NotifyCollectionChangedEventHandler(this.CategoryEditors_CollectionChanged);
     this.basicProperties    = new ObservableCollectionWorkaround <PropertyEntry>();
     this.advancedProperties = new ObservableCollectionWorkaround <PropertyEntry>();
     this.order = new SceneNodeCategory.CategoryOrder(this);
     this.InitializeIcons();
 }
        private CategoryBase CreateCategory(string name, Type selectedType)
        {
            CategoryLocalizationHelper.CategoryName canonicalCategoryName = CategoryLocalizationHelper.GetCanonicalCategoryName(name);
            CategoryBase      categoryBase        = (CategoryBase)CategoryFactory.GetCustomCategorySelector(canonicalCategoryName).CreateSceneNodeCategory(canonicalCategoryName, name, this.SceneNodeObjectSet.DesignerContext.MessageLoggingService);
            ITypeResolver     typeResolver        = (ITypeResolver)this.SceneNodeObjectSet.ProjectContext;
            CategoryEditorSet categoryEditorsList = new CategoryEditorSet();
            IType             type = typeResolver.GetType(selectedType);

            PropertyInspectorModel.GetCategoryEditors(type, categoryEditorsList, this.MessageLoggingService);
            foreach (CategoryEditor categoryEditor in categoryEditorsList.Union(CategoryEditorInstanceFactory.GetEditors((ITypeId)type, categoryBase as SceneNodeCategory)))
            {
                if (categoryEditor.TargetCategory == categoryBase.CategoryName)
                {
                    categoryBase.CategoryEditors.Add(categoryEditor);
                }
            }
            return(categoryBase);
        }
Ejemplo n.º 6
0
        private CategoryBase CreateCategory(string name, Type selectedType)
        {
            CategoryLocalizationHelper.CategoryName canonicalCategoryName = CategoryLocalizationHelper.GetCanonicalCategoryName(name);
            CategoryBase      categoryBase        = (CategoryBase)CategoryFactory.GetCustomCategorySelector(canonicalCategoryName).CreateSceneNodeCategory(canonicalCategoryName, name, this.SceneNodeObjectSet.DesignerContext.MessageLoggingService);
            ITypeResolver     typeResolver        = (ITypeResolver)this.SceneNodeObjectSet.ProjectContext;
            CategoryEditorSet categoryEditorsList = new CategoryEditorSet();
            IType             type = typeResolver.GetType(selectedType);

            PropertyInspectorModel.GetCategoryEditors(type, categoryEditorsList, this.MessageLoggingService);
            using (IEnumerator <CategoryEditor> enumerator = categoryEditorsList.Union(CategoryEditorInstanceFactory.GetEditors((ITypeId)type, categoryBase as SceneNodeCategory)).GetEnumerator())
            {
                while (((IEnumerator)enumerator).MoveNext())
                {
                    CategoryEditor current = enumerator.Current;
                    if (current.get_TargetCategory() == categoryBase.get_CategoryName())
                    {
                        categoryBase.CategoryEditors.Add(current);
                    }
                }
            }
            return(categoryBase);
        }
Ejemplo n.º 7
0
        public override CategoryBase FindOrCreateCategory(string categoryName, Type selectedType)
        {
            CategoryLocalizationHelper.CategoryName canonicalCategoryName = CategoryLocalizationHelper.GetCanonicalCategoryName(categoryName);
            if (canonicalCategoryName != CategoryLocalizationHelper.CategoryName.Unknown)
            {
                categoryName = CategoryLocalizationHelper.GetLocalizedCategoryName(canonicalCategoryName);
            }
            int index = OrderedListExtensions.GenericBinarySearch <CategoryBase, CategoryLocalizationHelper.CategoryName>(this.Categories, canonicalCategoryName, (Func <CategoryLocalizationHelper.CategoryName, CategoryBase, int>)((canonicalName, category) =>
            {
                SceneNodeCategory sceneNodeCategory = (SceneNodeCategory)category;
                return(canonicalName.CompareTo((object)sceneNodeCategory.CanonicalName));
            }));

            if (index >= 0)
            {
                return(this.Categories[index]);
            }
            CategoryBase category1 = this.CreateCategory(categoryName, selectedType);

            this.Categories.Insert(~index, category1);
            return(category1);
        }
Ejemplo n.º 8
0
 public override SceneNodeCategory CreateSceneNodeCategory(CategoryLocalizationHelper.CategoryName canonicalName, string localizedName, IMessageLoggingService messageLogger)
 {
     return((SceneNodeCategory) new TextCategory(localizedName, messageLogger));
 }
Ejemplo n.º 9
0
 public static CustomCategorySelector GetCustomCategorySelector(CategoryLocalizationHelper.CategoryName category)
 {
     return(CategoryFactory.GetCategorySelectorByCategoryName(category) ?? new CustomCategorySelector());
 }
Ejemplo n.º 10
0
 public virtual SceneNodeCategory CreateSceneNodeCategory(CategoryLocalizationHelper.CategoryName canonicalName, string localizedName, IMessageLoggingService messageLogger)
 {
     return(new SceneNodeCategory(canonicalName, localizedName, messageLogger));
 }