SmallSense__PO.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 09 Jul 2014 12:23:50 +0100
changeset 353 b1170c3a4585
parent 346 88c1d211f9be
child 354 cbffe76c9b5a
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: 346
diff changeset
     1
"{ Package: 'stx:goodies/smallsense' }"
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: SmallSense }"
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
HierarchicalItem subclass:#PO
231
d934396fce8e PO refactoring: moved icon from PO to ClassPO and JavaImportPO...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
     6
	instanceVariableNames:'label relevance context'
90
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
     7
	classVariableNames:'IconWidth'
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
67
020b7461b15e Package structure reorganization.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 64
diff changeset
     9
	category:'SmallSense-Core-Interface-PO'
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
90
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
    13
!PO class methodsFor:'initialization'!
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
    14
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
    15
initialize
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
    16
    "Invoked at system start or when the class is dynamically loaded."
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
    17
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
    18
    "/ please change as required (and remove this comment)
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
    19
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
    20
    IconWidth := 16.
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
    21
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
    22
    "Modified: / 18-09-2013 / 00:13:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
    23
! !
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
    24
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
!PO class methodsFor:'Instance creation'!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
229
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    27
forClass: aClass
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    28
    ^ ClassPO new initializeWithClass: aClass
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    29
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    30
    "Created: / 20-05-2014 / 09:56:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    31
!
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    32
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    33
forClass: aClass selector: aSymbol
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    34
    ^ MethodPO new initializeWithClass: aClass selector: aSymbol
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    35
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    36
    "Created: / 20-05-2014 / 10:31:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    37
!
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    38
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    39
forClasses: aCollection selector: aSymbol
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    40
    ^ MethodPO new initializeWithClasses: aCollection selector: aSymbol
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    41
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    42
    "Created: / 20-05-2014 / 10:33:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    43
!
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    44
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    45
forClasses: aCollection selector: aSymbol prefix: aString
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    46
    ^ aString notEmptyOrNil 
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    47
        ifTrue: [ MethodKeywordRestPO new initializeWithClasses: aCollection selector: aSymbol prefix: aString ]
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    48
        ifFalse:[ MethodPO new initializeWithClasses: aCollection selector: aSymbol ]
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    49
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    50
    "Created: / 20-05-2014 / 10:43:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    51
!
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    52
344
88d012c17762 Post-merge fixes to catch up with PO refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 343
diff changeset
    53
forPackage: package
88d012c17762 Post-merge fixes to catch up with PO refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 343
diff changeset
    54
    ^ PackagePO new initializeWithPackage: package
88d012c17762 Post-merge fixes to catch up with PO refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 343
diff changeset
    55
88d012c17762 Post-merge fixes to catch up with PO refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 343
diff changeset
    56
    "Created: / 19-06-2014 / 12:01:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
88d012c17762 Post-merge fixes to catch up with PO refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 343
diff changeset
    57
!
88d012c17762 Post-merge fixes to catch up with PO refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 343
diff changeset
    58
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
subject: anObject
229
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
    60
    <resource: #obsolete>
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    ^self new subject: anObject
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    "Created: / 06-04-2011 / 21:01:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
! !
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
!PO methodsFor:'accessing'!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
132
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    69
context
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    70
    ^ context
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    71
!
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
132
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    73
context:something
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    74
    something notNil ifTrue:[
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    75
        context := something.
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    76
    ].
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
132
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
    78
    "Modified: / 17-10-2013 / 01:16:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
120
4fefce92f5bb Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    79
!
4fefce92f5bb Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    80
4fefce92f5bb Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    81
cursorColumnAfterCompleteForLanguage: language
4fefce92f5bb Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    82
    "Answers a cursor column after completion. The number returned
4fefce92f5bb Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    83
     is relative to the start of the text being replaced"
4fefce92f5bb Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    84
4fefce92f5bb Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    85
    ^ (self stringToCompleteForLanguage: language) size
4fefce92f5bb Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    86
4fefce92f5bb Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    87
    "Created: / 03-10-2013 / 16:49:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4fefce92f5bb Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
    88
    "Modified: / 04-10-2013 / 07:48:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
231
d934396fce8e PO refactoring: moved icon from PO to ClassPO and JavaImportPO...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
    91
hint
d934396fce8e PO refactoring: moved icon from PO to ClassPO and JavaImportPO...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
    92
    "Return a hint text to be displayed in gray after a label
