Java ARINC 661 Server / News: Recent posts

0.54 Beta 6 released

Use version 0.6.4 of the MDIFramework library
Allow the Editor to manage tabs which are not Definition Files. This will allow plugins to add other types of tabs (for example, a Plugin could create a new tab of tab which is the result of Definition Files comparison)
Add a Look model plugin which will ultimately be able to convert from/to the Look specification format to/from the Synth2 Look and Feel format. Note that the Look specification is an upcoming new feature of ARINC 661 supplement 5.
Fix a problem in the Embedded Server which lead to an infinite loop in Map widgets (in an embedded Server) showing legends
Add a Synth2 Look and Feel sample which implements the Windows Look and Feel
Fix the A661_SIZE_TO_FIT_CONTAINER and A661_SHUFFLE_TO_FIT_CONTAINER widgets having no registered renderers for the Server
Add full support for appliID management in the Client java API, and update the demos accordingly
Fix the positioning of the A661_MAPHORZ_PANEL and A661_MAPVERT_PANEL widgets
Fix an error in the values of X and Y properties for A661_EVT_SELECTION_MAP events for A661_MAPHORZ_SOURCE widgets in the Latitude/Longitude coordinate system
Avoid to compute immediately the text layout for a A661_LABEL if the label alignment change, but wait for the next time the label is painted
Clarify the error messages which will appear if the cockpit configuration or the network configuration is incorrect
Emit clear parsing exceptions if the Synth2 Look and Feel XML file parsing detect that the file has some invalid parameters
Fix the Java type of the NumberOfSymbols property for the A661_SYMBOL_ANIMATED widget
Fix a problem in the Embedded Server which could lead to wrong colors for texts
Fix exceptions sent by the Server in the Embedded Server configuration when changing the cockpit layout
Emit a clear Exception when parsing a Network configuration for incorrect directions specifications
Fix exception messages which could be sent by the Server for Maps in some heavy load configurations
Fix positioning of A661_MAPHORZ_PANEL and A661_MAPVERT_PANEL widgets in some cases in multi-applications cockpit configurations
Add cobertura in the building framework to allow to get the functional and structural coverage of unit tests
Fix the tag in the logger when the Server send messages (it was "CLIENT" instead of "SERVER")
Use version 0.7 Beta 5 of the MDIUtilities library
Protect the Server in the OpenGL embedded mode against possible OpenGL GL_VERTEX_ARRAY or GL_TEXTURE_COORD_ARRAY enabling performed by the C code before calling the Server. These enable would crash the Server while drawing arrays of vertices
Add a isRotatedSymbol property (default true) for A661_SYMBOL_TARGET MapItems to allow the main Shapes of the target to rotate with the MapItem orientation or not
Allow the Server to send an Exception to the Client if one Layer for a Client command is not defined
Fix a case where changing the cockpit configuration layout at runtime and having one Layer in the same window for the same Layout visible a second time would make this Layer modifications not visible anymore

Posted by Hervé Girod 2012-11-25

0.54 Beta 5 released

