Set programatically the selection for a fastTreeTable

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Set programatically the selection for a fastTreeTable

Arturo Zambrano
Hi all,
 I'm trying to do what subject says. I tried something like that 
(in the example I'm trying to get Abort class selected)
:
| browser |
browser := GLMTabulator new.
browser row: #Example.
browser transmit
to: #Example;
andShow: [ :a | a fastTreeTable  
    column: 'Class Name' evaluated:[:clazz| clazz name];
                children:[:clazz| clazz subclasses]; 
allExpanded;
"this has no effect" strongSelection:Abort;
"this has no effect" selection: Abort
browser openOn: {Object}

 Could you please point me what I'm missing?

  TIA
Arturo



Reply | Threaded
Open this post in threaded view
|

Re: Set programatically the selection for a fastTreeTable

Andrei Chis
Hi Arturo,

Normally what you want should be achieved with a transmission:

 browser transmit 
fromOutsideEntityPort;
to: #Example port: #selection;
transformed: #first.

Just I see that doesn't work as expected with #fastTreeTable.

The closest thing that looks similar to what you want is:

| browser |
browser := GLMTabulator new.
browser row: #Example.
browser transmit
to: #Example;
andShow: [ :a | 
a table  
  column: 'Class Name' evaluated:[:clazz| clazz name];
  children:[:clazz| clazz subclasses]; 
  shouldRootsExpand: true ].
browser transmit 
fromOutsideEntityPort;
to: #Example port: #selection;
transformed: [ Abort ].
browser openOn: {Object}.

Cheers,
Andrei



On Wed, Oct 3, 2018 at 9:53 PM Arturo Zambrano <[hidden email]> wrote:
Hi all,
 I'm trying to do what subject says. I tried something like that 
(in the example I'm trying to get Abort class selected)
:
| browser |
browser := GLMTabulator new.
browser row: #Example.
browser transmit
to: #Example;
andShow: [ :a | a fastTreeTable  
    column: 'Class Name' evaluated:[:clazz| clazz name];
                children:[:clazz| clazz subclasses]; 
allExpanded;
"this has no effect" strongSelection:Abort;
"this has no effect" selection: Abort
browser openOn: {Object}

 Could you please point me what I'm missing?

  TIA
Arturo



Reply | Threaded
Open this post in threaded view
|

Re: Set programatically the selection for a fastTreeTable

Arturo Zambrano
Thanks Andrei!

 I tried:

 browser transmit
to: #Example port: #selection;
transformed: [ Abort ].

using also #strongSelection and #rawSelection,but I missed # fromOutsideEntityPort   :)


So, I have two additional questions: When #selection: and #strongSelection: can be used ?

Also, what is the difference among selection strongSelection and rawSelection  ports ? I saw some transmission example
using #strongSelection port, and some discussion in the mailing list where #rawSelection port is mentioned.

Thanks



On Wed, Oct 3, 2018 at 5:31 PM Andrei Chis <[hidden email]> wrote:
Hi Arturo,

Normally what you want should be achieved with a transmission:

 browser transmit 
fromOutsideEntityPort;
to: #Example port: #selection;
transformed: #first.

Just I see that doesn't work as expected with #fastTreeTable.

The closest thing that looks similar to what you want is:

| browser |
browser := GLMTabulator new.
browser row: #Example.
browser transmit
to: #Example;
andShow: [ :a | 
a table  
  column: 'Class Name' evaluated:[:clazz| clazz name];
  children:[:clazz| clazz subclasses]; 
  shouldRootsExpand: true ].
browser transmit 
fromOutsideEntityPort;
to: #Example port: #selection;
transformed: [ Abort ].
browser openOn: {Object}.

Cheers,
Andrei



On Wed, Oct 3, 2018 at 9:53 PM Arturo Zambrano <[hidden email]> wrote:
Hi all,
 I'm trying to do what subject says. I tried something like that 
(in the example I'm trying to get Abort class selected)
:
| browser |
browser := GLMTabulator new.
browser row: #Example.
browser transmit
to: #Example;
andShow: [ :a | a fastTreeTable  
    column: 'Class Name' evaluated:[:clazz| clazz name];
                children:[:clazz| clazz subclasses]; 
allExpanded;
"this has no effect" strongSelection:Abort;
"this has no effect" selection: Abort
browser openOn: {Object}

 Could you please point me what I'm missing?

  TIA
Arturo



Reply | Threaded
Open this post in threaded view
|

Re: Set programatically the selection for a fastTreeTable

Andrei Chis


On Thu, Oct 4, 2018 at 3:46 AM Arturo Zambrano <[hidden email]> wrote:
Thanks Andrei!

 I tried:

 browser transmit
to: #Example port: #selection;
transformed: [ Abort ].

using also #strongSelection and #rawSelection,but I missed # fromOutsideEntityPort   :)


So, I have two additional questions: When #selection: and #strongSelection: can be used ?

Strong selection is in list/tree/table presentations associated with double clicking on an element. So it's a "stronger" selection than just clicking once.
 

Also, what is the difference among selection strongSelection and rawSelection  ports ? I saw some transmission example
using #strongSelection port, and some discussion in the mailing list where #rawSelection port is mentioned.

There is no connection between #strongSelection and #rawSelection ports. Only between #selection and #rawSelection.
#rawSelection will hold the exact value that was selected. Before putting this value in the #selection port a transformation
can be applied on it using GLMBasicPresentation>>#send:. Have a look for example at Date>>gtInspectorDetailsIn:. The table 
displays a list of associations, but on selection we want to navigate to the value in that association. #rawSelection will hold the 
association and #selection the value in that association.

Cheers,
Andrei

Thanks



On Wed, Oct 3, 2018 at 5:31 PM Andrei Chis <[hidden email]> wrote:
Hi Arturo,

Normally what you want should be achieved with a transmission:

 browser transmit 
fromOutsideEntityPort;
to: #Example port: #selection;
transformed: #first.

Just I see that doesn't work as expected with #fastTreeTable.

The closest thing that looks similar to what you want is:

| browser |
browser := GLMTabulator new.
browser row: #Example.
browser transmit
to: #Example;
andShow: [ :a | 
a table  
  column: 'Class Name' evaluated:[:clazz| clazz name];
  children:[:clazz| clazz subclasses]; 
  shouldRootsExpand: true ].
browser transmit 
fromOutsideEntityPort;
to: #Example port: #selection;
transformed: [ Abort ].
browser openOn: {Object}.

Cheers,
Andrei



On Wed, Oct 3, 2018 at 9:53 PM Arturo Zambrano <[hidden email]> wrote:
Hi all,
 I'm trying to do what subject says. I tried something like that 
(in the example I'm trying to get Abort class selected)
:
| browser |
browser := GLMTabulator new.
browser row: #Example.
browser transmit
to: #Example;
andShow: [ :a | a fastTreeTable  
    column: 'Class Name' evaluated:[:clazz| clazz name];
                children:[:clazz| clazz subclasses]; 
allExpanded;
"this has no effect" strongSelection:Abort;
"this has no effect" selection: Abort
browser openOn: {Object}

 Could you please point me what I'm missing?

  TIA
Arturo