コード例 #1
0
        /// <summary>
        /// Converts the pe column.
        /// </summary>
        /// <param name="extras">The extras.</param>
        /// <returns>[0] extra rows before main paty, [1] extra rows after</returns>
        public static List <Enum>[] convertPEColumn(this PropertyEntryColumn extras)
        {
            List <PropertyEntryColumn> extraList = extras.getEnumListFromFlags <PropertyEntryColumn>();

            List <Enum>[] output = { new List <Enum>(), new List <Enum>() };

            foreach (PropertyEntryColumn pec in extraList)
            {
                switch (pec)
                {
                case PropertyEntryColumn.none:
                    break;

                case PropertyEntryColumn.role_name:
                case PropertyEntryColumn.entry_unit:
                case PropertyEntryColumn.entry_importance:
                case PropertyEntryColumn.entry_description:
                case PropertyEntryColumn.property_description:
                    output[1].Add(pec);
                    break;

                default:
                case PropertyEntryColumn.entry_key:
                case PropertyEntryColumn.entry_name:
                case PropertyEntryColumn.role_letter:
                case PropertyEntryColumn.role_symbol:
                    output[0].Add(pec);
                    break;
                }
            }

            return(output);
        }
コード例 #2
0
        /// <summary>
        /// Maps to multiple keys
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="value">The value.</param>
        /// <param name="__name">The name.</param>
        /// <param name="__description">The description.</param>
        /// <returns></returns>
        public PropertyEntry Add(Array key, object value, String __name, String __description)
        {
            PropertyEntry pe = new PropertyEntry(key, value, __name, __description);

            foreach (Object k in key)
            {
                if (ContainsKey(k))
                {
                    this[k] = value;
                }
                else
                {
                    base.Add(k, value);
                }
            }

            foreach (PropertyEntryColumn pekey in pe.Keys)
            {
                if (!defaultTableColumn.HasFlag(pekey))
                {
                    _defaultTableColumn |= pekey;
                }
            }

            foreach (Object k in key)
            {
                pe.priority = entries.Count();
                entries.Add(k, pe);
            }
            return(pe);
        }
コード例 #3
0
#pragma warning disable CS1574 // XML comment has cref attribute 'isKeyValueColumn(imbSCI.Data.collection.PropertyEntryColumn)' that could not be resolved
        /// <summary>
        /// Get all non value (<see cref="aceCommonTypes.extensions.data.PropertyEntryColumnExtensions.isKeyValueColumn(imbSCI.Data.collection.PropertyEntryColumn)"/> columns into <see cref="PropertyCollection"/>
        /// </summary>
        /// <param name="key">The key.</param>
        /// <returns></returns>
        public PropertyCollection GetMetaForKey(Object key)
#pragma warning restore CS1574 // XML comment has cref attribute 'isKeyValueColumn(imbSCI.Data.collection.PropertyEntryColumn)' that could not be resolved
        {
            var                pe     = entries[key];
            Object             input  = null;
            PropertyCollection output = new PropertyCollection();

            foreach (DictionaryEntry pair in pe)
            {
                input = pair.Value;
                Boolean copyOk = true;
                if (input is PropertyEntryColumn)
                {
                    PropertyEntryColumn input_PropertyEntryColumn = (PropertyEntryColumn)input;
                    if (input_PropertyEntryColumn.isKeyValueColumn())
                    {
                        copyOk = false;
                    }
                }
                if (copyOk)
                {
                    output.Add(pair.Key, pair.Value);
                }
            }
            return(output);
        }
コード例 #4
0
        /// <summary>
        /// Builds the data table.
        /// </summary>
        /// <param name="source">The source.</param>
        /// <param name="columns">The columns.</param>
        /// <returns></returns>
        public static DataTable BuildDataShema(this object source, string[] columns, PropertyEntryColumn extraColumn, settingsEntriesForObject seo = null, DataTable dt = null)
        {
            if (seo == null)
            {
                seo = new settingsEntriesForObject(source);
            }

            if (dt == null)
            {
                dt = new DataTable(source.GetType().Name);
            }
            dt.ExtendedProperties[templateFieldDataTable.shema_sourceinstance] = source;
            dt.ExtendedProperties[templateFieldDataTable.shema_classname]      = source.GetType().Name;

            dt.ExtendedProperties[templateFieldDataTable.shema_dictionary] = source.buildPCE(true, null);

            if (extraColumn.HasFlag(PropertyEntryColumn.autocount_idcolumn))
            {
                dt.Columns.Add(IDCOLUMN).AutoIncrement = true;
            }

            foreach (string col in columns)
            {
                dt.AddToShema(col, source, seo);
            }

            return(dt);
        }
