예제 #1
0
        private SimpleFieldDescription CreateField(TypeName declaredOn, IReflectField field,
                                                   Func <IReflectClass, ITypeDescription> typeLookUp)
        {
            var fieldType = typeLookUp(field.GetFieldType());

            return(SimpleFieldDescription.Create(field.GetName(),
                                                 fieldType, IndexLookUp(declaredOn, field.GetName(), fieldType.TypeName)));
        }
예제 #2
0
        private void RenderSubObject(TreeGridNode parentNode, object parentObj, IReflectField field)
        {
            try
            {
                TreeGridNode objectNode = new TreeGridNode();
                parentNode.Nodes.Add(objectNode);
                object value = field.Get(parentObj);
                if (value != null)
                {
                    container.Ext().Activate(value, 1);
                }
                objectNode.Tag = value;

                IType fieldType = ResolveFieldType(field);
                objectNode.Cells[0].Value = AppendIDTo(field.GetName(), GetLocalID(value), fieldType);

                objectNode.Cells[1].Value = value != null?value.ToString() : BusinessConstants.DB4OBJECTS_NULL;

                SetFieldType(objectNode, fieldType);


                if (parentNode.Tag is DictionaryEntry && field.GetName() == BusinessConstants.DB4OBJECTS_KEY)
                {
                    objectNode.Cells[1].ReadOnly = true;
                }
                else if (parentNode.Tag is DictionaryEntry && field.GetName() == BusinessConstants.DB4OBJECTS_VALUE)
                {
                    objectNode.Cells[1].ReadOnly = checkReadonlyStatus();
                }
                else if (field.Get(parentObj) == null)
                {
                    objectNode.Cells[1].ReadOnly = true;
                }
                else
                {
                    objectNode.Cells[1].ReadOnly = true;
                }

                objectNode.ImageIndex = 0;                 //class
                if (value != null)
                {
                    //container = Db4oClient.Client;
                    //container.Ext().Activate(value, 2);

                    TreeGridNode treenodeDummyChildNode = new TreeGridNode();
                    objectNode.Nodes.Add(treenodeDummyChildNode);
                    treenodeDummyChildNode.Cells[0].Value = BusinessConstants.DB4OBJECTS_DUMMY;
                }
            }
            catch (Exception oEx)
            {
                LoggingHelper.HandleException(oEx);
            }
        }
 public List <TreeGridViewRenderer> CreateCollectionNode(IReflectField field, object ownerObject, int count)
 {
     try
     {
         TreeGridViewRenderer TreeviewRenderer = new TreeGridViewRenderer();
         TreeviewRenderer.DisplayFieldName = field.GetName() + " ( " + count + " items )";
         TreeviewRenderer.FieldName        = field.GetName();
         TreeviewRenderer.FieldType        = field.GetName();
         TreeviewRenderer.QualifiedName    = field.GetFieldType().GetName();
         TreeviewRenderer.ObjectId         = 0;
         if (ownerObject != null)
         {
             TreeviewRenderer.FieldValue = ownerObject.ToString();
         }
         else
         {
             TreeviewRenderer.FieldValue = BusinessConstants.DB4OBJECTS_NULL;
         }
         if (count == 0)
         {
             TreeviewRenderer.HasSubNode = false;
         }
         else
         {
             TreeviewRenderer.HasSubNode = true;
             long id = GetLocalID(ownerObject);
             if (ownerObject is GenericObject || ownerObject is GenericArray)
             {
                 TreeviewRenderer.ObjectId = id;
             }
             else
             if (id != 0)
             {
                 TreeviewRenderer.ObjectId = id;
             }
             else
             {
                 TreeviewRenderer.SubObject = ownerObject;
             }
         }
         IType type = ResolveFieldType(field);
         TreeviewRenderer.FieldType      = SetFieldType(type);
         TreeviewRenderer.ObjectType     = type;
         TreeviewRenderer.ReadOnlyStatus = true;
         listTreeGridViewRenderers.Add(TreeviewRenderer);
         return(listTreeGridViewRenderers);
     }
     catch (Exception oEx)
     {
         LoggingHelper.HandleException(oEx);
         return(null);
     }
 }
        private TreeGridViewRenderer FillValuesInTreeGridViewRenderer(IReflectField field, IType type, object value)
        {
            TreeGridViewRenderer treeGridViewRenderer = new TreeGridViewRenderer();

            treeGridViewRenderer.DisplayFieldName = field.GetName();
            treeGridViewRenderer.FieldName        = field.GetName();
            treeGridViewRenderer.FieldValue       = value != null?value.ToString() : BusinessConstants.DB4OBJECTS_NULL;

            treeGridViewRenderer.FieldType      = SetFieldType(type);
            treeGridViewRenderer.ReadOnlyStatus = readOnly;
            treeGridViewRenderer.ObjectType     = type;
            treeGridViewRenderer.ObjectId       = 0;
            return(treeGridViewRenderer);
        }
