Class LiteralsOnlyBase
Base class for making So List providers that represent one single, hard-coded list, i.e., a list where
all the items are hard coded and known at compile or run time. Generally, items do not come from the database,
though that would always be possible. See the AddItems() method for an example subclass implementation.
Inheritance
LiteralsOnlyBase
Assembly: SoDataBase.dll
Syntax
public abstract class LiteralsOnlyBase : ISoListProvider, ISoList, IPlugin
Constructors
LiteralsOnlyBase()
Declaration
protected LiteralsOnlyBase()
Properties
Declaration
protected string ExtraInfo { get; }
Property Value
HeadingItems
Declaration
public List<ISoListHeading> HeadingItems { get; }
Property Value
HistoryInfo
Declaration
public HistoryInfo HistoryInfo { get; }
Property Value
HistoryItems
Declaration
public List<ISoListItem> HistoryItems { get; }
Property Value
ListName
Declaration
protected string ListName { get; }
Property Value
RawHeadingItems
Declaration
protected List<ISoListHeading> RawHeadingItems { get; }
Property Value
RawHistoryItems
Declaration
protected List<ISoListItem> RawHistoryItems { get; }
Property Value
RawRootItems
Declaration
protected List<ISoListItem> RawRootItems { get; }
Property Value
RootItems
Declaration
public List<ISoListItem> RootItems { get; }
Property Value
SearchValue
Declaration
protected string SearchValue { get; set; }
Property Value
Methods
AddItems()
Subclass contract: use the RawRootItems and RawHeadingItems properties to add items to
your literals-only list. The base class will then perform any search or flattening required.
Declaration
protected abstract void AddItems()
Examples
This example shows a typical implementation of a literal list, in this case the date interval list from the Filter dialog:
[MDOProviderPlugin( "FilterFutureDate" )]
public class FilterFutureDateList : LiteralsOnlyBase
{
protected override void AddItems()
{
RawRootItems.Add( new SoListItem( 1, "[SR_DATE_RANGE_3MONTHS]", string.Empty, string.Empty ) );
RawRootItems.Add( new SoListItem( 2, "[SR_DATE_RANGE_4MONTHS]", string.Empty, string.Empty ) );
RawRootItems.Add( new SoListItem( 3, "[SR_DATE_RANGE_6MONTHS]", string.Empty, string.Empty ) );
RawRootItems.Add( new SoListItem( 4, "[SR_DATE_RANGE_1YEAR]", string.Empty, string.Empty ) );
RawRootItems.Add( new SoListItem( 5, "[SR_DATE_RANGE_2YEAR]", string.Empty, string.Empty ) );
}
}
Note that using a search in this case yields unexpected results. The search is performed on the raw items, which
contains resource tags - and that is not what you actually want to search against. So resources + search do not
go together.
Construct(String, String, Int32[], Boolean, String, Boolean)
Declaration
public virtual void Construct(string listName, string additionalInfo, int[] historyIDs, bool onlyReadHistory, string searchValue, bool forceFlatList)
Parameters
Implements
Extension Methods
EnumUtil.MapEnums<From, To>(From)