Opened 17 years ago

Closed 17 years ago

Last modified 17 years ago

#39 closed feature (fixed)

Implement the input device configuration dialog

Reported by: Henrik Heimbuerger Owned by: Henrik Heimbuerger
Priority: critical Milestone: MS1: First release (1.0.0)
Component: ui Version: pre-1.0
Keywords: ui, prototype, input device Cc:

Description

Four sections, separated by vertical lines. Image at the top, configuration below.

Change History (22)

comment:1 Changed 17 years ago by Henrik Heimbuerger

Owner: changed from somebody to Henrik Heimbuerger
Status: newaccepted

comment:2 Changed 17 years ago by Henrik Heimbuerger

Status: acceptedassigned
Summary: Draft a UI concept for the input device dialogImplement the input device configuration dialog
Type: tasknew feature

comment:3 Changed 17 years ago by Henrik Heimbuerger

Status: assignedaccepted

comment:4 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [159]):
[Partial fix for ticket #39] Created a stub input device configuration dialog and integrated it into the application.

There's no functionality yet.

The icon of the 'player settings' dialog has been replaced.

comment:5 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [162]):
[Partial fix for ticket #39] Added the device images to the dialog and created the basic layout.

comment:6 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [175]):
[Partial fix for ticket #39] Created the basic LnF of the input device configuration dialog.

Also gave the temporary images a transparent background.

comment:7 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [181]):
[Partial fix for ticket #39] Created an InputDeviceManager (bean) and added a preliminary integration with the player settings dialog.

The XyzDeviceController classes have been renamed to XyzDevice because they now represent instances of a device. (If the device is used for more than one player, there are also multiple instances of the class.)
They are all subclasses of the abstract class DeviceController (formerly an interface) which contains common code, like managing the ID and the name. The ID will be necessary to track modifications of input devices that are already assigned to a player. That makes the Devices enum superfluous.

The PlayerSettingsDialog does use the InputDeviceManager to fill its combo boxes but has not yet been completely adjusted.

comment:8 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [182]):
[Partial fix for ticket #7, related to ticket #39] Added integration of Wiimote detection to the input device dialog.

The Wiimote section of the input device settings dialog has been finished. The currently connected Wiimotes are displayed and a redetection can be triggered. However, Wiimote detection currently seems to be broken on Windows.

The dialog's cancel button has been removed, as many operations cannot be undone (case in point: connecting Wiimotes).

comment:9 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [188]):
[Partial revert of change to ticket #51, related to ticket #39] Reverted accidental input device dialog size change from [187].

comment:10 Changed 17 years ago by Henrik Heimbuerger

Status: acceptedassigned

comment:11 Changed 17 years ago by Henrik Heimbuerger

Milestone: MS3: Input device and slot car track supportMS1: First usable version

Batch moved MS3 (input device/technology integration) to MS1 (first working version).

comment:12 Changed 17 years ago by Henrik Heimbuerger

Component: unspecifiedui

comment:13 Changed 17 years ago by Henrik Heimbuerger

Use a tabbed pane instead of the the vertical lines (not enough screen estate).

comment:14 Changed 17 years ago by Henrik Heimbuerger

Status: assignedaccepted

comment:15 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [215]):
[Partial fix for ticket #39] Major rewrite of the input device settings dialog.

The device types are now configured in a tab folder. The 'four sections' design didn't leave enough place for proper configuration. Additionally, a list of all configured devices has been added at the bottom to give a quick overview which devices can be used.
Most of this functionality has been factored out into an abstract class (AbstractSettingsDialog) so it can be reused for the connector configuration dialog.

The InputDeviceManager has been overhauled and now actually manages the devices instead of just being a more comfortable collection class. That also allowed to do proper one-time checks on whether the external libraries (for game controllers and Wiimotes) are available. If they are not, the corresponding sections are now completely deactivated and just refer the user to the logs.

Some other modifications were necessary to get all this working:

  • the GameControllerDeviceManager no longer catches the UnsatisfiedLinkError itself, as the InputDeviceManager must know about this
  • the playersBean is now initialized empty
  • the CarController has been made an abstract class and does the ID and name management (this functionality has been pulled up from the DeviceController, as it will be needed for driving agents anyway)
  • the MouseDevice returns a debug signal as the KeyboardDevice already did

comment:16 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [219]):
[Partial fix for ticket #39] Added incomplete redesign of the game controller configuration tab.

The GameControllerDevice now holds its own descriptor, this needs to be cleaned up.

comment:17 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [220]):
[Related to ticket #39] Reverted accidental commit [219].

comment:18 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [221]):
[Partial fix for ticket #39] Added incomplete redesign of the game controller configuration tab.

The GameControllerDevice now holds its own descriptor, this needs to be cleaned up.

comment:19 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [223]):
[Partial fix for ticket #39] Updated Wiimote tab in the input device configuration dialog.

The Wiimote tab has been updated to the new layout and a preview has been added, similar to the one for game controllers.

comment:20 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [224]):
[Partial fix for tickets #39 and #63] Removed unnecessary composite in the AbstractSettingsDialog and adjusted the layouts on the subclassed dialogs.

The AbstractSettingsDialog no longer sets a layout manager on the tabs' inner composites. This led to removing one composite level.

comment:21 Changed 17 years ago by Henrik Heimbuerger

Resolution: fixed
Status: acceptedclosed

comment:22 Changed 17 years ago by SVN

New commit by hheimbuerger (revision [245]):
[Fix for ticket #84, related to #39 and #63] Fixed exception that was thrown when the input settings dialog was closed with the X-button in the top right.

This was caused by the cleanup code being in the okPressed() handler, which was not called when the X-button was clicked.

The X-button has now been replaced with a 'Close' button as suggested in the ticket to indicate that all changes are immediate and there's no difference whether the dialog is closed with the X or with the Close button. The cleanup code has been moved to the close() method.

Also, the preview update timer now checks if its widget (the progress bar) is still available before modifying it.

Additionally, the layout of the 'mouse' tab has been fixed.

Note: See TracTickets for help on using tickets.