예제 #5
0
        public void CreateCollectionNode(IReflectField field, object ownerObject, ref TreeGridNode rootNode, string count)
        {
            try
            {
                TreeGridNode collNode = new TreeGridNode();

                rootNode.Nodes.Add(collNode);
                collNode.Cells[1].ReadOnly = true;
                collNode.Cells[0].Value    = field.GetName() + " ( " + count + " items )";
                SetFieldType(collNode, ResolveFieldType(field));
                if (ownerObject != null)
                {
                    collNode.Cells[1].Value = ownerObject.ToString();
                    collNode.Tag            = ownerObject;
                }
                else
                {
                    collNode.Cells[1].Value = BusinessConstants.DB4OBJECTS_NULL;
                }
                collNode.ImageIndex = 1;                 //Collection
                if (Convert.ToInt32(count) > 0)
                {
                    TreeGridNode treenodeDummyChildNode = new TreeGridNode();
                    collNode.Nodes.Add(treenodeDummyChildNode);
                    treenodeDummyChildNode.Cells[0].Value = BusinessConstants.DB4OBJECTS_DUMMY;
                }
            }
            catch (Exception oEx)
            {
                LoggingHelper.HandleException(oEx);
            }
        }
예제 #6
0
        public Db4oField(IReflectField storedField)
        {
            internalName = storedField.GetName();
            name = AutomaticPropertyUtils.TryParseName(internalName);

            IReflectClass fieldType = storedField.GetFieldType();
            if(fieldType!=null)
                DataType = fieldType.ToString();
        }
예제 #7
0
        private static FieldProperties FieldPropertiesFor(string className, IReflectField field)
        {
            FieldProperties fp = new FieldProperties(field.GetName(), field.GetFieldType().GetName());
            FieldDetails    fd = new FieldDetails(className, fp.Field);

            fp.m_isPublic  = fd.GetModifier();
            fp.m_isIndexed = fd.IsIndexed();

            return(fp);
        }
예제 #8
0
 public virtual IReflectField GetDeclaredField(string name)
 {
     for (int i = 0; i < _fields.Length; ++i)
     {
         IReflectField field = _fields[i];
         if (field.GetName().Equals(name))
         {
             return(field);
         }
     }
     return(null);
 }
예제 #9
0
 internal FieldMetadata(ClassMetadata containingClass, IReflectField field, ClassMetadata
                        fieldType) : this(containingClass)
 {
     Init(field.GetName());
     _reflectField = field;
     _fieldType    = fieldType;
     _fieldTypeID  = fieldType.GetID();
     // TODO: beautify !!!  possibly pull up isPrimitive to ReflectField
     bool isPrimitive = field is GenericField ? ((GenericField)field).IsPrimitive() :
                        false;
     Configure(field.GetFieldType(), isPrimitive);
     CheckDb4oType();
     SetAvailable();
 }
