GIMIAS developer guidelines
Here you can find the main topics of GIMIAS that will help you to develop your plugin in a more reusable, faster way and aligned with the GIMIAS architecture.
DataEntity, Processor and Widget
These are the three main concepts of GIMIAS:
- DataEntity: Stores data
- Processor: Process data
- Widget: Provides graphical interface to the processor
When a processor generates data, a new DataEntity should be created and added to the Data tree. DataEntity is a container of any kind of data. If there's no container for your specific type of data, you should try to create a new type.
Processor is responsible to process data. Processor code should never depend on GUI library or access to the GIMIAS framework classes.
Widget is responsible of user interface with the end user and with the Framework. The widget is dependent of the GUI library. This is the less reusable code. We recommend you not to put processing code in the widget, because it makes it less reusable. You should put in the widget the code that is dependent on GUI library. Currently GIMIAS is using wxWidgets as GUI library.
Data tree is the main data repository. It is composed of a tree of DataEntity instances. This should be the main place where to put all data generated by all plugins.
The main advantages of Data Tree are:
- Common repository to share data between plugins
- Allow user to render, save, read the data in a generic way
| Note: Member variables|
Avoid to store generated data inside a Processor or a Widget because the data cannot be reused, shared or saved.