As always, the FedEx day resulted in a nice mix of features that were missing from the applications we use internally, and interesting features that our customers had not requested, yet might find interesting.
Peter extended the report module in PURE, in order to support rendering of an analysis using JFreeChart. With this new extension, each analysis based report component inserted into a report can be customised separately to output a chart or the standard table. The current implementation supports rendering of an analysis grouped at a maximum of two levels.
Lasse implemented a solution for visitors to the AMU web site to get the latest news as RSS feeds, which means that it will become possible to get the latest news without actually visiting the AMU websites. The solution is implemented by the use of the Informa RSS API. A simple Java servlet is responsible for creating the feeds on the fly whenever the servlet is accessed.
Dan set the goal of making it possible for the administrators/developers-roles in The Count' System to import and export already existing 'system-engines' from server instance to server instance, plus having the ability to preserve these representations for later use or manipulation. The final implementation ended up with two different components, first a simple download interface for the exported engine file (a compact representation of the system-engine). Secondly, an upload form; complete with the required fields and server-side validation for the engine-file.
Martin created "The TagCloud" as a component for APM, in order to help create an overview of large quantities of issues. The component is a small lightweight tagcloud component, made using ajax to ease use of the application and to give it a nice feel. There are several different views of tags for each project, and tags for each issue can be edited from a separate page.
At Atira we have developed our own project management system called APM. One of the things we store in this system is issues, i.e., bug reports, feature request etc. Jeff and Claus decided to add freeform search to this part of APM. The result was accomplished by using Compass, a open source framework working on top of Lucene to give a much better integration between the freeform search engine and our Hibernate object. As an example, the search indexes are created using annotation on the Hibernate objects. The integration of Compass into APM was done using Compass support for Spring.
Kim extended our GWT application for Newtec with a PieChart widget. The widget works by using JSNI to interface with our existing graph javascript library. This proved to be quite simple to do using GWT, and we found that more functionality could easily be added to the widget later to support line charts and bar charts.
A code example of the JSNI integration can be seen here.
Example of the PieChart widgets use of JSNI
public static native void drawGraph(int paramWidth, int paramHeight, boolean paramCrisp, String paramOurid, DataRepresentation data) /*-{
var graph = new $wnd.Atira.Graph();
var dataset2 = new $wnd.Atira.Graph.DataSet('pie');
graph.addDataSet(dataset2);
dataset2.setLegend(false);
var entryCount = data.@dk.newtec.celox.client.widgets.PieChartWidget.DataRepresentation::getEntryCount()();
for (var i = 0 ; i < entryCount ; i++) {
var matchedcount = data.@dk.newtec.celox.client.widgets.PieChartWidget.DataRepresentation::getEntry(I)(i);
dataset2.addEntry('' + i, matchedcount);
}
dataset2.style.colors = ['#494','#c00', '#fa0'];
// Set properties on graph
graph.xAxis.labels=[{key:'0',label:'Matched'},{key:'1',label:'Fail'},{key:'2',label:'Noise'}];
graph.body.width = paramWidth;
graph.body.height = paramHeight;
// Create a renderer
var renderer = new $wnd.Atira.Graph.Renderer(graph);
renderer.crisp = paramCrisp;
// Render graph on canvas
renderer.render( paramOurid );
}-*/;
Atira A/S
Niels Jernes Vej 10
9220 Aalborg Oest
Denmark
Phone: (+45) 96 35 61 00
VAT no. 26835526
General info: info@atira.dk
PURE support: support@pure.atira.dk
Other support: support@atira.dk
We specialize in customer- and domain-specific solutions for knowledge intensive sectors. Our area is server-side applications and integration in service oriented architectures.
Our development and project management method is SCRUM. We work in a number of European countries.