You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

VAccordionPaintable.java 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.terminal.gwt.client.ui;
  5. import java.util.Iterator;
  6. import com.google.gwt.core.client.GWT;
  7. import com.google.gwt.user.client.ui.Widget;
  8. import com.vaadin.terminal.gwt.client.ApplicationConnection;
  9. import com.vaadin.terminal.gwt.client.UIDL;
  10. import com.vaadin.terminal.gwt.client.VPaintableWidget;
  11. import com.vaadin.terminal.gwt.client.ui.VAccordion.StackItem;
  12. public class VAccordionPaintable extends VTabsheetBasePaintable {
  13. @Override
  14. public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
  15. getWidgetForPaintable().rendering = true;
  16. getWidgetForPaintable().selectedUIDLItemIndex = -1;
  17. super.updateFromUIDL(uidl, client);
  18. /*
  19. * Render content after all tabs have been created and we know how large
  20. * the content area is
  21. */
  22. if (getWidgetForPaintable().selectedUIDLItemIndex >= 0) {
  23. StackItem selectedItem = getWidgetForPaintable().getStackItem(
  24. getWidgetForPaintable().selectedUIDLItemIndex);
  25. UIDL selectedTabUIDL = getWidgetForPaintable().lazyUpdateMap
  26. .remove(selectedItem);
  27. getWidgetForPaintable().open(
  28. getWidgetForPaintable().selectedUIDLItemIndex);
  29. selectedItem.setContent(selectedTabUIDL);
  30. } else if (isRealUpdate(uidl)
  31. && getWidgetForPaintable().openTab != null) {
  32. getWidgetForPaintable().close(getWidgetForPaintable().openTab);
  33. }
  34. getWidgetForPaintable().iLayout();
  35. // finally render possible hidden tabs
  36. if (getWidgetForPaintable().lazyUpdateMap.size() > 0) {
  37. for (Iterator iterator = getWidgetForPaintable().lazyUpdateMap
  38. .keySet().iterator(); iterator.hasNext();) {
  39. StackItem item = (StackItem) iterator.next();
  40. item.setContent(getWidgetForPaintable().lazyUpdateMap.get(item));
  41. }
  42. getWidgetForPaintable().lazyUpdateMap.clear();
  43. }
  44. getWidgetForPaintable().renderInformation
  45. .updateSize(getWidgetForPaintable().getElement());
  46. getWidgetForPaintable().rendering = false;
  47. }
  48. @Override
  49. public VAccordion getWidgetForPaintable() {
  50. return (VAccordion) super.getWidgetForPaintable();
  51. }
  52. @Override
  53. protected Widget createWidget() {
  54. return GWT.create(VAccordion.class);
  55. }
  56. public void updateCaption(VPaintableWidget component, UIDL uidl) {
  57. /* Accordion does not render its children's captions */
  58. }
  59. }