[Glamour] web-render a tabulator inside a html div

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

[Glamour] web-render a tabulator inside a html div

cdelaunay
Hello.

I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
In the 'renderOn:' method of my SGLDashboardPresenter , if I write :

                       html div
with: [
self render: (self firstColumnPanesFrom: self browser) last on: html
]
].

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [Glamour] web-render a tabulator inside a html div

cdelaunay
oups,

Hello.

I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
In the 'renderOn:' method of my SGLDashboardPresenter , if I write :

                       html div
       with: [
    self render: aTabulatorPresentation last on: html
]
].

the tabulator is not well rendered (the different panes are put one over the other). Whereas if I write

                     self render: aTabulatorPresentation last on: html

I think it's ok. 

2011/7/13 Cyrille Delaunay <[hidden email]>
Hello.

I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
In the 'renderOn:' method of my SGLDashboardPresenter , if I write :

                       html div
with: [
self render: (self firstColumnPanesFrom: self browser) last on: html
]
].


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [Glamour] web-render a tabulator inside a html div

Tudor Girba-2
Hi,

We know that the Seaside rendering is broken in Pharo 1.3 / Seaside. The main problem seems to be that when we get an announcement from the Glamour model in the Seaside renderer, the renderer somehow cannot find the Seaside application context.

I do not know why. Andrei said that he will try to look into this when he has time.

Cheers,
Doru


On 13 Jul 2011, at 15:42, Cyrille Delaunay wrote:

> oups,
>
> Hello.
>
> I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
>
>                        html div
>       with: [
>    self render: aTabulatorPresentation last on: html
> ]
> ].
>
> the tabulator is not well rendered (the different panes are put one over the other). Whereas if I write
>
>                      self render: aTabulatorPresentation last on: html
>
> I think it's ok.
>
> 2011/7/13 Cyrille Delaunay <[hidden email]>
> Hello.
>
> I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
>
>                        html div
> with: [
> self render: (self firstColumnPanesFrom: self browser) last on: html
> ]
> ].
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Value is always contextual."




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [Glamour] web-render a tabulator inside a html div

cdelaunay
Indeed I know that and I 'm working in an old image where things work correctly:) My question is not related to that but about how I should render the browser using seaside  , if there use some tric to use. Should I render it in a div with a specific class ('glm-something') or using a specific js script ?

2011/7/13 Tudor Girba <[hidden email]>
Hi,

We know that the Seaside rendering is broken in Pharo 1.3 / Seaside. The main problem seems to be that when we get an announcement from the Glamour model in the Seaside renderer, the renderer somehow cannot find the Seaside application context.

I do not know why. Andrei said that he will try to look into this when he has time.

Cheers,
Doru


On 13 Jul 2011, at 15:42, Cyrille Delaunay wrote:

> oups,
>
> Hello.
>
> I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
>
>                        html div
>                              with: [
>                                   self render: aTabulatorPresentation last on: html
>                                       ]
>                       ].
>
> the tabulator is not well rendered (the different panes are put one over the other). Whereas if I write
>
>                      self render: aTabulatorPresentation last on: html
>
> I think it's ok.
>
> 2011/7/13 Cyrille Delaunay <[hidden email]>
> Hello.
>
> I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
>
>                        html div
>                       with: [
>                                                       self render: (self firstColumnPanesFrom: self browser) last on: html
>                                                       ]
>                                               ].
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Value is always contextual."




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [Glamour] web-render a tabulator inside a html div

Tudor Girba-2
I cannot answer from on top of my head. But, try displaying a complex browser and take a look at the Examples could be the MetaBrowser or the one for basic examples.

Cheers,
Doru


On 14 Jul 2011, at 14:21, Cyrille Delaunay wrote:

