Package aima.gui.framework

See:
          Description

Interface Summary
AgentAppFrame.Controller The agent application frame delegates the execution of all domain-level commands to a controller.
AgentAppModel.ModelChangedListener Observer interface for views which need to be informed about model state changes and log messages to be printed out.
 

Class Summary
AgentAppController Simple controller implementation which extends its base class by maintaining references to frame and model, and by simple demo implementations of the required three abstract methods.
AgentAppFrame Universal frame for building graphical agent applications.
AgentAppFrame.AbstractAgentView Base class for all agent views.
AgentAppFrame.SelectionState Contains the names of all selectors and the indices of their selected items.
AgentAppModel Facade hiding application specific design decisions from the AgentAppFrame.
AgentView Simple agent view without content but with some useful transformation features.
SimpleAgentAppDemo In this framework a graphical agent application consists of at least three parts: An AgentAppModel, an AgentAppFrame, and an AgentAppController.
 

Package aima.gui.framework Description

This package provides useful base classes for building graphical agent applications. The design follows a model-view-controller pattern. The AgentAppModel serves as model, the AgentAppFrame together with its embedded AgentView as view, and the AgentAppController as controller. The SimpleAgentAppDemo demonstrates, how this parts can be plugged together.

Start the main method of AgentAppFrame to see the layout of the frame. It is configurable in many ways, even without subclassing. A demo application with model, view, and controller, but still without any content, can be seen when starting the SimpleAgentAppDemo. Look for classes with the ending ...AppDemo in the aima.gui.applications package to see agents at work.

This simple framework is strongly based on inheritance. You can extend any of the given base classes with the features you need. To be very flexible with respect to content, no methods are included which transfer data between model and view. So typically, you will design a model and a corresponding AgentView together - the model should provide access to all the data, which is needed by the view to visualize the agent in its environment meaningful.