Skip to content
grwl edited this page May 10, 2012 · 3 revisions

Table of Contents

Screens

GUI will consists of the following tabs:

Tab 1. Main

  • a bunch of controls to input address, port, test name, debugging mode, etc.
  • 'start' button

Tab 2a. SSLCert

  • some check boxes and input fields
  • 'load ...' buttons: show file selector dialog, pass selected file name to the core
  • 'load ...', 'export ...' buttons: show file selector dialog, pass selected file name to the core
  • 'generate' button: just call the core
  • one more checkbox and lineinput field not shown on the screen prototypes, labeled 'server'

Tab 2b. SSLProto

  • a list available protocols, a list of selected protocols, buttons 'select all', 'deselect all'
  • similarly, lists of ciphers, available and selected ones

Tab 3. Testlog

  • progress bar
  • 'stop' button
  • table which will contain test results
  • the list which will contain log entries

Tab 4. Report

  • rich text editor, filled with data supplied by the core
  • possibly a few checkboxes/radiobuttons to control report generation
  • a button to copy the document to clipboard

Work flow

When 'start' button is pressed, pressed GUI has to

  • pass all options in bulk to the core
  • handle possible exceptions
  • disable all input element editing (grey out)
  • switch to 'test log' tab
In the course of the test GUI has to update progress bar, table of results, and the using event objects it receives from the queue (sent by the core).

When the test finishes, the GUI has to

  • call a method of the core to generate report (HTML), and switch to 'report' tab
  • reactivate 'start' button and input elements to allow editing
When 'stop' button is pressed, GUI has to call stop() method of the core and wait.

Other requirements

  • code must be clean
  • GUI design has to look nice on different OSes, i.e. fonts, spacing between elements, alignment must remain correct.
  • the same applies to resizing of the application window
  • there should be about dialog box and a button to invoke it

Clone this wiki locally