Listing of Source ../source/GOF/GofControlIdentifier.javapackage se.entra.phantom.server;
/**
* The GofControlIdentifier is an interface that must be implemented by all the classes
* that will be used to identify different controls.
* <p>
* Each of the classes implementing this interface can load their own settings from the
* configuration file.
* <p>
* The class implementing this interface must have a default constructor, without any parameters,
* since it will be created dynamically from the class name.
* @author J. Bergström
*/
public interface GofControlIdentifier
{
/**
* The unit for Gui-on-the-fly for GUI control positioning in X.
*/
public static final int GOF_GUIUNITX = 4;
/**
* The unit for Gui-on-the-fly for GUI control positioning in Y.
*/
public static final int GOF_GUIUNITY = 8;
/**
* The inter-line spacing for Gui-on-the-fly controls in X.
*/
public static final int GOF_STEPX = 4;
/**
* The inter-line spacing for Gui-on-the-fly controls in Y.
*/
public static final int GOF_STEPY = 10;
/**
* The margin for Gui-on-the-fly panels on the left and right side.
*/
public static final int GOF_MARGINX = GOF_STEPX/2;
/**
* The margin for Gui-on-the-fly panels at the top and bottom.
*/
public static final int GOF_MARGINY = GOF_STEPY/2;
/**
* How much can be offset before overlapping another field that is also offset in X.
*/
public static final int GOF_OFFSETX = 0;
/**
* How much can be offset before overlapping another field that is also offset in Y.
*/
public static final int GOF_OFFSETY = 2;
/**
* This method should read all the settings needed by the control identifier from the
* configuration file.
* @param confFile The server ini file.
*/
public void getControlSettings( IniFile confFile, String subsection );
/**
* This method is where the class implementing this interface does all its work. The algorithm
* for identifying the control must be implemented here.
* <p>
* The classes implementing this interface should implement the following steps:
* <ul>
* <li>Create PhantomControlBase</li>
* <li>Create PhantomHostField</li>
* <li>Create PhantomControl</li>
* <li>Add the control to PhantomPanelData</li>
* <li>Add the control to the GofHostAreaIdentifier it belongs to</li>
* <li>Mark the GofHostField connected to the new control as processed</li>
* </ul>
* @param gofRuntime The GuiOnTheFlyRuntime instance.
* @param areaIdentifier The areaIdentifier in which the controls should be identified.
* @param phantomHostScreen The Phantom host screen corresponding to the host screen.
* @param hostScreen The host screen that we are trying to build a GOF panel for.
* @param newPanel The newly created Gui-on-the-fly runtime panel.
* @param offsetX The offset in columns for popup window.
* @param offsetY The offset in lines for popup window.
*/
public void identifyCtrls( GuiOnTheFlyRuntime gofRuntime,
GofHostAreaIdentifier areaIdentifier,
PhantomHostScreen phantomHostScreen,
HostScreen hostScreen,
PhantomPanelData templPanel,
PhantomPanelData newPanel,
int offsetX,
int offsetY );
}