コード例 #1
0
ファイル: ViewsInitializer.cs プロジェクト: mo5h/omeo
        private static void RegisterRulesActions()
        {
            IResource           res;
            IFilterRegistry     fmgr = Core.FilterRegistry;
            IStandardConditions std  = fmgr.Std;

            //  Register them here since they require live object as parameter
            fmgr.RegisterRuleAction(std.MarkResourceAsImportantActionName, std.MarkResourceAsImportantActionNameDeep, new ImportantRuleAction());
            fmgr.RegisterRuleAction(std.DeleteResourceActionName, std.DeleteResourceActionNameDeep, new DeleteResourceAction());
            fmgr.RegisterRuleAction(std.DeleteResourcePermActionName, std.DeleteResourcePermActionNameDeep, new DeleteResourcePermanentlyAction());
            fmgr.RegisterRuleAction(std.MarkResourceAsReadActionName, std.MarkResourceAsReadActionNameDeep, new MarkMessageAsReadAction());
            fmgr.RegisterRuleAction(std.MarkResourceAsUnreadActionName, std.MarkResourceAsUnreadActionNameDeep, new MarkMessageAsUnreadAction());
            fmgr.RegisterRuleAction(std.ShowDesktopAlertActionName, std.ShowDesktopAlertActionNameDeep, new BalloonNotificationAction());
            fmgr.RegisterRuleAction(std.ShowAsPlainTextActionName, std.ShowAsPlainTextActionNameDeep, new ShowAsPlainTextAction());

            fmgr.RegisterRuleActionTemplate(std.AssignCategoryActionName, std.AssignCategoryActionNameDeep,
                                            new AssignCategoryAction(), ConditionOp.In, "Category");
            fmgr.RegisterRuleActionTemplate(std.AssignCategoryToAuthorActionName, std.AssignCategoryToAuthorActionNameDeep,
                                            new AssignCategoryToMessageAuthorAction(), ConditionOp.In, "Category");
            fmgr.RegisterRuleActionTemplate(std.PlaySoundFromFileActionName, std.PlaySoundFromFileActionNameDeep,
                                            new PlaySoundAction(), ConditionOp.In, "ExternalFile", "Sound files (*.wav)|*.wav|All files(*.*)|*.*");
            fmgr.RegisterRuleActionTemplate(std.DisplayMessageBoxActionName, std.DisplayMessageBoxActionNameDeep,
                                            new MessageBoxNotificationAction(), ConditionOp.Eq);
            fmgr.RegisterRuleActionTemplate(std.RunApplicationActionName, std.RunApplicationActionNameDeep,
                                            new RunApplicationAction(), ConditionOp.In, "ExternalFile", "Execution files (*.exe)|*.exe|All files(*.*)|*.*");

            res = fmgr.RegisterRuleActionTemplate(std.MarkMessageWithFlagActionName, std.MarkMessageWithFlagActionNameDeep,
                                                  new MarkMessageWithFlagAction(), ConditionOp.In, "Flag");
            fmgr.MarkActionTemplateAsSingleSelection(res);

            Core.ActionManager.RegisterLinkClickAction(new EditRuleAction(), FilterManagerProps.RuleResName, null);
        }
コード例 #2
0
        public void  RegisterViewsFirstRun()
        {
            IFilterRegistry     fMgr = Core.FilterRegistry;
            IStandardConditions std  = fMgr.Std;

            string replyName = Core.ResourceStore.PropTypes[Core.Props.Reply].Name;

            //  We check for a link of reversed direction
            Core.FilterRegistry.CreateStandardCondition(std.MessageHasReplyName, std.MessageHasReplyDeep,
                                                        null, "-" + replyName, ConditionOp.HasLink);

            replyName = Core.ResourceStore.PropTypes[Core.Props.Reply].Name;
            Core.FilterRegistry.CreateStandardCondition(std.MessageIsAReplyName, std.MessageIsAReplyDeep,
                                                        null, replyName, ConditionOp.HasLink);
        }
