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 |
> > > 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...) ? 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... > > 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 reply to this post by cbeler
2007/6/27, Cédrick Béler <[hidden email]>:
> 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...) ? Everybody want this, but Colin hasn't found a good way of doing it. > 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 ? I think you should change what OBMethodNode>>label returns or something like this. I guess you can return a Text with colors. -- Damien Cassou |
> Everybody want this, but Colin hasn't found a good way of doing it.
I bet OBFilters could be a solution to this. > > 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 ? > > 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 -- Lukas Renggli http://www.lukas-renggli.ch |
In reply to this post by Damien Cassou-3
>> 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...) ? > > > 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... > >> 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 ? > > > 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: > >>> 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...) ? >> >> >> 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... >> >>> 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 ? >> >> >> 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 " > > -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. |
In reply to this post by cbeler
2007/6/27, Cédrick Béler <[hidden email]>:
> 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 |
Damien Cassou a écrit :
> 2007/6/27, Cédrick Béler <[hidden email]>: >> 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/ > (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 <[hidden email]> wrote: > Damien Cassou a écrit : > > 2007/6/27, Cédrick Béler <[hidden email]>: > >> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> wrote: > > Damien Cassou a écrit : > > > 2007/6/27, Cédrick Béler <[hidden email]>: > > >> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> wrote: > > > Damien Cassou a écrit : > > > > 2007/6/27, Cédrick Béler <[hidden email]>: > > > >> 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 |
Free forum by Nabble | Edit this page |