Ejemplo n.º 1
0
        public object MapValue(string value, string XSDType)
        {
            InitializeMapping();
            ChangeTypeDelegate delegate2 = (ChangeTypeDelegate)propertyMapping[XSDType];

            if (delegate2 == null)
            {
                throw new NotSupportedException(string.Format(CultureInfo.CurrentCulture, "XSD data type {0} is not supported for property promotion", new object[] { XSDType }));
            }
            return(delegate2(value));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Initialize a type mapping hashtable.
        /// </summary>
        private static void InitializeMapping()
        {
            // Quick check if property mapping already initialized, don't need to be
            // synchronized
            if (propertyMapping != null)
            {
                return;
            }

            // Lock all instances of PromotingMap class
            lock (typeof(PromotingMap))
            {
                propertyMapping = new Hashtable();

                propertyMapping["anyURI"]             = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["boolean"]            = new ChangeTypeDelegate(ChangeTypeToBoolean);
                propertyMapping["byte"]               = new ChangeTypeDelegate(ChangeTypeToSByte);
                propertyMapping["date"]               = new ChangeTypeDelegate(ChangeTypeToDateTime);
                propertyMapping["dateTime"]           = new ChangeTypeDelegate(ChangeTypeToDateTime);
                propertyMapping["decimal"]            = new ChangeTypeDelegate(ChangeTypeToDecimal);
                propertyMapping["double"]             = new ChangeTypeDelegate(ChangeTypeToDouble);
                propertyMapping["ENTITY"]             = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["float"]              = new ChangeTypeDelegate(ChangeTypeToSingle);
                propertyMapping["gDay"]               = new ChangeTypeDelegate(ChangeTypeToDateTime);
                propertyMapping["gMonth"]             = new ChangeTypeDelegate(ChangeTypeToDateTime);
                propertyMapping["gMonthDay"]          = new ChangeTypeDelegate(ChangeTypeToDateTime);
                propertyMapping["gYear"]              = new ChangeTypeDelegate(ChangeTypeToDateTime);
                propertyMapping["gYearMonth"]         = new ChangeTypeDelegate(ChangeTypeToDateTime);
                propertyMapping["ID"]                 = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["IDREF"]              = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["int"]                = new ChangeTypeDelegate(ChangeTypeToInt32);
                propertyMapping["integer"]            = new ChangeTypeDelegate(ChangeTypeToDecimal);
                propertyMapping["language"]           = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["Name"]               = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["NCName"]             = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["negativeInteger"]    = new ChangeTypeDelegate(ChangeTypeToDecimal);
                propertyMapping["NMTOKEN"]            = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["nonNegativeInteger"] = new ChangeTypeDelegate(ChangeTypeToDecimal);
                propertyMapping["nonPositiveInteger"] = new ChangeTypeDelegate(ChangeTypeToDecimal);
                propertyMapping["normalizedString"]   = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["NOTATION"]           = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["positiveInteger"]    = new ChangeTypeDelegate(ChangeTypeToDecimal);
                propertyMapping["QName"]              = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["short"]              = new ChangeTypeDelegate(ChangeTypeToInt16);
                propertyMapping["string"]             = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["time"]               = new ChangeTypeDelegate(ChangeTypeToDateTime);
                propertyMapping["token"]              = new ChangeTypeDelegate(ChangeTypeToString);
                propertyMapping["unsignedByte"]       = new ChangeTypeDelegate(ChangeTypeToByte);
                propertyMapping["unsignedInt"]        = new ChangeTypeDelegate(ChangeTypeToUInt32);
                propertyMapping["unsignedShort"]      = new ChangeTypeDelegate(ChangeTypeToUInt16);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Maps string value to the typed CLR value based on XSD data type.
        /// </summary>
        /// <param name="value">String value</param>
        /// <param name="XSDType">XSD data type</param>
        /// <returns>CLR value</returns>
        public object MapValue(string value, string XSDType)
        {
            InitializeMapping();

            ChangeTypeDelegate changeType = (ChangeTypeDelegate)propertyMapping[XSDType];

            if (null == changeType)
            {
                throw new NotSupportedException(String.Format("XSD data type {0} is not supported for property promotion", XSDType));
            }

            return(changeType(value));
        }
Ejemplo n.º 4
0
 private static void InitializeMapping()
 {
     if (propertyMapping == null)
     {
         lock (syncRoot)
         {
             propertyMapping                       = new Hashtable();
             propertyMapping["anyURI"]             = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["boolean"]            = new ChangeTypeDelegate(PromotingMap.ChangeTypeToBoolean);
             propertyMapping["byte"]               = new ChangeTypeDelegate(PromotingMap.ChangeTypeToSByte);
             propertyMapping["date"]               = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDateTime);
             propertyMapping["dateTime"]           = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDateTime);
             propertyMapping["decimal"]            = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDecimal);
             propertyMapping["double"]             = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDouble);
             propertyMapping["ENTITY"]             = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["float"]              = new ChangeTypeDelegate(PromotingMap.ChangeTypeToSingle);
             propertyMapping["gDay"]               = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDateTime);
             propertyMapping["gMonth"]             = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDateTime);
             propertyMapping["gMonthDay"]          = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDateTime);
             propertyMapping["gYear"]              = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDateTime);
             propertyMapping["gYearMonth"]         = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDateTime);
             propertyMapping["ID"]                 = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["IDREF"]              = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["int"]                = new ChangeTypeDelegate(PromotingMap.ChangeTypeToInt32);
             propertyMapping["integer"]            = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDecimal);
             propertyMapping["language"]           = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["Name"]               = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["NCName"]             = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["negativeInteger"]    = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDecimal);
             propertyMapping["NMTOKEN"]            = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["nonNegativeInteger"] = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDecimal);
             propertyMapping["nonPositiveInteger"] = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDecimal);
             propertyMapping["normalizedString"]   = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["NOTATION"]           = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["positiveInteger"]    = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDecimal);
             propertyMapping["QName"]              = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["short"]              = new ChangeTypeDelegate(PromotingMap.ChangeTypeToInt16);
             propertyMapping["string"]             = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["time"]               = new ChangeTypeDelegate(PromotingMap.ChangeTypeToDateTime);
             propertyMapping["token"]              = new ChangeTypeDelegate(PromotingMap.ChangeTypeToString);
             propertyMapping["unsignedByte"]       = new ChangeTypeDelegate(PromotingMap.ChangeTypeToByte);
             propertyMapping["unsignedInt"]        = new ChangeTypeDelegate(PromotingMap.ChangeTypeToUInt32);
             propertyMapping["unsignedShort"]      = new ChangeTypeDelegate(PromotingMap.ChangeTypeToUInt16);
         }
     }
 }
