SmallSense__ClassPO.st
changeset 229 c82a22d2153d
parent 176 df6d3225d1e4
child 230 2c12395f8108
equal deleted inserted replaced
228:87ee1ba0e13f 229:c82a22d2153d
     1 "{ Package: 'jv:smallsense' }"
     1 "{ Package: 'jv:smallsense' }"
     2 
     2 
     3 "{ NameSpace: SmallSense }"
     3 "{ NameSpace: SmallSense }"
     4 
     4 
     5 PO subclass:#ClassPO
     5 PO subclass:#ClassPO
     6 	instanceVariableNames:'showPrefix'
     6 	instanceVariableNames:'showPrefix klass'
     7 	classVariableNames:''
     7 	classVariableNames:''
     8 	poolDictionaries:''
     8 	poolDictionaries:''
     9 	category:'SmallSense-Core-Interface-PO'
     9 	category:'SmallSense-Core-Interface-PO'
    10 !
    10 !
    11 
    11 
    12 
    12 
    13 !ClassPO methodsFor:'accessing'!
    13 !ClassPO methodsFor:'accessing'!
    14 
    14 
    15 icon
    15 icon
    16 
    16 
    17     icon ifNil:[icon := SystemBrowser iconForClass: subject].
    17     icon ifNil:[icon := SystemBrowser iconForClass: klass].
    18     ^icon
    18     ^icon
    19 
    19 
    20     "Created: / 06-04-2011 / 23:36:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    20     "Created: / 06-04-2011 / 23:36:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    21 !
    21 !
    22 
    22 
    23 klass
    23 klass
    24     ^ subject
    24     ^ klass
    25 
    25 
    26     "Created: / 25-08-2013 / 13:07:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    26     "Created: / 25-08-2013 / 13:07:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    27 !
    27 !
    28 
    28 
    29 klass: klass
    29 klass: aClass
    30     ^ subject := klass
    30     ^ klass := aClass
    31 
    31 
    32     "Created: / 25-08-2013 / 13:07:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    32     "Created: / 25-08-2013 / 13:07:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
    33     "Modified: / 20-05-2014 / 10:05:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    33 !
    34 !
    34 
    35 
    35 name
    36 name
    36 
    37 
    37     | nm |
    38     | nm |
    38 
    39 
    39     showPrefix ifTrue:[
    40     showPrefix ifTrue:[
    40         nm := subject name.
    41         nm := klass name.
    41         (context notNil and:[subject isJavaClass]) ifTrue:[
    42         (context notNil and:[klass isJavaClass]) ifTrue:[
    42             context language isJava ifTrue:[
    43             context language isJava ifTrue:[
    43                 nm := subject javaName
    44                 nm := klass javaName
    44             ] ifFalse:[
    45             ] ifFalse:[
    45                 context language isSmalltalk ifTrue:[
    46                 context language isSmalltalk ifTrue:[
    46                    nm := 'JAVA ' , (subject  binaryName copyReplaceAll: $/ with: Character space)
    47                    nm := 'JAVA ' , (klass  binaryName copyReplaceAll: $/ with: Character space)
    47                  ]
    48                  ]
    48             ]
    49             ]
    49         ].
    50         ].
    50     ] ifFalse:[
    51     ] ifFalse:[
    51         nm := subject nameWithoutPrefix.
    52         nm := klass nameWithoutPrefix.
    52     ].
    53     ].
    53     ^nm
    54     ^nm
    54 
    55 
    55     "Created: / 26-08-2013 / 10:26:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    56     "Created: / 26-08-2013 / 10:26:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    56     "Modified: / 17-12-2013 / 22:16:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    57     "Modified: / 17-12-2013 / 22:16:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    65 !
    66 !
    66 
    67 
    67 stringAlreadyWritten
    68 stringAlreadyWritten
    68     "Answers a string already written in the textview"    
    69     "Answers a string already written in the textview"    
    69 
    70 
    70     (subject isJavaClass and:[context language isSmalltalk]) ifTrue:[
    71     (klass isJavaClass and:[context language isSmalltalk]) ifTrue:[
    71         | rec |
    72         | rec |
    72 
    73 
    73         rec := context node .
    74         rec := context node .
    74         [ rec isUnaryMessage ] whileTrue:[
    75         [ rec isUnaryMessage ] whileTrue:[
    75             rec := rec receiver.
    76             rec := rec receiver.
    82 
    83 
    83     "Created: / 20-10-2013 / 02:46:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    84     "Created: / 20-10-2013 / 02:46:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    84 !
    85 !
    85 
    86 
    86 stringToCompleteForLanguage: language
    87 stringToCompleteForLanguage: language
    87     ^ (subject isJavaClass and:[language isSmalltalk]) ifTrue:[
    88     ^ (klass isJavaClass and:[language isSmalltalk]) ifTrue:[
    88         'JAVA ', (subject binaryName copyReplaceAll: $/ with: Character space)
    89         'JAVA ', (klass binaryName copyReplaceAll: $/ with: Character space)
    89     ] ifFalse:[
    90     ] ifFalse:[
    90         super stringToCompleteForLanguage: language
    91         super stringToCompleteForLanguage: language
    91     ].
    92     ].
    92 
    93 
    93     "Created: / 03-10-2013 / 16:42:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    94     "Created: / 03-10-2013 / 16:42:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    94     "Modified: / 20-10-2013 / 02:35:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    95     "Modified: / 20-10-2013 / 02:35:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    95 !
       
    96 
       
    97 subject: aClass
       
    98 
       
    99     super subject: aClass.
       
   100 
       
   101     "Created: / 06-04-2011 / 21:02:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   102     "Modified: / 03-10-2013 / 16:30:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   103 ! !
    96 ! !
   104 
    97 
   105 !ClassPO methodsFor:'converting'!
    98 !ClassPO methodsFor:'converting'!
   106 
    99 
   107 asString
   100 asString
   108     ^subject isJavaClass ifTrue:[
   101     ^klass isJavaClass ifTrue:[
   109         subject javaName
   102         klass javaName
   110     ] ifFalse:[
   103     ] ifFalse:[
   111         subject name
   104         klass name
   112     ].
   105     ].
   113 
   106 
   114     "Created: / 04-04-2012 / 13:00:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   107     "Created: / 04-04-2012 / 13:00:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   115     "Modified: / 26-08-2013 / 10:27:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   108     "Modified: / 26-08-2013 / 10:27:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   116 ! !
   109 ! !
   121     | namespace y0 lw cnw fg |
   114     | namespace y0 lw cnw fg |
   122 
   115 
   123     super displayLabel:aLabel h:lH on:aGC x:x y:y h:h.
   116     super displayLabel:aLabel h:lH on:aGC x:x y:y h:h.
   124 
   117 
   125     showPrefix ifFalse:[
   118     showPrefix ifFalse:[
   126         namespace := subject isJavaClass 
   119         namespace := klass isJavaClass 
   127                         ifFalse:[subject  nameSpace name]
   120                         ifFalse:[klass  nameSpace name]
   128                         ifTrue:[subject javaPackage].
   121                         ifTrue:[klass javaPackage].
   129         (namespace notNil and:[namespace ~~ #Smalltalk]) ifTrue:[
   122         (namespace notNil and:[namespace ~~ #Smalltalk]) ifTrue:[
   130             namespace := 'in ', namespace.
   123             namespace := 'in ', namespace.
   131             lw :=  x + IconWidth + (aLabel widthOn: aGC).
   124             lw :=  x + IconWidth + (aLabel widthOn: aGC).
   132             y0 := y - (lH + 1 - h // 2).
   125             y0 := y - (lH + 1 - h // 2).
   133             y0 := y0 + (namespace ascentOn:aGC). 
   126             y0 := y0 + (namespace ascentOn:aGC). 
   162 
   155 
   163     super initialize.  
   156     super initialize.  
   164     showPrefix := false.
   157     showPrefix := false.
   165 
   158 
   166     "Modified: / 20-10-2013 / 02:38:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   159     "Modified: / 20-10-2013 / 02:38:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   160 !
       
   161 
       
   162 initializeWithClass: aClass
       
   163 
       
   164     klass := aClass.
       
   165     showPrefix := false.
       
   166 
       
   167     "Created: / 20-05-2014 / 09:56:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   167 ! !
   168 ! !
   168 
   169 
   169 !ClassPO methodsFor:'testing'!
   170 !ClassPO methodsFor:'testing'!
   170 
   171 
   171 isSmallSenseClassPO
   172 isSmallSenseClassPO