コード例 #5
0
        /// <summary>
        /// Gets the right column value
        /// </summary>
        /// <param name="column">The column.</param>
        /// <param name="pce">The pce.</param>
        /// <param name="c">Row count - required if <see cref="imbSCI.Core.collection.PropertyEntryColumn.autocount_idcolumn"/> is the <c>column</c>.</param>
        /// <param name="autocount_format">The autocount format.</param>
        /// <returns></returns>
        public static object getColumnValue(this PropertyEntry column, PropertyCollectionExtended pce, int c, string autocount_format)
        {
            object vl  = getColumnValue_Default;
            object key = column[PropertyEntryColumn.entry_key];

            if (key is PropertyEntryColumn)
            {
                PropertyEntryColumn pec = (PropertyEntryColumn)key;
                switch (pec)
                {
                case PropertyEntryColumn.entry_name:
                    vl = pce.name;
                    break;

                case PropertyEntryColumn.entry_description:
                    vl = pce.description;
                    break;

                case PropertyEntryColumn.autocount_idcolumn:

                    vl = c.ToString(autocount_format);
                    break;

                default:
                    vl = column.getColumn(pec, pce[key]);
                    break;
                }
            }
            else
            {
                vl = pce[key];
            }
            return(vl);
        }
コード例 #6
0
        /// <summary>
        /// To the column caption.
        /// </summary>
        /// <param name="column">The column.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentOutOfRangeException"></exception>
        public static Int32 toColumnPriority(this PropertyEntryColumn column)
        {
            switch (column)
            {
            case PropertyEntryColumn.entry_name:
            case PropertyEntryColumn.entry_key:
                return(10);

                break;

                break;

            case PropertyEntryColumn.entry_description:
                return(150);

                break;

            case PropertyEntryColumn.entry_value:
                return(50);

                break;

            case PropertyEntryColumn.entry_valueAndUnit:
                return(90);

                break;

            case PropertyEntryColumn.role_letter:
                return(110);

                break;

            case PropertyEntryColumn.role_symbol:
                return(120);

                break;

            case PropertyEntryColumn.role_name:
                return(130);

                break;

            case PropertyEntryColumn.entry_unit:
            case PropertyEntryColumn.entry_unitname:
                return(110);

                break;

            case PropertyEntryColumn.entry_importance:
                return(200);

                break;

            default:
                return(100);
            }
            return(100);
        }
コード例 #7
0
        /// <summary>
        /// Builds the data table hor.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="items">The items.</param>
        /// <param name="extraColumn">The extra column.</param>
        /// <param name="columns">The columns.</param>
        /// <returns></returns>
        public static DataTable BuildDataTableHor <T>(this T items, PropertyEntryColumn extraColumn, params string[] columns) where T : IEnumerable, IObjectWithNameAndDescription
        {
            if (items is IObjectWithNameAndDescription)
            {
                IObjectWithNameAndDescription items_IObjectWithNameAndDescription = (IObjectWithNameAndDescription)items;

                return(items.BuildDataTableHorizontal(items_IObjectWithNameAndDescription.name, items_IObjectWithNameAndDescription.description, extraColumn, columns));
            }

            return(items.BuildDataTableHorizontal("Instance list", "", extraColumn, columns));
        }