Fix the reference point of the A661_MAPHORZ_PANEL and A661_MAPVERT_PANEL widgets (which was the top left whereas it should be the bottom left)
Allow to create a custom vertical projection in the projections extensions
Allow full configuration for the custom projections extensions
Avoid possible NullPointer exceptions in some rare cases when clicking on a MapHorz or MapVert widget
Fix the A661_CURSOR_POS_OVERLAY still sending events even if it is disabled
Fix an exception throwing when the user perform a CTRL-X action on a Layer or Definition File in the Editor
Fix the buffer bytes content presented in the Client Logger being null in all cases
Fix a NullPointerException throwing in certain cases by the SuperLayer window manager when changing the Layer in a Window to a NULL Layer, and then changing back to the previous Layer
Fix the widgets event definition incorrectly defined for the A661_POPUP_MENU and A661_POPUP_MENU_BUTTON
Fix the A661_LEGEND_ANCHOR MapItems management. The position of Legends after anchors was incorrect
Allow to orient legends alongside Segments for A661_SEGMENT MapItems (using the orientLegends property)
Fix an Exception which was thrown when trying to add a new widget under a Layer whose name was changed just after being created
Use version 0.6.4 Beta 4 of the MDIFramework library
Use version 0.7 Beta 5 of the MDIUtilities library
Change some signatures in the Client, Server and Editor to use URLs rather than Files when possible
Fix the Client not capable of sending several messages of different Layers in the same message
Separate the generic IO exception from the IO exception which happen when there is a tentative to bind to an address which is already bound
Improve performance of String rendering in the Embedded Server
Allow to move and resize sized containers (like A661_PANEL) in the Editor
Fix some rare exceptions when changing the current layout, for Layers which are connected to at least one other Layer in the cockpit configuration
Fix special characters not being correctly encoded or decoded in StringArrays
Fix the Scenario plugin recording empty scenarios each two recording after the first
Add a check which inform the user when the Network configuration is incorrectly defined and would prevent the recording of scenarios
Fix some remaining problems when starting the Server in an Applet
Add a new feature in the SuperLayer configuration file allowing to use the same Layer in several Displays, but declaring in the configuration file a new Application ID for several Layers. This allows to specify only one Layer, but using it as two different Layers in the cockpit
Show the layer appliID and layerID in the Client interface
Fix a problem in the Embedded Server which resulted in an offset from the real position of a click to the position managed by the Server
Fix an exception in the Embedded Server which could occur when drawing Strings
Fix a regression on the TCP protocol
Allow to use several layers with the same layerID (and different applicationIDs) in the Client java API
Return during the Server initialization to the user the attribute(s) which is (or are) not implemented if some attributes defined in the ARINC 661 XML model is not implemented
Log a "clean" exception in a configuration cockpit if a Layer referenced in a Window does not exist, or a default layer defined for a Window does not exist or is not a child of the Window
Fix growable arrays in the Editor and the Client not allowing to add rows if their content if empty
Fix a few mistakes for the hexadecimal IDs of the A661_CLAMPING property and the A661_DATA_SCALING_FR180 widget type
Avoid to emit Java Stack Traces when some widgets specified in a Definition File, or their associated renderers, are not defined, and emit a clean log message
Protect the synth2 Slider implementation if its Insets are undefined
Fix some Strings in Labels incorrectly not redrawn when modified in some cases in the Server
Allow to move unsized containers (like A661_BASIC_CONTAINER) in the Editor
Fix the scenario plugin only showing events in the scenario list when reading an existing scenario as "OUT", even if they are inputs
Signal a clear "error" in the Server, the Client, or the Editor if the same extension or Map projection is referenced more than once. The extension will not be loaded twice, avoiding to trigger nasty exceptions

Posted by Hervé Girod 2012-11-02

0.54 Beta 4 released

