Tools__BrowserListWithFilter.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 14 Jun 2018 22:19:39 +0100
branchjv
changeset 18227 d25a407ba86d
parent 15566 184cea584be5
permissions -rw-r--r--
Mini testrunner: show "green" if there's at least one pass and rest is pass or skip This is more meaningfull result then showing "gray" if there's at least one skip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13826
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
     1
"
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
     3
              All Rights Reserved
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
     4
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
     5
 This software is furnished under a license and may be used
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
     6
 only in accordance with the terms of that license and with the
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
     8
 be provided or otherwise made available to, or used by, any
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
     9
 other person.  No title to or ownership of the software is
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    10
 hereby transferred.
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    11
"
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    13
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    14
"{ NameSpace: Tools }"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    15
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    16
BrowserList subclass:#BrowserListWithFilter
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    17
	instanceVariableNames:'listView filterView filterPatternHolder showFilterHolder'
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    18
	classVariableNames:''
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    19
	poolDictionaries:''
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    20
	category:'Interface-Browsers-New'
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    21
!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    22
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    23
!BrowserListWithFilter class methodsFor:'documentation'!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    24
13826
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    25
copyright
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    26
"
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    27
 COPYRIGHT (c) 2006 by eXept Software AG
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    28
              All Rights Reserved
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    29
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    30
 This software is furnished under a license and may be used
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    31
 only in accordance with the terms of that license and with the
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    33
 be provided or otherwise made available to, or used by, any
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    34
 other person.  No title to or ownership of the software is
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    35
 hereby transferred.
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    36
"
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    37
!
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    38
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    39
documentation
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    40
"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    41
    Abstract superclass for a browser list with user filter.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    42
    Currently used only ChangeList and ChangeSetDiffList, but
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    43
    user filter may be usefull for class/category lists as well.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    44
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    45
    [author:]
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    46
        Jan Vrany <jan.vrany@fit.cvut.cz>
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    47
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    48
    [instance variables:]
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    49
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    50
    [class variables:]
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    51
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    52
    [see also:]
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    53
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    54
"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    55
! !
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    56
13826
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    57
!BrowserListWithFilter class methodsFor:'plugIn spec'!
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    58
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    59
aspectSelectors
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    60
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    61
    ^#(
14036
ba97bd20b671 Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13826
diff changeset
    62
        environmentHolder
13826
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    63
        showFilterHolder
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    64
    )
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    65
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    66
    "Created: / 11-02-2012 / 22:44:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14036
ba97bd20b671 Refactoring of NavigatorModel's environment.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13826
diff changeset
    67
    "Modified: / 24-02-2014 / 10:37:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13826
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    68
! !
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
    69
15157
f71d0df9dd41 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 14036
diff changeset
    70
!BrowserListWithFilter class methodsFor:'queries'!
f71d0df9dd41 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 14036
diff changeset
    71
f71d0df9dd41 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 14036
diff changeset
    72
isAbstract
f71d0df9dd41 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 14036
diff changeset
    73
    ^ self == Tools::BrowserListWithFilter
f71d0df9dd41 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 14036
diff changeset
    74
! !
f71d0df9dd41 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 14036
diff changeset
    75
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    76
!BrowserListWithFilter methodsFor:'accessing'!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    77
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    78
filterPattern
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    79
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    80
    | p |
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    81
    p := filterPatternHolder value.
10941
3ff94636780d changed: #filterPattern
vrany
parents: 10936
diff changeset
    82
    ^p isEmptyOrNil ifTrue:[
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    83
        nil
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    84
    ] ifFalse:[
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    85
        StringPattern fromString: p
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    86
    ]
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    87
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    88
    "Created: / 29-11-2011 / 15:23:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    89
!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    90
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    91
showFilter
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    92
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    93
    ^self showFilterHolder value
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    94
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    95
    "Created: / 29-11-2011 / 15:27:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    96
! !
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    97
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    98
!BrowserListWithFilter methodsFor:'aspects'!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
    99
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   100
filterPatternHolder
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   101
    "return/create the 'filterPatternHolder' value holder (automatically generated)"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   102
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   103
    filterPatternHolder isNil ifTrue:[
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   104
        filterPatternHolder := ValueHolder new.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   105
        filterPatternHolder addDependent:self.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   106
    ].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   107
    ^ filterPatternHolder
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   108
!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   109
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   110
menuHolderWithShowFilter
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   111
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   112
    ^[
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   113
        | menu |
10936
f08353f1e312 changed: #menuHolderWithShowFilter
vrany
parents: 10924
diff changeset
   114
        menu := self menuHolder value copy.
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   115
        menu isArray ifTrue:[menu := Menu decodeFromLiteralArray: menu].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   116
        menu addSeparator.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   117
        menu addItem:
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   118
            ((MenuItem label:(self resources at: 'Show filter'))
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   119
                indication: self showFilterHolder;
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   120
                yourself).
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   121
        menu
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   122
    ]
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   123
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   124
    "Created: / 29-11-2011 / 15:40:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   125
!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   126
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   127
showFilterHolder
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   128
    "return/create the 'showFilterHolder' value holder (automatically generated)"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   129
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   130
    showFilterHolder isNil ifTrue:[
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   131
        showFilterHolder := ValueHolder with: false.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   132
        showFilterHolder addDependent:self.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   133
    ].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   134
    ^ showFilterHolder
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   135
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   136
    "Modified: / 29-11-2011 / 15:43:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   137