コード例 #8
0
        /// <summary>
        /// Gets the columm value - applying special procedure for certain <c>PropertyEntryColumn</c>
        /// </summary>
        /// <param name="column">The column.</param>
        /// <param name="input">The input.</param>
        /// <returns></returns>
        public Object getColumn(PropertyEntryColumn column, Object input)
        {
            if (imbSciStringExtensions.isNullOrEmptyString(input))
            {
                input = "";
            }
            switch (column)
            {
            case PropertyEntryColumn.entry_importance:

                if (input is IValueWithImportanceInfo)
                {
                    IValueWithImportanceInfo input_IValueWithImportanceInfo = (IValueWithImportanceInfo)input;
                    if (input_IValueWithImportanceInfo.isValueInAlarmRange)
                    {
                        return(dataPointImportance.alarm);
                    }
                }

                return(this[PropertyEntryColumn.entry_importance]);

                break;

            case PropertyEntryColumn.entry_value:

                if (input is IValueWithToString)
                {
                    IValueWithToString input_IValueWithToString = (IValueWithToString)input;
                    return(input_IValueWithToString.GetFormatedValue());
                }

                return(input.toStringSafe());

                break;

            case PropertyEntryColumn.entry_valueAndUnit:
                if (input is IValueWithToString)
                {
                    IValueWithToString input_IValueWithToString = (IValueWithToString)input;
                    return(input_IValueWithToString.GetFormatedValueAndUnit());
                }

                return(imbSciStringExtensions.add(input.toStringSafe(), this[PropertyEntryColumn.entry_unit].ToString(), " "));

                break;

            default:
                return(this[column]);

                break;
            }

            return("");
        }
コード例 #9
0
        /// <summary>
        /// Builds dictionary with specified columns as key and value
        /// </summary>
        /// <param name="keyColumn">The key column.</param>
        /// <param name="valueColumn">The value column.</param>
        /// <returns></returns>
        public Dictionary <String, String> GetStringDictionary(PropertyEntryColumn keyColumn = PropertyEntryColumn.entry_key, PropertyEntryColumn valueColumn = PropertyEntryColumn.entry_value)
        {
            Dictionary <String, String> output = new Dictionary <string, string>();

            foreach (KeyValuePair <object, PropertyEntry> p in entries)
            {
                output.Add(p.Value[keyColumn].toStringSafe(), p.Value[valueColumn].toStringSafe());
            }

            return(output);
        }
コード例 #10
0
        public static Type toColumnType(this PropertyEntryColumn column)
        {
            switch (column)
            {
            case PropertyEntryColumn.autocount_idcolumn:
            case PropertyEntryColumn.entry_value:
                return(typeof(Int32));

                break;

            default:
                return(typeof(String));

                break;
            }
        }
コード例 #11
0
        /// <summary>
        /// Gets the right column value
        /// </summary>
        /// <param name="column">The column.</param>
        /// <param name="pce">The pce.</param>
        /// <param name="c">Row count - required if <see cref="PropertyEntryColumn.autocount_idcolumn"/> is the <c>column</c>.</param>
        /// <param name="autocount_format">The autocount format.</param>
        /// <returns></returns>
        public static object getColumnValue(this PropertyEntry column, object instance, int c, string autocount_format)
        {
            settingsEntriesForObject sef = new settingsEntriesForObject(instance, false);

            object vl  = getColumnValue_Default;
            object key = column[PropertyEntryColumn.entry_key];

            if (key is PropertyEntryColumn)
            {
                PropertyEntryColumn pec = (PropertyEntryColumn)key;
                switch (pec)
                {
                case PropertyEntryColumn.entry_name:
                    vl = sef.spes[column.keyName].displayName;
                    break;

                case PropertyEntryColumn.entry_description:
                    vl = sef.spes[column.keyName].description;
                    break;

                case PropertyEntryColumn.autocount_idcolumn:

                    vl = c.ToString(autocount_format);
                    break;

                default:

                    //vl = column.getColumn(pec, [key]);
                    break;
                }
            }
            else
            {
                vl = instance.GetType().GetProperty(column.keyName).GetValue(instance, null);
                // vl = instance.GetPropertyValue(column.keyName);

                if (sef.spes[column.keyName].type == typeof(int) || sef.spes[column.keyName].type == typeof(double))
                {
                    vl = string.Format(sef.spes[column.keyName].format, vl);
                    //vl = String.Format(, )
                }
                else
                {
                }
            }
            return(vl);
        }