Fix the MutuallyExclusiveContainer widget not sending any ARINC Exception in the case where the VisibleChild index is not the index of a child of the widget during runtime
Allow to stop the Debug plugin Debugger on a breakpoint on an ARINC Exception condition
Fix a bug which appeared after changing the Layout, if the Look and Feel was not the default Look and Feel: the Layers in the new Layout had a wrong Look and Feel
Fix a NullPointerException which appeared after changing the selected Layer in a "OneOf" Window since Beta 2
Fix the PopupMenu and PopupMenuButton widgets always sending 0 when closing the menu by clicking on a menu item
Fix the Server not seeing its plugins in cases where the user directory is not the parent directory of the Server jar file (note that it was still right if the userdir or pluginsDir directory was explicitly defined in the launch arguments)
Use version 0.6.4 Beta 2 of the MDIFramework library
Use version 0.7 Beta 4 of the MDIUtilities library
Improve performance of simple shapes (lines, rectangle, etc...) rendering in the Embedded Server
Fix the Server not parsing correctly URLs using the http or https protocol, when these URLs are defined as children of other URLs
Fix a false exception warning which could happen in certain cases when parsing an XML Definition File on the Server
Fix the A661_EVT_CURSOR_ENTER, A661_EVT_CURSOR_EXIT, and A661_EVT_CURSOR_INSIDE events sent by the Server for the widget A661_CURSOR_OVER: the X, Y position sent to the Client was top left while it should have been bottom left as defined by the standard
Fix the A661_EVT_POS_CHANGE event sent by the Server for the widget A661_CURSOR_POS_OVERLAY: the X, Y position sent to the Client was top left while it should have been bottom left as defined by the standard
Fix the A661_EVT_SELECTED entry value sent by the Server always being 0 when selecting an entry in the A661_POP_UP_MENU and A661_POP_UP_MENU_BUTTON widgets
Fix further non security related problems which could prevent to use of the Server as an Applet
Fix the A661_SLIDER widget always casting internally its values to int
Improve widget updates behavior for cockpits configuration when a Layer is present in more than one Display
Fix the previous MapItems list in the Maps plugin not being reset after reopening the Client window in the Editor a second time
Show a clean parsing error if one Definition File in a cockpit configuration file does not exist
Allow more extension capabilities in the Map widgets framework
Fix a regression in the Editor which made the grid moving when widgets were moved
Allow to use more than one Jar file to define the MapItems UI library implementation in the Server or the Editor
Fix labels horizontal alignment which could be a little off in some times
Add capability to use specific lineStyles (dot, etc..) on MapItem types which did not have it already (A661_SYMBOL_GENERIC, A661_SYMBOL_ROTATED, A661_SYMBOL_TARGET, A661_RUNWAY)
Support the use of new widget events unnamed parameter types: uchar and String
Allow to mix without any limitations named and unnamed parameters in the widget events definition
Fix tables of Long parameters not modifiable in the Client
Remove the A661_POS_X and A661_POS_Y parameters which were incorrectly defined as design-time parameters for the A661_BLINKING_CONTAINER widget
Improve the error message in the Embedded Client configuration file parsing in the case where a message ID does not exist for a widget. Previously the message was the same as when a widget ID did not exist
Remove the A661_SCALED_TRANSLATION_CONTAINER from the supported widgets because it has been removed from supplement 5 (replaced by better and more general widgets to scale any parameter). The A661_SCALED_TRANSLATION_CONTAINER is now available as a contrib extension
Change the build of the test utilities to allow to use them easily in other projects
Now if the user start the Editor and use the "-propFile" option without defining any properties file, the Editor will ask for the file to use before starting
Implement the A661_DATA_SCALING_LONG, A661_DATA_SCALING_ULONG, and A661_DATA_SCALING_FR180 widgets for supplement 5
Implement the A661_MAPHORZ_PANEL and A661_MAPVERT_PANEL widgets for supplement 5
Add a resolIndep property for the fonts element in the graphic properties to be sure to have the same resolution as the native resolution for fonts. This is particularly important if it is necessary to have exactly the same size as the Windows native fonts for the same point value (Mac OS X fonts usually have the same size as Java)
The UIProperties plugin is not working properly. An exception occurs when using it on a widget
Fix sending MapItems to the Server by the Maps plugin not working in all cases in complex configurations

Posted by Hervé Girod 2012-10-04

0.54 Beta 3 released

Fix the direct OpenGL mode never being used in the Embedded Server, regardless of the value of the OpenGL.textured property. This should fix an unusual bad performance experienced in the embedded mode

Improve performance of OpenGL Strings rendering in the Embedded Server

Add several new methods in the Editor scripting Plugin helper to allow to remove, or create a widget through a script

Add two utility methods in the Editor scripting Plugin helper to allow to get/set a widget property knowing the name of the property (the one which is defined in the XML File) rather than the ARINC ID of this property... read more

Posted by Hervé Girod 2012-09-16

0.54 Beta 2 released

The multirendering of Layers is now working. One Layer may be rendered more than once in a window configuration, including connected Layers, and even Maps under connectors. For example, it is possible to use the same MapHorzSource widget under two different MapHorz widget by using two connectors, which means that the MapItems will be rendered twice, with a different range / orientation, etc....

Additionally, if the user change the state of one interactive widget in one renderer (for example, by clicking on a CheckBox), then all other renderers for the same widget will be in sync with the same state... read more

Posted by Hervé Girod 2012-08-21

0.54 Beta 1 released

Fix the start of a Debug plugin session changing the settings of the Editor to those defined for the Debug session

Allow to define in the Synth2 Look and Feel a style for Labels where the n last characters have a specified Font. The two properties to use are label.decimalFont (Font property) and label.decimalFontLength (integer property)

Allow to start a Debug plugin session with TCP protocols ... read more

Posted by Hervé Girod 2012-08-07

0.53.1 released

Log the extensions names version and date in the Editor, Server or Client on the console

Fix the MapItems not being painted correctly in the case where the MapHorzSource was under a Connector

Allow to define which localization to use in the Synth2 Look and Feel

Fix the selection on MapItems not being sent correctly in some cases

Fix the Logger only keeping the last exception in the associated file, and log the version and date of the application when logging the first exception... read more

Posted by Hervé Girod 2012-07-18

0.53.1 Beta 1 released

Add a mechanism for the Editor to log unhandled exceptions which might arise in a temp file (under the temp directory for the user)

