Hi,
I'm struggling to do this (actually a bit lost with the OB framework...):
1) In the system browser, I'd like to display all methods when selecting a class - Alexandre Bergel posted a cs for that but I can't find it anymore and I can't do it by myself too. Does someone have this change set or can you tell me where to look at... What is the "action" done when selecting a class (probably an announcment related update...) ?
2) also when displaying all methods, I'd like to color each list item according to a category color. Is it feasible ? Can you point me where to look at ?
Thanks
Cédrick
- In the system browser, I'd like to display all methods when
selecting a class - Alexandre Bergel posted a cs for that but I can't find it anymore and I can't do it by myself too. Does someone have this change set or can you tell me where to look at... What is the "action" done when selecting a class (probably an announcment related update...) ?
just found.... (http://lists.squeakfoundation.org/pipermail/squeak-dev/2006-May/104731.html)
"Here are the changes I did: - Instead of sending #nodeChanged, #nodeChanged: theSelectedNode is sent - OBPanel>>nodeChanged: aNode ^ self nodeChanged - OBBrowser>>nodeChanged: aNode ^ self nodeChanged - OBSystemBrowser>>nodeChanged: aNode | methodCategoryColumn | super nodeChanged: aNode.
(aNode isKindOf: OBClassNode) ifTrue: [ methodCategoryColumn := (panels select: [:p| p isKindOf: OBColumnPanel]) first columns third. (methodCategoryColumn getChildren first) ifNotNil: [ methodCategoryColumn select: (methodCategoryColumn getChildren first).]]
I am not sure about this last method. Looks like a hack now... But it works fine. "
I'll see if it works...
- also when displaying all methods, I'd like to color each list item
according to a category color. Is it feasible ? Can you point me where to look at ?
Thanks
Cédrick
2007/6/27, Cédrick Béler cbeler@enit.fr:
- In the system browser, I'd like to display all methods when selecting
a class - Alexandre Bergel posted a cs for that but I can't find it anymore and I can't do it by myself too. Does someone have this change set or can you tell me where to look at... What is the "action" done when selecting a class (probably an announcment related update...) ?
Everybody want this, but Colin hasn't found a good way of doing it.
- also when displaying all methods, I'd like to color each list item
according to a category color. Is it feasible ? Can you point me where to look at ?
I think you should change what OBMethodNode>>label returns or something like this. I guess you can return a Text with colors.
Everybody want this, but Colin hasn't found a good way of doing it.
I bet OBFilters could be a solution to this.
- also when displaying all methods, I'd like to color each list item
according to a category color. Is it feasible ? Can you point me where to look at ?
I think you should change what OBMethodNode>>label returns or something like this. I guess you can return a Text with colors.
The same here, however there is the problem that Morphic lists ignore color annotations in Text. Morphic issues needs to be fixed (or avoided) to get this working.
Lukas
- In the system browser, I'd like to display all methods when selecting
a class - Alexandre Bergel posted a cs for that but I can't find it anymore and I can't do it by myself too. Does someone have this change set or can you tell me where to look at... What is the "action" done when selecting a class (probably an announcment related update...) ?
Everybody want this, but Colin hasn't found a good way of doing it.
ahh... I fell less stupid then ;)
I ended up looking at OBColumn and OBColumnPanel OBColumn subscribes to 5 OBAnnoucments especially OBSelectionChanged or OBSelectingNode... Anyway, I'll see later...
- also when displaying all methods, I'd like to color each list item
according to a category color. Is it feasible ? Can you point me where to look at ?
I think you should change what OBMethodNode>>label returns or something like this. I guess you can return a Text with colors.
Thanks, I'll have a look ----
Oh and last request, when OB is enabled by default, hitting the browse shortcut on a class name (in a worspace for instace) doens't work for me. The browser is opening with nothing selected. This is calling the following code wich reproduces for me the same problem (opens a browser with no class selected): OTToolset browse: WAComponent selector: nil.
Is it normal (maybe I don't have the last version) because browsing a class (alt+b) inside OB works... ?
I solved this by adding a test in the following method:
OBSystemBrowserAdaptor>>fullOnClass: aClass selector: aSelector aSelector ifNil: [ ^ OBSystemBrowser openOnClass: aClass]. ^ OBSystemBrowser openOnClass: aClass selector: aSelector
Last, I couldn't open a browser from the inspector/explorer (same pb - empty browser) I changed (I think here it's more a problem with the ToolSet integration):
StringHolder>>browseMethodFull "Create and schedule a full Browser and then select the current class and message."
| myClass | (myClass := self selectedClassOrMetaClass) ifNotNil: [ToolSet browse: myClass selector: self selectedMessageName.] "instead of .... Browser fullOnClass: myClass selector: self selectedMessageName "
I think that having a way to interpret meta graph would be the way to go. Right now, a meta graph can be interpreted using one single strategy.
As far as I remember, my fix goes in this direction.
Cheers, Alexandre
On 27 Jun 2007, at 14:04, Cédrick Béler wrote:
- In the system browser, I'd like to display all methods when
selecting a class - Alexandre Bergel posted a cs for that but I can't find it anymore and I can't do it by myself too. Does someone have this change set or can you tell me where to look at... What is the "action" done when selecting a class (probably an announcment related update...) ?
Everybody want this, but Colin hasn't found a good way of doing it.
ahh... I fell less stupid then ;)
I ended up looking at OBColumn and OBColumnPanel OBColumn subscribes to 5 OBAnnoucments especially OBSelectionChanged or OBSelectingNode... Anyway, I'll see later...
- also when displaying all methods, I'd like to color each list
item according to a category color. Is it feasible ? Can you point me where to look at ?
I think you should change what OBMethodNode>>label returns or something like this. I guess you can return a Text with colors.
Thanks, I'll have a look
Oh and last request, when OB is enabled by default, hitting the browse shortcut on a class name (in a worspace for instace) doens't work for me. The browser is opening with nothing selected. This is calling the following code wich reproduces for me the same problem (opens a browser with no class selected): OTToolset browse: WAComponent selector: nil. Is it normal (maybe I don't have the last version) because browsing a class (alt+b) inside OB works... ?
I solved this by adding a test in the following method:
OBSystemBrowserAdaptor>>fullOnClass: aClass selector: aSelector aSelector ifNil: [ ^ OBSystemBrowser openOnClass: aClass]. ^ OBSystemBrowser openOnClass: aClass selector: aSelector
Last, I couldn't open a browser from the inspector/explorer (same pb - empty browser) I changed (I think here it's more a problem with the ToolSet integration):
StringHolder>>browseMethodFull "Create and schedule a full Browser and then select the current class and message."
| myClass | (myClass := self selectedClassOrMetaClass) ifNotNil: [ToolSet browse: myClass selector: self selectedMessageName.] "instead of .... Browser fullOnClass: myClass selector: self selectedMessageName "
2007/6/27, Cédrick Béler cbeler@enit.fr:
Oh and last request, when OB is enabled by default, hitting the browse shortcut on a class name (in a worspace for instace) doens't work for me. The browser is opening with nothing selected. This is calling the following code wich reproduces for me the same problem (opens a browser with no class selected): OTToolset browse: WAComponent selector: nil.
Is it normal (maybe I don't have the last version) because browsing a class (alt+b) inside OB works... ?
I have the same problem. If you have a fix, please commit it to http://source.wiresong.ca/ob/
Damien Cassou a écrit :
2007/6/27, Cédrick Béler cbeler@enit.fr:
Oh and last request, when OB is enabled by default, hitting the browse shortcut on a class name (in a worspace for instace) doens't work for me. The browser is opening with nothing selected. This is calling the following code wich reproduces for me the same problem (opens a browser with no class selected): OTToolset browse: WAComponent selector: nil.
Is it normal (maybe I don't have the last version) because browsing a class (alt+b) inside OB works... ?
I have the same problem. If you have a fix, please commit it to http://source.wiresong.ca/ob/
I don't really know where to publish, so I made a fileout of the fixes. Of course, I'm not sure it's very good. Try it and tell me please (OBSystemBrowserAdaptor is the default browser).
The problem comes from 2 places.
First, when selecting a class in say a workspace, then press cmd+b, in debugging, we see that it calls OTToolset browse: Object selector: nil. Because of nil, which is not a selector, it opens an empty browser. And this is because in: OBColumnPanel>>selectAncestorsOf: aNode, ... current childAncestorOf: aNode becomes nil as the method node is nil... and therefore the path becomes nil... It's propably better to correct this method but to be quick, I changed: OBSystemBrowser>>openOnClass: aClass selector: aSelector to test if aSelector is nil... (see OBSystemBrowser class.st)
Second, in an object explorer, right click then browse on a node also gives an "empty" browser. Here it comes from: StringHolder>>browseMethodFull (*Tools). I changed: Browser fullOnClass: myClass selector: self selectedMessageName with: ToolSet browse: myClass selector: self selectedMessageName. (see StringHolder-browser.st)
Can you tell me if it's correct and where to publish the last fix?
Cédrick
'From Squeak3.9 of 7 November 2006 [latest update: #7067] on 27 June 2007 at 6:18:14 pm'!
!StringHolder methodsFor: '*Tools' stamp: 'cb 6/27/2007 18:18'! browseMethodFull "Create and schedule a full Browser and then select the current class and message."
| myClass | (myClass := self selectedClassOrMetaClass) ifNotNil: [ToolSet browse: myClass selector: self selectedMessageName.]! !
'From Squeak3.9 of 7 November 2006 [latest update: #7067] on 27 June 2007 at 6:41:42 pm'!
!OBSystemBrowser class methodsFor: 'opening' stamp: 'cb 6/27/2007 18:41'! openOnClass: aClass selector: aSelector aSelector ifNil: [^ (self onClass: aClass) open]. ^ (self onClass: aClass selector: aSelector) open! !
Well you were faster and more thorough than me. I was just returning to the thread to try to find out how to publish my fix:
'From Squeak3.10alpha of 30 March 2007 [latest update: #7119] on 27 June 2007 at 12:46:36 pm'! !OBSystemBrowserAdaptor class methodsFor: 'registry protocol' stamp: 'dmm 6/27/2007 12:35'!
fullOnClass: aClass selector: aSelector ^ aSelector isNil ifTrue: [OBSystemBrowser openOnClass: aClass] ifFalse: [OBSystemBrowser openOnClass: aClass selector: aSelector] ! !
I'm still learning how to publish.
On 6/27/07, Cédrick Béler cbeler@enit.fr wrote:
Damien Cassou a écrit :
2007/6/27, Cédrick Béler cbeler@enit.fr:
Oh and last request, when OB is enabled by default, hitting the browse shortcut on a class name (in a worspace for instace) doens't work for me. The browser is opening with nothing selected. This is calling the following code wich reproduces for me the same problem (opens a browser with no class selected): OTToolset browse: WAComponent selector: nil.
Is it normal (maybe I don't have the last version) because browsing a class (alt+b) inside OB works... ?
I have the same problem. If you have a fix, please commit it to http://source.wiresong.ca/ob/
I don't really know where to publish, so I made a fileout of the fixes. Of course, I'm not sure it's very good. Try it and tell me please (OBSystemBrowserAdaptor is the default browser).
The problem comes from 2 places.
First, when selecting a class in say a workspace, then press cmd+b, in debugging, we see that it calls OTToolset browse: Object selector: nil. Because of nil, which is not a selector, it opens an empty browser. And this is because in: OBColumnPanel>>selectAncestorsOf: aNode, ... current childAncestorOf: aNode becomes nil as the method node is nil... and therefore the path becomes nil... It's propably better to correct this method but to be quick, I changed: OBSystemBrowser>>openOnClass: aClass selector: aSelector to test if aSelector is nil... (see OBSystemBrowser class.st)
Second, in an object explorer, right click then browse on a node also gives an "empty" browser. Here it comes from: StringHolder>>browseMethodFull (*Tools). I changed: Browser fullOnClass: myClass selector: self selectedMessageName with: ToolSet browse: myClass selector: self selectedMessageName. (see StringHolder-browser.st)
Can you tell me if it's correct and where to publish the last fix?
Cédrick
'From Squeak3.9 of 7 November 2006 [latest update: #7067] on 27 June 2007 at 6:18:14 pm'!
!StringHolder methodsFor: '*Tools' stamp: 'cb 6/27/2007 18:18'! browseMethodFull "Create and schedule a full Browser and then select the current class and message."
| myClass | (myClass := self selectedClassOrMetaClass) ifNotNil: [ToolSet browse: myClass selector: self selectedMessageName.]! !
'From Squeak3.9 of 7 November 2006 [latest update: #7067] on 27 June 2007 at 6:41:42 pm'!
!OBSystemBrowser class methodsFor: 'opening' stamp: 'cb 6/27/2007 18:41'! openOnClass: aClass selector: aSelector aSelector ifNil: [^ (self onClass: aClass) open]. ^ (self onClass: aClass selector: aSelector) open! !
OK,
I threw away my code (whee) and loaded your change set. Worked.
I went to publish on Monticello. No user/password required. OK.
I loaded everything ahead of me. Reloaded Cédrick's changes. Still worked.
Went back to Monticello, picked OBStandard and picked Save.
Asked for my initials. Put in dmm.
Put in this description:
Fix to allow browseIt from a workspace to go to the correct class in OB. Before it merely opened OB. Browse it within OB was working before. This is Cédrick Béler cbeler@enit.fr changes. David Mitchell tested and they worked in his image.
Looks like it worked.
Now tell me if I did anything wrong. ;-)
On 6/27/07, David Mitchell david.mitchell@gmail.com wrote:
Well you were faster and more thorough than me. I was just returning to the thread to try to find out how to publish my fix:
'From Squeak3.10alpha of 30 March 2007 [latest update: #7119] on 27 June 2007 at 12:46:36 pm'! !OBSystemBrowserAdaptor class methodsFor: 'registry protocol' stamp: 'dmm 6/27/2007 12:35'!
fullOnClass: aClass selector: aSelector ^ aSelector isNil ifTrue: [OBSystemBrowser openOnClass: aClass] ifFalse: [OBSystemBrowser openOnClass: aClass selector: aSelector] ! !
I'm still learning how to publish.
On 6/27/07, Cédrick Béler cbeler@enit.fr wrote:
Damien Cassou a écrit :
2007/6/27, Cédrick Béler cbeler@enit.fr:
Oh and last request, when OB is enabled by default, hitting the browse shortcut on a class name (in a worspace for instace) doens't work for me. The browser is opening with nothing selected. This is calling the following code wich reproduces for me the same problem (opens a browser with no class selected): OTToolset browse: WAComponent selector: nil.
Is it normal (maybe I don't have the last version) because browsing a class (alt+b) inside OB works... ?
I have the same problem. If you have a fix, please commit it to http://source.wiresong.ca/ob/
I don't really know where to publish, so I made a fileout of the fixes. Of course, I'm not sure it's very good. Try it and tell me please (OBSystemBrowserAdaptor is the default browser).
The problem comes from 2 places.
First, when selecting a class in say a workspace, then press cmd+b, in debugging, we see that it calls OTToolset browse: Object selector: nil. Because of nil, which is not a selector, it opens an empty browser. And this is because in: OBColumnPanel>>selectAncestorsOf: aNode, ... current childAncestorOf: aNode becomes nil as the method node is nil... and therefore the path becomes nil... It's propably better to correct this method but to be quick, I changed: OBSystemBrowser>>openOnClass: aClass selector: aSelector to test if aSelector is nil... (see OBSystemBrowser class.st)
Second, in an object explorer, right click then browse on a node also gives an "empty" browser. Here it comes from: StringHolder>>browseMethodFull (*Tools). I changed: Browser fullOnClass: myClass selector: self selectedMessageName with: ToolSet browse: myClass selector: self selectedMessageName. (see StringHolder-browser.st)
Can you tell me if it's correct and where to publish the last fix?
Cédrick
'From Squeak3.9 of 7 November 2006 [latest update: #7067] on 27 June 2007 at 6:18:14 pm'!
!StringHolder methodsFor: '*Tools' stamp: 'cb 6/27/2007 18:18'! browseMethodFull "Create and schedule a full Browser and then select the current class and message."
| myClass | (myClass := self selectedClassOrMetaClass) ifNotNil: [ToolSet browse: myClass selector: self selectedMessageName.]! !
'From Squeak3.9 of 7 November 2006 [latest update: #7067] on 27 June 2007 at 6:41:42 pm'!
!OBSystemBrowser class methodsFor: 'opening' stamp: 'cb 6/27/2007 18:41'! openOnClass: aClass selector: aSelector aSelector ifNil: [^ (self onClass: aClass) open]. ^ (self onClass: aClass selector: aSelector) open! !
Note that I only published your change to OBSystemBrowser, I haven't found the home for StringHolder (not sure if that is an open Monticello repository for that). May need to open a bug on Mantis yet!
On 6/27/07, David Mitchell david.mitchell@gmail.com wrote:
OK,
I threw away my code (whee) and loaded your change set. Worked.
I went to publish on Monticello. No user/password required. OK.
I loaded everything ahead of me. Reloaded Cédrick's changes. Still worked.
Went back to Monticello, picked OBStandard and picked Save.
Asked for my initials. Put in dmm.
Put in this description:
Fix to allow browseIt from a workspace to go to the correct class in OB. Before it merely opened OB. Browse it within OB was working before. This is Cédrick Béler cbeler@enit.fr changes. David Mitchell tested and they worked in his image.
Looks like it worked.
Now tell me if I did anything wrong. ;-)
On 6/27/07, David Mitchell david.mitchell@gmail.com wrote:
Well you were faster and more thorough than me. I was just returning to the thread to try to find out how to publish my fix:
'From Squeak3.10alpha of 30 March 2007 [latest update: #7119] on 27 June 2007 at 12:46:36 pm'! !OBSystemBrowserAdaptor class methodsFor: 'registry protocol' stamp: 'dmm 6/27/2007 12:35'!
fullOnClass: aClass selector: aSelector ^ aSelector isNil ifTrue: [OBSystemBrowser openOnClass: aClass] ifFalse: [OBSystemBrowser openOnClass: aClass selector: aSelector] ! !
I'm still learning how to publish.
On 6/27/07, Cédrick Béler cbeler@enit.fr wrote:
Damien Cassou a écrit :
2007/6/27, Cédrick Béler cbeler@enit.fr:
Oh and last request, when OB is enabled by default, hitting the browse shortcut on a class name (in a worspace for instace) doens't work for me. The browser is opening with nothing selected. This is calling the following code wich reproduces for me the same problem (opens a browser with no class selected): OTToolset browse: WAComponent selector: nil.
Is it normal (maybe I don't have the last version) because browsing a class (alt+b) inside OB works... ?
I have the same problem. If you have a fix, please commit it to http://source.wiresong.ca/ob/
I don't really know where to publish, so I made a fileout of the fixes. Of course, I'm not sure it's very good. Try it and tell me please (OBSystemBrowserAdaptor is the default browser).
The problem comes from 2 places.
First, when selecting a class in say a workspace, then press cmd+b, in debugging, we see that it calls OTToolset browse: Object selector: nil. Because of nil, which is not a selector, it opens an empty browser. And this is because in: OBColumnPanel>>selectAncestorsOf: aNode, ... current childAncestorOf: aNode becomes nil as the method node is nil... and therefore the path becomes nil... It's propably better to correct this method but to be quick, I changed: OBSystemBrowser>>openOnClass: aClass selector: aSelector to test if aSelector is nil... (see OBSystemBrowser class.st)
Second, in an object explorer, right click then browse on a node also gives an "empty" browser. Here it comes from: StringHolder>>browseMethodFull (*Tools). I changed: Browser fullOnClass: myClass selector: self selectedMessageName with: ToolSet browse: myClass selector: self selectedMessageName. (see StringHolder-browser.st)
Can you tell me if it's correct and where to publish the last fix?
Cédrick
'From Squeak3.9 of 7 November 2006 [latest update: #7067] on 27 June 2007 at 6:18:14 pm'!
!StringHolder methodsFor: '*Tools' stamp: 'cb 6/27/2007 18:18'! browseMethodFull "Create and schedule a full Browser and then select the current class and message."
| myClass | (myClass := self selectedClassOrMetaClass) ifNotNil: [ToolSet browse: myClass selector: self selectedMessageName.]! !
'From Squeak3.9 of 7 November 2006 [latest update: #7067] on 27 June 2007 at 6:41:42 pm'!
!OBSystemBrowser class methodsFor: 'opening' stamp: 'cb 6/27/2007 18:41'! openOnClass: aClass selector: aSelector aSelector ifNil: [^ (self onClass: aClass) open]. ^ (self onClass: aClass selector: aSelector) open! !
David Mitchell a écrit :
Note that I only published your change to OBSystemBrowser, I haven't found the home for StringHolder (not sure if that is an open Monticello repository for that). May need to open a bug on Mantis yet!
Thanks David for testing and publishing...
I think the StringHolder method comes from the ToolSet package... but my image has too many changes with Tools-al.52.mcz (squeak-dev.123) wich was loaded so I can't publish. I don't know what to do.
Cédrick
squeak-dev@lists.squeakfoundation.org