コード例 #12
0
        public static DataRow SetDataRow(this DataTable dt, object source, PropertyEntryColumn extraColumn, settingsEntriesForObject seo = null)
        {
            if (seo == null)
            {
                seo = new settingsEntriesForObject(source);
            }

            DataRow dr = dt.NewRow();

            foreach (DataColumn col in dt.Columns)
            {
                if (columnsToSkip.Contains(col.ColumnName))
                {
                    continue;
                }
                object val = null; //  source.GetPropertyValue(col.ColumnName);
                throw new NotImplementedException();

                if (val is IFormattable)
                {
                    IFormattable valf = (IFormattable)val;
                    if (col.ExtendedProperties.ContainsKey(templateFieldDataTable.col_format))
                    {
                        string format = col.ExtendedProperties[templateFieldDataTable.col_format].toStringSafe();
                        if (col.AutoIncrement)
                        {
                        }
                        else
                        {
                            val = valf.ToString(format, null);
                        }
                    }
                }

                if (col.ExtendedProperties.ContainsKey(templateFieldDataTable.col_expression))
                {
                    col.Expression = col.ExtendedProperties[templateFieldDataTable.col_expression].toStringSafe();
                }

                dr[col] = val;
            }
            dt.Rows.Add(dr);
            return(dr);
        }
コード例 #13
0
 /// <summary>
 /// Defines the shema for statistics -- horisontal
 /// </summary>
 /// <param name="dc">The dc.</param>
 /// <param name="columns">The columns.</param>
 public static void DefineShemaForStatistics(this DataTable dc, PropertyEntryColumn columns = PropertyEntryColumn.entry_name | PropertyEntryColumn.entry_value | PropertyEntryColumn.role_letter | PropertyEntryColumn.entry_description)
 {
     if (columns.HasFlag(PropertyEntryColumn.entry_name))
     {
         dc.Columns.Add("dc_name").SetHeading("Measure");
     }
     if (columns.HasFlag(PropertyEntryColumn.role_letter))
     {
         dc.Columns.Add("dc_letter").SetHeading(" - ");
     }
     if (columns.HasFlag(PropertyEntryColumn.entry_value))
     {
         dc.Columns.Add("dc_value").SetHeading("Value");
     }
     if (columns.HasFlag(PropertyEntryColumn.entry_description))
     {
         dc.Columns.Add("dc_description").SetHeading("Description");
     }
 }
コード例 #14
0
        public static Boolean isKeyValueColumn(this PropertyEntryColumn key)
        {
            if (key is PropertyEntryColumn)
            {
                PropertyEntryColumn key_PropertyEntryColumn = (PropertyEntryColumn)key;

                switch (key_PropertyEntryColumn)
                {
                case PropertyEntryColumn.entry_key:
                case PropertyEntryColumn.entry_value:
                case PropertyEntryColumn.entry_valueAndUnit:
                    return(true);

                    break;
                }
            }

            return(false);
        }
コード例 #15
0
        public static Boolean isCoreColumn(this Object key)
        {
            if (key is PropertyEntryColumn)
            {
                PropertyEntryColumn key_PropertyEntryColumn = (PropertyEntryColumn)key;

                switch (key_PropertyEntryColumn)
                {
                case PropertyEntryColumn.entry_key:
                case PropertyEntryColumn.entry_description:
                case PropertyEntryColumn.entry_name:
                case PropertyEntryColumn.entry_unit:
                    return(true);

                    break;
                }
            }

            return(false);
        }
コード例 #16
0
        /// <summary>
        /// Adds the specified key.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="value">The value.</param>
        /// <param name="__name">The name.</param>
        /// <param name="__description">The description.</param>
        /// <param name="__unit">The unit.</param>
        /// <param name="__letter">The letter.</param>
        /// <param name="__symbol">The symbol.</param>
        /// <returns></returns>
        public PropertyEntry Add(object key, object value, String __name, String __description, String __unit = "", String __letter = "", String __symbol = "")
        {
            if (key == "")
            {
                // key = __name.getFilename();
            }
            if (ContainsKey(key))
            {
                this[key] = value;
            }
            else
            {
                base.Add(key, value);
            }
            PropertyEntry pe = new PropertyEntry(key, value, __name, __description);

            if (!__unit.isNullOrEmpty())
            {
                pe[PropertyEntryColumn.entry_unit] = __unit;
            }
            if (!__letter.isNullOrEmpty())
            {
                pe[PropertyEntryColumn.role_letter] = __letter;
            }
            if (!__symbol.isNullOrEmpty())
            {
                pe[PropertyEntryColumn.role_symbol] = __symbol;
            }

            foreach (PropertyEntryColumn pekey in pe.Keys)
            {
                if (!defaultTableColumn.HasFlag(pekey))
                {
                    _defaultTableColumn |= pekey;
                }
            }

            pe.priority = entries.Count();
            entries.Add(key, pe);
            return(pe);
        }