예제 #10
0
		internal FieldMetadata(ClassMetadata containingClass, IReflectField field, ClassMetadata
			 fieldType) : this(containingClass)
		{
			Init(field.GetName());
			_reflectField = field;
			_fieldType = fieldType;
			_fieldTypeID = fieldType.GetID();
			// TODO: beautify !!!  possibly pull up isPrimitive to ReflectField
			bool isPrimitive = field is GenericField ? ((GenericField)field).IsPrimitive() : 
				false;
			Configure(field.GetFieldType(), isPrimitive);
			CheckDb4oType();
			SetAvailable();
		}
예제 #11
0
 private void ScanThroughKnownClassesInfo(IObjectContainer db)
 {
     IReflectClass[] clazzArray = db.Ext().KnownClasses();
     for (int clazzIndex = 0; clazzIndex < clazzArray.Length; ++clazzIndex)
     {
         IReflectClass   clazz      = clazzArray[clazzIndex];
         IReflectField[] fieldArray = clazz.GetDeclaredFields();
         for (int fieldIndex = 0; fieldIndex < fieldArray.Length; ++fieldIndex)
         {
             IReflectField field = fieldArray[fieldIndex];
             field.GetName();
             field.GetFieldType();
         }
     }
 }
        public void CreatePrimitiveNode(IReflectField field, object currObj, IType type)
        {
            try
            {
                object value = field.Get(currObj);
                var    treeGridViewRenderer = FillValuesInTreeGridViewRenderer(field, type, value);
                if (currObj is IDictionary)
                {
                    treeGridViewRenderer.ReadOnlyStatus = field.GetName() != BusinessConstants.DB4OBJECTS_VALUE1;
                    treeGridViewRenderer.HasSubNode     = true;
                    treeGridViewRenderer.SubObject      = currObj;
                }

                listTreeGridViewRenderers.Add(treeGridViewRenderer);
            }
            catch (Exception oEx)
            {
                LoggingHelper.HandleException(oEx);
            }
        }
예제 #13
0
 private FieldInfo[] MapFields(IReflectField[] fields, bool shouldStoreTransientFields
                               )
 {
     if (!shouldStoreTransientFields)
     {
         fields = FilterTransientFields(fields);
     }
     FieldInfo[] fieldsMeta = new FieldInfo[fields.Length];
     for (int i = 0; i < fields.Length; ++i)
     {
         IReflectField field      = fields[i];
         bool          isArray    = field.GetFieldType().IsArray();
         IReflectClass fieldClass = isArray ? field.GetFieldType().GetComponentType() : field
                                    .GetFieldType();
         bool isPrimitive = fieldClass.IsPrimitive();
         // TODO: need to handle NArray, currently it ignores NArray and alway sets NArray flag false.
         fieldsMeta[i] = new FieldInfo(field.GetName(), GetClassMeta(fieldClass), isPrimitive
                                       , isArray, false);
     }
     return(fieldsMeta);
 }
예제 #14
0
 private SimpleFieldDescription CreateField(TypeName declaredOn, IReflectField field,
     Func<IReflectClass, ITypeDescription> typeLookUp)
 {
     var fieldType = typeLookUp(field.GetFieldType());
     return SimpleFieldDescription.Create(field.GetName(),
                                          fieldType, IndexLookUp(declaredOn, field.GetName(), fieldType.TypeName));
 }
예제 #15
0
    	private static FieldProperties FieldPropertiesFor(string className, IReflectField field)
    	{
    		FieldProperties fp = new FieldProperties(field.GetName(), field.GetFieldType().GetName());
    		FieldDetails fd = new FieldDetails(className, fp.Field);
    		fp.m_isPublic = fd.GetModifier();
    		fp.m_isIndexed = fd.IsIndexed();
    		
			return fp;
    	}
