The Code Style site has evolved by gradual refinement and accumulation of features and content. This review is part of a fully backdated site log and archive that sheds light on when, why and how particular features were implemented.
This log is sometimes updated several times per week, sometimes with a long overdue backlog of items. Many log entries refer to the Code Style Java package that delivers the servlet services and utilities used to manage this site.
Subscribe to the news feed for this log:
Added new methods to the Question interface to manage question metadata: getAskedCount(), setAskedCount(int), isUrlOnly(), setUrlOnly(boolean), plus set and get created and modified date methods. Implemented the new methods in the FaqQuestion class with a new set of Swing labelled input fields for each. Also re-arranged the main question text area inputs in their own BorderLayout panels to give them more vertical space in the main GridLayout.
Modified the FaqDataEditor application to add separate save buttons for sections, categories and questions. Added created and modified date settings for new questions when they are instantiated and apply other metadata from the store.
Added a setEditable method to the LabelledTextField class and created a new subclass LabelledDisplayField, which is not editable. Another new subclass, LabelledIntegerField, allows for the input and conversion of integer values from strings.
Moved the save() and isStored() methods from FaqNode to a new Storable interface for SQL entities. Also moved the implementation of these methods from AbstractFaqNode to the AbstractJPanelSQLEntity class. Migrated the supporting methods hasPrimaryKeyChange() and updatePrimaryKey() and made the doUpdate(Connection) and doInsert(Connection) methods protected rather than public.
Adapted the email Subscriber and SubscriptionService classes to the new Storable interface methods, as above.
Technorati tags: Swing, FAQ, refactor.
Created a new Swing SubscriptionEditor application to manage subscribers to Code Style article mailing lists. The system uses two main interfaces, Person and Service with concrete implementations Subscriber and SubscriptionService respectively.
Created a new SQLEntity interface and AbstractJPanelSQLEntity type to manage common database storage requirements. Extracted the getDatabaseConnection(Properties) method from FaqDataEditor and moved to the DatabaseUtilities class to re-use in the Subscription Editor.
Added an append(String) method to the LabelledTextArea class and created a LabelledList component to hold the subscriptions and subscribers lists. Finally made a Windows batch script to launch the subscription editor with a database properties file.
Since adding the right-hand text ad panel to the home page, the FAQ menu on the home page was getting excessive space above because of the general CSS rule table {clear: both }. Added an override to for tables in BoxMenu panels:
.MenuBox table {
clear: none;
}
Technorati tags: subscription editor, Swing, CSS.
These backdated pages record detailed changes to the Code Style Web site since July 2000, when development first got underway. Some pages may refer to documents or features that have since changed or are no longer part of the site, but the archive is checked to ensure there are no dead links.
For a summary overview, see the annotated site log contents.