Fisterra .Contribute.GTKDevelWork

Start of topic | Skip to actions

GTK and Gnome Developers Contributing Work

The work defined in this section requires advanced knowledge in GTK and Gnome programing and other technologies, used in the most of Gnome projects. The Fisterra GNOME Development Framework provides many business widgets and a set of utility classes to develop new business widgets, such listing widgets, generic for widgets, actor management,authorization, ... The experience in advance GTK programing is very useful to review and make improvements in Fisterra widgets and to implement new facilities to develop business interfaces.

The Fisterra framework have been designed in various independent layers : Client interface, communication layer, EGB container server and database server. This independence provides an easy mechanism to replace the technologies used in each layer or develop new features on them. The knowledge in Orbit communication protocol and the CORBA implementation of GNOME can be used to increase the performance of communication layer, implements a new communication protocol, ...

Finally, the data access system independence allows to use different database connection providers. The Fisterra data access system is based on Dataobjects and DAO classes. This classes are automatically generated fro an xml specification of the database ER model. The knowledge in GDA library will be required to develop new features in the connection management system implemented on Fisterra-Base. Experience with libXML_ and libXSL will be required to develop on Fisterra-Base code generation system.

Tasks description

The tasks describe in this section requires a more deep comprehensive of Fisterra framework structure and all its modules and components. We strongly recommend to examine the project documentation provided by Fisterra source code.

The tasks defined are focused in the following areas :

  • Interface development
  • Comunication, CORBA management and name server.
  • Authentication and authorization
  • Error management

The documentation and tools required to do this work are :

  • Fisterra documentation
    • [Fisterra-Base] : error_management.sgml.
    • [Fisterra-Base] : implementation_daos.sgml.
    • [Fisterra-Base] : implementation_form_window.sgml.
    • [Fisterra-Base] : implementation_shell_menu.sgml.
    • [Fisterra-Base] : implementation_view_server.sgml.
    • [Fisterra-Base] : implementation_services.sgml.
    • [Fisterra-Base] : session_management.sgml.
    • [Fisterra-Base] : printing_system.sgml.
    • [Fisterra-Base] : modules_description.sgml.
    • [Fisterra-Base] : log_system.sgml.
    • [Fisterra-Base] : user_interface_manager.sgml.

Testing tasks

Unit tests

  • Status : pending
  • Developers :
  • Coordination notes :
  • Description : Unit tests provide a way to test that a concrete module of source code is working properly. The unit testing inside integration loop will allow to run these tests after a change in the repository. These approach will provide a way to check regression and collateral effects of a change, because if they exist, they likely break the unit tests.
    With this tests we will test all the interfaces of one widget (positives, negatives, preconditions and postconditions).

Functional tests

  • Status : pending
  • Developers :
  • Coordination notes :
  • Description : Functional tests are black box tests that check if a particular behavioral requirement of the software is working properly. Regarding the window interfaces software these tests involve the interaction of the user with the display in order to achieve a particular action of the software. In order to execute the tests through these interfaces we will use Dogtail, a GUI test tool and automation framework written in Python.

Software integration tasks

evolution-data-server integration

  • Status : pending
  • Developers :
  • Coordination notes :
  • Description : "Evolution Data Server" is responsible for managing calendar and addressbook information. This task will allow use Evolution-accessible data (such as mail, calendar and contacts) in a Fisterra applications.

gconf integration

  • Status : pending
  • Developers :
  • Coordination notes :
  • Description : Integrate with GConf for storage of application settings

Interface development tasks

This section decribe the task to improve the management of Fisterra development framework interfaces, define new icons, toolbar and shortcuts management, ....

Gazpacho integration

  • Status : pending
  • Developers :
  • Coordination notes :
  • Description : Gazpacho is a fresh new GUI builder, written in Python language, for the GTK+ toolkit designed to be ultra easy to use. This task allows us to have a powerful tool to build interfaces in a very easy way.

UI Manager

  • Status : pending
  • Developers :
  • Coordination notes :
  • Description : The UI Manager is an utility class, provided by GTK development libraries, to manage window icons and the associated actions. The Management of events handlers becomes very easy; the Fisterra listing window controllers always use the GtkUIManager class to define the actions of each window toolbar.
    The main goal of this task is to use the UI Manager for all windows defined on Fisterra, providing utility functions to force this behavior in all window built with Fisterra. All windows might be designed using ACtionEntries and ActionsGroups to manage them by UI Manager.
    All icons used in Fisterra interfaces must be defined by Stock Items utility of GTK.
    This work to do in this task can be summary in the following points :
    • Review all detail windows builders.
    • Adapt the builders to use the UI Manager
    • Use Stock Items in all icons

GtkDialog inheritance

  • Status : pending
  • Developers :
  • Coordination notes :
  • Description : All floating windows use to be subclass of GtkDialog in the most of Gnome projects. The goal of this task is to modify all detail and form windows to became them as a GtkDialog subclass.
    This modification must be designed to include it in the Fisterra-Base framework, defining an utility builder class or another design approach, to force all floating windows developed by Fisterra framework are subclass of GtkDialog.
    The Fisterra-Base framework provides a generic form windows, with a generic controller and builder to performs basic I/O data operations. It's probably you must review this logic and you may implement a similar solution to build a more complex dialog windows.
    This work to do in this task can be summary in the following points :
    • Analyze the Fisterra windows class hierarchy of detail and form windows.
    • Defines a new design, using a GtkDialog as a superclass.
    • Analyze a solution to Fisterra-Base to build dialog windows.
    • Implement dialog building support on Fisterra-Base.

Initial application window

  • Status : pending
  • Developers :
  • Coordination notes :
  • Description : This task has the goal of implement an initial or welcome window to Fisterra abased applications. This window must be defined on Fisterra-Base development framework and might be configurable, to allow personalization in each ERP application development.
    This window ay show general information of enterprise, or another data. To implement this window you can use_GtkHtml_ like evolution initial window.
    This work to do in this task can be summary in the following points :
    • Analyze the better solution to show the initial information.
    • Implement the initial window on Fisterra-Base framework.
    • Define utility classes and methods to build and configure the initial window.
    • Allow custom widgets to define this window.

Historic combo for window navigation

  • Status : pending
  • Developers :
  • Coordination notes :
  • Description : All windows in Fisterra framework has its own controller. The main shell window is not an exception. This window container shell is controlled by FClientShellControl class. This class is defined for each particular ERP project and implements functionalities like embedded business windows management and forward and back historical windows.
    Another feature to increase the usability of application shell would be to provide an historical window combobox, to directly selects the required window, without pass through all historical windows.
    An additional work of this task is the migration of shell controller to the Fisterra-Base framework.
    This work to do in this task can be summary in the following points :
    • Review and analyze the forward/back windows management of shell controller.
    • Design and implement a combobox approach to manage historical windows access.
    • Migration of shell controller logic to the Fisterra-Base framework.

Copy and Paste toolbar buttons

  • Status : pending
  • Developers :
  • Coordination notes :
  • Description : All embedded windows must have a Copy and Paste toolbar buttons, in addition to the menu 'Edit' options. This logic must be implemented by the shell controller on Fisterra-Base framework.
    The floating dialog windows must implement Copy and Paste functionalities, same as embedded windows done.
    This work to do in this task can be summary in the following points :
    • Define Stock Items to manage Copy and Paste toolbar buttons, managed by UI Manager.
    • Implement the required logic in the shell controller.
    • Implement Copy and Paste functionalities in dialog windows, probably as contextual menus.

to top

div class="twikiTopicInfo twikiRevInfo twikiGrayText twikiMoved"<&/div>--<&/td>