예제 #16
0
	    private void RenderSubObject(long id, IReflectField field)
		{
			try
			{
				object currObj = Db4oClient.Client.Ext().GetByID(id);
				object value = field.Get(currObj);
                 IType type = ResolveFieldType(field);
				if (value != null)
				{
					container.Ext().Activate(value, 1);
                    if(value.GetType().IsArray)
                    {
                        RenderArray(id, field);
                        return;
                    }
				}
                if (GetLocalID(value) == 0)
                {
                    CreateSimplePrimitiveNode(field, value, type);
                }
                else
                {


                   
                    TreeGridViewRenderer treeGridViewRenderer = new TreeGridViewRenderer();
                    treeGridViewRenderer.DisplayFieldName = AppendIDTo(field.GetName(), GetLocalID(value), type);
                    treeGridViewRenderer.FieldName = field.GetName();
                    treeGridViewRenderer.FieldValue = value != null ? type.FullName : BusinessConstants.DB4OBJECTS_NULL;
                    treeGridViewRenderer.QualifiedName = field.GetFieldType().GetName();
                    treeGridViewRenderer.FieldType = SetFieldType(type);
                    treeGridViewRenderer.ReadOnlyStatus = readOnly;
                    treeGridViewRenderer.ObjectId = GetLocalID(value);
                    treeGridViewRenderer.ObjectType = type;
                    treeGridViewRenderer.HasSubNode = type.IsCollection || type.IsArray;
                    if (treeGridViewRenderer.HasSubNode)
                    {
                        long longid = GetLocalID(value);
                        if (value is GenericObject)
                            treeGridViewRenderer.ObjectId = longid;

                        else if (longid != 0)
                            treeGridViewRenderer.ObjectId = longid;
                        else
                        {
                            treeGridViewRenderer.SubObject = value;
                        }
                    }
                    listTreeGridViewRenderers.Add(treeGridViewRenderer);
                    if (currObj is DictionaryEntry && field.GetName() == BusinessConstants.DB4OBJECTS_KEY)
                        treeGridViewRenderer.ReadOnlyStatus = true;
                    else if (currObj is DictionaryEntry && field.GetName() == BusinessConstants.DB4OBJECTS_VALUE)
                        treeGridViewRenderer.ReadOnlyStatus = readOnly;
                    else if (field.Get(currObj) == null)
                        treeGridViewRenderer.ReadOnlyStatus = true;
                    else
                        treeGridViewRenderer.ReadOnlyStatus = true;
                }

			}
			catch (Exception oEx)
			{
				LoggingHelper.HandleException(oEx);
			}
		}
예제 #17
0
 protected virtual StaticField ToStaticField(IReflectField reflectField)
 {
     return new StaticField(reflectField.GetName(), StaticReflectFieldValue(reflectField
         ));
 }
예제 #18
0
	    public List<TreeGridViewRenderer > CreateCollectionNode(IReflectField field, object ownerObject, int count)
		{
			try
			{
				TreeGridViewRenderer TreeviewRenderer = new TreeGridViewRenderer();
				TreeviewRenderer.DisplayFieldName = field.GetName() + " ( " + count + " items )";
			    TreeviewRenderer.FieldName = field.GetName();
                TreeviewRenderer.FieldType = field.GetName();
			    TreeviewRenderer.QualifiedName = field.GetFieldType().GetName();  
				TreeviewRenderer.ObjectId = 0;
				if (ownerObject != null)
				TreeviewRenderer.FieldValue = ownerObject.ToString();
				else
					TreeviewRenderer.FieldValue = BusinessConstants.DB4OBJECTS_NULL;
				if (count == 0)
					TreeviewRenderer.HasSubNode  = false;
				else
				{
					TreeviewRenderer.HasSubNode  = true;
					long id = GetLocalID(ownerObject);
					if (ownerObject is GenericObject || ownerObject is GenericArray )
						TreeviewRenderer.ObjectId = id;
					else
						if (id != 0)
							TreeviewRenderer.ObjectId = id;
						else
							TreeviewRenderer.SubObject = ownerObject;
				}
				IType type = ResolveFieldType(field);
				TreeviewRenderer.FieldType = SetFieldType(type );
				TreeviewRenderer.ObjectType = type;
				TreeviewRenderer.ReadOnlyStatus = true ;
				listTreeGridViewRenderers.Add(TreeviewRenderer);
				return listTreeGridViewRenderers;
			}
			catch (Exception oEx)
			{
				LoggingHelper.HandleException(oEx);
				return null;
			}
		}
