package triana.tools;

UWCC_HEADER

import triana.ocl.*;
import triana.util.*;
import triana.types.*;

/**
 * A NAME_OF_UNIT unit to ..
 *
 * @version VERSION DATE
 * @author AUTHOR
 */
public class NAME_OF_UNIT extends Unit {

DEFINE

     /**
      **********************************************
      *** USER CODE of NAME_OF_UNIT goes here    ***
      **********************************************
      */
    public void process() throws Exception {         
        PROCESS_FUNCTION_CODE
        }    


    /** 
     * Initialses information specific to NAME_OF_UNIT. 
     */
    public void init() {
        super.init();

        setUseGUIBuilder(true);

        setRequireDoubleInputs(false);
        setCanProcessDoubleArrays(false);

        setResizableInputs(INRESIZE);
        setResizableOutputs(OUTRESIZE);
        }

    /**
     * @return the GUI information for this unit. It uses the addGUILine
     * function to add lines to the GUI interface.  Such lines must
     * in the specified GUI text format.
     */
    public void setGUIInformation() {
GUI_SETUP        }

    /**
     * Called when the reset button is pressed within the MainTriana Window
     */
    public void reset() {
        super.reset();
        }

    /**
     * Called when the stop button is pressed within the MainTriana Window
     */
    public void stopping() {
        super.stopping();
        }

    /**
     * Called when the start button is pressed within the MainTriana Window
     */
    public void starting() {
        super.starting();
        }

    /**
     * Saves NAME_OF_UNIT's parameters.
     */
    public void saveParameters() {  
SAVE_PARS        }


    /**
     * Used to set each of NAME_OF_UNIT's parameters.
     */
    public void setParameter(String name, String value) {
LOAD_PARS        }

    /**
     * Don't need to use this for GUI Builder units as everthing is updated
     * by triana automatically
     */
    public void updateWidgetFor(String name) {
        }

    /**
     *
     * @return a string containing the names of the types allowed 
     * to be input to NAME_OF_UNIT, each separated by a white space.
     */
    public String inputTypes() {
        return "INPUT_TYPES";
        }

    /**
     * @return a string containing the names of the types output
     * from NAME_OF_UNIT, each separated by a white space.
     */
    public String outputTypes() {
        return "OUTPUT_TYPES";
        }

    /**
     * This returns a <b>brief!</b> description of what the unit does. The
     * text here is shown in a pop up window when the user puts the mouse
     * over the unit icon for more than a second.
     */
    public String getPopUpDescription() {
        return "Put NAME_OF_UNIT's brief description here";
        }

    /**
     *
     * @returns the location of the help file for this unit.  
     */
    public String getHelpFile() {
        return "HELP_FILE";
        }
    }