!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   138
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   139
showFilterHolder:something
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   140
    "set the 'showFilterHolder' value holder (automatically generated)"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   141
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   142
    |oldValue newValue|
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   143
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   144
    showFilterHolder notNil ifTrue:[
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   145
        oldValue := showFilterHolder value.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   146
        showFilterHolder removeDependent:self.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   147
    ].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   148
    showFilterHolder := something.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   149
    showFilterHolder notNil ifTrue:[
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   150
        showFilterHolder addDependent:self.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   151
    ].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   152
    newValue := showFilterHolder value.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   153
    oldValue ~~ newValue ifTrue:[
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   154
        self update:#value with:newValue from:showFilterHolder.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   155
    ].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   156
! !
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   157
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   158
!BrowserListWithFilter methodsFor:'change & update'!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   159
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   160
update:something with:aParameter from:changedObject
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   161
    "Invoked when an object that I depend upon sends a change notification."
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   162
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   163
    changedObject == showFilterHolder ifTrue:[
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   164
        self showFilter: showFilterHolder value.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   165
        ^self.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   166
    ].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   167
    changedObject == filterPatternHolder ifTrue:[
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   168
        self enqueueDelayedUpdateList.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   169
        ^self
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   170
    ].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   171
    super update:something with:aParameter from:changedObject
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   172
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   173
    "Modified: / 29-11-2011 / 15:51:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11562
270c71f65f43 list invalidation
Claus Gittinger <cg@exept.de>
parents: 10941
diff changeset
   174
    "Modified (format): / 06-06-2012 / 00:01:37 / cg"
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   175
! !
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   176
13826
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   177
!BrowserListWithFilter methodsFor:'event handling-delegation'!
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   178
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   179
handlesKeyPress:key inView:aView
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   180
    ^ aView == filterView and:[key == #CursorDown]
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   181
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   182
    "Created: / 06-02-2012 / 23:02:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   183
!
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   184
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   185
keyPress:key x:x y:y view:aView
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   186
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   187
    (aView == filterView and:[key == #CursorDown]) ifTrue:[
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   188
        listView scrolledView notNil ifTrue:[
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   189
            listView scrolledView 
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   190
                takeFocus;
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   191
                keyPress: key x:x y:y.
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   192
        ].
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   193
    ].
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   194
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   195
    "Created: / 06-02-2012 / 23:06:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   196
    "Modified: / 17-01-2013 / 21:28:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   197
! !
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   198
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   199
!BrowserListWithFilter methodsFor:'hooks'!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   200
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   201
commonPostBuild
12398
eef1be6c07b7 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 11562
diff changeset
   202
    super commonPostBuild.
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   203
    listView isNil ifTrue:[listView := builder componentAt:#List].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   204
    listView isNil ifTrue:[self breakPoint: #jv].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   205
    filterView isNil ifTrue:[self breakPoint: #jv].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   206
13826
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   207
    filterView delegate: self.
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   208
    self showFilter: showFilterHolder value.
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   209
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   210
    "Created: / 29-11-2011 / 14:47:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   211
!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   212
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   213
postBuildFilterView: aView
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   214
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   215
    filterView := aView
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   216
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   217
    "Created: / 29-11-2011 / 14:47:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   218
!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   219
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   220
postBuildListView: aView
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   221
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   222
    listView := aView
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   223
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   224
    "Created: / 29-11-2011 / 14:47:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   225
! !
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   226
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   227
!BrowserListWithFilter methodsFor:'private'!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   228
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   229
filterList: list
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   230
    | pattern filteredList |
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   231
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   232
    self showFilter ifFalse:[ ^ list ].
12659
f89af2fdbc11 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 12398
diff changeset
   233
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   234
    pattern := self filterPattern.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   235
    pattern isNil ifTrue:[ ^ list ].    
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   236
    filteredList := list value select:[:each|pattern matchObject: each relax: 1].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   237
    filteredList isEmpty ifTrue:[
12659
f89af2fdbc11 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 12398
diff changeset
   238
        filteredList := list value select:[:each|pattern matchObject: each relax: 2].
f89af2fdbc11 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 12398
diff changeset
   239
        filteredList isEmpty ifTrue:[
f89af2fdbc11 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 12398
diff changeset
   240
            filteredList := list value select:[:each|pattern matchObject: each relax: 3].
f89af2fdbc11 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 12398
diff changeset
   241
        ]
f89af2fdbc11 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 12398
diff changeset
   242
    ].
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   243
    ^filteredList
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   244
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   245
    "Created: / 29-11-2011 / 15:31:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   246
!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   247
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   248
showFilter: aBoolean
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   249
    | offset |
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   250
13826
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   251
    listView isNil ifTrue:[ ^ self ].
78262bd89bea merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 12659
diff changeset
   252
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   253
    aBoolean ifTrue:[
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   254
        offset := filterView height.
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   255
    ] ifFalse:[
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   256
        offset := 0
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   257
    ].
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   258
    listView layout: (listView layout copy topOffset: offset) .
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   259
    filterView isVisible: aBoolean
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   260
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   261
    "Created: / 29-11-2011 / 14:55:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   262
! !
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   263
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   264
!BrowserListWithFilter class methodsFor:'documentation'!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   265
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   266
version
15157
f71d0df9dd41 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 14036
diff changeset
   267
    ^ '$Header: /cvs/stx/stx/libtool/Tools__BrowserListWithFilter.st,v 1.9 2015-02-01 14:13:31 cg Exp $'
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   268
!
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   269
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   270
version_CVS
15157
f71d0df9dd41 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 14036
diff changeset
   271
    ^ '$Header: /cvs/stx/stx/libtool/Tools__BrowserListWithFilter.st,v 1.9 2015-02-01 14:13:31 cg Exp $'
10924
84f8187806b0 initial checkin
vrany
parents:
diff changeset
   272
! !
12398
eef1be6c07b7 class: Tools::BrowserListWithFilter
Claus Gittinger <cg@exept.de>
parents: 11562
diff changeset
   273