numere-org / NumeRe

Framework for numerical computations, data analysis and visualisation
https://www.numere.org
GNU General Public License v3.0
18 stars 6 forks source link

Software architecture generator for apps #4

Closed numeredev closed 11 months ago

numeredev commented 1 year ago

DESCRIPTION

What does your feature request improve on? Please describe. A generator for a MVC pattern for a custom app will help people organizing their code far better.

Describe the solution you'd like Create a software architecture generator for apps written within NumeRe. This design generator shall be accessible from the Tools menu and create the following prefilled file structure:

## App "My App":
$my_app~start() ## shall call window <this>/view/appmain.nlyt
<procpath>/my_app/view/appmain.nlyt
$my_app~view~handleEvent()
$my_app~controller~initialize() ## called by $my_app~start() with the win ID
<procpath> my_app/model/...

Describe alternatives you've considered The only alternative is to prepare the necessary folders and files as templates somewhere and then copy them to the app's root folder.

Additional context Migrated from here: https://sourceforge.net/p/numere/tickets/710/

(Do not write below this line)


DEVS' SECTION

ANALYSIS

This feature is dependent on #18. If that is merged, then the creation of this tool is not too hard. Consider the fact that many procedures can now be called using the new relative syntax. Everything else is just providing a template, implementing a dialog to obtain the necessary information from the user and then creating the app and their necessary files and filling them with the necessary information.

IMPLEMENTATION STEPS

(see also our Wiki for implementation guidelines)

DOCUMENTATION STEPS

(see also our Wiki for further information)

PULL REQUEST

numeredev commented 1 year ago

Consider the fact that we have soon the possibility to declare enums #72, appmain.nlyt should include declare enum ... and $handleEvent() should automatically contain the necessary include appmain.nlyt :: declarations to load the same enumeration as been used in appmain.nlyt.