コード例 #17
0
        /// <summary>
        /// Builds the consolidated column dictionary scanning all <see cref="imbSCI.Core.collection.PropertyCollectionExtended"/> items.
        /// </summary>
        /// <remarks>
        /// <para>If <c>__allowedColumns</c> are not specified it will include any newly column found inside collection</para>
        /// </remarks>
        /// <param name="obligatoryColumns">The obligatory columns.</param>
        /// <param name="__allowedColumns">The allowed columns.</param>
        /// <returns>Set of columns ready to be used for DataTable creation and for similar tasks</returns>
        public static PropertyEntryDictionary buildColumnDictionary(this PropertyCollectionExtended source, PropertyEntryColumn obligatoryColumns, params object[] __allowedColumns)
        {
            List <PropertyEntryColumn> columnList = obligatoryColumns.getEnumListFromFlags <PropertyEntryColumn>();

            List <object> allowedColumns = __allowedColumns.getFlatList <object>();

            PropertyEntryDictionary output = new PropertyEntryDictionary();

            foreach (object key in source.Keys)
            {
                if (!output.ContainsKey(key))
                {
                    bool allowed = !allowedColumns.Any();
                    if (allowedColumns.Contains(key))
                    {
                        allowed = true;
                    }
                    if (allowed)
                    {
                        output.Add(key, source.entries[key]);
                    }
                }
            }

            foreach (PropertyEntryColumn c in columnList)
            {
                if (!output.ContainsKey(c))
                {
                    PropertyEntry pe = new PropertyEntry(c, "", c.toColumnCaption(false), c.getDescriptionForKey());
                    output.Add(c, pe);
                }
            }

            //pel.Sort((x, y) => x.priority.CompareTo(y.priority));

            return(output);
        }
コード例 #18
0
        /// <summary>
        /// Builds the data table hor dictionary.
        /// </summary>
        /// <typeparam name="TKey">The type of the key.</typeparam>
        /// <typeparam name="T"></typeparam>
        /// <param name="itemKeys">The item keys.</param>
        /// <param name="columns">The columns.</param>
        /// <returns></returns>
        public static DataTable BuildDataTableHorDictionary <TKey, T>(this IDictionary <TKey, T> itemKeys, string valuePath, string KeyCaption, PropertyEntryColumn extraColumn, string[] columns)
        {
            object source = null;
            TKey   firstKey;

            foreach (var pair in itemKeys)
            {
                firstKey = pair.Key;
                source   = pair.Value.imbGetPropertySafe(valuePath);
                break;
            }

            var       seo = new settingsEntriesForObject(source);
            DataTable dt  = new DataTable(typeof(T).Name);

            DataColumn dcKey = dt.Columns.Add(KEYCOLUMN);

            dcKey.Caption = KeyCaption;

            source.BuildDataShema(columns, extraColumn, seo, dt);

            List <Enum>[] output = convertPEColumn(extraColumn);

            if (extraColumn != PropertyEntryColumn.none)
            {
                foreach (PropertyEntryColumn extra in output[0])
                {
                    dt.AddExtraRow(extra);
                }
            }

            int c = 0;

            foreach (var pair in itemKeys)
            {
                object it  = pair.Value.imbGetPropertySafe(valuePath);
                string key = pair.Key.toStringSafe();

                DataRow dr = dt.SetDataRow(it, extraColumn, seo);
                dr[dcKey] = key;
                c++;
            }

            if (extraColumn != PropertyEntryColumn.none)
            {
                foreach (PropertyEntryColumn extra in output[1])
                {
                    dt.AddExtraRow(extra);
                }
            }

            //dt.TableName = title;
            //dt.ExtendedProperties[templateFieldDataTable.data_tabledesc] = description;
            //dt.ExtendedProperties[templateFieldDataTable.data_tablename] = title;
            dt.ExtendedProperties[templateFieldDataTable.data_tablescount] = c;

            return(dt);
        }