예제 #19
0
	    public void CreatePrimitiveNode(IReflectField field, object currObj, IType type)
		{
			try
			{
				object value = field.Get(currObj);
                var treeGridViewRenderer = FillValuesInTreeGridViewRenderer(field, type, value);
				if (currObj is IDictionary)
				{
					treeGridViewRenderer.ReadOnlyStatus = field.GetName() != BusinessConstants.DB4OBJECTS_VALUE1;
					treeGridViewRenderer.HasSubNode = true;
					treeGridViewRenderer.SubObject = currObj;  
				}

                listTreeGridViewRenderers.Add(treeGridViewRenderer);
			}
			catch (Exception oEx)
			{
				LoggingHelper.HandleException(oEx);
			}
		}
예제 #20
0
 private TreeGridViewRenderer FillValuesInTreeGridViewRenderer(IReflectField field, IType type, object value)
 {
     TreeGridViewRenderer treeGridViewRenderer = new TreeGridViewRenderer();
     treeGridViewRenderer.DisplayFieldName = field.GetName();
     treeGridViewRenderer.FieldName = field.GetName();
     treeGridViewRenderer.FieldValue = value != null ? value.ToString() : BusinessConstants.DB4OBJECTS_NULL;
     treeGridViewRenderer.FieldType = SetFieldType(type);
     treeGridViewRenderer.ReadOnlyStatus = readOnly;
     treeGridViewRenderer.ObjectType = type;
     treeGridViewRenderer.ObjectId = 0;
     return treeGridViewRenderer;
 }
예제 #21
0
		public void CreateCollectionNode(IReflectField field, object ownerObject, ref TreeGridNode rootNode, string count)
		{
			try
			{
				TreeGridNode collNode = new TreeGridNode();

				rootNode.Nodes.Add(collNode);
				collNode.Cells[1].ReadOnly = true;
				collNode.Cells[0].Value = field.GetName() + " ( " + count + " items )";
				SetFieldType(collNode, ResolveFieldType(field));
				if (ownerObject != null)
				{
					collNode.Cells[1].Value = ownerObject.ToString();
					collNode.Tag = ownerObject;
				}
				else
				{
					collNode.Cells[1].Value = BusinessConstants.DB4OBJECTS_NULL;
				}
				collNode.ImageIndex = 1; //Collection
				if (Convert.ToInt32(count) > 0)
				{
					TreeGridNode treenodeDummyChildNode = new TreeGridNode();
					collNode.Nodes.Add(treenodeDummyChildNode);
					treenodeDummyChildNode.Cells[0].Value = BusinessConstants.DB4OBJECTS_DUMMY;
				}
			}
			catch (Exception oEx)
			{
				LoggingHelper.HandleException(oEx);
			}
		}
