Listing of Source server/VirtualUserWindowInterface.java
package se.entra.phantom.server;

import se.entra.phantom.common.Transaction;

/**
 * This interface is implemented by the bar and external image user window.
 */
public interface VirtualUserWindowInterface extends VirtualInterface
{
  /**
   * This method is called whenever a panel has been disposed of,
   * in order to remove listeners, etc, in order to free up memory.
   * Normal controls doesn't need to do anything here.
   */
  public abstract void dispose();

  /**
   * This method is used to refresh all virtual controls when e.g.
   * a new panel is created or when any host change occurs.
   */
  public abstract void refresh();

  /**
   * This method is used to refresh all virtual controls when e.g.
   * a new panel is created or recreated.
   */
  public abstract void refreshTextPrompts();

  /**
   * If the class has a need to refresh the text prompt at all host
   * changed, it must reply <code>true</code> to this method call.
   * Otherwise return <code>false</code>.
   *
   * <p>A class extending VirtualControl have to override this method and return
   * true if the text prompts need a constant refresh.
   */
  public abstract boolean areTextPromptsAlwaysRefreshed();

  /**
   * The connected host screen has changed. This can cause
   * a need to change the host screen for host fields.
   */
  public abstract void hostScreenChanged(PhantomHostScreen screen);

  /**
   * This method fires the creation data transaction to the client. The
   * first thing must be to call the superclass.
   */
  public abstract void fireCreate(Transaction trans);

  /**
   * This method is used to fire an update message to the client by
   * a virtual class.
   */
  public abstract void fireUpdate(Transaction trans);

  /**
   * This method is called from the VirtualPanel
   * to cause a client transaction to update the panels.
   * Implement this method in order to provide the appropriate
   * control behaviour, matching the client request.
   */
  public abstract void clientUpdated(Transaction trans);

  /**
   * This method is invoked by the server kernel whenever a user window has issued an action
   * on the client side. Every updateable control (in the VirtualNnnn
   * classes) are set to reflect the changes made on the client side.
   */
  public abstract void issueAction(Transaction trans);
}