private static void RegisterViews() { IFilterRegistry fMgr = Core.FilterRegistry; if (Core.ResourceStore.FindResources(FilterManagerProps.ViewResName, "DeepName", "Deleted Resources").Count == 0) { Trace.WriteLine("ViewsInitializer -- DeletedResources view is not found"); IResource res = fMgr.RegisterView("Deleted Resources", new [] { fMgr.Std.ResourceIsDeleted }, null); fMgr.AssociateViewWithFolder(res, null, 3); fMgr.SetVisibleInAllTabs(res); res.SetProp(Core.Props.ShowDeletedItems, true); res.SetProp("IsLiveMode", true); } }
public void RegisterViewsFirstRun() { //----------------------------------------------------------------- IFilterRegistry fMgr = Core.FilterRegistry; IStandardConditions std = fMgr.Std; //----------------------------------------------------------------- // Standard atomic conditions //----------------------------------------------------------------- IResource unr = fMgr.CreateStandardCondition(std.ResourceIsUnreadName, std.ResourceIsUnreadNameDeep, null, "IsUnread", ConditionOp.In, "true"); IResource fla = fMgr.CreateStandardCondition(std.ResourceIsFlaggedName, std.ResourceIsFlaggedNameDeep, null, "Flag", ConditionOp.HasLink); IResource ann = fMgr.CreateStandardCondition(std.ResourceIsAnnotatedName, std.ResourceIsAnnotatedNameDeep, null, "Annotation", ConditionOp.HasProp); IResource cli = fMgr.CreateStandardCondition(std.ResourceIsAClippingName, std.ResourceIsAClippingNameDeep, null, "IsClippingFakeProp", ConditionOp.HasProp); IResource del = fMgr.CreateStandardCondition(std.ResourceIsDeletedName, std.ResourceIsDeletedNameDeep, null, "IsDeleted", ConditionOp.HasProp); IResource foo = fMgr.CreateStandardCondition(FilterManagerStandards.DummyConditionName, FilterManagerStandards.DummyConditionName, null, "Id", ConditionOp.Gt, "0"); foo.SetProp("Invisible", true); //----------------------------------------------------------------- // Standard condition templates //----------------------------------------------------------------- fMgr.CreateConditionTemplate(std.ResourceIsFlaggedWithFlagXName, std.ResourceIsFlaggedWithFlagXNameDeep, null, ConditionOp.In, "Flag", "Flag"); fMgr.CreateConditionTemplate(std.SizeIsInTheIntervalXName, std.SizeIsInTheIntervalXNameDeep, null, ConditionOp.InRange, "Size", "0", Int32.MaxValue.ToString()); fMgr.CreateConditionTemplate(std.ResourceBelongsToWorkspaceXName, std.ResourceBelongsToWorkspaceXNameDeep, null, ConditionOp.In, "Workspace", "WorkspaceVisible"); IResource res; res = fMgr.CreateConditionTemplate(std.BodyMatchesSearchQueryXName, std.BodyMatchesSearchQueryXNameDeep, null, ConditionOp.QueryMatch); fMgr.AssociateConditionWithGroup(res, "Text Query Conditions"); res = fMgr.CreateConditionTemplate(std.SubjectMatchSearchQueryXName, std.SubjectMatchSearchQueryXNameDeep, null, ConditionOp.QueryMatch, DocumentSection.SubjectSection); fMgr.AssociateConditionWithGroup(res, "Text Query Conditions"); res = fMgr.CreateConditionTemplate(std.SourceMatchSearchQueryXName, std.SourceMatchSearchQueryXNameDeep, null, ConditionOp.QueryMatch, DocumentSection.SourceSection); fMgr.AssociateConditionWithGroup(res, "Text Query Conditions"); res = fMgr.CreateConditionTemplate(std.SubjectIsTextXName, std.SubjectIsTextXNameDeep, null, ConditionOp.Eq, "Subject"); fMgr.AssociateConditionWithGroup(res, "Text Query Conditions"); res = fMgr.CreateConditionTemplate(std.SubjectContainsTextXName, std.SubjectContainsTextXNameDeep, null, ConditionOp.Has, "Subject"); fMgr.AssociateConditionWithGroup(res, "Text Query Conditions"); res = fMgr.CreateConditionTemplate(std.FromContactXName, std.FromContactXNameDeep, null, ConditionOp.In, "Contact", "From"); fMgr.AssociateConditionWithGroup(res, "Address and Contact Conditions"); res = fMgr.CreateConditionTemplate(std.ToContactXName, std.ToContactXNameDeep, null, ConditionOp.In, "Contact", "To"); fMgr.AssociateConditionWithGroup(res, "Address and Contact Conditions"); res = fMgr.CreateConditionTemplate(std.CCContactXName, std.CCContactXNameDeep, null, ConditionOp.In, "Contact", "CC"); fMgr.AssociateConditionWithGroup(res, "Address and Contact Conditions"); res = fMgr.CreateConditionTemplate(std.InTheCategoryXName, std.InTheCategoryXNameDeep, null, ConditionOp.In, "Category", "Category"); fMgr.AssociateConditionWithGroup(res, "Category Conditions"); res = fMgr.CreateConditionTemplate(std.SenderIsInTheCategoryXName, std.SenderIsInTheCategoryXNameDeep, null, ConditionOp.In, "Category", "From>Category"); fMgr.AssociateConditionWithGroup(res, "Category Conditions"); res = fMgr.CreateStandardCondition(std.ReceivedAheadOfTodayName, std.ReceivedAheadOfTodayNameDeep, null, "Date", ConditionOp.Gt, "Tomorrow"); fMgr.AssociateConditionWithGroup(res, "Temporal Conditions"); res = fMgr.CreateConditionTemplate(std.DeletedInTheTimeSpanXName, std.DeletedInTheTimeSpanXNameDeep, null, ConditionOp.Eq, "DelDate"); fMgr.AssociateConditionWithGroup(res, "Temporal Conditions"); IResource dateRes = fMgr.CreateConditionTemplate(std.ReceivedInTheTimeSpanXName, std.ReceivedInTheTimeSpanXNameDeep, null, ConditionOp.Eq, "Date"); fMgr.AssociateConditionWithGroup(dateRes, "Temporal Conditions"); //----------------------------------------------------------------- // Standard conditions derived from standard templates //----------------------------------------------------------------- IResource todayCond = FilterConvertors.InstantiateTemplate(dateRes, "Today", null); IResource yesterdayCond = FilterConvertors.InstantiateTemplate(dateRes, "Yesterday", null); IResource thisWeekCond = FilterConvertors.InstantiateTemplate(dateRes, "This Week", null); IResource lastWeekCond = FilterConvertors.InstantiateTemplate(dateRes, "Last Week", null); IResource thisMonthCond = FilterConvertors.InstantiateTemplate(dateRes, "This Month", null); IResource lastMonthCond = FilterConvertors.InstantiateTemplate(dateRes, "Last Month", null); //----------------------------------------------------------------- // Standard views //----------------------------------------------------------------- IResource unreadRes = fMgr.RegisterView("Unread", new [] { unr }, null); IResource flaggedRes = fMgr.RegisterView("Flagged", new [] { fla }, null); IResource annotatedRes = fMgr.RegisterView("Annotated", new [] { ann }, null); IResource clippings = fMgr.RegisterView("Clippings", new [] { cli }, null); IResource deletedRes = fMgr.RegisterView("Deleted Resources", new [] { del }, null); deletedRes.SetProp(Core.Props.ShowDeletedItems, true); deletedRes.SetProp("IsLiveMode", true); IResource today = fMgr.RegisterView("Today", new [] { todayCond }, null); IResource yesterday = fMgr.RegisterView("Yesterday", new [] { yesterdayCond }, null); IResource thisWeek = fMgr.RegisterView("This week", new [] { thisWeekCond }, null); IResource lastWeek = fMgr.RegisterView("Last week", new [] { lastWeekCond }, null); IResource thisMonth = fMgr.RegisterView("This month", new [] { thisMonthCond }, null); IResource lastMonth = fMgr.RegisterView("Last month", new [] { lastMonthCond }, null); fMgr.SetVisibleInAllTabs(flaggedRes); fMgr.SetVisibleInAllTabs(annotatedRes); fMgr.SetVisibleInAllTabs(clippings); fMgr.SetVisibleInAllTabs(deletedRes); //----------------------------------------------------------------- Core.FilterRegistry.CreateViewFolder("Recent", null, 0); fMgr.AssociateViewWithFolder(unreadRes, null, 1); fMgr.AssociateViewWithFolder(deletedRes, null, 3); fMgr.AssociateViewWithFolder(flaggedRes, null, 4); fMgr.AssociateViewWithFolder(annotatedRes, null, 5); fMgr.AssociateViewWithFolder(clippings, null, 7); fMgr.AssociateViewWithFolder(today, "Recent", 0); fMgr.AssociateViewWithFolder(yesterday, "Recent", 1); fMgr.AssociateViewWithFolder(thisWeek, "Recent", 2); fMgr.AssociateViewWithFolder(lastWeek, "Recent", 3); fMgr.AssociateViewWithFolder(thisMonth, "Recent", 4); fMgr.AssociateViewWithFolder(lastMonth, "Recent", 5); //----------------------------------------------------------------- // By default make all these views "threaded" due to the new // possibilities to show attachments //----------------------------------------------------------------- today.SetProp(Core.Props.DisplayThreaded, true); yesterday.SetProp(Core.Props.DisplayThreaded, true); thisWeek.SetProp(Core.Props.DisplayThreaded, true); lastWeek.SetProp(Core.Props.DisplayThreaded, true); thisMonth.SetProp(Core.Props.DisplayThreaded, true); lastMonth.SetProp(Core.Props.DisplayThreaded, true); }