Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 The current state

 Class structure


Gliffy Diagram
size600
displayNameNamelistClassRelationship2
nameNamelistClassRelationship2
pagePin14

  • Three classes displaying similarly looking (but not the same!) extra namelist panels:
    • Grid2DExtraInputPanel
      • Used by Grid2D application
      • A member of Grid2DNamelistPanel that extends CenterPanel
    • ENamelistPanel
      • Used by Edge2D application
      • A member of EGoNamelistPanel that extends CenterPanelCheck (that extends CenterPanel)
    • ExtraNamelistPanel
      • Used by Jetto, Sanco, Mishka, Helena, Elite
      • A member of OutputExtraNamelistPanel that extends CenterPanelCheck (that extends CenterPanel)

 Challenges

  • Complex legacy code
  • The current implementation violates Model-View-Controller principia:
    • No clear separation of data and GUI that makes both 'tightly coupled'
    • Some data are kept in table 'model' 
    • GUI influences the way data are storing
  • Arrays specified as a set of entries: (variable name, index, value)
  • Quite a lot of time spent on 'reverse engineering' essential to understand dependencies and internal mechanisms working 'under the hood'
    • How / from data are being read?
    • How / where data are being saved?
  • Necessity to kept backward compatibility in terms of produced output files 

 Development

 GUI

Image Added


  • NewExtraNamelistPanel class, replacing ExtraNamelistPanel - designed and developed

  • package jet.misc.extranamelist.gui;

Progress:

  • GUI development
  • simplification of architecture
  • table is resizable
  • Integration of NewExtraNamelistPanel  class:

    • Integrated: 
      • Jetto
      • Sanco
      • Mishka
      • Helena
      • Elite
    • Not integrated (not handled by a common class - see below)integrated 
      • Grid2D
      • Edge2D
  • Additional dialog to present variable data and metadata and to edit value

Image Added


Data handling

  • A Variable class: 
    • name
    • overview
    • obsolete
    • Specification class
      • namelist
      • model
      • tab
    • Data class
      • meta_type
      • type
      • value
    • Info class
      • link
      • description
    Active variables saved to settings


 Open points

Config files

 YAML file format

...