コード例 #19
0
        /// <summary>
        /// Builds the data table with columns specified - order of columns as specified
        /// </summary>
        /// <param name="columns">The columns.</param>
        /// <returns></returns>
        public DataTable getDataTable(params PropertyEntryColumn[] columns)
        {
            DataTable  output        = new DataTable();
            DataColumn dc_importance = null;

            output.TableName = name;

            //output.SetTitle(name);
            output.ExtendedProperties[templateFieldDataTable.description] = description;

            output.ExtendedProperties[templateFieldDataTable.data_rowcounttotal] = Count;

            // output.ExtendedProperties[templateFieldStyling.color_paletteRole] = palete;

            List <PropertyEntryColumn> columnList = columns.ToList();

            if ((!columnList.Any()) || columnList.Contains(PropertyEntryColumn.none))
            {
                columnList = defaultTableColumn.getEnumListFromFlags <PropertyEntryColumn>();
            }

            Int32 ci = 0;

            foreach (PropertyEntryColumn column in columnList)
            {
                if (column != PropertyEntryColumn.none)
                {
                    DataColumn dc = output.Columns.Add();
                    column.setDataColumn(dc);
                    if (column == PropertyEntryColumn.entry_importance)
                    {
                        dc_importance = dc;
                    }
                }
            }
            if (autoIncludeImportance)
            {
                if (dc_importance == null)
                {
                    DataColumn dc = output.Columns.Add();
                    PropertyEntryColumn.entry_importance.setDataColumn(dc);
                    dc.ExtendedProperties[templateFieldStyling.render_isHidden] = true;
                    dc_importance = dc;
                }
            }

            PropertyEntry entryMeta        = null;
            String        autocount_format = "D2";

            if (Count > 99)
            {
                autocount_format = "D3";
            }

            List <PropertyEntry> pel = entries.Values.ToList();

            pel.Sort((x, y) => x.priority.CompareTo(y.priority));
            Int32 c = 1;

            foreach (PropertyEntry entry in pel)
            {
                DataRow dr = output.NewRow();

                //entryMeta = entries[entry[PropertyEntryColumn.entry_key];

                foreach (DataColumn dc in output.Columns)
                {
                    PropertyEntryColumn column = (PropertyEntryColumn)dc.ExtendedProperties[templateFieldDataTable.col_name];
                    Object vl = "--";

                    switch (column)
                    {
                    case PropertyEntryColumn.autocount_idcolumn:
                        vl = c.ToString(autocount_format);
                        break;

                    default:
                        vl = entry.getColumn(column, this[entry[PropertyEntryColumn.entry_key]]);
                        break;
                    }

                    if (imbSciStringExtensions.isNullOrEmptyString(vl))
                    {
                        vl = "    ";
                    }

                    if (column == PropertyEntryColumn.autocount_idcolumn)
                    {
                        vl = c;
                    }

                    dr[dc] = vl;
                }
                output.Rows.Add(dr);
                c++;
            }

            return(output);
        }
