Beispiel #1
0
        private ModelState <TPattern> ProcessCreateInternal(string fullPath)
        {
            string parent  = Path.GetDirectoryName(fullPath);
            string name    = Path.GetFileName(fullPath);
            string relPath = fullPath.Substring(_root.Length - 1).Replace('\\', '/');


            ModelState <TPattern> parentModel = null;

            if (parent != null)
            {
                parentModel = Demand(parent);
            }

            ModelKind             kind  = File.Exists(fullPath) ? ModelKind.File : ModelKind.Directory;
            ModelState <TPattern> model = new ModelState <TPattern>(kind, name, relPath, fullPath, parentModel, () => RemoveFileInternal(relPath));

            if (CheckPatterns(model))
            {
                FilteredEntriesChanged?.Invoke(this, EventArgs.Empty);
            }

            if (parentModel != null)
            {
                parentModel.AddChild(model);

                if (model.IsIncluded)
                {
                    MarkDirty(parentModel.FullPath, true);
                }
            }

            return(model);
        }
Beispiel #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="VirtualTreeGridItem"/> class.
 /// </summary>
 /// <param name="category">The category.</param>
 /// <param name="parent">The parent.</param>
 /// <param name="kind">The kind.</param>
 public VirtualTreeGridItem(VirtualTreeGridCategory category, IHasChildren parent, ModelKind kind)
 {
     this.category = category;
     this.parent   = parent;
     this.kind     = kind;
     tempName      = EmptyName;
 }
        public string CSharpName(IMetaModel mmodel, ModelKind kind = ModelKind.None, bool fullName = false)
        {
            if (mmodel == null)
            {
                return(string.Empty);
            }
            string result;

            switch (kind)
            {
            case ModelKind.MetaModel:
                result = mmodel.Name + "MetaModel";
                break;

            case ModelKind.ImmutableInstance:
                result = mmodel.Name + "Instance";
                break;

            case ModelKind.BuilderInstance:
                result = mmodel.Name + "BuilderInstance";
                break;

            case ModelKind.Descriptor:
                result = mmodel.Name + "Descriptor";
                break;

            case ModelKind.Factory:
                result = mmodel.Name + "Factory";
                break;

            case ModelKind.Implementation:
                result = mmodel.Name + "Implementation";
                break;

            case ModelKind.ImplementationBase:
                result = mmodel.Name + "ImplementationBase";
                break;

            case ModelKind.ImplementationProvider:
                result = mmodel.Name + "ImplementationProvider";
                break;

            default:
                result = mmodel.Name;
                break;
            }
            if (fullName)
            {
                if (mmodel.Namespace == null)
                {
                    result = "global::" + result;
                }
                else
                {
                    result = "global::" + mmodel.Namespace + "." + result;
                }
            }
            return(result);
        }
Beispiel #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="VirtualTreeGridItem"/> class.
 /// </summary>
 /// <param name="category">The category.</param>
 /// <param name="parent">The parent.</param>
 /// <param name="data">The data.</param>
 /// <param name="kind">The kind.</param>
 public VirtualTreeGridItem(VirtualTreeGridCategory category, IHasChildren parent, ITypeMember data,
                            ModelKind kind)
 {
     this.category = category;
     DataItem      = data;
     this.parent   = parent;
     this.kind     = kind;
 }
Beispiel #5
0
 /// <summary>
 /// Gets the default type.
 /// </summary>
 /// <param name="modelKind">Kind of the model.</param>
 /// <returns></returns>
 public virtual string GetDefaultType(ModelKind modelKind)
 {
     if (modelKind == ModelKind.Member)
     {
         return("void");
     }
     return("int");
 }
Beispiel #6
0
 /// <summary>
 /// Creates the model.
 /// </summary>
 /// <param name="modelKind">Kind of the model.</param>
 /// <returns></returns>
 public virtual ITypeMember CreateModel(ModelKind modelKind)
 {
     if (modelKind == ModelKind.Member)
     {
         return(new Operation(Store));
     }
     return(new Argument(Store));
 }
