SmallSense__PO.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 20 Jun 2014 13:56:46 +0100
changeset 346 88c1d211f9be
parent 345 3623c9cde340
child 353 b1170c3a4585
permissions -rw-r--r--
Reintroduced PO>>subject. This method is usefull when writing generic code (such as the one in search dialogs). However, PO>>subject is now considered 'private' and should be used with care. It's name is not very intention revealing and it is not clear what it really returns. Don't use it in non-generic code that does care what's the return value.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
64
2257d7223898 All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:smallsense' }"
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!