Application vs Window Parameter Handling

In my application, it decides which window to make as main window based on request parameter.

However, to my dismay, parameter handler insertion was only found at Window level and not Application level.

Also, my impression is that whatever code I placed in a Window, they probably get translated into client-side ajax. I don’t want my client to be saddled with communication over stuffs I only want done at the server, because besides deciding on which to attach as main window, the application needs to perform a bunch of other non-UI stuffs.

But dismay no further I suggested to myself, because this is what I am trying now.

In my Application subclass I implement transactionlistener and parameterhandler. I stole the parameter handler code from Window and ahemm …


public void transactionStart(
  Application application, Object transactionData){
  HttpServletRequest request = (HttpServletRequest)transactionData;
  this.setRequestInfo(request); // getParameterMap into parameter map<String, String[]>.
  this.handleParameters(this.parameters);
}

public void handleParameters(Map<String, String[]> parameters){
  if (parameterHandlerList != null)  {
    Object[] handlers;
    synchronized (parameterHandlerList)	  {
      handlers = parameterHandlerList.toArray();
    }
    
    for (int j = 0; j < handlers.length; j++)	  {
      ((ParameterHandler) handlers[j]
).handleParameters(parameters);
    }
  }
}


public void addParameterHandler(ParameterHandler handler){
  if (parameterHandlerList == null)
    parameterHandlerList = new LinkedList<ParameterHandler>();

  synchronized (parameterHandlerList)  {
    if (!parameterHandlerList.contains(handler))
      parameterHandlerList.addLast(handler);
  }
}

private LinkedList<ParameterHandler> parameterHandlerList = null;

My questions are,

What is the rationale behind vaadin not providing parameter handling at Application level?

Is my excursion described above the best way to handle parameters at application level?

Would vaadin be amenable to a patch described above?