Pregunta

For UI markup, I use UIBinder. In a specific area, I want to place the logo and then dynamically change it:

<ui:UiBinder 
    xmlns:ui='urn:ui:com.google.gwt.uibinder' 
    xmlns:g='urn:import:com.google.gwt.user.client.ui' >
<ui:with 
    field='res' 
    type='com.myproject.client.resources.Resources' />

<g:Image resource='{res.offline}'/>

ClientBundle:

public interface Resources extends ClientBundle {    
    @Source("offline.png")  
    public ImageResource offline();

    @Source("online.png")  
    public ImageResource online();

    // ... and so on 
}  

When a user starts a session, his logo changes.

How to change the image that declared in the UI markup?

¿Fue útil?

Solución

The solution may be as follows.

Add the UI:field attribute in the markup:

<g:Image url='{res.user1.getURL}' ui:field="imageUser1" />

Then, change the attribute value by this way:

@UiField Image imageUser1;
imageUser1.setVisible(true/ false);

It is also possible dynamically change the image URL -

user1.setUrl(offlineImg.getUrl());

See also:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top