예제 #22
0
		private void RenderSubObject(TreeGridNode parentNode, object parentObj, IReflectField field)
		{
			try
			{
				TreeGridNode objectNode = new TreeGridNode();
				parentNode.Nodes.Add(objectNode);
				object value = field.Get(parentObj);
				if (value != null)
				{
					container.Ext().Activate(value, 1);
				}
				objectNode.Tag = value;

				IType fieldType = ResolveFieldType(field);
				objectNode.Cells[0].Value = AppendIDTo(field.GetName(), GetLocalID(value), fieldType);

				objectNode.Cells[1].Value = value != null ? value.ToString() : BusinessConstants.DB4OBJECTS_NULL;

				SetFieldType(objectNode, fieldType);


				if (parentNode.Tag is DictionaryEntry && field.GetName() == BusinessConstants.DB4OBJECTS_KEY)
					objectNode.Cells[1].ReadOnly = true;
				else if (parentNode.Tag is DictionaryEntry && field.GetName() == BusinessConstants.DB4OBJECTS_VALUE)
					objectNode.Cells[1].ReadOnly = checkReadonlyStatus();
				else if (field.Get(parentObj) == null)
					objectNode.Cells[1].ReadOnly = true;
				else
					objectNode.Cells[1].ReadOnly = true;

				objectNode.ImageIndex = 0; //class
				if (value != null)
				{
					//container = Db4oClient.Client;
					//container.Ext().Activate(value, 2);

					TreeGridNode treenodeDummyChildNode = new TreeGridNode();
					objectNode.Nodes.Add(treenodeDummyChildNode);
					treenodeDummyChildNode.Cells[0].Value = BusinessConstants.DB4OBJECTS_DUMMY;
				}

			}
			catch (Exception oEx)
			{
				LoggingHelper.HandleException(oEx);
			}
		}
        private void RenderSubObject(long id, IReflectField field)
        {
            try
            {
                object currObj = Db4oClient.Client.Ext().GetByID(id);
                object value   = field.Get(currObj);
                IType  type    = ResolveFieldType(field);
                if (value != null)
                {
                    container.Ext().Activate(value, 1);
                    if (value.GetType().IsArray)
                    {
                        RenderArray(id, field);
                        return;
                    }
                }
                if (GetLocalID(value) == 0)
                {
                    CreateSimplePrimitiveNode(field, value, type);
                }
                else
                {
                    TreeGridViewRenderer treeGridViewRenderer = new TreeGridViewRenderer();
                    treeGridViewRenderer.DisplayFieldName = AppendIDTo(field.GetName(), GetLocalID(value), type);
                    treeGridViewRenderer.FieldName        = field.GetName();
                    treeGridViewRenderer.FieldValue       = value != null ? type.FullName : BusinessConstants.DB4OBJECTS_NULL;
                    treeGridViewRenderer.QualifiedName    = field.GetFieldType().GetName();
                    treeGridViewRenderer.FieldType        = SetFieldType(type);
                    treeGridViewRenderer.ReadOnlyStatus   = readOnly;
                    treeGridViewRenderer.ObjectId         = GetLocalID(value);
                    treeGridViewRenderer.ObjectType       = type;
                    treeGridViewRenderer.HasSubNode       = type.IsCollection || type.IsArray;
                    if (treeGridViewRenderer.HasSubNode)
                    {
                        long longid = GetLocalID(value);
                        if (value is GenericObject)
                        {
                            treeGridViewRenderer.ObjectId = longid;
                        }

                        else if (longid != 0)
                        {
                            treeGridViewRenderer.ObjectId = longid;
                        }
                        else
                        {
                            treeGridViewRenderer.SubObject = value;
                        }
                    }
                    listTreeGridViewRenderers.Add(treeGridViewRenderer);
                    if (currObj is DictionaryEntry && field.GetName() == BusinessConstants.DB4OBJECTS_KEY)
                    {
                        treeGridViewRenderer.ReadOnlyStatus = true;
                    }
                    else if (currObj is DictionaryEntry && field.GetName() == BusinessConstants.DB4OBJECTS_VALUE)
                    {
                        treeGridViewRenderer.ReadOnlyStatus = readOnly;
                    }
                    else if (field.Get(currObj) == null)
                    {
                        treeGridViewRenderer.ReadOnlyStatus = true;
                    }
                    else
                    {
                        treeGridViewRenderer.ReadOnlyStatus = true;
                    }
                }
            }
            catch (Exception oEx)
            {
                LoggingHelper.HandleException(oEx);
            }
        }