public interface FormComponent extends Bean
AbstractFormComponent
as as a super class.
Form components are configurable in the install4j GUI for screens that return true
in their
hasFormPanel
method. Their life-cycle is controlled by the framework.
FormPanelContainer
Modifier and Type | Method and Description |
---|---|
boolean |
checkCompleted()
This method is called by the framework when the user advances to the next screen in GUI or console mode.
|
javax.swing.JComponent |
createCenterComponent()
Create the main component in the center.
|
javax.swing.JComponent |
createLeftComponent()
Create the leading component to the left of the center component.
|
javax.swing.JComponent |
createRightComponent()
Create the trailing component to the right of the center component.
|
void |
formActivated()
This method is called by the framework just after the containing screen has been activated.
|
void |
formDeactivated()
This method is called by the framework just after the containing screen has been deactivated.
|
void |
formWillActivate()
This method is called by the framework just before the containing screen will be activated.
|
java.lang.Object |
getConfigurationObject()
If the
getConfigurationObjectClass method
returns null , this method is not called, otherwise a non-null value of the type returned by
getConfigurationObjectClass has to be returned by this method. |
java.lang.Class |
getConfigurationObjectClass()
A form component can expose a well-known configuration object that is passed as a parameter to the "Initialization script"
property of every form component.
|
boolean |
handleConsole(Console console)
Handle the console mode.
|
boolean |
handleUnattended()
Handle the unattended mode.
|
boolean |
hasUserInput()
This method is called in situations where the installer must disable all user input.
|
void |
initialize()
This method is called by the framework when the initial state of the component should be evaluated.
|
boolean |
isEnabled()
Returns whether the form component is enabled or not.
|
boolean |
isFillCenterHorizontal()
Determine whether the center component created by
createCenterComponent should fill all available
horizontal space. |
boolean |
isFillCenterVertical()
Determine how the center component created by
createCenterComponent should should fill all available
vertical space. |
boolean |
isVisible()
Returns whether the form component is visible or not.
|
void |
migrateIds(java.util.Map<java.lang.String,java.lang.String> oldIdToNewId)
This method is only called at design time when a user pastes form components or a screen with form components
from the clipboard.
|
void |
requestFocus()
Transfer the focus to this form component.
|
void |
setContext(Context context)
This method is called by the framework to set the
Context just after the
form component has been constructed. |
void |
setEnabled(boolean enabled)
Sets whether the form component is enabled or not.
|
void |
setFormEnvironment(FormEnvironment formEnvironment)
At runtime, this method is called twice by the framework.
|
void |
setVisible(boolean visible)
Sets whether the form component is visible or not.
|
void setContext(Context context)
Context
just after the
form component has been constructed. This is either an InstallerContext
or an
UninstallerContext
, depending on the whether the form screen is part of an
installer or uninstaller.context
- the context.void setFormEnvironment(FormEnvironment formEnvironment)
FormEnvironment
just after the
screen has been constructed. The getFormComponents()
method will return an empty array for that instance.
Secondly, after all form components have been instantiated, a new FormEnvironment
is set whose
getFormComponents()
method returns all form components in the form.
At design time, this method is called repeatedly and the result of a call to getFormComponents()
may be different over time.
formEnvironment
- the FormEnvironment
FormEnvironment.getFormComponents()
javax.swing.JComponent createLeftComponent()
In console or unattended mode, this method is never called.
null
if no leading component should be created.javax.swing.JComponent createCenterComponent()
isFillCenterHorizontal
method,
the component grows to fill all available horizontal space.
If you return null
, the form component will not be added to the layout grid.
In console or unattended mode, this method is never called.
isFillCenterHorizontal()
boolean isFillCenterHorizontal()
createCenterComponent
should fill all available
horizontal space.
Note that you can configure the form not to grow horizontally in the install4j GUI, so the center component may be displayed with its
preferred horizontal size in any case.true
or false
.createCenterComponent()
boolean isFillCenterVertical()
createCenterComponent
should should fill all available
vertical space.
If there are multiple form components on a form that return true for this method, the excess vertical space will
be distributed evenly.
Note that you can configure the form not to grow vertically in the install4j GUI, so the center component may be displayed with its
preferred height in any case.true
or false
.createCenterComponent()
javax.swing.JComponent createRightComponent()
In console or unattended mode, this method is never called.
null
if no trailing component should be created.java.lang.Class getConfigurationObjectClass()
JCheckBox
or a JTextField
. If you return a non-null value in the method,
the getConfigurationObject
method must return an object of that class.
In console or unattended mode, this method is never called.
null
if no configuration object should be exposed.getConfigurationObject()
java.lang.Object getConfigurationObject()
getConfigurationObjectClass
method
returns null
, this method is not called, otherwise a non-null value of the type returned by
getConfigurationObjectClass
has to be returned by this method.
In console or unattended mode, this method is never called.
null
if getConfigurationObjectClass
returns null as well.getConfigurationObjectClass()
boolean checkCompleted()
false
in this method.Context.setVariable(String, Object)
void initialize()
Initialization often involves replacing variables in user-configured property values.
AbstractBean.replaceVariables(String)
void formWillActivate()
Screen.willActivate()
void formActivated()
Screen.activated()
void formDeactivated()
Screen.deactivated()
boolean handleConsole(Console console) throws UserCanceledException
Console
object to interact with the user and replicate the GUI functionality
on the terminal.
Note: Screens with form panels have to call FormEnvironment.handleConsole
in their
handleConsole
method, otherwise this method will not be invoked. All pre-defined screens
in install4j comply with this requirement.
console
- the Console
objectUserCanceledException
- if the user cancels a question or notice. These exceptions are thrown by methods in the Console
object.Screen.handleConsole(Console)
,
FormEnvironment.handleConsole(Console)
boolean handleUnattended()
void setEnabled(boolean enabled)
It can also be used for the case where another form component wants to control the state of this form component. For example the "Check box" form component holds a list of coupled form components that are enabled and disabled with calls to this method.
AbstractFormComponent
provides a default implementation that calls setEnabled
on
the component returned by getConfigurationObject()
, saves the "enabled" flag and returns it in the
isEnabled
method.
enabled
- whether to enable this form component or notAbstractFormComponent
,
ComponentTuple
,
isEnabled()
boolean isEnabled()
setEnabled
.
AbstractFormComponent
provides a default implementation for both isEnabled
and setEnabled
.
true
or false
.setEnabled(boolean)
void setVisible(boolean visible)
It can also be used for the case where another form component wants to control the state of this form component.
AbstractFormComponent
provides a default implementation that calls setVisible
on
all components in the ComponentTuple
, saves the "visible" flag and returns it in the
isVisible
method.
visible
- whether this form component should be visible or notAbstractFormComponent
,
ComponentTuple
,
isVisible()
boolean isVisible()
setVisible
.
AbstractFormComponent
provides a default implementation for both isVisible
and setVisible
.
true
or false
.setVisible(boolean)
void migrateIds(java.util.Map<java.lang.String,java.lang.String> oldIdToNewId)
FormEnvironment.getId
change. Form components that keep a list of IDs of other form components should migrate those IDs in this method.oldIdToNewId
- a map that maps the old IDs to the new IDs. An ID is of type java.lang.String
.FormEnvironment.getId(FormComponent)
,
FormEnvironment.getFormComponentById(String)
void requestFocus()
boolean hasUserInput()