> Indeed I know that and I 'm working in an old image where things work correctly:) My question is not related to that but about how I should render the browser using seaside  , if there use some tric to use. Should I render it in a div with a specific class ('glm-something') or using a specific js script ?
>
> 2011/7/13 Tudor Girba <[hidden email]>
> Hi,
>
> We know that the Seaside rendering is broken in Pharo 1.3 / Seaside. The main problem seems to be that when we get an announcement from the Glamour model in the Seaside renderer, the renderer somehow cannot find the Seaside application context.
>
> I do not know why. Andrei said that he will try to look into this when he has time.
>
> Cheers,
> Doru
>
>
> On 13 Jul 2011, at 15:42, Cyrille Delaunay wrote:
>
> > oups,
> >
> > Hello.
> >
> > I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> > In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
> >
> >                        html div
> >                              with: [
> >                                   self render: aTabulatorPresentation last on: html
> >                                       ]
> >                       ].
> >
> > the tabulator is not well rendered (the different panes are put one over the other). Whereas if I write
> >
> >                      self render: aTabulatorPresentation last on: html
> >
> > I think it's ok.
> >
> > 2011/7/13 Cyrille Delaunay <[hidden email]>
> > Hello.
> >
> > I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> > In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
> >
> >                        html div
> >                       with: [
> >                                                       self render: (self firstColumnPanesFrom: self browser) last on: html
> >                                                       ]
> >                                               ].
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "Value is always contextual."
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Not knowing how to do something is not an argument for how it cannot be done."


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [Glamour] web-render a tabulator inside a html div

Andrei Chis
Hi Cyrille,


In Glamour-Seaside the layout is done using jQuery and each presentation/browser should usually define a jQuery widget. 

The tabulator(and all the widgets that can contain other widgets)  resizes the content of its children and also notifies them by sending an event.
When a child receives a resize event it can adjust its size and propagate the event to its children(if any).

In you examples the tabulator will directly resize the content of the first div. In the second case however, depending on the css, the inner div may not be resized properly. A possible solution may be to create a jQuery widget, bind to the resize event and set the dimensions of the inner div accordingly. As an example you can look at SGLJsLibrary>>sglStackJs or SGLJsLibrary >>sglFinderJs which do this. If you don't want to use jQuery you may be able to use just css (as a very simple example you can look at SGLMondrianPresenter).

I hope this helps you. If not let me know.

Andrei



On Thu, Jul 14, 2011 at 3:33 PM, Tudor Girba <[hidden email]> wrote:
I cannot answer from on top of my head. But, try displaying a complex browser and take a look at the Examples could be the MetaBrowser or the one for basic examples.

Cheers,
Doru


On 14 Jul 2011, at 14:21, Cyrille Delaunay wrote:

> Indeed I know that and I 'm working in an old image where things work correctly:) My question is not related to that but about how I should render the browser using seaside  , if there use some tric to use. Should I render it in a div with a specific class ('glm-something') or using a specific js script ?
>
> 2011/7/13 Tudor Girba <[hidden email]>
> Hi,
>
> We know that the Seaside rendering is broken in Pharo 1.3 / Seaside. The main problem seems to be that when we get an announcement from the Glamour model in the Seaside renderer, the renderer somehow cannot find the Seaside application context.
>
> I do not know why. Andrei said that he will try to look into this when he has time.
>
> Cheers,
> Doru
>
>
> On 13 Jul 2011, at 15:42, Cyrille Delaunay wrote:
>
> > oups,
> >
> > Hello.
> >
> > I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> > In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
> >
> >                        html div
> >                              with: [
> >                                   self render: aTabulatorPresentation last on: html
> >                                       ]
> >                       ].
> >
> > the tabulator is not well rendered (the different panes are put one over the other). Whereas if I write
> >
> >                      self render: aTabulatorPresentation last on: html
> >
> > I think it's ok.
> >
> > 2011/7/13 Cyrille Delaunay <[hidden email]>
> > Hello.
> >
> > I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> > In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
> >
> >                        html div
> >                       with: [
> >                                                       self render: (self firstColumnPanesFrom: self browser) last on: html
> >                                                       ]
> >                                               ].
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "Value is always contextual."
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Not knowing how to do something is not an argument for how it cannot be done."


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [Glamour] web-render a tabulator inside a html div

Stéphane Ducasse
Thanks for your example andrei

Stef

On Jul 14, 2011, at 5:09 PM, Andrei Vasile Chis wrote:

> Hi Cyrille,
>
>
> In Glamour-Seaside the layout is done using jQuery and each presentation/browser should usually define a jQuery widget.
>
> The tabulator(and all the widgets that can contain other widgets)  resizes the content of its children and also notifies them by sending an event.
> When a child receives a resize event it can adjust its size and propagate the event to its children(if any).
>
> In you examples the tabulator will directly resize the content of the first div. In the second case however, depending on the css, the inner div may not be resized properly. A possible solution may be to create a jQuery widget, bind to the resize event and set the dimensions of the inner div accordingly. As an example you can look at SGLJsLibrary>>sglStackJs or SGLJsLibrary >>sglFinderJs which do this. If you don't want to use jQuery you may be able to use just css (as a very simple example you can look at SGLMondrianPresenter).
>
> I hope this helps you. If not let me know.
>
> Andrei
>
>
>
> On Thu, Jul 14, 2011 at 3:33 PM, Tudor Girba <[hidden email]> wrote:
> I cannot answer from on top of my head. But, try displaying a complex browser and take a look at the Examples could be the MetaBrowser or the one for basic examples.
>
> Cheers,
> Doru
>
>
> On 14 Jul 2011, at 14:21, Cyrille Delaunay wrote:
>
> > Indeed I know that and I 'm working in an old image where things work correctly:) My question is not related to that but about how I should render the browser using seaside  , if there use some tric to use. Should I render it in a div with a specific class ('glm-something') or using a specific js script ?
> >
> > 2011/7/13 Tudor Girba <[hidden email]>
> > Hi,
> >
> > We know that the Seaside rendering is broken in Pharo 1.3 / Seaside. The main problem seems to be that when we get an announcement from the Glamour model in the Seaside renderer, the renderer somehow cannot find the Seaside application context.
> >
> > I do not know why. Andrei said that he will try to look into this when he has time.
> >
> > Cheers,
> > Doru
> >
> >
> > On 13 Jul 2011, at 15:42, Cyrille Delaunay wrote:
> >
> > > oups,
> > >
> > > Hello.
> > >
> > > I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> > > In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
> > >
> > >                        html div
> > >                              with: [
> > >                                   self render: aTabulatorPresentation last on: html
> > >                                       ]
> > >                       ].
> > >
> > > the tabulator is not well rendered (the different panes are put one over the other). Whereas if I write
> > >
> > >                      self render: aTabulatorPresentation last on: html
> > >
> > > I think it's ok.
> > >
> > > 2011/7/13 Cyrille Delaunay <[hidden email]>
> > > Hello.
> > >
> > > I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> > > In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
> > >
> > >                        html div
> > >                       with: [
> > >                                                       self render: (self firstColumnPanesFrom: self browser) last on: html
> > >                                                       ]
> > >                                               ].
> > >
> > > _______________________________________________
> > > Moose-dev mailing list
> > > [hidden email]
> > > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> > --
> > www.tudorgirba.com
> >
> > "Value is always contextual."
> >
> >
> >
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "Not knowing how to do something is not an argument for how it cannot be done."
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [Glamour] web-render a tabulator inside a html div

cdelaunay
Yes thanks andrei, it helps me :)
I played a bit with some exist script. Something that started to looks good was :

     html div
  with: [
                html div
                     script: html jQuery new glamourResize ;
                     with: [
                          self render: aTabulatorPresentation on: html
]
              ].

With this script , I guess the 'inner' div is resized to display well the tabulator inside the bounds of the 'root' div. 
The result is good at first.

But the tabulator does not resize when I change the size of my web-browser. 
Ideally what would like is to always fill the horizontal space of my web-browser. For the vertical size, do not adapt but provide a scroll bar.
Maybe here I have to write new scripts that do that ?
In fact what would work is to perform a 'glamourResize' each time we modify root-div size (and not only one time when opening the page) (?). 

2011/7/14 Stéphane Ducasse <[hidden email]>
Thanks for your example andrei

Stef

On Jul 14, 2011, at 5:09 PM, Andrei Vasile Chis wrote:

> Hi Cyrille,
>
>
> In Glamour-Seaside the layout is done using jQuery and each presentation/browser should usually define a jQuery widget.
>
> The tabulator(and all the widgets that can contain other widgets)  resizes the content of its children and also notifies them by sending an event.
> When a child receives a resize event it can adjust its size and propagate the event to its children(if any).
>
> In you examples the tabulator will directly resize the content of the first div. In the second case however, depending on the css, the inner div may not be resized properly. A possible solution may be to create a jQuery widget, bind to the resize event and set the dimensions of the inner div accordingly. As an example you can look at SGLJsLibrary>>sglStackJs or SGLJsLibrary >>sglFinderJs which do this. If you don't want to use jQuery you may be able to use just css (as a very simple example you can look at SGLMondrianPresenter).
>
> I hope this helps you. If not let me know.
>
> Andrei
>
>
>
> On Thu, Jul 14, 2011 at 3:33 PM, Tudor Girba <[hidden email]> wrote:
> I cannot answer from on top of my head. But, try displaying a complex browser and take a look at the Examples could be the MetaBrowser or the one for basic examples.
>
> Cheers,
> Doru
>
>
> On 14 Jul 2011, at 14:21, Cyrille Delaunay wrote:
>
> > Indeed I know that and I 'm working in an old image where things work correctly:) My question is not related to that but about how I should render the browser using seaside  , if there use some tric to use. Should I render it in a div with a specific class ('glm-something') or using a specific js script ?
> >
> > 2011/7/13 Tudor Girba <[hidden email]>
> > Hi,
> >
> > We know that the Seaside rendering is broken in Pharo 1.3 / Seaside. The main problem seems to be that when we get an announcement from the Glamour model in the Seaside renderer, the renderer somehow cannot find the Seaside application context.
> >
> > I do not know why. Andrei said that he will try to look into this when he has time.
> >
> > Cheers,
> > Doru
> >
> >
> > On 13 Jul 2011, at 15:42, Cyrille Delaunay wrote:
> >
> > > oups,
> > >
> > > Hello.
> > >
> > > I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> > > In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
> > >
> > >                        html div
> > >                              with: [
> > >                                   self render: aTabulatorPresentation last on: html
> > >                                       ]
> > >                       ].
> > >
> > > the tabulator is not well rendered (the different panes are put one over the other). Whereas if I write
> > >
> > >                      self render: aTabulatorPresentation last on: html
> > >
> > > I think it's ok.
> > >
> > > 2011/7/13 Cyrille Delaunay <[hidden email]>
> > > Hello.
> > >
> > > I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> > > In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
> > >
> > >                        html div
> > >                       with: [
> > >                                                       self render: (self firstColumnPanesFrom: self browser) last on: html
> > >                                                       ]
> > >                                               ].
> > >
> > > _______________________________________________
> > > Moose-dev mailing list
> > > [hidden email]
> > > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> > --
> > www.tudorgirba.com
> >
> > "Value is always contextual."
> >
> >
> >
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "Not knowing how to do something is not an argument for how it cannot be done."
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [Glamour] web-render a tabulator inside a html div

Andrei Chis

Each time the window is resized the first div is notified. To catch this event you should create a new jQuery plugin like this:


( function($) {

$.widget("ui.sglDashboard", {

_create: function() {

var that = this;

this._setChildrenDimensions();

this.element.bind("resize", function(){

that._setChildrenDimensions();

});

},


_setChildrenDimensions: function() {

}

});

})(jQuery);


Then bind this plugin with the first div:


 html div

script:  html jQuery new glamourDashboard ;

         with: [

                html div

                     script:  html jQuery new glamourResize ;

                     with: [

                          self render: aTabulatorPresentation on: html

      ]

              ].


In the function _setChildrenDimensions you should set a proper dimension to the inner div, and notify it(you can use $.glamour.setElementDimensions).  For an example you can look at the stack renderer. 


Regarding the vertical scroll bars it may be difficult to add, as at the moment you don't have a way in which to ask a presentation for its size. It may be possible to use CSS to achieve this, but it will not work all the times, especially if the dashboard contains tabbed presentation which use ajax to load their content. 


Also in the current implementation the parent widget determines the available space  in which the children widgets should display themselves, and there is no mechanism for a child widget to tell its parent widget it need more space.



Andrei



On Mon, Jul 18, 2011 at 3:02 PM, Cyrille Delaunay <[hidden email]> wrote:
Yes thanks andrei, it helps me :)
I played a bit with some exist script. Something that started to looks good was :

     html div
  with: [
                html div
                     script: html jQuery new glamourResize ;
                     with: [
                          self render: aTabulatorPresentation on: html
]
              ].

With this script , I guess the 'inner' div is resized to display well the tabulator inside the bounds of the 'root' div. 
The result is good at first.

But the tabulator does not resize when I change the size of my web-browser. 
Ideally what would like is to always fill the horizontal space of my web-browser. For the vertical size, do not adapt but provide a scroll bar.
Maybe here I have to write new scripts that do that ?
In fact what would work is to perform a 'glamourResize' each time we modify root-div size (and not only one time when opening the page) (?). 

2011/7/14 Stéphane Ducasse <[hidden email]>
Thanks for your example andrei

Stef

