/*
* Copyright (c) 2009, Paul Merlin. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.swing.on.steroids.wizard.views;
import org.swing.on.steroids.wizard.views.WizardBlockingView;
import com.google.inject.Inject;
import java.awt.Component;
import java.awt.EventQueue;
import org.swing.on.steroids.views.handlers.HasClickHandlers;
import org.swing.on.steroids.swing.BaseSwingComponentSlotableView;
import org.swing.on.steroids.swing.SwingWrappersFactory;
import org.swing.on.steroids.swing.helpers.SwingHelper;
import org.swing.on.steroids.wizard.model.PlanType;
import org.swing.on.steroids.wizard.views.swing.PlanTypeConfirmBlockingPanel;
/**
* @author Paul Merlin
*/
public class PlanTypeConfirmBlockingView
extends BaseSwingComponentSlotableView
implements WizardBlockingView
{
private PlanTypeConfirmBlockingPanel delegate;
private HasClickHandlers<Void> yes;
private HasClickHandlers<Void> no;
@Inject
public PlanTypeConfirmBlockingView( final SwingWrappersFactory swf )
{
SwingHelper.invokeAndWait( new Runnable()
{
@Override
public void run()
{
delegate = new PlanTypeConfirmBlockingPanel();
yes = swf.createJButtonHasClickHandler( delegate.yesButton() );
no = swf.createJButtonHasClickHandler( delegate.noButton() );
}
} );
}
@Override
protected Component delegate()
{
return delegate;
}
public HasClickHandlers<Void> yesButton()
{
return yes;
}
public HasClickHandlers<Void> noButton()
{
return no;
}
public void setPlan( final PlanType planType )
{
SwingHelper.invokeAndWait( new Runnable()
{
@Override
public void run()
{
delegate.setPlan( planType );
}
} );
}
}