Beispiel #7
0
 public ModelState(ModelKind kind, string name, string relPath, string fullPath, ModelState <TPattern> parentModel, Action deleteAction)
 {
     FullPath      = fullPath;
     _deleteAction = deleteAction;
     Kind          = kind;
     Name          = name;
     Path          = relPath;
     _parentModel  = parentModel;
 }
        private NamespaceKind ToNamespaceKind(ModelKind kind)
        {
            switch (kind)
            {
            case ModelKind.Implementation:
            case ModelKind.ImplementationBase:
            case ModelKind.ImplementationProvider:
            case ModelKind.BuilderInstance:
                return(NamespaceKind.Internal);

            default:
                return(NamespaceKind.Public);
            }
        }
Beispiel #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="VirtualTreeGridItem"/> class.
 /// </summary>
 /// <param name="data">The data.</param>
 /// <param name="category">The category.</param>
 /// <param name="kind">The kind.</param>
 public VirtualTreeGridItem(ITypeMember data, VirtualTreeGridCategory category, ModelKind kind)
 {
     this.category = category;
     this.kind     = kind;
     DataItem      = data;
 }
Beispiel #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="VirtualTreeGridItem"/> class.
 /// </summary>
 /// <param name="data">The data.</param>
 public VirtualTreeGridItem(IHasChildren data)
 {
     category    = new VirtualTreeGridCategory(true);
     kind        = ModelKind.Root;
     DisplayName = Name = data.Name;
 }
Beispiel #11
0
 /// <summary>
 /// Création de l'instance d'un membre
 /// </summary>
 /// <param name="modelKind">Type de membre</param>
 /// <returns>Instance de modèle</returns>
 public ITypeMember CreateModel(ModelKind modelKind)
 {
     return(new EnumValue(this.Store));
 }
Beispiel #12
0
 /// <summary>
 /// Type par défaut pour un membre
 /// </summary>
 /// <param name="modelKind">Type de membre</param>
 /// <returns>Un nom de type</returns>
 public string GetDefaultType(ModelKind modelKind)
 {
     return("System.Int32");
 }
Beispiel #13
0
 /// <summary>
 /// Gets the empty text.
 /// </summary>
 /// <param name="kind">The kind.</param>
 /// <returns></returns>
 internal override string GetEmptyText(ModelKind kind)
 {
     return("<add value>");
 }
Beispiel #14
0
 /// <summary>
 /// Création de l'instance d'un membre
 /// </summary>
 /// <param name="modelKind">Type de membre</param>
 /// <returns>Instance de modèle</returns>
 public ITypeMember CreateModel(ModelKind modelKind)
 {
     return(new Property(Store));
 }
 /// <summary>
 /// Type par défaut pour un membre
 /// </summary>
 /// <param name="modelKind">Type de membre</param>
 /// <returns>Un nom de type</returns>
 public string GetDefaultType(ModelKind modelKind)
 {
     throw new Exception("The method or operation is not implemented.");
 }
Beispiel #16
0
 /// <summary>
 /// Type par défaut pour un membre
 /// </summary>
 /// <param name="modelKind">Type de membre</param>
 /// <returns>Un nom de type</returns>
 public string GetDefaultType(ModelKind modelKind)
 {
     return("int");
 }
 /// <summary>
 /// Création de l'instance d'un membre
 /// </summary>
 /// <param name="modelKind">Type de membre</param>
 /// <returns>Instance de modèle</returns>
 public ITypeMember CreateModel(ModelKind modelKind)
 {
     throw new Exception("The method or operation is not implemented.");
 }
Beispiel #18
0
 /// <summary>
 /// Gets the empty text.
 /// </summary>
 /// <param name="kind">The kind.</param>
 /// <returns></returns>
 internal virtual string GetEmptyText(ModelKind kind)
 {
     return(kind == ModelKind.Member ? "<add member>" : "<add argument>");
 }
Beispiel #19
0
 /// <summary>
 /// Gets the empty text.
 /// </summary>
 /// <param name="kind">The kind.</param>
 /// <returns></returns>
 internal override string GetEmptyText(ModelKind kind)
 {
     return("<add property>");
 }