Ejemplo n.º 1
0
 public override string GetTypeName(string cellValue, string className, string sheetName, string columnName)
 {
     string[] arrayLabel = columnName.Split(' ');
     string[] arrayValue = cellValue.Trim().Split('.');
     string[] arrayTitle = sheetName.Trim().Split(':');
     if (arrayLabel.Length == 2)
     {
         string classVariable = arrayLabel[0];                //THE CLASS NAME PART OF THE COLUMN LABEL
         return(MetaSheets.GetName_ClassSheetNameSpace(className) + "." + MetaSheets.GetName_ClassRow(classVariable));
     }
     else if (arrayValue.Length == 2 && arrayTitle.Length == 2 && arrayLabel.Length == 1)
     {
         string      varName      = columnName;
         string      varClassName = arrayTitle[1];
         System.Type typeVar      = MetaSheets.GetTypeVarBase(varClassName, varName);
         if (typeVar != null)
         {
             return(typeVar.ToString());
         }
     }
     return("");
     //GetVariable_Class: people.item_00 : people[] who
     //} else if (type == eType._eNumArray) {
     //	string prefix = GetEnumPrefix(columnName, sheetName);
     //	if (prefix != "") {
     //		return prefix+"[]";
     //	}
 }
Ejemplo n.º 2
0
        protected string GetEnumPrefix(string className, string sheetName, string columnName)
        {
            string classExtend           = MetaSheets.GetName_ClassRowExtends(sheetName);
            string nameVariable          = MetaSheets.GetName_Variable(columnName);
            bool   doesExtendingVarExist = MetaSheets.DoesVariableExist(classExtend, nameVariable);

            if (doesExtendingVarExist)
            {
                System.Type _type = MetaSheets.GetTypeExtended(classExtend, nameVariable);
                if (_type.DeclaringType == null && _type.FullName.Contains("+"))
                {
                    //Return e.g. DBase+myEnumTypes[], replace + with .
                    return(_type.FullName.ToString().Replace("+", ".").Replace("[]", ""));
                }
                else
                {
                    Debug.Log("type; " + classExtend + " : " + nameVariable);
                    return(_type.DeclaringType.ToString() + "." + _type.Name.Replace("[]", ""));
                }
            }
            else
            {
                string classRowName = MetaSheets.GetName_ClassRow(sheetName);
                string nameENum     = MetaSheets.GetName_eNum(columnName);
                return(classRowName + "." + nameENum.Replace("[]", ""));
            }
        }
Ejemplo n.º 3
0
        public override string FormatReload(int index, string cellVar, string className, string sheetName, string columnName)
        {
            string attribute  = MetaSheets.GetName_Variable(columnName);
            string classSheet = MetaSheets.GetName_ClassRow(columnName.Split(' ').First().Replace("[", "").Replace("]", ""));

            return(StringUtilities.Format(@"
				List<{0}> tmp{1} = new List<{0}>();
				foreach(string s in {2}.Split(',')) {
					tmp{1}.Add( Data.people[ s.Split('.').Last() ] );
				}
				_rows[i].{3} = tmp{1}.ToArray();"                ,
                                          classSheet,
                                          index,
                                          cellVar,
                                          attribute
                                          ));
        }
Ejemplo n.º 4
0
 public override string GetValue(string cell, string className, string sheetName, string columnName)
 {
     cell = Trim(cell);
     string[] array_label = columnName.Split(' ');            //CONTENT OF THE COLUMN LABEL SPLIT BY SPACE
     if (array_label.Length == 2)
     {
         //string classNameSheet	= GetName_ClassRow(array_label[0].Replace("[","").Replace("]",""));
         //string varName			= GetName_Variable(columnName);
         string        constructor = "new " + MetaSheets.GetName_ClassSheetNameSpace(className) + "." + MetaSheets.GetName_ClassRow(array_label[0]) + "{ {0} }";
         string        classSheet  = columnName.Split(' ').First().Replace("[", "").Replace("]", "");
         string[]      array       = cell.Split(',');     //SPLIT CELL-ARRAY ELEMENTS BY ','
         List <string> list        = new List <string>();
         bool          isError     = false;
         foreach (string item in array)
         {
             string[] array_item = item.Trim().Split('.');                    //CONTENT OF THE CELL SPLIT BY '.'
             if (item.Trim().Length == 0)
             {
                 list.Add("null");
             }
             else if (array_item.Length == 2)
             {
                 list.Add(className + "." + item);
             }
             else if (array_item.Length == 1)
             {
                 list.Add(className + "." + classSheet + "." + item);
             }
             else
             {
                 //ERROR DOES NOT MATCH UP
                 isError = true;
             }
         }
         if (isError)
         {
             // SOMETHING WENT WRONG, INFORM THE USER
             string format;
             if (array_label.Length >= 1)
             {
                 format = classSheet + ".idA, " + classSheet + ".idB";
             }
             else
             {
                 format = "mySheetId.idA, mySheetId.idB";
             }
             Copy.copy.help_wrongClassArrayItem.ShowHelp(Help.eImage.cellWrongClassArray, sheetName, cell, format);
         }
         return(StringUtilities.Format(constructor, string.Join(", ", list.ToArray())));
     }
     return("null");           //DEFAULT VALUE FOR WHEN NO CLASS COULD BE DETERMINED
 }