@@ -0,0 +1,1733 @@
+%0A/*%0A * Copyright (C) 2011 Archie L. Cobbs. All rights reserved.%0A *%0A * $Id$%0A */%0A%0Apackage org.dellroad.stuff.vaadin7;%0A%0Aimport com.vaadin.server.VaadinSession;%0A%0Aimport org.dellroad.stuff.spring.DelayedAction;%0Aimport org.springframework.scheduling.TaskScheduler;%0A%0A/**%0A * %7B@link DelayedAction%7D for actions that are associated with a Vaadin appliction.%0A */%0Apublic abstract class VaadinDelayedAction extends DelayedAction %7B%0A%0A    private final VaadinSession session;%0A%0A    /**%0A     * Convenience constructor. Equivalent to:%0A     *  %3Cblockquote%3E%3Ccode%3E%0A     *  VaadinDelayedAction(taskScheduler, VaadinUtil.getCurrentSession())%0A     *  %3C/code%3E%3C/blockquote%3E%0A     */%0A    public VaadinDelayedAction(TaskScheduler taskScheduler) %7B%0A        this(taskScheduler, VaadinUtil.getCurrentSession());%0A    %7D%0A%0A    /**%0A     * Primary constructor.%0A     *%0A     * @param taskScheduler scheduler object%0A     * @param session the %7B@link VaadinSession%7D with which the action is associated%0A     * @throws NullPointerException if %7B@code session%7D is null%0A     */%0A    public VaadinDelayedAction(TaskScheduler taskScheduler, VaadinSession session) %7B%0A        super(session.getLockInstance(), taskScheduler);%0A        this.session = session;%0A    %7D%0A%0A    /**%0A     * Invokes %7B@link #runInVaadin%7D in the context of the configured %7B@link VaadinSession%7D.%0A     */%0A    @Override%0A    public final void run() %7B%0A        VaadinUtil.invoke(this.session, new Runnable() %7B%0A            @Override%0A            public void run() %7B%0A                VaadinDelayedAction.this.runInVaadin();%0A            %7D%0A        %7D);%0A    %7D%0A%0A    /**%0A     * Perform the action. This method will be invoked in the context of the configured %7B@link VaadinSession%7D.%0A     */%0A    protected abstract void runInVaadin();%0A%7D%0A%0A

Add Vaadin 7.x version of VaadinDelayedAction.