Sunday, 9 November 2014

Progress Bar

The standard progress bar in gtk+ is usually fine for displaying progress, say on a dialog box and of course it's drawn nicely to your current theme.

However there can be two problems with it, the first is that the busy animation is just dreadful. When you set the progress bar to that mode it animates a rectangle bouncing from side to side. There's something very reminiscent of Windows 95 in that, and it's not a very nice thing to look at.

The second problem is that it always seem to obey the minimum size specified on the theme, and so a programmer can't choose how small to make the progressbar.

So the only answer was to make a custom gtk control for progress and busy animations.

Here it is as a progress bar and a busy bar in various sizes and types.

In Data Forms Action the progress bar and busy bar are used when opening a page and refreshing the data sources on it for the first time. Therefore the progress bar has to show the progress as connections or queries finish, but also display a busy bar whilst the connections or queries are in progress, so the progress bar I developed here allows you to switch between the two.

For the visual effect I've borrowed quite shamelessly from Mac OS X and used a barberpole animation as well as rounded corners.

Monday, 20 October 2014

Quickly Populating a Form in Data Forms Action! for Linux

When building GUI applications, there can sometimes be a lot of tedious work involved in getting controls onto your form, laying them out and then binding them to data.

Once you've decided on the data you want to display on a Form, the next step usually involves building a query to get the data and then drag-n-dropping each control onto the form; and finally binding each control to it's respective column on whichever resultset it takes its data from.

Adding a Data View control to a form and binding to a Datasource.

Adding Labels and Fields bound to the Data View.

But wouldn't it be nice to automate that a bit, so that you can could create the controls and bind them directly as you drop them on the Form?

Well that's what Data Forms Action! now allows you to do via the 'Quick Controls' context menu.

This popup dialog allows you to take any columns from a dataset which is bound to a data view, listbox or drop-down combo and directly create controls that can be placed straight onto the Form.

The Quick Controls dialog.

So here it is step by step.

1. Drag a data view onto the Form and bind it to a dataset.

2. Right-click the context menu to get the Quick Controls dialog.

3. Select the columns you want to appear on the Form and choose whether they are labels or fields.

4. Drag the controls directly onto the Form.

5. Ready to Run!

Obviously that's still a bit rough n' ready to accept as the final product, but with some minor adjustments that can be improved.

So after some small changes, resizing the controls and giving the name label a background color, here's the final result.

This was created on Linux Mint, and all without writing one line of code.

See what you can do with your data, download the demo here:
 Data Forms Action! 

Sunday, 28 September 2014

What Is It and Why It Is

Data Forms Action! A Database Forms Builder

What it is

Data Forms Action! is a Forms builder tool for Linux. Currently it supports Postgres and MySQL or MariaDB databases. The intention is to also support DB2, Oracle and Sybase in the future.

It is also a Rapid Application Development (RAD) tool, which has the aim of making it as easy as possible for somebody with little experience of software development to build Forms for viewing and entering data.

Why it is

About 2 years ago when I first started developing Data Forms Action! I had some Postgres data that I wanted to view, and was looking for some quick tool that would allow me to throw some controls on a form and start looking at my data. A quick scan of the available software at that time didn't really come up with anything. The closest to what I was looking for was OpenOffice Base, but at the time that didn't support any other databases, and the GUI design element was pretty frustrating to use.

So I thought to myself, what does it take to develop a simple RAD tool on Linux where I can:
  • Connect to multiple databases and retrieve data.
  • Create simple interactive Forms where I can drag n' drop controls.
  • Edit the properties of these controls so I can set colour and font information.
  • Save the Form so that I can edit it, or share it with others.
  • Create a Forms player application so that others can simply run the Form as an application.

The answer to that is Data Forms Action!