コード例 #3
0
        private void  AscribeDeepNames()
        {
            IStandardConditions std = Core.FilterRegistry.Std;

            AscribeDeepName(FilterManagerProps.ConditionResName, std.ResourceIsUnreadName, std.ResourceIsUnreadNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionResName, std.ResourceIsFlaggedName, std.ResourceIsFlaggedNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionResName, std.ResourceIsAnnotatedName, std.ResourceIsAnnotatedNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionResName, std.ResourceIsCategorizedName, std.ResourceIsCategorizedNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionResName, std.ResourceIsAClippingName, std.ResourceIsAClippingNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionResName, std.ResourceIsDeletedName, std.ResourceIsDeletedNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionResName, FilterManagerStandards.DummyConditionName, FilterManagerStandards.DummyConditionName);

            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.ResourceIsFlaggedWithFlagXName, std.ResourceIsFlaggedWithFlagXNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.SizeIsInTheIntervalXName, std.SizeIsInTheIntervalXNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.ResourceBelongsToWorkspaceXName, std.ResourceBelongsToWorkspaceXNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.FromContactXName, std.FromContactXNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.ToContactXName, std.ToContactXNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.CCContactXName, std.CCContactXNameDeep);

            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.BodyMatchesSearchQueryXName, std.BodyMatchesSearchQueryXNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.SubjectMatchSearchQueryXName, std.SubjectMatchSearchQueryXNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.SourceMatchSearchQueryXName, std.SourceMatchSearchQueryXNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.SubjectIsTextXName, std.SubjectIsTextXNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.SubjectContainsTextXName, std.SubjectContainsTextXNameDeep);

            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.InTheCategoryXName, std.InTheCategoryXNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.SenderIsInTheCategoryXName, std.SenderIsInTheCategoryXNameDeep);
            AscribeDeepName(FilterManagerProps.ConditionTemplateResName, std.ReceivedInTheTimeSpanXName, std.ReceivedInTheTimeSpanXNameDeep);

            AscribeDeepName(FilterManagerProps.RuleActionResName, std.DeleteResourceActionName, std.DeleteResourceActionNameDeep);
            AscribeDeepName(FilterManagerProps.RuleActionResName, std.DeleteResourcePermActionName, std.DeleteResourcePermActionNameDeep);
            AscribeDeepName(FilterManagerProps.RuleActionResName, std.MarkResourceAsReadActionName, std.MarkResourceAsReadActionNameDeep);
            AscribeDeepName(FilterManagerProps.RuleActionResName, std.MarkResourceAsUnreadActionName, std.MarkResourceAsUnreadActionNameDeep);
            AscribeDeepName(FilterManagerProps.RuleActionResName, std.MarkResourceAsImportantActionName, std.MarkResourceAsImportantActionNameDeep);
            AscribeDeepName(FilterManagerProps.RuleActionResName, std.ShowDesktopAlertActionName, std.ShowDesktopAlertActionNameDeep);
            AscribeDeepName(FilterManagerProps.RuleActionResName, std.ShowAsPlainTextActionName, std.ShowAsPlainTextActionNameDeep);

            AscribeDeepName(FilterManagerProps.RuleActionTemplateResName, std.AssignCategoryActionName, std.AssignCategoryActionNameDeep);
            AscribeDeepName(FilterManagerProps.RuleActionTemplateResName, std.AssignCategoryToAuthorActionName, std.AssignCategoryToAuthorActionNameDeep);
            AscribeDeepName(FilterManagerProps.RuleActionTemplateResName, std.PlaySoundFromFileActionName, std.PlaySoundFromFileActionNameDeep);
            AscribeDeepName(FilterManagerProps.RuleActionTemplateResName, std.DisplayMessageBoxActionName, std.DisplayMessageBoxActionNameDeep);
            AscribeDeepName(FilterManagerProps.RuleActionTemplateResName, std.RunApplicationActionName, std.RunApplicationActionNameDeep);
            AscribeDeepName(FilterManagerProps.RuleActionTemplateResName, std.MarkMessageWithFlagActionName, std.MarkMessageWithFlagActionNameDeep);
        }
コード例 #4
0
ファイル: ViewsInitializer.cs プロジェクト: mo5h/omeo
        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);
        }