예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }