Change Log : jHomeNet UI package Written by : Dave Irwin (jhomenet at gmail dot com) ______________________________________________________________________________ Version 0.3 DESCRIPTION ----------- This is the third major release of the jHomeNet UI package. The biggest addition in this release is the inclusion of the Sensor Responsive System. The sensor responsive system can be used to execute certain responses based on a set of conditions. For example, a condition might be if the temperature of a certain temperate sensor is create than a 90F, execute an email response that would automatically send an email with pertitent information. This release contains all of the graphical user interfaces that are required to develop sensor responsive objects. Note: most of the actual Sensor Responsive System functionality is found in the jhomenet-commons package. This version is not binary compatible with previous releases. This release is still a pre 1.0 release and API changes can be expected between releases. RELEASE DATE ------------ July 16, 2007 BUG FIXES/NEW FEATURES/CHANGES ------------------------------ ** Bug/Issue fixes * Bug #UI-004 from release 0.2: regarding the sensor responsive nodes not being implemented. All the sensor response nodes have been implemented in this release. User(s): dhi (6/18/2007) * Bug #UI-001 from release 0.2: This bug has been fixed in this release. There was an issue with the way that the JInternalFrame was being initialized and configured. This is also included bug #1724452 which detailed problems resizing internal windows. It turns out there was a problem with the JXHeader implementation in an older version of the SwingX library. Upgrading to the latest SwingX library fixed this particular bug. User(s): dhi (6/27/2007) dhi (5/23/2007) ** New Features * Added support for creating a new sensor responsive event response. The new response type was added to the jHomeNet commons library as part of this release. The new event response currently supports a simple description as a parameter. Upon running the response a new event will be logged with the event logger. A user may create a new event response by right-clicking on the sensor responsive response tree node and selected "New event response". Note that because the message response and event response are quite similiar, a common editor panel is used to create these responses. As a result, some of the functionality was pushed up to a new abstract class that could make use of the similar code. Affected files/classes include: jhomenet.ui.panel.AbstractStringResponseEditorPanel.java [New] jhomenet.ui.panel.EventResponseEditorPanel.java [New] jhomenet.ui.panel.PanelFactory.java jhomenet.ui.panel.MessageResponseEditorPanel.java jhomenet.ui.tree.responsive.ResponseRootNode.java User(s): dhi (7/9/2007) * Added functionality to manage the sensor responsive system through a control panel. This control panel allows a user to schedule a pre-existing sensor responsive plan using a pre-existing sensor responsive trigger. The control panel also allows a user to execute a pre-existing plan for testing purposes. Affected files/classes include: jhomenet.ui.panel.ResponsiveControlPanel.java User(s): dhi (7/6/2007) * Added functionality create and edit sensor responsive plans. Sensor responsive plans include an expression (a set of conditions and operators) along with a set of on-true and on-false responses. The new plan editor allows a user to create a plan by adding the desired conditions as well as adding the desired responses. As of this date, however, the plans are not yet persisted in the database. Future releases will include this functionality. Affected fiels/classes include: jhomenet.ui.panel.PlanEditorPanel.java User(s): dhi (6/25/2007) * Added functionality to the AbstractProgressAction to support cancelling the action. In particular, a cancel button may be added by implementing classes by setting the displayCancelButton flag to "true" in the overridden initialize() method. This will provide a cancel button and associated cancel action to the progress window. However, it's still up to the actual progress window implementation to display the cancel button. The default cancel window, jhomenet.ui.window.ProgressCircleWindow does indeed take a cancel button and will display it if it's not set to null. Other ProgressWindow interface implementations may not display the cancel button even if it's passed to them. Affected files/classes include: jhomenet.ui.action.AbstractProgressAction.java jhomenet.ui.action.OpenEventViewerAction.java User(s): dhi (6/21/2007) * Added an event viewer for viewing system events. The event viewer loads events from the persistence layer before it opens. The current version does NOT receive notifications of new events and does not automatically update. Affected classes/files include: jhomenet.ui.action.OpenEventViewerAction.java jhomenet.ui.panel.EventPanel.java jhomenet.ui.table.model.EventTableModel.java jhomenet.ui.table.model.EventTableRow.java jhomenet.ui.table.renderer.EventTableCellRenderer.java jhomenet.ui.window.WindowFactory.java User(s): dhi (6/20/2007) * Added functionality for updating the sensor plot. The user may now select desired start and end date. Based on this selection, the appropriate data will be retrieved from the database to build the plot. Affected classes/files include: jhomenet.ui.plot.AbstractPlot.java jhomenet.ui.plot.PlotPanel.java jhomenet.ui.plot.StateSensorPlot.java jhomenet.ui.plot.ValueSensorPlot.java User(s): dhi (6/17/2007) * Added functionality for adding/editing/deleting sensor responsive responses under the sensor responsive "Responses" tree node. A user may right-click on the "responses" node to add a new response. A user may also right-click on an existing response node to edit or delete the response. Affected classes/files include: jhomenet.ui.panel.DeviceResponseEditorPanel.java jhomenet.ui.panel.MessageResponseEditorPanel.java jhomenet.ui.tree.SensorResponsiveNode.java jhomenet.ui.tree.ResponseNode.java jhomenet.ui.tree.ResponseRootNode.java User(s): dhi (6/11/2007) * Added functionality for adding/editing/deleting triggers under the sensor responsive "Triggers" tree node. A user may right-click on the "triggers" node to add a new trigger. A user may also right-click on an existing trigger node to edit or delete the trigger. Affected classes/files include: jhomenet.ui.panel.TriggerEditorPanel.java jhomenet.ui.tree.SensorResponsiveNode.java jhomenet.ui.tree.TriggerNode.java jhomenet.ui.tree.TriggerRootNode.java User(s): dhi (6/11/2007) * Under the sensor responsive tree node, have added functionality to the condition node. In particular, a user now may right-click on the "conditions" node to add a new condition. A user may also right-click on an existing condition node to edit or delete the condition. Affected classes/files include: jhomenet.ui.tree.SensorResponsiveNode.java jhomenet.ui.tree.ConditionNode.java jhomenet.ui.tree.ConditionRootNode.java User(s): dhi (6/8/2007) ** Changes * A major change to the AbstractProgressAction internal design. The class now uses an implementation of the javax.swing.SwingWorker class to perform any long-running tasks in a background thread. The revised design also allows other classes to retrieve a result from the long running task by calling the getTask() or getResultNonBlocking() methods. The getTask() method will block until the background execution is complete so don't call this method from the EDT. The getResultNonBlocking() method, however, does not lock up the EDT by using the FoxTrot library. This method may be called from the EDT without locking up the GUI. Affected classes/files include: jhomenet.ui.action.AbstractProgressAction.java User(s): dhi (6/20/2007) * An undocumented bug fix. The build.xml file previously did not copy GIF files into the jHomeNet commons UI jar file. This has bee fixed in the latest release. Also changed the temperatue icon from temp.gif to temperature.gif. Affected classes/files include: resources\images\temperature.gif build.xml User(s): dhi (6/19/2007) * Changed the tree node API. The AbstractNode now takes as a parameter a reference to the ServerContext object. All implementing classes must pass this to the parent class. Affected classes/files include: [all tree node classes in the jhomenet.ui.tree package] User(s): dhi (6/16/2007) * Updated the services control panel to display an icon for the status of the service whereas previously a string/text representation was used. The user is still able to select and right-click any of the services and either pause or resume the service. Affected classes/files include: jhomenet.ui.table.model.AbstractStatusTableRow.java [NEW] jhomenet.ui.table.model.ServicesTableModel.java jhomenet.ui.table.model.ServicesTableRow.java jhomenet.ui.table.renderer.StatusTableCellRenderer.java [NEW] User(s): dhi (6/13/2007) * Further refinement to the tree view framework for the GUI. In particular, moved a lot of the functionality out of the TreeView class and into the particular node classes. Of particular interest moved almost of jHomeNet hardware related code into the new jhomenet.ui.tree.HardwareRootNode class. This new node class is responsible for listening to changes in the hardware manager (hardware registered/unregistered/updated) rather than having the TreeView class do the listening. Affected classes/files include: jhomenet.ui.tree.TreeView.java jhomenet.ui.tree.HardwareRootNode.java jhomenet.ui.tree.RegisteredNode.java jhomenet.ui.tree.RegisterRootNode.java jhomenet.ui.tree.UnregisteredRootNode.java jhomenet.ui.tree.UnregisteredNode.java User(s): dhi (6/8/2007) * Updated the tree view framework for the GUI. In particular, moved all of the popup menu related code into the individual tree node implementations. This way it doesn't clutter up the main TreeView class as more and more different types of tree nodes are added to the TreeView. This also helps to encapsulate the functionality within the actual tree nodes (which are actually the code that is using the popup menus) rather than pushing it up to the TreeView. Doing this, however, has required a major change to the AbstractTreeNode interface in order to have some level of access to the TreeView components. This has also resulted in a few additional access methods in the TreeView class itself. Affected classes/files include: jhomenet.ui.TreeView.java jhomenet.ui.tree.AbstractHardwareTreeNode.java jhomenet.ui.tree.AbstractTreeNode.java jhomenet.ui.tree.ChannelNode.java jhomenet.ui.tree.ConditionTreeNode.java jhomenet.ui.tree.DefaultTreeNode.java jhomenet.ui.tree.RegisteredTreeNode.java jhomenet.ui.tree.SensorResponsiveNode.java jhomenet.ui.tree.ServicesTreeNode.java jhomenet.ui.tree.UnregisteredTreeNode.java User(s): dhi (6/8/2007) * Updated the splash screen to include a different color scheme. The splash screen now also includes the server version and build information for reference. Affected classes/files: jhomenet.commons.boot.Splash.java resources/images/splash.png User: dhi (5/23/2007) * Moved all of the icons/images to the resources/images folder under the src directory (when the library is built, they all get moved to the /resources/images folder). User: dhi (5/23/2007) ** Known Issues or Bugs NOTE: All bug submissions should be done through the Sourceforge website. Any outstanding bugs at the release time will be included in this list along with the Sourceforge bug id. Issues are not formal bugs and don't cause any problems in operating the jHomeNet application, but are points that should be resolved or fixed in the future. Sometimes the cause of issues are outside the scope of the jHomeNet application and relies on third-party libraries. * Issue #UI-005: The current JXHeader implementation does not include the ability to set the title and description fonts separately. As a result, the fonts are the same. In future releases, hopefully this will be fixed and the title font can be set to a bold font while the description font can be left as a plain font. This is dependent on the SwingX library. ______________________________________________________________________________ Version 0.2 DESCRIPTION ----------- This is the second major release of the jHomeNet UI package. This package includes a new main GUI that contains tree-based object navigation on the left side and a desktop view on the right side. Operators may view tree-based object data by right-clicking on a tree node and opening a corresponding window in the desktop view. This version is not binary compatible with previous releases. RELEASE DATE ------------ March 15, 2007 BUG FIXES/NEW FEATURES/CHANGES ------------------------------ ** Bug fixes * ** New Features * The registered hardware window is now tab-based: one tab for the hardware configuration, one tab for listing hardware data, and a third tab for hardware data plotting. * Created a jHomeNet desktop GUI framework. Consists of a split pane with a listing of available hardware objects on the left and a desktop pane on the right for configuring and monitoring jHomeNet properties through separate windows. * Added a server service's window that allows the user to view the current status of the running server services. The window also allows the user to pause and resume any of the server's services. ** Changes * The panel manager now supports taking a resize window flag. By default, the resize window flag is set to false. If so, any window's (currently either a JFrame or JInternalFrame) resizable feature created is determined by the panel manager's resize flag. * Updated source file documentation. ** Known Issues * Window resizing: currently there is an issue with the JInternalFrame window resizing in the jHomeNet main GUI application. In particular, when a user attempts to resize a window, the outline of the resized window is displayed but the actual window size is not changed. Hopefully this issue will be addressed in the next release. [bug #UI-001] * Registered hardware window update: The registered hardware window currently contains either two or three tabs: general information tab, hardware data table tab, and hardware data plotting tab. Currently, when the registered hardware window receives a hardware data update event, some artifacts from other tabs appear on the currently selected tab. It's been confirmed that all updates are currently done on the EDT. Hopefully this issue will be addressed in the next release. [bug #1739398] * The hardware editor "apply" button does not currently update any of the hardware settings when changed. This will be implemented in the next release. [issue #UI-003] * None of the sensor responsive tree objects are implemented in this release. This will be implemented in the next release. [bug #ui-004] ============================================================================== Find below the change history for older releases. ============================================================================== ______________________________________________________________________________ Version 0.1 DESCRIPTION ----------- Initial release of the jHomeNet UI library. Any UI code that was previously in the jHomeNet server or jHomeNet commons packages have been moved to this package. This release contains initial UI code for a hardware and sensor responsive condition editor. Also contains code for hardware sensor plotting. RELEASE DATE ------------ February 11, 2007 BUG FIXES/NEW FEATURES/CHANGES ------------------------------ ** Bug fixes * ** New Features * Added a jHomeNet hardware editor. * Added a sensor responsive condition editor. * Added a sensor plotting panels for all of the currently available sensor types. * Added an animation utility class for easily making animations. * Added a UIHelper class that provides general UI helper functions. * Added the TimingFramework.jar library (see http://timingframework.dev.java.net). * Updated to the latest SwingX library (see http://swinglabs.org). * Updated to version 1.3.0 of the binding library. * Updated to version 1.0.3 of the JFreeChart library. ** Changes *