Ejemplo n.º 5
0
    protected Vector2 FileListView(GUIContent label, Vector2 scrollPos, FilterDelegate filter, ChangeTypeDelegate changeTypeFetcher, WholeFileCommand cmd, ListSelectionState selectionCache)
    {
        int      id    = GUIUtility.GetControlID(FocusType.Passive);
        ListView state = (ListView)GUIUtility.GetStateObject(typeof(ListView), id);

        state.controlID = id;
        state.selection = selectionCache;

        Event current   = Event.current;
        bool  isChanged = false;

        GUILayout.Label(label, GitStyles.BoldLabel, GUIHelper.NoExpandWidth);
        Rect listPosition = EditorGUILayout.BeginVertical();

        scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GitStyles.FileListBox);
        if (changes != null)
        {
            for (int i = 0; i < changes.Length; i++)
            {
                if (filter(changes[i]))
                {
                    isChanged = isChanged || ShowFile(state, changes[i].path, changeTypeFetcher(changes[i]), cmd);
                }
            }
        }
        EditorGUILayout.EndScrollView();
        EditorGUILayout.EndVertical();

        switch (current.type)
        {
        case EventType.MouseDown:
            if (listPosition.Contains(current.mousePosition))
            {
                GUIUtility.hotControl      = id;
                GUIUtility.keyboardControl = id;
                current.Use();
            }
            else
            {
                if (GUIUtility.keyboardControl == id)
                {
                    GUIUtility.keyboardControl = 0;
                }
            }
            break;

        case EventType.MouseUp:
            if (GUIUtility.hotControl == id)
            {
                // Done dragging...
                GUIUtility.hotControl = 0;
                current.Use();
            }
            break;
        }
        state.hasFocus = GUIUtility.keyboardControl == id;
        if (!state.hasFocus)
        {
            state.selection.Clear();
        }
        if (isChanged)
        {
            GUI.changed = true;
            current.Use();
        }

        return(scrollPos);
    }
Ejemplo n.º 6
0
    protected Vector2 FileListView(GUIContent label, Vector2 scrollPos, FilterDelegate filter, ChangeTypeDelegate changeTypeFetcher, WholeFileCommand cmd, ListSelectionState selectionCache)
    {
        int id = GUIUtility.GetControlID(FocusType.Passive);
        ListView state = (ListView)GUIUtility.GetStateObject(typeof(ListView), id);
        state.controlID = id;
        state.selection = selectionCache;

        Event current = Event.current;
        bool isChanged = false;

        GUILayout.Label(label, GitStyles.BoldLabel, GUIHelper.NoExpandWidth);
        Rect listPosition = EditorGUILayout.BeginVertical();
          scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GitStyles.FileListBox);
        if(changes != null) {
          for(int i = 0; i < changes.Length; i++) {
            if(filter(changes[i])) {
              isChanged = isChanged || ShowFile(state, changes[i].path, changeTypeFetcher(changes[i]), cmd);
            }
          }
        }
          EditorGUILayout.EndScrollView();
        EditorGUILayout.EndVertical();

        switch(current.type) {
          case EventType.MouseDown:
        if(listPosition.Contains(current.mousePosition)) {
          GUIUtility.hotControl = id;
          GUIUtility.keyboardControl = id;
          current.Use();
        } else {
          if(GUIUtility.keyboardControl == id) {
            GUIUtility.keyboardControl = 0;
          }
        }
        break;
          case EventType.MouseUp:
        if(GUIUtility.hotControl == id) {
          // Done dragging...
          GUIUtility.hotControl = 0;
          current.Use();
        }
        break;
        }
        state.hasFocus = GUIUtility.keyboardControl == id;
        if(!state.hasFocus) {
          state.selection.Clear();
        }
        if(isChanged) {
          GUI.changed = true;
          current.Use();
        }

        return scrollPos;
    }