示例#1
0
        public static List <ISettingsInstance> generateListForSelection(SettingsProperties props)
        {
            if (props.visualization.displaySelection)
            {
                List <SettingsInstance> lst;
                if (settingsInstances.TryGetValue(props.id, out lst))
                {
                    ISettingsVisualizationSelection visualProps = ((ISettingsVisualizationSelection)props.visualization);
                    List <object> allBaseObjects = visualProps.getBaseObjectsForSelection();
                    foreach (object baseObject in allBaseObjects.Where(o => lst.Find(si => si.getKey().Equals(visualProps.getKeyFromBaseObject(o))) == null))
                    {
                        string key;
                        try {
                            key = visualProps.getKeyFromBaseObject(baseObject);
                        } catch {
                            Log.Warning("Failed to load key from database object \"" + baseObject + "\".");
                            continue;
                        }
                        if (!lst.Any(si => si.getKey().Equals(key)))
                        {
                            try {
                                lst.Add(new SettingsInstance(props.id, baseObject));
                            } catch {
                                Log.Warning("Failed to load database object for key \"" + key + "\" into setting \"" + props.id + "\".");
                            }
                        }
                    }
                    //lst.AddRange(allBaseObjects.Where(o=>lst.Find(si=>si.getKey().Equals(visualProps.getKeyFromBaseObject(o)))==null).Select(o=>new SettingsInstance(props.id,o)));

                    lst = lst.OrderByDescending(si => si.getActive()).ThenBy(si => si.getLabel()).ToList();
                    return(lst.Cast <ISettingsInstance>().ToList());
                }
            }
            return(null);
        }
示例#2
0
        public SettingsInstance(string id, object obj) : this(id, obj, null, null)
        {
            SettingsProperties properties             = SettingsStorage.getSettingsProperties(getId());
            ISettingsVisualizationSelection selection = properties.visualization as ISettingsVisualizationSelection;

            if (selection != null)
            {
                this.baseObjectKey = selection.getKeyFromBaseObject(obj);
                this.label         = selection.getLabelFromBaseObject(obj);
            }
            else
            {
                this.baseObjectKey = "singleton";
                this.label         = "singleton";
            }
        }