2709 ]. |
2721 ]. |
2710 ! ! |
2722 ! ! |
2711 |
2723 |
2712 !VersionDiffBrowser methodsFor:'menu action - filters'! |
2724 !VersionDiffBrowser methodsFor:'menu action - filters'! |
2713 |
2725 |
2714 filterClassInA |
2726 currentFilterParameters |
2715 "filter all changes for the selected change's class (don't show it)." |
2727 "get the current settings" |
2716 |
|
2717 filteredClasses isNil ifTrue:[ |
|
2718 filteredClasses := Set new. |
|
2719 ]. |
|
2720 filteredClasses add:(self selectedChangeInA nonMetaClassName). |
|
2721 self filterChanged. |
|
2722 |
|
2723 "Created: / 05-02-2017 / 10:17:22 / cg" |
|
2724 "Modified: / 05-02-2017 / 11:19:05 / cg" |
|
2725 "Modified (comment): / 06-02-2017 / 09:13:23 / cg" |
|
2726 ! |
|
2727 |
|
2728 filterClassInB |
|
2729 "filter all changes for the selected change's class (don't show it)." |
|
2730 |
|
2731 filteredClasses isNil ifTrue:[ |
|
2732 filteredClasses := Set new. |
|
2733 ]. |
|
2734 filteredClasses add:(self selectedChangeInB nonMetaClassName). |
|
2735 self filterChanged. |
|
2736 |
|
2737 "Created: / 05-02-2017 / 10:16:45 / cg" |
|
2738 "Modified: / 05-02-2017 / 11:19:02 / cg" |
|
2739 "Modified (comment): / 06-02-2017 / 09:13:29 / cg" |
|
2740 ! |
|
2741 |
|
2742 filterClassInM |
|
2743 "filter all changes for the selected change's class (don't show it)." |
|
2744 |
|
2745 filteredClasses isNil ifTrue:[ |
|
2746 filteredClasses := Set new. |
|
2747 ]. |
|
2748 filteredClasses add:(self selectedChangesInM first nonMetaClassName). |
|
2749 self filterChanged. |
|
2750 |
|
2751 "Created: / 05-02-2017 / 10:38:06 / cg" |
|
2752 "Modified (comment): / 06-02-2017 / 09:13:33 / cg" |
|
2753 ! |
|
2754 |
|
2755 filterClassesMatching |
|
2756 "ask for a GLOB pattern; |
|
2757 filter all changes with matching classnames ." |
|
2758 |
|
2759 |pattern| |
|
2760 |
|
2761 pattern := Dialog request:'Matchpattern for Classname Filter (will hide changes with matching classes):'. |
|
2762 pattern isEmptyOrNil ifTrue:[^ self]. |
|
2763 |
|
2764 classPatternFilters isNil ifTrue:[ |
|
2765 classPatternFilters := OrderedCollection new. |
|
2766 ]. |
|
2767 classPatternFilters add:pattern. |
|
2768 self filterChanged |
|
2769 |
|
2770 "Created: / 05-02-2017 / 11:11:42 / cg" |
|
2771 "Modified: / 06-02-2017 / 09:18:15 / cg" |
|
2772 ! |
|
2773 |
|
2774 filterMethod:aChange |
|
2775 "filter this change (don't show it)." |
|
2776 |
|
2777 filteredMethods isNil ifTrue:[ |
|
2778 filteredMethods := Set new. |
|
2779 ]. |
|
2780 aChange isMethodChange ifTrue:[ |
|
2781 filteredMethods add:(aChange className -> aChange changeSelector). |
|
2782 ] ifFalse:[ |
|
2783 ]. |
|
2784 |
|
2785 self filterChanged. |
|
2786 |
|
2787 "Created: / 06-02-2017 / 08:58:17 / cg" |
|
2788 ! |
|
2789 |
|
2790 filterMethodInA |
|
2791 "filter this entry (don't show it)." |
|
2792 |
|
2793 self filterMethod:(self selectedChangeInA) |
|
2794 |
|
2795 "Created: / 05-02-2017 / 10:11:48 / cg" |
|
2796 "Modified: / 06-02-2017 / 08:58:38 / cg" |
|
2797 ! |
|
2798 |
|
2799 filterMethodInB |
|
2800 "filter this entry (don't show it)." |
|
2801 |
|
2802 self filterMethod:(self selectedChangeInB) |
|
2803 |
|
2804 "Created: / 05-02-2017 / 10:15:57 / cg" |
|
2805 "Modified: / 06-02-2017 / 08:58:46 / cg" |
|
2806 ! |
|
2807 |
|
2808 filterMethodInM |
|
2809 "filter this entry (don't show it)." |
|
2810 |
|
2811 self filterMethod:(self selectedChangesInM first) |
|
2812 |
|
2813 "Created: / 05-02-2017 / 10:39:10 / cg" |
|
2814 "Modified: / 06-02-2017 / 08:58:59 / cg" |
|
2815 ! |
|
2816 |
|
2817 filterSelectorFromA |
|
2818 "filter all changes for the selected change's selector(don't show it)." |
|
2819 |
|
2820 filteredSelectors isNil ifTrue:[ |
|
2821 filteredSelectors := Set new. |
|
2822 ]. |
|
2823 filteredSelectors add:(self selectedChangeInA changeSelector). |
|
2824 self filterChanged. |
|
2825 |
|
2826 "Created: / 05-02-2017 / 10:36:08 / cg" |
|
2827 "Modified (comment): / 06-02-2017 / 09:13:48 / cg" |
|
2828 ! |
|
2829 |
|
2830 filterSelectorFromB |
|
2831 "filter all changes for the selected change's selector(don't show it)." |
|
2832 |
|
2833 filteredSelectors isNil ifTrue:[ |
|
2834 filteredSelectors := Set new. |
|
2835 ]. |
|
2836 filteredSelectors add:(self selectedChangeInB changeSelector). |
|
2837 self filterChanged. |
|
2838 |
|
2839 "Created: / 05-02-2017 / 10:36:14 / cg" |
|
2840 "Modified (comment): / 06-02-2017 / 09:13:52 / cg" |
|
2841 ! |
|
2842 |
|
2843 filterSelectorFromM |
|
2844 "filter all changes for the selected change's selector(don't show it)." |
|
2845 |
|
2846 filteredSelectors isNil ifTrue:[ |
|
2847 filteredSelectors := Set new. |
|
2848 ]. |
|
2849 filteredSelectors add:(self selectedChangesInM first changeSelector). |
|
2850 self filterChanged. |
|
2851 |
|
2852 "Created: / 05-02-2017 / 10:39:28 / cg" |
|
2853 "Modified (comment): / 06-02-2017 / 09:13:55 / cg" |
|
2854 ! |
|
2855 |
|
2856 filterSelectorsMatching |
|
2857 "ask for a GLOB pattern; |
|
2858 filter all changes with matching selectors." |
|
2859 |
|
2860 |pattern| |
|
2861 |
|
2862 pattern := Dialog request:'Matchpattern for Selector Filter (will hide changes with matching selectors):'. |
|
2863 pattern isEmptyOrNil ifTrue:[^ self]. |
|
2864 |
|
2865 selectorPatternFilters isNil ifTrue:[ |
|
2866 selectorPatternFilters := OrderedCollection new. |
|
2867 ]. |
|
2868 selectorPatternFilters add:pattern. |
|
2869 self filterChanged |
|
2870 |
|
2871 "Created: / 06-02-2017 / 02:29:07 / cg" |
|
2872 "Modified: / 06-02-2017 / 09:18:20 / cg" |
|
2873 ! |
|
2874 |
|
2875 forgetFilterNamed |
|
2876 "forget a remembered named filter" |
|
2877 |
|
2878 |filterName| |
|
2879 |
|
2880 filterName := Dialog |
|
2881 request:'Forget Filter Named:' |
|
2882 list:(RememberedFilters keys asNewOrderedCollection sort). |
|
2883 filterName isEmptyOrNil ifTrue:[^ self]. |
|
2884 |
|
2885 (Dialog confirm:'Shure to Forget the Filter Named: ',filterName) ifFalse:[^ self]. |
|
2886 |
|
2887 RememberedFilters removeKey:filterName. |
|
2888 |
|
2889 "Created: / 05-02-2017 / 11:12:08 / cg" |
|
2890 "Modified: / 06-02-2017 / 02:17:47 / cg" |
|
2891 ! |
|
2892 |
|
2893 inspectFilterParameters |
|
2894 "inspect the current settings" |
|
2895 |
2728 |
2896 |filterParameters| |
2729 |filterParameters| |
2897 |
2730 |
2898 filterParameters := FilterParameters new. |
2731 "/ migration - will be removed |
2899 filterParameters filteredClassNameMatchPattern:classPatternFilters. |
|
2900 filterParameters filteredSelectorMatchPattern:selectorPatternFilters. |
|
2901 filterParameters filteredClassNames:filteredClasses. |
|
2902 filterParameters filteredMethodNames:filteredMethods. |
|
2903 filterParameters filteredSelectors:filteredSelectors. |
|
2904 |
|
2905 filterParameters inspect. |
|
2906 |
|
2907 "Created: / 06-02-2017 / 02:00:55 / cg" |
|
2908 ! |
|
2909 |
|
2910 loadFilterNamed |
|
2911 "load a remembered named filter" |
|
2912 |
|
2913 |filterName filterParameters| |
|
2914 |
|
2915 filterName := Dialog |
|
2916 request:'Load Filter Named:' |
|
2917 list:(RememberedFilters keys asNewOrderedCollection sort). |
|
2918 filterName isEmptyOrNil ifTrue:[^ self]. |
|
2919 |
|
2920 filterParameters := RememberedFilters at:filterName. |
|
2921 |
|
2922 selectorPatternFilters := filterParameters filteredSelectorMatchPattern. |
|
2923 classPatternFilters := filterParameters filteredClassNameMatchPattern. |
|
2924 filteredClasses := filterParameters filteredClassNames. |
|
2925 filteredMethods := filterParameters filteredMethodNames. |
|
2926 filteredSelectors := filterParameters filteredSelectors. |
|
2927 |
|
2928 self filterChanged. |
|
2929 |
|
2930 "Created: / 06-02-2017 / 01:57:48 / cg" |
|
2931 ! |
|
2932 |
|
2933 rememberFilterAs |
|
2934 "remember the current settings under a named filter" |
|
2935 |
|
2936 |filterName filterParameters| |
|
2937 |
|
2938 filterName := Dialog |
|
2939 request:'Name of Filter:' |
|
2940 list:(RememberedFilters keys asNewOrderedCollection sort). |
|
2941 filterName isEmptyOrNil ifTrue:[^ self]. |
|
2942 |
|
2943 filteredMethods notEmptyOrNil ifTrue:[ |
2732 filteredMethods notEmptyOrNil ifTrue:[ |
2944 filteredMethods := filteredMethods |
2733 filteredMethods := filteredMethods |
2945 collect:[:filter | |
2734 collect:[:filter | |
2946 filter isAssociation ifTrue:[ |
2735 filter isAssociation ifTrue:[ |
2947 filter. |
2736 filter. |
2948 ] ifFalse:[ |
2737 ] ifFalse:[ |
2949 filter className ->filter changeSelector. |
2738 filter className ->filter changeSelector. |
2950 ]. |
2739 ]. |
2951 ]. |
2740 ]. |
2952 ]. |
2741 ]. |
2953 |
2742 |
2954 filterParameters := FilterParameters new. |
2743 filterParameters := FilterParameters new. |
2955 filterParameters filteredClassNameMatchPattern:classPatternFilters. |
2744 filterParameters filteredClassNameMatchPattern:classPatternFilters. |
2956 filterParameters filteredSelectorMatchPattern:selectorPatternFilters. |
2745 filterParameters filteredSelectorMatchPattern:selectorPatternFilters. |
2957 filterParameters filteredClassNames:filteredClasses. |
2746 filterParameters filteredClassNames:filteredClasses. |
2958 filterParameters filteredMethodNames:filteredMethods. |
2747 filterParameters filteredMethodNames:filteredMethods. |
2959 filterParameters filteredSelectors:filteredSelectors. |
2748 filterParameters filteredSelectors:filteredSelectors. |
2960 |
2749 |
|
2750 ^ filterParameters. |
|
2751 |
|
2752 "Created: / 06-02-2017 / 09:20:07 / cg" |
|
2753 ! |
|
2754 |
|
2755 exportFilterParameters |
|
2756 "generate XML with the current settings |
|
2757 (to be pasted into Jabber for interchange)" |
|
2758 |
|
2759 |filterParameters| |
|
2760 |
|
2761 filterParameters := self currentFilterParameters. |
|
2762 Workspace |
|
2763 openWith:(XMLStandardCoder encode:filterParameters) |
|
2764 title:'Current Filter' |
|
2765 |
|
2766 "Created: / 06-02-2017 / 09:19:52 / cg" |
|
2767 ! |
|
2768 |
|
2769 filterClassInA |
|
2770 "filter all changes for the selected change's class (don't show it)." |
|
2771 |
|
2772 filteredClasses isNil ifTrue:[ |
|
2773 filteredClasses := Set new. |
|
2774 ]. |
|
2775 filteredClasses add:(self selectedChangeInA nonMetaClassName). |
|
2776 self filterChanged. |
|
2777 |
|
2778 "Created: / 05-02-2017 / 10:17:22 / cg" |
|
2779 "Modified: / 05-02-2017 / 11:19:05 / cg" |
|
2780 "Modified (comment): / 06-02-2017 / 09:13:23 / cg" |
|
2781 ! |
|
2782 |
|
2783 filterClassInB |
|
2784 "filter all changes for the selected change's class (don't show it)." |
|
2785 |
|
2786 filteredClasses isNil ifTrue:[ |
|
2787 filteredClasses := Set new. |
|
2788 ]. |
|
2789 filteredClasses add:(self selectedChangeInB nonMetaClassName). |
|
2790 self filterChanged. |
|
2791 |
|
2792 "Created: / 05-02-2017 / 10:16:45 / cg" |
|
2793 "Modified: / 05-02-2017 / 11:19:02 / cg" |
|
2794 "Modified (comment): / 06-02-2017 / 09:13:29 / cg" |
|
2795 ! |
|
2796 |
|
2797 filterClassInM |
|
2798 "filter all changes for the selected change's class (don't show it)." |
|
2799 |
|
2800 filteredClasses isNil ifTrue:[ |
|
2801 filteredClasses := Set new. |
|
2802 ]. |
|
2803 filteredClasses add:(self selectedChangesInM first nonMetaClassName). |
|
2804 self filterChanged. |
|
2805 |
|
2806 "Created: / 05-02-2017 / 10:38:06 / cg" |
|
2807 "Modified (comment): / 06-02-2017 / 09:13:33 / cg" |
|
2808 ! |
|
2809 |
|
2810 filterClassesMatching |
|
2811 "ask for a GLOB pattern; |
|
2812 filter all changes with matching classnames ." |
|
2813 |
|
2814 |pattern| |
|
2815 |
|
2816 pattern := Dialog request:'Matchpattern for Classname Filter (will hide changes with matching classes):'. |
|
2817 pattern isEmptyOrNil ifTrue:[^ self]. |
|
2818 |
|
2819 classPatternFilters isNil ifTrue:[ |
|
2820 classPatternFilters := OrderedCollection new. |
|
2821 ]. |
|
2822 classPatternFilters add:pattern. |
|
2823 self filterChanged |
|
2824 |
|
2825 "Created: / 05-02-2017 / 11:11:42 / cg" |
|
2826 "Modified: / 06-02-2017 / 09:18:15 / cg" |
|
2827 ! |
|
2828 |
|
2829 filterMethod:aChange |
|
2830 "filter this change (don't show it)." |
|
2831 |
|
2832 filteredMethods isNil ifTrue:[ |
|
2833 filteredMethods := Set new. |
|
2834 ]. |
|
2835 aChange isMethodChange ifTrue:[ |
|
2836 filteredMethods add:(aChange className -> aChange changeSelector). |
|
2837 ] ifFalse:[ |
|
2838 ]. |
|
2839 |
|
2840 self filterChanged. |
|
2841 |
|
2842 "Created: / 06-02-2017 / 08:58:17 / cg" |
|
2843 ! |
|
2844 |
|
2845 filterMethodInA |
|
2846 "filter this entry (don't show it)." |
|
2847 |
|
2848 self filterMethod:(self selectedChangeInA) |
|
2849 |
|
2850 "Created: / 05-02-2017 / 10:11:48 / cg" |
|
2851 "Modified: / 06-02-2017 / 08:58:38 / cg" |
|
2852 ! |
|
2853 |
|
2854 filterMethodInB |
|
2855 "filter this entry (don't show it)." |
|
2856 |
|
2857 self filterMethod:(self selectedChangeInB) |
|
2858 |
|
2859 "Created: / 05-02-2017 / 10:15:57 / cg" |
|
2860 "Modified: / 06-02-2017 / 08:58:46 / cg" |
|
2861 ! |
|
2862 |
|
2863 filterMethodInM |
|
2864 "filter this entry (don't show it)." |
|
2865 |
|
2866 self filterMethod:(self selectedChangesInM first) |
|
2867 |
|
2868 "Created: / 05-02-2017 / 10:39:10 / cg" |
|
2869 "Modified: / 06-02-2017 / 08:58:59 / cg" |
|
2870 ! |
|
2871 |
|
2872 filterSelectorFromA |
|
2873 "filter all changes for the selected change's selector(don't show it)." |
|
2874 |
|
2875 filteredSelectors isNil ifTrue:[ |
|
2876 filteredSelectors := Set new. |
|
2877 ]. |
|
2878 filteredSelectors add:(self selectedChangeInA changeSelector). |
|
2879 self filterChanged. |
|
2880 |
|
2881 "Created: / 05-02-2017 / 10:36:08 / cg" |
|
2882 "Modified (comment): / 06-02-2017 / 09:13:48 / cg" |
|
2883 ! |
|
2884 |
|
2885 filterSelectorFromB |
|
2886 "filter all changes for the selected change's selector(don't show it)." |
|
2887 |
|
2888 filteredSelectors isNil ifTrue:[ |
|
2889 filteredSelectors := Set new. |
|
2890 ]. |
|
2891 filteredSelectors add:(self selectedChangeInB changeSelector). |
|
2892 self filterChanged. |
|
2893 |
|
2894 "Created: / 05-02-2017 / 10:36:14 / cg" |
|
2895 "Modified (comment): / 06-02-2017 / 09:13:52 / cg" |
|
2896 ! |
|
2897 |
|
2898 filterSelectorFromM |
|
2899 "filter all changes for the selected change's selector(don't show it)." |
|
2900 |
|
2901 filteredSelectors isNil ifTrue:[ |
|
2902 filteredSelectors := Set new. |
|
2903 ]. |
|
2904 filteredSelectors add:(self selectedChangesInM first changeSelector). |
|
2905 self filterChanged. |
|
2906 |
|
2907 "Created: / 05-02-2017 / 10:39:28 / cg" |
|
2908 "Modified (comment): / 06-02-2017 / 09:13:55 / cg" |
|
2909 ! |
|
2910 |
|
2911 filterSelectorsMatching |
|
2912 "ask for a GLOB pattern; |
|
2913 filter all changes with matching selectors." |
|
2914 |
|
2915 |pattern| |
|
2916 |
|
2917 pattern := Dialog request:'Matchpattern for Selector Filter (will hide changes with matching selectors):'. |
|
2918 pattern isEmptyOrNil ifTrue:[^ self]. |
|
2919 |
|
2920 selectorPatternFilters isNil ifTrue:[ |
|
2921 selectorPatternFilters := OrderedCollection new. |
|
2922 ]. |
|
2923 selectorPatternFilters add:pattern. |
|
2924 self filterChanged |
|
2925 |
|
2926 "Created: / 06-02-2017 / 02:29:07 / cg" |
|
2927 "Modified: / 06-02-2017 / 09:18:20 / cg" |
|
2928 ! |
|
2929 |
|
2930 forgetFilterNamed |
|
2931 "forget a remembered named filter" |
|
2932 |
|
2933 |filterName| |
|
2934 |
|
2935 filterName := Dialog |
|
2936 request:'Forget Filter Named:' |
|
2937 list:(RememberedFilters keys asNewOrderedCollection sort). |
|
2938 filterName isEmptyOrNil ifTrue:[^ self]. |
|
2939 |
|
2940 (Dialog confirm:'Shure to Forget the Filter Named: ',filterName) ifFalse:[^ self]. |
|
2941 |
|
2942 RememberedFilters removeKey:filterName. |
|
2943 |
|
2944 "Created: / 05-02-2017 / 11:12:08 / cg" |
|
2945 "Modified: / 06-02-2017 / 02:17:47 / cg" |
|
2946 ! |
|
2947 |
|
2948 importFilterParameters |
|
2949 "ask for XML representation as exported previously. |
|
2950 (to be pasted from Jabber for interchange)" |
|
2951 |
|
2952 |xml filterParameters| |
|
2953 |
|
2954 xml := Dialog requestText:'Paste XML Exported Filter Here and Accept'. |
|
2955 xml isEmptyOrNil ifTrue:[^ self]. |
|
2956 |
|
2957 filterParameters := XMLStandardCoder decode:xml. |
|
2958 (filterParameters isKindOf:FilterParameters) ifTrue:[ |
|
2959 self setFilterParameters:filterParameters |
|
2960 ]. |
|
2961 |
|
2962 "Created: / 06-02-2017 / 09:51:11 / cg" |
|
2963 ! |
|
2964 |
|
2965 inspectFilterParameters |
|
2966 "inspect the current settings" |
|
2967 |
|
2968 self currentFilterParameters inspect. |
|
2969 |
|
2970 "Created: / 06-02-2017 / 02:00:55 / cg" |
|
2971 "Modified: / 06-02-2017 / 09:20:15 / cg" |
|
2972 ! |
|
2973 |
|
2974 loadFilterNamed |
|
2975 "load a remembered named filter" |
|
2976 |
|
2977 |filterName filterParameters| |
|
2978 |
|
2979 filterName := Dialog |
|
2980 request:'Load Filter Named:' |
|
2981 list:(RememberedFilters keys asNewOrderedCollection sort). |
|
2982 filterName isEmptyOrNil ifTrue:[^ self]. |
|
2983 |
|
2984 filterParameters := RememberedFilters at:filterName. |
|
2985 self setFilterParameters:filterParameters. |
|
2986 |
|
2987 "Created: / 06-02-2017 / 01:57:48 / cg" |
|
2988 "Modified: / 06-02-2017 / 09:51:47 / cg" |
|
2989 ! |
|
2990 |
|
2991 rememberFilterAs |
|
2992 "remember the current settings under a named filter" |
|
2993 |
|
2994 |filterName filterParameters| |
|
2995 |
|
2996 filterName := Dialog |
|
2997 request:'Name of Filter:' |
|
2998 list:(RememberedFilters keys asNewOrderedCollection sort). |
|
2999 filterName isEmptyOrNil ifTrue:[^ self]. |
|
3000 |
|
3001 filterParameters := self currentFilterParameters. |
|
3002 |
2961 RememberedFilters isNil ifTrue:[ |
3003 RememberedFilters isNil ifTrue:[ |
2962 RememberedFilters := Dictionary new. |
3004 RememberedFilters := Dictionary new. |
2963 ]. |
3005 ]. |
2964 RememberedFilters at:filterName put:filterParameters. |
3006 RememberedFilters at:filterName put:filterParameters. |
2965 |
3007 |
2966 "Modified: / 06-02-2017 / 09:06:45 / cg" |
3008 "Modified: / 06-02-2017 / 09:20:35 / cg" |
|
3009 ! |
|
3010 |
|
3011 setFilterParameters:filterParameters |
|
3012 "setup from a remembered filter" |
|
3013 |
|
3014 selectorPatternFilters := filterParameters filteredSelectorMatchPattern. |
|
3015 classPatternFilters := filterParameters filteredClassNameMatchPattern. |
|
3016 filteredClasses := filterParameters filteredClassNames. |
|
3017 filteredMethods := filterParameters filteredMethodNames. |
|
3018 filteredSelectors := filterParameters filteredSelectors. |
|
3019 |
|
3020 self filterChanged. |
|
3021 |
|
3022 "Created: / 06-02-2017 / 09:51:37 / cg" |
2967 ! ! |
3023 ! ! |
2968 |
3024 |
2969 !VersionDiffBrowser methodsFor:'private'! |
3025 !VersionDiffBrowser methodsFor:'private'! |
2970 |
3026 |
2971 addAcceptToTextViewMenus |
3027 addAcceptToTextViewMenus |