Changeset 4990
- Timestamp:
- 07/01/08 08:05:15 (6 months ago)
- Location:
- incubator/widgets/popuppanel/src/com/itmill/toolkit
- Files:
-
- 2 modified
-
tests/tickets/Ticket1397.java (modified) (1 diff)
-
ui/gwt/client/ui/IPopupPanel.java (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
incubator/widgets/popuppanel/src/com/itmill/toolkit/tests/tickets/Ticket1397.java
r4957 r4990 34 34 35 35 public Component getPopupComponent() { 36 return new TextField( prop);36 return new TextField("Edit foo", prop); 37 37 } 38 38 }; -
incubator/widgets/popuppanel/src/com/itmill/toolkit/ui/gwt/client/ui/IPopupPanel.java
r4957 r4990 9 9 import com.google.gwt.user.client.ui.Widget; 10 10 import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection; 11 import com.itmill.toolkit.terminal.gwt.client.Caption; 12 import com.itmill.toolkit.terminal.gwt.client.CaptionWrapper; 11 13 import com.itmill.toolkit.terminal.gwt.client.Paintable; 12 14 import com.itmill.toolkit.terminal.gwt.client.UIDL; … … 28 30 private final PopupPanel popup = new PopupPanel(true); // true == autoHide 29 31 30 private Paintable popupComponent; 32 private Paintable popupComponentPaintable = null; 33 private Widget popupComponentWidget = null; 34 private CaptionWrapper captionWrapper = null; 31 35 32 36 /** … … 52 56 popup.addPopupListener(new PopupListener() { 53 57 public void onPopupClosed(PopupPanel sender, boolean autoClosed) { 54 Widget popupWidget = popup.getWidget();55 58 56 if (popupWidget instanceof ChangeListener) { 57 ((ChangeListener) popupWidget).onChange(hostReference); 59 if (popupComponentWidget instanceof ChangeListener) { 60 ((ChangeListener) popupComponentWidget) 61 .onChange(hostReference); 58 62 } 59 63 updateState(false); … … 89 93 .getPaintable(popupComponentUIDL); 90 94 91 if (newPopupComponent != popupComponent) { 92 if (popupComponent != null) { 93 client.unregisterPaintable(popupComponent); 95 if (newPopupComponent != popupComponentPaintable) { 96 97 if (popupComponentPaintable != null) { 98 client.unregisterPaintable(popupComponentPaintable); 94 99 } 95 popup.setWidget((Widget) newPopupComponent); 96 popupComponent = newPopupComponent; 100 101 popupComponentPaintable = newPopupComponent; 102 popupComponentWidget = (Widget) newPopupComponent; 103 104 // Check for caption 105 if (Caption.isNeeded(popupComponentUIDL)) { 106 captionWrapper = new CaptionWrapper( 107 popupComponentPaintable, client); 108 popup.setWidget(captionWrapper); 109 } else { 110 popup.setWidget(popupComponentWidget); 111 } 97 112 } 98 113 99 popupComponent.updateFromUIDL(popupComponentUIDL, client); 114 if (captionWrapper != null) { 115 captionWrapper.updateCaption(popupComponentUIDL); 116 } 117 118 popupComponentPaintable.updateFromUIDL(popupComponentUIDL, client); 100 119 101 120 } else { // The popup isn't visible so we should remove it 102 if ( popupComponent!= null) {103 client.unregisterPaintable( popupComponent);121 if (captionWrapper != null) { 122 client.unregisterPaintable(captionWrapper.getPaintable()); 104 123 } 124 125 if (popupComponentPaintable != null) { 126 client.unregisterPaintable(popupComponentPaintable); 127 } 128 105 129 popup.setWidget(null); 106 popupComponent = null; 130 popupComponentPaintable = null; 131 popupComponentWidget = null; 132 captionWrapper = null; 107 133 } 108 134 }// updateFromUIDL
