/*
 * ClientGui.java
 *
 * Created on February 8, 2006, 3:26 PM
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

package edu.umiacs.pawn.resource;

import edu.umiacs.util.Parameters;
import javax.swing.JPanel;

/**
 *
 * @author toaster
 */
public interface ClientGuiPanel
{
    /**
     * Create new panel for input.
     *
     * @param param parameters used to initialize the display if necessary
     *
     * @return panel to display
     */
    public JPanel createPanel(Parameters param);
    
    /**
     * return any parameters that need passed back to the transport driver. In the 
     * case of scheduler config, this is the persistant config, in the client gui, this
     * will be parameters specific to an individual data push.
     *
     * @return parameters to pass
     */
    public Parameters getDriverParameters();
    
    
    /**
     * Should return if the configuration gui has enough information to allow
     * saving. If this returns false, then the calling applicaiton should 
     * assume that the results from getDriverparameters may be incomplete
     *
     * @return whether the implementation is finished gathering information
     */
    public boolean isFinished();
}