Add the forgotten runtime only ShiftFirstVisibleEntry parameter for the A661_SCROLL_LIST widget

Fix some attributes defined as char or short whereas they should have been defined as uchar or ushort. Note that it does not impact the interface between the UA and the CDS... read more

Posted by Hervé Girod 2012-07-02

0.53 final released

Fix the selection of interactive widgets with negative positions in unsized containers without setting the "server.offsetRendering=true" option (like A661_BASIC_CONTAINER)

Improve the graphic quality in the OpenGL embedded mode

Fix the saving of Definition Files by the "Save" command in the Editor always saving the Definition File with the supplement 2 specified, even if the Editor is configured in an other supplement version of the standard... read more

Posted by Hervé Girod 2012-06-27

0.53 Beta 7 released

The selection mechanism used in Map widgets is modified to allow for easier extension of selections in Maps (for example, it could allow for different events for: right click, left click, double click, etc...)

Support for dotted lines in the MapItems styles XML definition

Fix of the A661_LINE_ARC MapItems drawing when the Radius parameter is negative (which is valid in ARINC 661)

Add Unit tests for MapItems for lines, arcs, symbols, and legends... read more

Posted by Hervé Girod 2012-06-14

0.53 Beta 6 released

Fix some deprecation warnings in the synth2 package

Implement MapItems A661_FILLED_POLY_START, A661_TRIANGLE_STRIP_START, A661_TRIANGLE_FAN_START, A661_TRIANGLE_SEGMENT, A661_TRIANGLE_SEGMENT_DOUBLE, A661_TRIANGLE_END, A661_TRIANGLE_END_DOUBLE and their associated interactive versions

Implement the A661_DRAW_LINE_TO_CURSOR MapItem

Implement the A661_EVT_INCREMENT event in the A661_MAP_HORZ_SOURCE widget... read more

Posted by Hervé Girod 2012-06-07

0.53 Beta 5 released

Use version 0.6.6 of the MDIUtilities library

Take into account highlight detection and selection in maps for A661_LINE_SEGMENT and A661_LINE_ARC MapItems

Remove one unused DataProvider configuration for the Embedded Client

Further fixes in the OpenGL Embedded embedded mode, now complex Definition Files are rendered correctly in OpenGL

Improve the default value given to the Range, RangeX, and RangeY parameters to newly created A661_MAP_HORZ and A661_MAP_VERT widgets in the Editor... read more

Posted by Hervé Girod 2012-06-01

0.53 Beta 4 released

Fix the rotation of A661_SYMBOL_OVAL, A661_SYMBOL_RECTANGLE, A661_SYMBOL_TARGET, and A661_SYMBOL_ROTATED MapItems in MapHorz Map widgets when the MapHorz has a rotation angle different from 0

Fix several bugs in non trivial A661_LEGEND MapItems presentations (like change of ItemStyle between several A661_LEGEND MapItems)

Support A661_LEGEND_ANCHOR_ROTATED (previously the 661_LEGEND_ANCHOR_ROTATED did not rotate the following A661_LEGEND MapItems, but it behaved like A661_LEGEND_ANCHOR)... read more

Posted by Hervé Girod 2012-05-15

0.53 Beta 3 released

Fix the Client logger not showing the content of a widget event received from the Server if the message contains some named parameters rather than only unnamed values

Fix the Client logger showing illegible values if the content of a widget event received from the Server contains characters

Take into account and send to the Client the selection in the Map widgets background according to the standard the selection of MapItems in Map widgets... read more

Posted by Hervé Girod 2012-05-13

0.53 Beta 2 released

Change some fields and methods for the RectangleRenderer, ArcCircleRenderer, ArcEllipseRenderer, CrownRenderer, LineRenderer, PolylineRenderer, and PolarLineRenderer from private to protected to allow for easier customization for these widgets

Add the definition of the ARINC 661 values A661_UP and A661_DOWN in the ARINC 661 XML model

The overlay-type widgets are not initialized correctly in the Editor, which result in the A661_CURSOR_POS widget not behaving properly in the Editor... read more

Posted by Hervé Girod 2012-05-03

0.53 Beta 1 released

Fix some artifacts in the OpenGL Embedded embedded mode, and possible Heap Space Exception in this mode after many drawings

Fix the MutuallyExclusiveContainer widgets not showing correctly in the OpenGL Embedded mode, and simplify the way the container handles its children

Handle multi-displays in the OpenGL Embedded mode

Fix a regression where the image of the cursor could not be customized anymore

Fix the overlay Shape of RotationContainers in the Editor having twice the angle of the Rotation... read more

Posted by Hervé Girod 2012-05-01

0.52.1 released

Fix a regression in 0.52 final where the font of a Label (A661_LABEL) would be set to the default font before the first font or style modification

Posted by Hervé Girod 2012-04-25

0.52 final released

Change the JOGL version to autobuild (preview of 2.0rc6)

Fixes for the Server OpenGL embedded mode: now the textured mode works correctly again, and the direct mode begins to work in simple use cases

The license for the OpenGL plugin becomes LGPL v2

Fixes to avoid instability of characters positions in Labels which rotate rapidly. The fix is a workaround for a problem which seem to be in the JDK Graphics2D.drawString method... read more

Posted by Hervé Girod 2012-04-16

0.52 Beta 7 released

Further generification of the code, and removal of various unused variables
Use the 0.9.1 release of the expressionJ library for the Embedded Client and the Debugger: Add several new operators in the expression language: ++, --, +=, -=, *=, and /=. Make the expression engine much more lenient to overuse of semicolons in expressions. Allow comments in expressions. Add the sign and echo functions ... read more

Posted by Hervé Girod 2012-03-25

0.52 Beta 6 released

This release provider a lot of fixes and new features for the DataProvider configuration.

Use the 0.9 Beta 2 release of the expressionJ library for the Embedded Client and the Debugger.

Fix a Groovy library reference bug which prevented the Scripting plugin to use the Groovy library

Add the capability to define default values for parameters in the Editor using hexadecimal values

Preliminary support for the BroadcastReceiver widget. The widget can be created in the Editor but has no behavior for the moment... read more

Posted by Hervé Girod 2012-03-11

0.52 Beta 5 released

fix a bug which prevented the Scripting plugin to be started in the Editor

Posted by Hervé Girod 2012-02-19

0.52 Beta 4 released

Add an example about retrieving a parameter for a widget event in the Scripting samples

Add a standalone ant script to be used outside Netbeans or for Eclipse users

The testUtilities jar is not useful anymore on the project, utilities classes are directly present in the Unit tests package

Remove the new loop mode for the blocking reception event queue, introduced in 0.52 Beta 2

Add a new printEventQueue property which allows to see what's happening in the queue of events... read more

Posted by Hervé Girod 2012-02-19

0.52 Beta 3 released

Change the JOGL version to 2.0rc5
Fix bug 3469267: The same byte buffer is used for both the inputs and outputs of the TCP protocol, the output buffer being used for both the input and output. This results in the fact that if the Server receive a message which is bigger than its output buffer, the protocol will fire an exception
Fix bug 3469268: The output port may be opened twice in certain cases when using the TCP protocol, resulting in an exception when connecting the ports
Fix enhancement 3469269: When receiving a message bigger than the size of the input buffer, the Client or Server should fire a clean ARINC Runtime exception rather than a Java exception
Fix bug 3469583: Fix reconnection of TCP protocols after they had been disconnected (regression for 3464016)
Fix bug 3469584: It is impossible to restart a scenario if it had been stopped by the user previously
Allow to use constants in the Cockpit configuration
Fix bug 3471028: There is a null pointer exception when trying to change a layer name in the Editor, if trying to change the width or height of the layer after the renaming
Fix the default cursor renderer implementation still showing the cursor even if it had been set invisible by the Client

Posted by Hervé Girod 2012-01-13

0.52 Beta 2 released

Add a new mode for the blocking reception event queue

Now if the properties file passed at the Client java API creation define a SuperLayer window manager Windows definition, the associated Layers List (see Client launcher) will be automatically loaded when creating the API

Use version 0.6.4 of the MDIUtilities library

Protect the Editor against paths stored in the user configuration retrieved at start, if they do not exist in the network... read more

Posted by Hervé Girod 2011-12-22

0.52 Beta 1 released

Now take into account completely attributes with size / length and maximum size when loading binary or XML Definition Files, or when modifying them in the Editor.

Fix some paddings used for several widget events definition. Fix some problems in the Cursor implementation.

Reorganize code to remove many critical sections (synchronized methods) in the Server.

Fix some cases when acceleration would not be updated correctly in the Scenario Plugin. ... read more

Posted by Hervé Girod 2011-12-11