d934396fce8e PO refactoring: moved icon from PO to ClassPO and JavaImportPO...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
    93
     (if there's space). If nil is returned, no hint is shown"
d934396fce8e PO refactoring: moved icon from PO to ClassPO and JavaImportPO...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
    94
d934396fce8e PO refactoring: moved icon from PO to ClassPO and JavaImportPO...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
    95
    ^ nil
d934396fce8e PO refactoring: moved icon from PO to ClassPO and JavaImportPO...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
    96
d934396fce8e PO refactoring: moved icon from PO to ClassPO and JavaImportPO...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
    97
    "Created: / 20-05-2014 / 11:52:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d934396fce8e PO refactoring: moved icon from PO to ClassPO and JavaImportPO...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
    98
!
d934396fce8e PO refactoring: moved icon from PO to ClassPO and JavaImportPO...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
    99
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
icon
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    ^nil
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
    "Created: / 04-04-2011 / 17:25:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
label
230
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   108
    "Return a text to be displayed. The label may be cached
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   109
     `label` instvar."
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
230
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   111
    ^ self subclassResponsibility
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    "Created: / 07-04-2011 / 09:55:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
230
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   114
    "Modified: / 20-05-2014 / 11:30:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
name
230
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   118
    <resource: #obsolete>
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   119
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   120
    self obsoleteMethodWarning.
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   121
    ^ self label
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   122
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   123
    "Modified: / 20-05-2014 / 11:36:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
230
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   126
name:aString
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   127
    <resource: #obsolete>
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   128
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   129
    self shouldNeverBeSent
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   130
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   131
    "Modified: / 20-05-2014 / 11:36:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
153
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   134
relevance
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   135
    "Return relevance value, i.e., how much likely is that this
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   136
     is what user wants to complete.
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   137
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   138
     Relevance is an integer between 1 (least relevant) and 
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   139
     100 (most relevant)"
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   140
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   141
    ^ relevance ? 1
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   142
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   143
    "Modified: / 18-01-2014 / 22:41:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   144
!
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   145
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   146
relevance: anInteger
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   147
    "Set the relevance value, i.e., how much likely is that this
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   148
     is what user wants to complete.
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   149
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   150
     Relevance is an integer between 1 (least relevant) and 
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   151
     100 (most relevant)"
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   152
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   153
    ^ relevance := anInteger.
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   154
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   155
    "Modified: / 18-01-2014 / 22:41:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   156
!
b04d591c8788 Added relevance value to completion item. Pre-select the most relevant item in complection view.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 133
diff changeset
   157
133
bd659b67811c Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   158
stringAlreadyWritten
bd659b67811c Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   159
    "Answers a string already written in the textview"    
bd659b67811c Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   160
bd659b67811c Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   161
    ^ context wordBeforeCursor
bd659b67811c Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   162
bd659b67811c Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   163
    "Created: / 20-10-2013 / 00:14:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bd659b67811c Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   164
!
bd659b67811c Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   165
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
stringToComplete
185
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   167
    ^ self stringToCompleteForLanguage: context language.
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
    "Created: / 05-04-2011 / 16:48:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
185
75738108cc3f Support for Tab in code completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   170
    "Modified: / 31-03-2014 / 23:10:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
115
254c4f5dc963 Initial support for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
   173
stringToCompleteForLanguage: aProgrammingLanguage
254c4f5dc963 Initial support for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
   174
    "Answers a string to complete"
254c4f5dc963 Initial support for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
   175
230
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   176
    ^ self subclassResponsibility
115
254c4f5dc963 Initial support for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
   177
254c4f5dc963 Initial support for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
   178
    "Created: / 02-10-2013 / 02:32:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
230
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   179
    "Modified: / 20-05-2014 / 11:32:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
115
254c4f5dc963 Initial support for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
   180
!
254c4f5dc963 Initial support for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90
diff changeset
   181
229
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   182
subject:anObject
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   183
    <resource: #obsolete>
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   184
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   185
    self error: 'Should no longer be sent'.
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   186
c82a22d2153d PO refactoring: get rid of subject instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   187
    "Modified: / 20-05-2014 / 10:16:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
! !
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
346
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   190
!PO methodsFor:'accessing-private'!
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   191
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   192
subject
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   193
    "Return the real object for which the receiver
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   194
     is a presentor.
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   195
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   196
     For internal usage only."
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   197
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   198
    ^ self subclassResponsibility
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   199
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   200
    "Modified: / 20-06-2014 / 11:09:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   201
! !
88c1d211f9be Reintroduced PO>>subject.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 345
diff changeset
   202
132
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   203
!PO methodsFor:'completion'!
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   204
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   205
insert
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   206
    "Insert given completion item at cursor position"
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   207
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   208
    | po stringToComplete stringAlreadyWritten stringToInsert textView |
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   209
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   210
    po := self.
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   211
    textView := context codeView.
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   212
    stringToComplete := po stringToCompleteForLanguage: context language.
133
bd659b67811c Improvements in Java completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   213
    stringAlreadyWritten := self stringAlreadyWritten.
132
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   214
    stringToInsert := stringToComplete copyFrom: (stringAlreadyWritten size + 1).
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   215
    textView isCodeView2 ifTrue:[textView := textView textView].
157
c71d2e62ece2 Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 153
diff changeset
   216
    (stringToComplete startsWith: stringAlreadyWritten) ifTrue:[
167
cb0d59c5b344 Fix in ClassPO for completing Java class names.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
   217
        context support 
cb0d59c5b344 Fix in ClassPO for completing Java class names.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
   218
                electricInsert:stringToInsert
cb0d59c5b344 Fix in ClassPO for completing Java class names.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
   219
                ignoreKeystrokes:stringToInsert.
cb0d59c5b344 Fix in ClassPO for completing Java class names.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
   220
        textView cursorCol: textView cursorCol - stringToComplete size + (po cursorColumnAfterCompleteForLanguage: context language).
157
c71d2e62ece2 Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 153
diff changeset
   221
    ] ifFalse:[
167
cb0d59c5b344 Fix in ClassPO for completing Java class names.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
   222
       | startCol endCol |
157
c71d2e62ece2 Refactored API of CompletionEngine - caller now must set up an context pass it.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 153
diff changeset
   223
       textView undoableDo:[
132
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   224
            endCol := textView cursorCol - 1.
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   225
            startCol := textView cursorCol - stringAlreadyWritten size.
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   226
            textView insertStringAtCursor: stringToComplete.
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   227
            textView deleteFromLine:textView cursorLine col: startCol toLine:textView cursorLine col:endCol.
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   228
        ].
167
cb0d59c5b344 Fix in ClassPO for completing Java class names.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
   229
        textView cursorCol: startCol + (po cursorColumnAfterCompleteForLanguage: context language).
cb0d59c5b344 Fix in ClassPO for completing Java class names.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
   230
132
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   231
    ].
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   232
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   233
    "Created: / 17-10-2013 / 01:08:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
167
cb0d59c5b344 Fix in ClassPO for completing Java class names.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
   234
    "Modified: / 16-02-2014 / 00:02:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
132
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   235
! !
7c23c51d2cfd Completion insertion refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 120
diff changeset
   236
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
!PO methodsFor:'displaying'!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
345
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   239
displayLabel:lab h:lH on:gc x:x y:y0 h:h
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   240
    | cx hint hintW cy |
232
a95a378b4248 PO refactoring: parametrized displayLabel:... method to ease customozation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 231
diff changeset
   241
90
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
   242
    cx := x.
232
a95a378b4248 PO refactoring: parametrized displayLabel:... method to ease customozation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 231
diff changeset
   243
329
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   244
"/    iconOrNil := self icon.
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   245
"/    iconOrNil notNil ifTrue:[
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   246
"/        iconOrNil displayOn: aGC x: cx y: y + (h / 2) - (iconOrNil height / 2).
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   247
"/    ].
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   248
"/    cx := cx + IconWidth.
232
a95a378b4248 PO refactoring: parametrized displayLabel:... method to ease customozation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 231
diff changeset
   249
345
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   250
    "/ Display label
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   251
    super displayLabel:lab h:lH on:gc x:cx y:y0 h:h.
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   252
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   253
    "/ Display hint
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   254
    hint := self hint.
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   255
    hint notNil ifTrue:[ 
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   256
        cx := cx + (lab widthOn: gc).
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   257
        hintW := hint widthOn: gc.
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   258
        "/ Check whether there's enougn space fit the hint
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   259
        (gc width) > (cx + hintW + 10"spacing") ifFalse:[ 
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   260
            hint isString ifFalse:[ 
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   261
                "/ There's nothing to do for non-strings
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   262
                ^ self 
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   263
            ].
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   264
            "/ Try to shorten the text.
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   265
            hint := hint contractAtEndTo: ((gc width - cx - 10) // ('m' widthOn: gc)).
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   266
            hint size < 6 ifTrue:[ 
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   267
                "/ To short to be meaningfull, give up.
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   268
                ^ self.
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   269
            ].
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   270
            hintW := hint widthOn: gc.
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   271
            "/ Check again if it can fit...
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   272
            (gc width) > (cx + hintW + 10"spacing") ifFalse:[ 
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   273
                "/ Give up.
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   274
                ^ self.
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   275
            ]
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   276
        ].
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   277
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   278
        cx := gc width - hintW - 3"right padding".
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   279
        cy := y0 - ((lH + 1 - h) // 2).    
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   280
        (hint isString and:[hint isText not]) ifTrue:[ 
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   281
            | savPaint |
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   282
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   283
            cy := cy + (hint ascentOn:gc).   
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   284
            savPaint := gc paint.
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   285
            gc paint: (Color gray: 40).
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   286
            hint displayOn:gc x: cx y:cy.  
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   287
            gc paint: savPaint
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   288
        ] ifFalse:[ 
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   289
            hint isText ifTrue:[ 
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   290
                cy := cy + (hint ascentOn:gc).   
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   291
            ].
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   292
            hint displayOn:gc x: cx y:cy.  
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   293
        ].
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   294
    ].
90
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
   295
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
    "Created: / 24-07-2013 / 00:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
345
3623c9cde340 Post-merge fix in PO>>displayLabel:h:on:x:y:h:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 344
diff changeset
   297
    "Modified: / 19-06-2014 / 15:18:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
329
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   298
!
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   299
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   300
displayOn:aGC x:x y:y h:h 
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   301
    | cx iconOrNil |
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   302
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   303
    cx := x.
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   304
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   305
    parent isNil ifTrue:[
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   306
        iconOrNil := self icon.
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   307
        iconOrNil notNil ifTrue:[
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   308
            iconOrNil displayOn: aGC x: cx y: y + (h / 2) - (iconOrNil height / 2).
232
a95a378b4248 PO refactoring: parametrized displayLabel:... method to ease customozation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 231
diff changeset
   309
        ].
329
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   310
        cx := cx + IconWidth.
90
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
   311
    ].
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
329
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   313
    super displayOn:aGC x:cx y:y h:h
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   314
0c0024acfccc First shot on new search dialogs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 185
diff changeset
   315
    "Created: / 28-04-2014 / 00:16:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
230
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   316
!
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   317
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   318
displayString
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   319
    ^ self label
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   320
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   321
    "Created: / 20-04-2012 / 18:19:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   322
    "Modified: / 20-05-2014 / 11:34:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
! !
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
!PO methodsFor:'printing & storing'!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
printOn:aStream
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
    "append a printed representation if the receiver to the argument, aStream"
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
    super printOn:aStream.
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
    aStream nextPut:$(.
230
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   332
    self label.
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
    aStream nextPut:$).
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
230
2c12395f8108 PO refactoring: get rid of name instvar.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
   335
    "Modified: / 20-05-2014 / 11:18:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
! !
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
!PO methodsFor:'queries'!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
startsWith: prefix
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
    ^self stringToComplete startsWith: prefix
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   343
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344
    "Created: / 26-11-2011 / 19:25:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   345
! !
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   346
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   347
!PO methodsFor:'testing'!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   348
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   349
isSmallSenseClassPO
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   350
    ^ false
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   351
!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   352
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   353
isSmallSenseConstantPO
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   354
    ^ false
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   355
!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   356
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   357
isSmallSenseMethodPO
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   358
    ^ false
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   359
!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   360
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   361
isSmallSenseSnippetPO
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   362
    ^ false
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   364
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   365
isSmallSenseVariablePO
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   366
    ^ false
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   367
! !
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   368
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   369
!PO class methodsFor:'documentation'!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   370
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   371
version_HG
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   372
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
    ^ '$Changeset: <not expanded> $'
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   374
!
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376
version_SVN
174
3e08d765d86f sync from current CVS head; fixed comment highlighting for STXEOLRule
Claus Gittinger
parents: 133
diff changeset
   377
    ^ '$Id: SmallSense__PO.st,v 1.2 2014/02/12 14:49:29 sr Exp $'
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
! !
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
90
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
   380
4035038db277 Fixes in PO rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 67
diff changeset
   381
PO initialize!