On Jul 14, 2011, at 5:09 PM, Andrei Vasile Chis wrote:

> Hi Cyrille,
>
>
> In Glamour-Seaside the layout is done using jQuery and each presentation/browser should usually define a jQuery widget.
>
> The tabulator(and all the widgets that can contain other widgets)  resizes the content of its children and also notifies them by sending an event.
> When a child receives a resize event it can adjust its size and propagate the event to its children(if any).
>
> In you examples the tabulator will directly resize the content of the first div. In the second case however, depending on the css, the inner div may not be resized properly. A possible solution may be to create a jQuery widget, bind to the resize event and set the dimensions of the inner div accordingly. As an example you can look at SGLJsLibrary>>sglStackJs or SGLJsLibrary >>sglFinderJs which do this. If you don't want to use jQuery you may be able to use just css (as a very simple example you can look at SGLMondrianPresenter).
>
> I hope this helps you. If not let me know.
>
> Andrei
>
>
>
> On Thu, Jul 14, 2011 at 3:33 PM, Tudor Girba <[hidden email]> wrote:
> I cannot answer from on top of my head. But, try displaying a complex browser and take a look at the Examples could be the MetaBrowser or the one for basic examples.
>
> Cheers,
> Doru
>
>
> On 14 Jul 2011, at 14:21, Cyrille Delaunay wrote:
>
> > Indeed I know that and I 'm working in an old image where things work correctly:) My question is not related to that but about how I should render the browser using seaside  , if there use some tric to use. Should I render it in a div with a specific class ('glm-something') or using a specific js script ?
> >
> > 2011/7/13 Tudor Girba <[hidden email]>
> > Hi,
> >
> > We know that the Seaside rendering is broken in Pharo 1.3 / Seaside. The main problem seems to be that when we get an announcement from the Glamour model in the Seaside renderer, the renderer somehow cannot find the Seaside application context.
> >
> > I do not know why. Andrei said that he will try to look into this when he has time.
> >
> > Cheers,
> > Doru
> >
> >
> > On 13 Jul 2011, at 15:42, Cyrille Delaunay wrote:
> >
> > > oups,
> > >
> > > Hello.
> > >
> > > I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> > > In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
> > >
> > >                        html div
> > >                              with: [
> > >                                   self render: aTabulatorPresentation last on: html
> > >                                       ]
> > >                       ].
> > >
> > > the tabulator is not well rendered (the different panes are put one over the other). Whereas if I write
> > >
> > >                      self render: aTabulatorPresentation last on: html
> > >
> > > I think it's ok.
> > >
> > > 2011/7/13 Cyrille Delaunay <[hidden email]>
> > > Hello.
> > >
> > > I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> > > In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
> > >
> > >                        html div
> > >                       with: [
> > >                                                       self render: (self firstColumnPanesFrom: self browser) last on: html
> > >                                                       ]
> > >                                               ].
> > >
> > > _______________________________________________
> > > Moose-dev mailing list
> > > [hidden email]
> > > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> > --
> > www.tudorgirba.com
> >
> > "Value is always contextual."
> >
> >
> >
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "Not knowing how to do something is not an argument for how it cannot be done."
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [Glamour] web-render a tabulator inside a html div

cdelaunay
Ok thanks a lot andrei , I will check that ;)

2011/7/18 Andrei Vasile Chis <[hidden email]>

Each time the window is resized the first div is notified. To catch this event you should create a new jQuery plugin like this:


( function($) {

$.widget("ui.sglDashboard", {

_create: function() {

var that = this;

this._setChildrenDimensions();

this.element.bind("resize", function(){

that._setChildrenDimensions();

});

},


_setChildrenDimensions: function() {

}

});

})(jQuery);


Then bind this plugin with the first div:


 html div

script:  html jQuery new glamourDashboard ;

         with: [

                html div

                     script:  html jQuery new glamourResize ;

                     with: [

                          self render: aTabulatorPresentation on: html

      ]

              ].


In the function _setChildrenDimensions you should set a proper dimension to the inner div, and notify it(you can use $.glamour.setElementDimensions).  For an example you can look at the stack renderer. 


Regarding the vertical scroll bars it may be difficult to add, as at the moment you don't have a way in which to ask a presentation for its size. It may be possible to use CSS to achieve this, but it will not work all the times, especially if the dashboard contains tabbed presentation which use ajax to load their content. 


