/Ulas
Den lördagen den 26:e maj 2012 kl. 19:45:03 UTC+2 skrev Ulas:
Den lördagen den 26:e maj 2012 kl. 19:45:03 UTC+2 skrev Ulas:
Den lördagen den 26:e maj 2012 kl. 19:45:03 UTC+2 skrev Ulas:
-- Den lördagen den 26:e maj 2012 kl. 19:45:03 UTC+2 skrev Ulas:
Hi,I have a LayoutPanel containing two custom widgets. The widgets both extend ResizeComposite in order to be able to receive the onResize call. The main idea is illustrated in the code below. The two widgets share the same space and depending on user input they are shown in one of three different ways: widget #1 taking up the entire width, widget #1 & #2 are displayed side by side (sharing the available width 50/50) and widget #2 taking up the entire width.LayoutPanel viewPanel = new LayoutPanel();CustomWidgetExtendingResizeComposite1 custom1 = new CustomWidgetExtendingResizeCom posite1(); CustomWidgetExtendingResizeComposite2 custom2 = new CustomWidgetExtendingResizeCom posite2(); viewPanel.add(custom1;)viewPanel.add(custom2);public void onClick(String mode){if (mode == "show widget #1"){this.viewPanel.setWidgetLeftWidth( custom1 , 0, Unit.PCT, 0, Unit.PCT);this.viewPanel.setWidgetLeftWidth( custom2 , 0, Unit.PCT, 100, Unit.PCT);}else if (mode == "show widget #1 and #2"){this.viewPanel.setWidgetLeftWidth( custom1 , 0, Unit.PCT, 50, Unit.PCT);this.viewPanel.setWidgetLeftWidth( custom2 , 50, Unit.PCT, 50, Unit.PCT);}else if (mode == "show widget #2"){this.viewPanel.setWidgetLeftWidth( custom1 , 0, Unit.PCT, 100, Unit.PCT);this.viewPanel.setWidgetLeftWidth( custom2 , 100, Unit.PCT, 0, Unit.PCT);}}Now to the weird part: When the parent (viewPanel) fires the onResize event it doesn't actually change the child widgets' size immidiately, but only does so after a while. I know this because I've overriden the onResize functions in both the custom widget classes and at the time of the onResize they still have their old width values. However, if I introduce a timer into my code that after a small time period (say 100 ms) manually fires the viewPanel's onResize function it works. By then the custom widgets have both somehow had their width set to the correct valules.How can this be? Why don't the child widgets have their width values changed immidiately when the parent fires their respective onResize functions?
Den lördagen den 26:e maj 2012 kl. 19:45:03 UTC+2 skrev Ulas:
Hi,I have a LayoutPanel containing two custom widgets. The widgets both extend ResizeComposite in order to be able to receive the onResize call. The main idea is illustrated in the code below. The two widgets share the same space and depending on user input they are shown in one of three different ways: widget #1 taking up the entire width, widget #1 & #2 are displayed side by side (sharing the available width 50/50) and widget #2 taking up the entire width.LayoutPanel viewPanel = new LayoutPanel();CustomWidgetExtendingResizeComposite1 custom1 = new CustomWidgetExtendingResizeCom posite1(); CustomWidgetExtendingResizeComposite2 custom2 = new CustomWidgetExtendingResizeCom posite2(); viewPanel.add(custom1;)viewPanel.add(custom2);public void onClick(String mode){if (mode == "show widget #1"){this.viewPanel.setWidgetLeftWidth( custom1 , 0, Unit.PCT, 0, Unit.PCT);this.viewPanel.setWidgetLeftWidth( custom2 , 0, Unit.PCT, 100, Unit.PCT);}else if (mode == "show widget #1 and #2"){this.viewPanel.setWidgetLeftWidth( custom1 , 0, Unit.PCT, 50, Unit.PCT);this.viewPanel.setWidgetLeftWidth( custom2 , 50, Unit.PCT, 50, Unit.PCT);}else if (mode == "show widget #2"){this.viewPanel.setWidgetLeftWidth( custom1 , 0, Unit.PCT, 100, Unit.PCT);this.viewPanel.setWidgetLeftWidth( custom2 , 100, Unit.PCT, 0, Unit.PCT);}}Now to the weird part: When the parent (viewPanel) fires the onResize event it doesn't actually change the child widgets' size immidiately, but only does so after a while. I know this because I've overriden the onResize functions in both the custom widget classes and at the time of the onResize they still have their old width values. However, if I introduce a timer into my code that after a small time period (say 100 ms) manually fires the viewPanel's onResize function it works. By then the custom widgets have both somehow had their width set to the correct valules.How can this be? Why don't the child widgets have their width values changed immidiately when the parent fires their respective onResize functions?
Den lördagen den 26:e maj 2012 kl. 19:45:03 UTC+2 skrev Ulas:
Hi,I have a LayoutPanel containing two custom widgets. The widgets both extend ResizeComposite in order to be able to receive the onResize call. The main idea is illustrated in the code below. The two widgets share the same space and depending on user input they are shown in one of three different ways: widget #1 taking up the entire width, widget #1 & #2 are displayed side by side (sharing the available width 50/50) and widget #2 taking up the entire width.LayoutPanel viewPanel = new LayoutPanel();CustomWidgetExtendingResizeComposite1 custom1 = new CustomWidgetExtendingResizeCom posite1(); CustomWidgetExtendingResizeComposite2 custom2 = new CustomWidgetExtendingResizeCom posite2(); viewPanel.add(custom1;)viewPanel.add(custom2);public void onClick(String mode){if (mode == "show widget #1"){this.viewPanel.setWidgetLeftWidth( custom1 , 0, Unit.PCT, 0, Unit.PCT);this.viewPanel.setWidgetLeftWidth( custom2 , 0, Unit.PCT, 100, Unit.PCT);}else if (mode == "show widget #1 and #2"){this.viewPanel.setWidgetLeftWidth( custom1 , 0, Unit.PCT, 50, Unit.PCT);this.viewPanel.setWidgetLeftWidth( custom2 , 50, Unit.PCT, 50, Unit.PCT);}else if (mode == "show widget #2"){this.viewPanel.setWidgetLeftWidth( custom1 , 0, Unit.PCT, 100, Unit.PCT);this.viewPanel.setWidgetLeftWidth( custom2 , 100, Unit.PCT, 0, Unit.PCT);}}Now to the weird part: When the parent (viewPanel) fires the onResize event it doesn't actually change the child widgets' size immidiately, but only does so after a while. I know this because I've overriden the onResize functions in both the custom widget classes and at the time of the onResize they still have their old width values. However, if I introduce a timer into my code that after a small time period (say 100 ms) manually fires the viewPanel's onResize function it works. By then the custom widgets have both somehow had their width set to the correct valules.How can this be? Why don't the child widgets have their width values changed immidiately when the parent fires their respective onResize functions?
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/ecZ7yGQ_ctIJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
No comments:
Post a Comment