Good morning.
I'm new at Vaadin and I'm implementin a webapp. I've recently discovered the Wizards and your Stepper plugins, and I want to use them in conjunction: Within a WizardStep, I wanna place some Steppers, IntStepper for the time being.
The stepper seem to be working fine, but whenever I press an Up or Down arrow, an exception is thrown:
mar 04, 2015 11:18:36 AM com.vaadin.server.DefaultErrorHandler doDefault
GRAVE:
java.lang.NoSuchMethodError: com.vaadin.ui.ConnectorTracker.getDiffState(Lcom/vaadin/server/ClientConnector;)Lorg/json/JSONObject;
at org.vaadin.risto.stepper.AbstractStepper$1.valueChange(AbstractStepper.java:47)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:168)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:291)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:184)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:92)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1408)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:350)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Initially I thought that org.json jar was needed, so I added it to my ivy.xml file. Afterwards, I removed that dependency as there wasn't any change/improvement or difference between using it or not using it. EDIT: I need org.json package, as Vaadin threw me an exception during initialisation so as to load existing persisted session.
This is my source code:
package com.ingartek.cavwebapp.view.administrador;
import java.io.Serializable;
import org.vaadin.risto.stepper.IntStepper;
import org.vaadin.teemu.wizards.WizardStep;
import com.ingartek.cavwebapp.model.Conductor;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.ui.Component;
import com.vaadin.ui.VerticalLayout;
public class WizardStep1 implements WizardStep, Serializable {
private static final long serialVersionUID = 79251609422893709L;
@Override
public String getCaption() {
return "Parámetros";
}
@Override
public Component getContent() {
VerticalLayout layout = new VerticalLayout();
layout.setMargin(true);
layout.setSpacing(true);
final IntStepper maxTravelTime = new IntStepper();
maxTravelTime.setCaption("Tiempo máx. de viaje");
maxTravelTime.setDescription("Representa el tiempo máximo de viaje de un trabajador.");
maxTravelTime.setValue(1);
maxTravelTime.setStepAmount(1);
maxTravelTime.setMaxValue(100);
maxTravelTime.setMinValue(1);
maxTravelTime.addValueChangeListener(new ValueChangeListener() {
private static final long serialVersionUID = -5342847264866656960L;
@Override
public void valueChange(ValueChangeEvent event) {
Integer value = (Integer) event.getProperty().getValue();
System.out.println("Valor nuevo maxTravelTime: " + value);
}
});
final IntStepper maxPickupTime = new IntStepper();
maxPickupTime.setCaption("Tiempo máx. de recogida de trabajadores");
maxPickupTime.setDescription("Representa el tiempo máximo desde que se recoge a un trabajador hasta que se recoge al siguiente.");
maxPickupTime.setValue(1);
maxPickupTime.setStepAmount(1);
maxPickupTime.setMaxValue(100);
maxPickupTime.setMinValue(1);
maxPickupTime.addValueChangeListener(new ValueChangeListener() {
private static final long serialVersionUID = -5342847264866656960L;
@Override
public void valueChange(ValueChangeEvent event) {
Integer value = (Integer) event.getProperty().getValue();
System.out.println("Valor nuevo maxPickupTime: " + value);
}
});
final IntStepper maxWaitTime = new IntStepper();
maxWaitTime.setCaption("Tiempo máx. de espera");
maxWaitTime.setDescription("Representa el tiempo máximo de espera de un trabajador, desde que le dejan en cocheras hasta que empieza a trabajar.");
maxWaitTime.setValue(1);
maxWaitTime.setStepAmount(1);
maxWaitTime.setMaxValue(100);
maxWaitTime.setMinValue(1);
maxWaitTime.addValueChangeListener(new ValueChangeListener() {
private static final long serialVersionUID = -5342847264866656960L;
@Override
public void valueChange(ValueChangeEvent event) {
Integer value = (Integer) event.getProperty().getValue();
System.out.println("Valor nuevo maxWaitTime: " + value);
}
});
layout.addComponent(maxTravelTime);
layout.addComponent(maxPickupTime);
layout.addComponent(maxWaitTime);
return layout;
}
@Override
public boolean onAdvance() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onBack() {
// TODO Auto-generated method stub
return false;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
@Override
public boolean equals(Object other) {
if(other==null)
return false;
if( !(other instanceof Conductor) )
return false;
return true;
}
@Override
public int hashCode() {
return (int) serialVersionUID;
}
}
Any suggestion?
Thank you for your contribution!