Changeset 4990

Show
Ignore:
Timestamp:
07/01/08 08:05:15 (6 months ago)
Author:
risto.yrjana@…
Message:

Added partial caption functionality

Location:
incubator/widgets/popuppanel/src/com/itmill/toolkit
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • incubator/widgets/popuppanel/src/com/itmill/toolkit/tests/tickets/Ticket1397.java

    r4957 r4990  
    3434 
    3535            public Component getPopupComponent() { 
    36                 return new TextField(prop); 
     36                return new TextField("Edit foo", prop); 
    3737            } 
    3838        }; 
  • incubator/widgets/popuppanel/src/com/itmill/toolkit/ui/gwt/client/ui/IPopupPanel.java

    r4957 r4990  
    99import com.google.gwt.user.client.ui.Widget; 
    1010import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection; 
     11import com.itmill.toolkit.terminal.gwt.client.Caption; 
     12import com.itmill.toolkit.terminal.gwt.client.CaptionWrapper; 
    1113import com.itmill.toolkit.terminal.gwt.client.Paintable; 
    1214import com.itmill.toolkit.terminal.gwt.client.UIDL; 
     
    2830    private final PopupPanel popup = new PopupPanel(true); // true == autoHide 
    2931 
    30     private Paintable popupComponent; 
     32    private Paintable popupComponentPaintable = null; 
     33    private Widget popupComponentWidget = null; 
     34    private CaptionWrapper captionWrapper = null; 
    3135 
    3236    /** 
     
    5256        popup.addPopupListener(new PopupListener() { 
    5357            public void onPopupClosed(PopupPanel sender, boolean autoClosed) { 
    54                 Widget popupWidget = popup.getWidget(); 
    5558 
    56                 if (popupWidget instanceof ChangeListener) { 
    57                     ((ChangeListener) popupWidget).onChange(hostReference); 
     59                if (popupComponentWidget instanceof ChangeListener) { 
     60                    ((ChangeListener) popupComponentWidget) 
     61                            .onChange(hostReference); 
    5862                } 
    5963                updateState(false); 
     
    8993                    .getPaintable(popupComponentUIDL); 
    9094 
    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); 
    9499                } 
    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                } 
    97112            } 
    98113 
    99             popupComponent.updateFromUIDL(popupComponentUIDL, client); 
     114            if (captionWrapper != null) { 
     115                captionWrapper.updateCaption(popupComponentUIDL); 
     116            } 
     117 
     118            popupComponentPaintable.updateFromUIDL(popupComponentUIDL, client); 
    100119 
    101120        } 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()); 
    104123            } 
     124 
     125            if (popupComponentPaintable != null) { 
     126                client.unregisterPaintable(popupComponentPaintable); 
     127            } 
     128 
    105129            popup.setWidget(null); 
    106             popupComponent = null; 
     130            popupComponentPaintable = null; 
     131            popupComponentWidget = null; 
     132            captionWrapper = null; 
    107133        } 
    108134    }// updateFromUIDL