コード例 #20
0
        /// <summary>
        /// Sets the data column according to PropertyEntryColumn
        /// </summary>
        /// <param name="column">The column.</param>
        /// <param name="tableColumn">The table column.</param>
        /// <exception cref="System.ArgumentOutOfRangeException"></exception>
        public static void setDataColumn(this PropertyEntryColumn column, DataColumn tableColumn)
        {
            tableColumn.Caption = column.toColumnCaption(false);
            //tableColumn.SetHeading(column.toColumnCaption(false));
            tableColumn.ColumnName = "_" + column.ToString();

            tableColumn.ExtendedProperties[templateFieldStyling.text_horizontalAligment] = printHorizontal.left;

            tableColumn.ExtendedProperties[templateFieldStyling.render_isHidden] = false;

            tableColumn.ExtendedProperties[templateFieldDataTable.col_name] = column;

            //tableColumn.ExtendedProperties[templateFieldStyling.color_variationRole] = acePaletteVariationRole.none;
            tableColumn.ExtendedProperties[templateFieldStyling.color_variationAdjustment] = 0;

            String desc = column.getDescriptionForKey();

            switch (column)
            {
            case PropertyEntryColumn.entry_key:
                tableColumn.DataType = typeof(String);

                break;

            case PropertyEntryColumn.entry_name:
                tableColumn.DataType = typeof(String);
                tableColumn.ExtendedProperties[templateFieldStyling.color_variationAdjustment] = 1;
                //desc = "Human-readable name of the property";
                break;

            case PropertyEntryColumn.property_description:
            case PropertyEntryColumn.entry_description:
                tableColumn.DataType = typeof(String);
                //desc = "About / info on the property";
                break;

            case PropertyEntryColumn.entry_value:
                tableColumn.DataType = typeof(String);
                tableColumn.ExtendedProperties[templateFieldStyling.color_variationAdjustment] = 2;
                tableColumn.ExtendedProperties[templateFieldStyling.text_horizontalAligment]   = printHorizontal.right;
                // desc = "Formated value";
                break;

            case PropertyEntryColumn.entry_valueAndUnit:
                tableColumn.DataType = typeof(String);

                tableColumn.ExtendedProperties[templateFieldStyling.text_horizontalAligment]   = printHorizontal.right;
                tableColumn.ExtendedProperties[templateFieldStyling.color_variationAdjustment] = 2;
                // desc = "Formated value with unit sufix";
                break;

            case PropertyEntryColumn.role_letter:
                tableColumn.DataType = typeof(String);
                // desc = "Letter asociated with the role of the property";
                break;

            case PropertyEntryColumn.role_symbol:
                tableColumn.DataType = typeof(String);
                // desc = "Symbol associated with the role of the property";
                break;

            case PropertyEntryColumn.role_name:
                tableColumn.DataType = typeof(String);
                // desc = "Descriptive name of the property role";
                break;

            case PropertyEntryColumn.entry_unit:
                tableColumn.DataType = typeof(String);
                tableColumn.ExtendedProperties[templateFieldStyling.color_variationAdjustment] = 1;
                // desc = "The unit short name - abbr./sufix";
                break;

            case PropertyEntryColumn.entry_unitname:
                tableColumn.DataType = typeof(String);
                // desc = "Name of the property unit";
                break;

            case PropertyEntryColumn.entry_importance:
                // desc = "Remarks on property relevance and/or on alarming value";
                tableColumn.DataType = typeof(String);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            tableColumn.ExtendedProperties[templateFieldDataTable.col_desc] = desc;
            // return column.ToString();
        }
コード例 #21
0
        public static String getDescriptionForKey(this PropertyEntryColumn column)
        {
            String desc = "";

            switch (column)
            {
            case PropertyEntryColumn.entry_key:
                desc = "Internaly used property name - in source code, object model, database, xml, rdf ... ";
                break;

            case PropertyEntryColumn.entry_name:

                desc = "Human-readable name of the property";
                break;

            case PropertyEntryColumn.entry_description:

                desc = "About / info on the property";
                break;

            case PropertyEntryColumn.entry_value:

                desc = "Formated value";
                break;

            case PropertyEntryColumn.entry_valueAndUnit:

                desc = "Formated value with unit sufix";
                break;

            case PropertyEntryColumn.role_letter:

                desc = "Letter asociated with the role of the property";
                break;

            case PropertyEntryColumn.role_symbol:

                desc = "Symbol associated with the role of the property";
                break;

            case PropertyEntryColumn.role_name:

                desc = "Descriptive name of the property role";
                break;

            case PropertyEntryColumn.entry_unit:

                desc = "The unit short name - abbr./sufix";
                break;

            case PropertyEntryColumn.entry_unitname:

                desc = "Name of the property unit";
                break;

            case PropertyEntryColumn.entry_importance:
                desc = "Remarks on property relevance and/or on alarming value";

                break;

            default:
                return(desc.ToString());

                //imbTypology
                //desc =
                break;
            }
            return(desc);
        }
コード例 #22
0
 /// <summary>
 /// Adds row with extra information
 /// </summary>
 /// <param name="dt">The dt.</param>
 /// <param name="columnInfo">The column information.</param>
 /// <param name="widthLimit">The width limit.</param>
 /// <returns></returns>
 public static DataRow AddExtraRow(this DataTable dt, PropertyEntryColumn extra, int widthLimit = 25) => AddExtraRow(dt, (Enum)extra, widthLimit);
コード例 #23
0
 /// <summary>
 /// Adds row with extra information
 /// </summary>
 /// <param name="dt">The dt.</param>
 /// <param name="columnInfo">The column information.</param>
 /// <param name="widthLimit">The width limit.</param>
 /// <returns></returns>
 public static DataRow AddExtraRowInfo(this DataTable dt, PropertyEntryColumn columnInfo, int widthLimit = 25)
 {
     return(dt.AddExtraRow(columnInfo, widthLimit));
 }
コード例 #24
0
        /// <summary>
        /// To the column caption.
        /// </summary>
        /// <param name="column">The column.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentOutOfRangeException"></exception>
        public static String toColumnCaption(this PropertyEntryColumn column, Boolean showException = true)
        {
            switch (column)
            {
            case PropertyEntryColumn.entry_key:
                return("Key");

                break;

            case PropertyEntryColumn.entry_name:
                return("Name");

                break;

            case PropertyEntryColumn.entry_description:
                return("Description");

                break;

            case PropertyEntryColumn.entry_value:
                return("Value");

                break;

            case PropertyEntryColumn.entry_valueAndUnit:
                return("Value");

                break;

            case PropertyEntryColumn.role_letter:
                return("Letter");

                break;

            case PropertyEntryColumn.role_symbol:
                return("Symbol");

                break;

            case PropertyEntryColumn.role_name:
                return("Role");

                break;

            case PropertyEntryColumn.entry_unit:
                return("Unit");

                break;

            case PropertyEntryColumn.entry_unitname:
                return("Unit");

                break;

            case PropertyEntryColumn.entry_importance:
                return("Relevance");

                break;

            case PropertyEntryColumn.none:
                return(" -- ");

                break;

            default:
                if (showException)
                {
                    throw new ArgumentOutOfRangeException(nameof(column), "toColumnCaption failed to find string for [" + column.ToString() + "] in PropertyEntryColumnExtensions - toColumnCaption()");
                }
                return(column.ToString());

                break;
            }
            return(column.ToString());
        }
コード例 #25
0
        protected virtual DataColumn addStandardColumnShema(DataTable shema, dataUnitPresenter presenter, PropertyEntryColumn pec)
        {
            string name = pec.toColumnCaption(false);
            string desc = pec.getDescriptionForKey();

            DataColumn dc = shema.Columns.Add(pec.toStringSafe());

            dc.ColumnName = pec.toStringSafe();
            dc.Caption    = name;
            dc.DataType   = pec.toColumnType();

            dc.ExtendedProperties[templateFieldDataTable.col_caption]  = name;
            dc.ExtendedProperties[templateFieldDataTable.col_desc]     = desc;
            dc.ExtendedProperties[templateFieldDataTable.col_format]   = "";
            dc.ExtendedProperties[templateFieldDataTable.col_group]    = "";
            dc.ExtendedProperties[templateFieldDataTable.col_priority] = pec.toColumnPriority();
            dc.ExtendedProperties[templateFieldDataTable.col_type]     = typeof(string);

            return(dc);
        }
コード例 #26
0
 public PropertyEntry Set(PropertyEntryColumn column, Object value)
 {
     //this[templateFieldDataTable.col_type] = value;
     add(column, value, false);
     return(this);
 }
コード例 #27
0
        /// <summary>
        /// Builds the data table using reflection and selected columns. Supports formating instruction, expression and other advanced atributes
        /// </summary>
        /// <param name="items">The items.</param>
        /// <param name="title">The title.</param>
        /// <param name="description">The description.</param>
        /// <param name="columns">The columns.</param>
        /// <returns></returns>
        public static DataTable BuildDataTableHorizontal(this IEnumerable items, string title, string description, PropertyEntryColumn extraColumn, string[] columns)
        {
            object source = null;

            foreach (object it in items)
            {
                source = it;
                break;
            }
            if (source == null)
            {
                return(null);
            }

            var       seo = new settingsEntriesForObject(source);
            DataTable dt  = source.BuildDataShema(columns, extraColumn, seo);

            List <Enum>[] output = convertPEColumn(extraColumn);

            if (extraColumn != PropertyEntryColumn.none)
            {
                foreach (PropertyEntryColumn extra in output[0])
                {
                    dt.AddExtraRow(extra);
                }
            }

            int c = 0;

            foreach (object it in items)
            {
                dt.SetDataRow(it, extraColumn, seo);
                c++;
            }

            if (extraColumn != PropertyEntryColumn.none)
            {
                foreach (PropertyEntryColumn extra in output[1])
                {
                    dt.AddExtraRow(extra);
                }
            }

            dt.TableName = title;
            dt.ExtendedProperties[templateFieldDataTable.data_tabledesc]   = description;
            dt.ExtendedProperties[templateFieldDataTable.data_tablename]   = title;
            dt.ExtendedProperties[templateFieldDataTable.data_tablescount] = c;

            return(dt);
        }