SmallSense__PackageSearchDialog.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 09 Jul 2014 12:23:50 +0100
changeset 353 b1170c3a4585
parent 349 3f2f7a6d4fe6
child 362 b34840b66447
permissions -rw-r--r--
Package renamed to stx:goodies/smallsense
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
353
b1170c3a4585 Package renamed to stx:goodies/smallsense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 349
diff changeset
     1
"{ Package: 'stx:goodies/smallsense' }"
337
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: SmallSense }"
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
AbstractSearchDialog subclass:#PackageSearchDialog
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'SmallSense-Core-Interface-Search'
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
349
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    12
!PackageSearchDialog methodsFor:'accessing - private'!
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    13
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    14
matchingObjectForString: aString
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    15
    "Creates a new object from given string. Called only when
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    16
     #canCreateMatchingObjectFromString: returns true"
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    17
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    18
    ^ aString asSymbol
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    19
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    20
    "Created: / 23-06-2014 / 15:25:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    21
! !
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    22
337
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
!PackageSearchDialog methodsFor:'queries'!
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
349
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    25
canCreateMatchingObjectFromString:string 
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    26
    "Return true, a new object can be created with given string value"
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    27
    
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    28
    ^ string allSatisfy:[:c | c isLetterOrDigit or:[ '_:/' includes:c ] ]
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    29
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    30
    "Created: / 23-06-2014 / 15:15:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    31
!
3f2f7a6d4fe6 Allow for entring a non-existent package in PackageSearchDialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 348
diff changeset
    32
337
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
canSelect:selection
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    ^ selection askFor: #isSmallSensePackagePO
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    "Created: / 05-05-2014 / 23:50:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
! !
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
!PackageSearchDialog methodsFor:'searching'!
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
matchingObjectPOsFor:objects
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    objects sort: [ :a :b | a < b ].
344
88d012c17762 Post-merge fixes to catch up with PO refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 343
diff changeset
    44
    ^ objects collect:[ :e | PO forPackage: e ].
337
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    "Created: / 05-05-2014 / 23:54:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
344
88d012c17762 Post-merge fixes to catch up with PO refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 343
diff changeset
    47
    "Modified: / 19-06-2014 / 12:04:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
337
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
!
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
348
81ad6b88370c Use relaxed search when matching objects in search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
    50
matchingObjectsForPattern:pattern inEnvironment:environment relax: level
337
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    | packages |
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    packages := Set new.
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    environment allClassesDo: [ :cls |
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
        | pkg |
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
        pkg := cls package.
344
88d012c17762 Post-merge fixes to catch up with PO refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 343
diff changeset
    58
        ((pkg notNil and:[ pkg ~~ PackageId noProjectID and:[ pkg ~= '__temporary__'] ])
337
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
            and:[(filter isNil or:[ filter value: pkg ])
348
81ad6b88370c Use relaxed search when matching objects in search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
    60
            and:[pattern isNil or:[pattern match: pkg relax: level]]]) ifTrue:[ packages add: pkg ].
337
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    ].
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    environment allMethodsDo:[ :mth |
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
        | pkg |
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
        pkg := mth package.
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
        ((pkg notNil and:[ pkg ~~ PackageId noProjectID ])
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
            and:[(filter isNil or:[ filter value: pkg ])
348
81ad6b88370c Use relaxed search when matching objects in search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
    68
            and:[pattern isNil or:[pattern match: pkg relax: level]]]) ifTrue:[ packages add: pkg ].
337
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    ].
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    ^ packages asArray.
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
348
81ad6b88370c Use relaxed search when matching objects in search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
    72
    "Created: / 20-06-2014 / 21:17:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
337
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
! !
5f39eba6a1e3 Added PackageSearchDialog and MethodSearch dialog. Still needs to be polished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74