# CustomizerCallback

Import: `import com.install4j.api.beaninfo.CustomizerCallback;`

```java
interface CustomizerCallback
```

Extended design-time services for customizers. Implement this interface
in your customizer class to have the install4j GUI call its methods at design-time.


**See also:**

- [Install4JBeanInfo.Install4JBeanInfo](Install4JBeanInfo.md#install4jbeaninfo-string-string-string-boolean-boolean-integer-class-extends-bean-class)

## Methods

| Signature | Returns | Description |
|---|---|---|
| [`stopEditing()`](#stopediting) | `void` | Called by the install4j GUI when the user moves to another bean or to a different configuration step. |
| [`setParentWindow(Window)`](#setparentwindow-window) | `void` | Called by the install4j GUI after the customizer is initialized and sets the parent window. |
| [`getProjectReportProperties()`](#getprojectreportproperties) | `ProjectReportProperty[]` | Called by the install4j GUI when the user exports a project report. |

### stopEditing()

```java
void stopEditing()
```

Called by the install4j GUI when the user moves to another bean or to a different configuration step.
This is useful if your customizer does not save user input directly to the bean.

### setParentWindow(Window)

```java
void setParentWindow(Window window)
```

Called by the install4j GUI after the customizer is initialized and sets the parent window.
This is useful if you need a parent window for your own dialogs.


**Parameters:**

- `window` — the parent window

### getProjectReportProperties()

```java
ProjectReportProperty[] getProjectReportProperties()
```

Called by the install4j GUI when the user exports a project report.
Your customizer can contribute to the project report with this method.


**Returns:** the project report elements contributed by this customizer

