Te presentamos
Tu nuevo asistente de presentaciones.
Perfecciona, mejora y adapta tus contenidos, busca imágenes relevantes y edita elementos visuales más rápido que nunca.
Búsquedas populares
state callback
state delta
state:
vote-douwe@google.com | 1
function onClick() {
wave.getState().submitValue('vote-' wave.getViewer().getId(), -1);
}
wave.setStateCallback(update);
function update() {
var keys = wave.getState().getKeys();
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (key.match('^vote-')) {
total += parseInt(wave.getState().get(key));
count++;
}
}
document.getElementById('total').innerHTML = total;
}
import org.cobogw.gwt.waveapi.gadget.client.StateUpdateEvent;
import org.cobogw.gwt.waveapi.gadget.client.StateUpdateEventHandler;
import org.cobogw.gwt.waveapi.gadget.client.WaveGadget;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.gadgets.client.Gadget;
import com.google.gwt.gadgets.client.UserPreferences;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
@Gadget.ModulePrefs(title = "PlusOne")
public class SimpleCounter extends WaveGadget<UserPreferences> {
private final Label counterLabel = new Label();
private final Button incrementButton = new Button("+1");
private final Button decrementButton = new Button("-1");
@Override
protected void init() {
// Event handlers for increment and decrement buttons
// First they update the local counter's value to the new value
// and then they store the new value in wave's shared state
incrementButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
String viewer = getWave().getViewer().getId();
getWave().getState().submitValue(viewer, '1');
}
});
decrementButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
String viewer = getWave().getViewer().getId();
getWave().getState().submitValue(viewer, '1');
}
});
// Adding the ui elements to the root panel
RootPanel.get().add(counterLabel);
RootPanel.get().add(incrementButton);
RootPanel.get().add(decrementButton);
getWave().addStateUpdateEventHandler(new StateUpdateEventHandler() {
public void onUpdate(StateUpdateEvent event) {
int total = 0;
JsArrayString keys = getWave().getState().getKeys();
for (int i = 0; i < keys.length(); i++) {
String key = keys.get(i);
String value = getWave().get(key);
total += (int) value;
}
counterLabel.setText(total);
}
});
}
}