Skip to content

Refactor current form classes to Paclink.UI.Common/Paclink.UI.Windows #11

@tmiw

Description

@tmiw

Work has begun to be done on moving the existing forms in the Paclink project in preparation for porting Paclink to Linux and macOS. So far, the following have been moved:

  • DialogAGWEngine
  • DialogPolling
  • DialogSiteProperties
  • Main

And the following remain:

  • Bearing
  • DialogAutoupdate
  • DialogCallsignAccounts
  • DialogChangePassword
  • DialogPacketAGWChannels
  • DialogPacketTNCChannels
  • DialogPactorConnect
  • DialogPactorTNCChannels
  • DialogTacticalAccounts
  • DialogTelnetChannels
  • Terminal
  • TerminalSettings

Basically, the following should be done for each form to be moved:

  1. Create two interfaces in Paclink.UI.Common: a "Backing" (e.g. view model) interface and a "Window" one (e.g. the actual form). For example, IMainWindow and IMainFormBacking. The methods and properties for each interface should be platform-agnostic.
  2. Create the implementation of the Backing interface in the Paclink project. This will effectively serve as the "view model" and will be what other code in that project calls into if needed.
  3. Move the form into Paclink.UI.Windows and update as needed to implement the Window interface from (1).
  4. Update WindowsUiPlatform.cs to allow creation of this form.
  5. Update code in the Paclink project to call UserInterfaceFactory.GetUiSystem().DisplayForm() to display the newly moved form.

Once all remaining forms are moved, the next step will be to create a Paclink.UI.Maui project and port the forms in Paclink.UI.Windows to Maui.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions