Skip to content

Workbench gui documentation

Mindtoeye edited this page Feb 15, 2013 · 11 revisions

Overview

This document will serve as a means to slowly learn your way into the internal workings of Hoop. After reading this document you should have a good sense of what all the main parts are and how they work together. You should also be able to add basic functionality, such as adding a new Hoop type or adding a new visualization. Let's start at the highest level and see how Hoop functions as a software architecture.

Hoop at its basis is an instance of a document,view and controller architecture, where we can also run the document/controller portion separately. For example, one might want to index a large set of documents on a cluster. In that case you could use the view part of Hoop to monitor the cluster nodes but in practice you will most likely execute the document/controller portion in batch mode. Hoop offers a variety of ways you can execute your analysis and transformation pipelines and as such you can combine the three components in a number of ways.

Traditionally domain (and even UML) diagrams are made at design time and are refined as the application is being developed. However, this assumes that the detailed structure of the software can be readily understood just from observing the domain diagrams. The documentation you find here are mainly designed to make it easier to get into the code and the patterns used that make it work. To facilitate rapid understanding of the classes and the hierarchy we will start instead from the graphical interface and slowly demonstrate how each piece is constructed.

In the diagram above you see how the main application frame (an instance of JFrame if you go up the hierarchy) contains a number of JPanel instances we've subclassed to create our visualizations. For example we have a wrapper called HoopGraphEditor, which is something called an embedded JPanel. That is the Hoop version of a JPanel we can stick in the multi-splitter code we use to create all the tabs and panes.

Take a look at the diagram below, which is the highest level overview you will need and which shows all the main components (classes) you need to know.

When you start the interface you see a number of panels containing controls. Most obvious is the center panel that shows an empty graph with a pre-created start node. The main Java application a non visual class simply called Hoop (Hoop.java). However that class only takes care of the most rudimentary housekeeping tasks such as determining if there is another instance running. The class of most interest is HoopMainFrame, which contains all the toolbars, menus and the objects (JPanels) that contain the graphical panels. You see this class at the very bottom of the diagram below.

Useful Links

Clone this wiki locally