# StandardProgramGroupHandle

Import: `import com.install4j.api.test.ui.StandardProgramGroupHandle;`

```java
interface StandardProgramGroupHandle
```

Drives the "Standard program group" system screen. The screen has two platform-specific
variants: Windows shows a Start-menu program-group selector with an "install for all users"
toggle, Unix shows a symlink directory chooser.

Reach this handle via [`ScreenHandle.standardProgramGroup`](ScreenHandle.md#standardprogramgroup).

## Methods

| Signature | Returns | Description |
|---|---|---|
| [`isWindowsVariant()`](#iswindowsvariant) | `boolean` | Whether the screen is rendering the Windows variant. |
| [`isProgramGroupEnabled()`](#isprogramgroupenabled) | `boolean` | State of the enable checkbox ("Create a program group" on Windows, "Create symlinks" on Unix). |
| [`setProgramGroupEnabled(boolean)`](#setprogramgroupenabled-boolean) | `StandardProgramGroupHandle` | Toggle the enable checkbox. |
| [`assertProgramGroupEnabled()`](#assertprogramgroupenabled) | `StandardProgramGroupHandle` |  |
| [`assertProgramGroupDisabled()`](#assertprogramgroupdisabled) | `StandardProgramGroupHandle` |  |
| [`getProgramGroupName()`](#getprogramgroupname) | `String` | The program-group name typed into the selector (Windows only, empty on Unix). |
| [`setProgramGroupName(String)`](#setprogramgroupname-string) | `StandardProgramGroupHandle` | Set the program-group name. |
| [`assertProgramGroupName(String)`](#assertprogramgroupname-string) | `StandardProgramGroupHandle` |  |
| [`isAllUsers()`](#isallusers) | `boolean` | Whether the "install for all users" toggle is selected (Windows only, `false` on Unix). |
| [`setAllUsers(boolean)`](#setallusers-boolean) | `StandardProgramGroupHandle` | Toggle the "install for all users" checkbox. |
| [`assertAllUsers(boolean)`](#assertallusers-boolean) | `StandardProgramGroupHandle` |  |
| [`getLinkDirectory()`](#getlinkdirectory) | `File` | The symlink directory typed into the selector (Unix only, `null` on Windows). |
| [`setLinkDirectory(File)`](#setlinkdirectory-file) | `StandardProgramGroupHandle` | Set the symlink directory. |
| [`assertLinkDirectory(File)`](#assertlinkdirectory-file) | `StandardProgramGroupHandle` |  |

### isWindowsVariant()

```java
boolean isWindowsVariant()
```

Whether the screen is rendering the Windows variant. `false` means the Unix variant.

### isProgramGroupEnabled()

```java
boolean isProgramGroupEnabled()
```

State of the enable checkbox ("Create a program group" on Windows, "Create symlinks" on Unix).

### setProgramGroupEnabled(boolean)

```java
StandardProgramGroupHandle setProgramGroupEnabled(boolean enabled)
```

Toggle the enable checkbox.

### assertProgramGroupEnabled()

```java
StandardProgramGroupHandle assertProgramGroupEnabled()
```

### assertProgramGroupDisabled()

```java
StandardProgramGroupHandle assertProgramGroupDisabled()
```

### getProgramGroupName()

```java
String getProgramGroupName()
```

The program-group name typed into the selector (Windows only, empty on Unix).

### setProgramGroupName(String)

```java
StandardProgramGroupHandle setProgramGroupName(String name)
```

Set the program-group name. No-op on Unix.

### assertProgramGroupName(String)

```java
StandardProgramGroupHandle assertProgramGroupName(String expected)
```

### isAllUsers()

```java
boolean isAllUsers()
```

Whether the "install for all users" toggle is selected (Windows only, `false` on Unix).

### setAllUsers(boolean)

```java
StandardProgramGroupHandle setAllUsers(boolean allUsers)
```

Toggle the "install for all users" checkbox. No-op on Unix.

### assertAllUsers(boolean)

```java
StandardProgramGroupHandle assertAllUsers(boolean expected)
```

### getLinkDirectory()

```java
@Nullable File getLinkDirectory()
```

The symlink directory typed into the selector (Unix only, `null` on Windows).

### setLinkDirectory(File)

```java
StandardProgramGroupHandle setLinkDirectory(File directory)
```

Set the symlink directory. No-op on Windows.

### assertLinkDirectory(File)

```java
StandardProgramGroupHandle assertLinkDirectory(File expected)
```

