Treecle

Treacle

“Tell us a story!” said the March Hare.
“Yes,  please do!” pleaded Alice.
“And be quick about it,” added the Hatter, “or you will be asleep again before it’s done.”
“Once upon a time their were three little sisters,” the Dormouse began in a great hurry; “and their names were Elsie, Lacie, and Tillie; and they lived at the bottom of a well -”
“What did they live on?”said Alice, who always took a great interest in questions of eating and drinking.
“They lived on treacle,” said the Dormouse, after thinking a minute or two.
“They couldn’t have done that, you know,” Alice gently remarked. “They’d have been ill.”
“So they were,” said the Dormouse; “very ill.”
Alice tried to fancy to herself what such an extraordinary way of living would be like, but it puzzled her too much: so she went on: “But why did they live at the bottom of a well?”
“Take some more tea,” the March Hare said to Alice very earnestly.
“I’ve had nothing yet,” Alice replied in an offended tone: “so I can’t take more.”
“You mean you can’t take less,” said the Hatter: “it’s very easy to take more than nothing.”
“Nobody asked your opinion,”, said Alice.
“Who’s making personal remarks now?” the Hatter asked triumphantly.
Alice did not quite know what to say to this: so she helped herself to some and bread-and-butter, and then turned to the Dormouse, and repeated her question. “Why did
they live at the bottom of a well?”
The Dormouse again took a minute or two to think about it, and then said “It was a treacle well.”
“There is no such thing,” Alice was beginning very angrily, but the Hatter and the March Hare went “Sh! Sh!” and the Dormouse sulkily remarked, “If you can’t be civil,you’d better finish the story for yourself.”

- from Lewis Carroll’s Alice’s Adventures in Wonderland


Well, this is not the same story, and it’s not finished either.
But thats life.

Treecle

What is Treecle?

Treecle stands for “A Tree like Collection of Linked Elements” .  It is program for creating, managing and maintaining heirarchical data.  Treecle creates and manages user-defined, custom-built trees.

See the example file in the source tarball.

While there is no guarantee that the version number will be incremented, there is every probability of it increasing in the future as and when I get the time, and/or if enough people ask.

What can it do, in its present form?

Treecle creates and manages user-defined, custom-built trees.

What are they, exactly?

Well, consider your company. If it is a typical company, it will have a tree-like employee structure. One CEO or President, a few senior management officers (call them Regional managers, Vice-Presidents, or whatever),  some more lower-level would-be managers, etc., and then all the way down the heirarchy to office staff and factory workers. This structure can be represented by a tree. The same company can be also classified as having various working level branch offices, divisions or departments, then regional offices, all the way up to one head office

Consider the product catalogue of your company. This is also a tree. Different products, various models for each product, options, accessories, etc.

Consider your collection of books (or objects d’art, or anything else). A typical collection can be classified into various categories and further into subcategories.  This is also  a tree.

Consider something as mundane as your telephone list. It can also arranged into a tree – with main categories like friends, enemies, colleagues, clients, suppliers, etc. The subcategories are also obvious.

If you are in the habit of keeping  notes on various subjects and topics, or wish to keep any kind of data in an orderly manner Treecle can create, maintain, and keep it accessible.

The idea is to organise the data into categories, then create the categories in the form of a tree whose branches and leaves mirror the organisation. The various items in each category are then entered. The tree can be saved, retrieved, modified.

Obviously, the user interface is in the form of a Tree. A click on a branch opens or closes it. Branches can be assigned titles, and the data can be searched for as words or phrases.

You must have seen and used graphical interfaces for the RPM database, such as gnorpm, kpackage, or xrpm. The left side of each of these programs displays a tree, and the right side the corresponding data. TheKDE file manager konquerer is another example. Former MS-Windows users would also be familiar with the Explorer interface, but we will not go further into that…

Treecle is similar, except that the tree is created by you, according to your classification of the data it is supposed to manage.

How do I use it?
The  program presents you with a main menu, a toolbar, a category window on the left, a data editor window on the right and a status bar on the bottom. Simple, no?  The program window can be resized, and the border between the category and data windows can be dragged left or right with the mouse.

When you first create a tree (how to do this is described below), by default the branches are labelled “Category 1″, “Category 2″, etc., in the order in which they are created. These labels are only place holders, and can be changed by clicking on them (in the left category window) and editing as needed.

The data for each category is similarly labelled “Data for Category 1″, etc. This is also to be edited as needed. Any changes made to the data or label are automatically assigned to the highlighted category (which is displayed with a black background) when you click on another category.

A new category or data is always added as a subcategory to the highlighted category. To add a new top level category, first unselect the current category before adding a new one. Click on the small arrows on the left of the categories  to open and close them. Closed categories having subcategories or data items have a “fat” bulging folder to their left.

TOOLBAR
The tool bar, just below the main menu, looks like this:

Treecle toolbar

The icons represent, from left to right:
Open File
Save File

Add a new branch to tree.
Add a new data  item (leaf) to a branch

Unselect highlighted branch or branches. This is needed to add a new top-level branch.
Cut (delete) any selected branch or branches and all sub-branches and data items.

Open the tree to display all branches and data items
Close the tree to show only the top level branches

Sort the tree in alphanumeric order.

Search the data nodes (leaves) for the text entered to the right of the “Search” button. At present the search is case sensitive, and does not search category titles, but only data nodes.

FILE
Clicking “File” on the main menu pops down the following choices
New: Deletes the currently loaded tree.
Open: Opens a Treecle file. The recommended file extension is “trc”. (Well, I thought of “tcl”, earlier, but then decided against it to avoid a clash with the files belonging to the Tcl/Tk  toolkit.)
Save: Saves the tree back to the file from which it was loaded.
Save As: Saves the tree in another file.
Exit: Exit.

Wherever possible, the program prompts you to save the currently loaded tree, if required.

TREE
Clicking “Tree” on the main  menu  pops down the following choices:
Unselect: Unselect all branches. This is needed to add a new top-level branch or data item.
Add category: Add a sub branch below the highlighted branch, or a top-level branch when nothing is selected.
Add item: Add a data item branch below the highlighted branch, or a top-level data item when nothing is selected.
Open all: Opens the tree to display all branches and data items. Unselects all branches.
Close all: Closes the tree to display only top-level branches and data items. Unselects all branches.
Sort tree: Alphanumerically sort branches and sub-branches.
Delete category: Delete the selected branch and all sub-branches and data items.

HELP
Clicking “Help” on the main  menu  pops down the following choices:
Help: Display the HTML help file. This should be in the same directory as the program binary file.
About: Display the program version, author and copyright information.

How is the data stored?
The tree you create is stored as a text file, whose format maintains the relationships between the various nodes and branches. See the source code for details.

While opening a data file, the program will automatically display file names which have the extension “trc”. However, this  is not a default extension, and the program does not add any extension on its own.

Thus, if you store a file and name it as “my-tree.trc”, it will automatically appear in the file selection box. However, if you name it  just “my-tree”, it will not appear automatically, but only when you click on the “Show All files” option.

What are the program’s limits?
Available memory, to the best of my knowledge…
If anyone wants more space, just e-mail me!


IMPORTANT:There are NO BACKUPS made at present!
Please save often, and remember to make backups!


What do I need to compile it?
It’s not yet already compiled?
First download it from here.

It contains a pre-compiled 64-bit binary that was compiled on Debian, and should work on most, if not all, Linux distributions, provided the required libraries are installed.

Of course, the source code can be used to compile it on your machine, if desired. You also need the Fast Light Toolkit from http://www.fltk.org.

fltk logo

See the README file in the Treecle tar-gzipped file for further details.

Can’t you just provide the binary alone? I am not interested in the source.

A binary package is also available from the same link .

What is the copying policy?

This program is copyright, (C), Kartik Patel.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


Last updated: 5 June 2011
Copyright (c) Kartik Patel, letapk AT gmail DOT com