Also in the current implementation the parent widget determines the available space  in which the children widgets should display themselves, and there is no mechanism for a child widget to tell its parent widget it need more space.



Andrei




On Mon, Jul 18, 2011 at 3:02 PM, Cyrille Delaunay <[hidden email]> wrote:
Yes thanks andrei, it helps me :)
I played a bit with some exist script. Something that started to looks good was :

     html div
  with: [
                html div
                     script: html jQuery new glamourResize ;
                     with: [
                          self render: aTabulatorPresentation on: html
]
              ].

With this script , I guess the 'inner' div is resized to display well the tabulator inside the bounds of the 'root' div. 
The result is good at first.

But the tabulator does not resize when I change the size of my web-browser. 
Ideally what would like is to always fill the horizontal space of my web-browser. For the vertical size, do not adapt but provide a scroll bar.
Maybe here I have to write new scripts that do that ?
In fact what would work is to perform a 'glamourResize' each time we modify root-div size (and not only one time when opening the page) (?). 

2011/7/14 Stéphane Ducasse <[hidden email]>
Thanks for your example andrei

Stef

On Jul 14, 2011, at 5:09 PM, Andrei Vasile Chis wrote:

> Hi Cyrille,
>
>
> In Glamour-Seaside the layout is done using jQuery and each presentation/browser should usually define a jQuery widget.
>
> The tabulator(and all the widgets that can contain other widgets)  resizes the content of its children and also notifies them by sending an event.
> When a child receives a resize event it can adjust its size and propagate the event to its children(if any).
>
> In you examples the tabulator will directly resize the content of the first div. In the second case however, depending on the css, the inner div may not be resized properly. A possible solution may be to create a jQuery widget, bind to the resize event and set the dimensions of the inner div accordingly. As an example you can look at SGLJsLibrary>>sglStackJs or SGLJsLibrary >>sglFinderJs which do this. If you don't want to use jQuery you may be able to use just css (as a very simple example you can look at SGLMondrianPresenter).
>
> I hope this helps you. If not let me know.
>
> Andrei
>
>
>
> On Thu, Jul 14, 2011 at 3:33 PM, Tudor Girba <[hidden email]> wrote:
> I cannot answer from on top of my head. But, try displaying a complex browser and take a look at the Examples could be the MetaBrowser or the one for basic examples.
>
> Cheers,
> Doru
>
>
> On 14 Jul 2011, at 14:21, Cyrille Delaunay wrote:
>
> > Indeed I know that and I 'm working in an old image where things work correctly:) My question is not related to that but about how I should render the browser using seaside  , if there use some tric to use. Should I render it in a div with a specific class ('glm-something') or using a specific js script ?
> >
> > 2011/7/13 Tudor Girba <[hidden email]>
> > Hi,
> >
> > We know that the Seaside rendering is broken in Pharo 1.3 / Seaside. The main problem seems to be that when we get an announcement from the Glamour model in the Seaside renderer, the renderer somehow cannot find the Seaside application context.
> >
> > I do not know why. Andrei said that he will try to look into this when he has time.
> >
> > Cheers,
> > Doru
> >
> >
> > On 13 Jul 2011, at 15:42, Cyrille Delaunay wrote:
> >
> > > oups,
> > >
> > > Hello.
> > >
> > > I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> > > In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
> > >
> > >                        html div
> > >                              with: [
> > >                                   self render: aTabulatorPresentation last on: html
> > >                                       ]
> > >                       ].
> > >
> > > the tabulator is not well rendered (the different panes are put one over the other). Whereas if I write
> > >
> > >                      self render: aTabulatorPresentation last on: html
> > >
> > > I think it's ok.
> > >
> > > 2011/7/13 Cyrille Delaunay <[hidden email]>
> > > Hello.
> > >
> > > I currently looking at how to render the GLMDashboard in Glamour-seaside. I already tried several things but my main problem is:
> > > In the 'renderOn:' method of my SGLDashboardPresenter , if I write :
> > >
> > >                        html div
> > >                       with: [
> > >                                                       self render: (self firstColumnPanesFrom: self browser) last on: html
> > >                                                       ]
> > >                                               ].
> > >
> > > _______________________________________________
> > > Moose-dev mailing list
> > > [hidden email]
> > > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> > --
> > www.tudorgirba.com
> >
> > "Value is always contextual."
> >
> >
> >
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "Not knowing how to do something is not an argument for how it cannot be done."
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev