TULIP issueshttps://git.list.lu/nui/tulip/-/issues2017-06-08T21:33:59Zhttps://git.list.lu/nui/tulip/-/issues/8Use lambdas2017-06-08T21:33:59ZEric Tobiaseric.tobias@list.luUse lambdasUse Java 8 Lambda expressions to iterate over lists and call functions on each element of the list. @TuioConcreteAdapterUse Java 8 Lambda expressions to iterate over lists and call functions on each element of the list. @TuioConcreteAdapterNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/9Use Null Pointer Analysis2017-06-08T21:33:59ZEric Tobiaseric.tobias@list.luUse Null Pointer AnalysisUse annotations for automated IDE Null Pointer Analysis and documents your contracts properly.Use annotations for automated IDE Null Pointer Analysis and documents your contracts properly.Integrate Nicola's workNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/10Complete documentation2017-06-08T21:33:59ZEric Tobiaseric.tobias@list.luComplete documentationDocumentation should be completed with meaningful and stringent comments and Javadoc. This includes well chosen method and field names as well as parameters. Don't abbreviate where not necessary. Class names should not be redundant. "Tui...Documentation should be completed with meaningful and stringent comments and Javadoc. This includes well chosen method and field names as well as parameters. Don't abbreviate where not necessary. Class names should not be redundant. "TuioConcreteAdapter" has both "Tuio" and "Concrete" in its name. One suffices.
Examples: Why call getObjectId() on TangibleObject? Is there another identifier than that of the object? Don't abbreviate object to obj in some cases.
* [ ] TangibleObject
* [ ] TangibleObjectBuilder
* [ ] TuiAdapter
* [ ] TuioConcreteAdapter
* [ ] BluetoothClient
* [ ] BluetoothServer
* [ ] ClientAdapter
* [ ] NetworkAdapter
* [ ] ServerAdapter
* [ ] TcpClient
* [ ] TcpServer
* [ ] XbeeAdapter
Same holds true for tests.Integrate Nicola's workNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/12Switch back to in-house annotation library2017-06-08T21:33:59ZEric Tobiaseric.tobias@list.luSwitch back to in-house annotation librarySwitch back to using dbc.annotation for IDE-based Null Analysis.Switch back to using dbc.annotation for IDE-based Null Analysis.Integrate Nicola's workNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/13Clean properties file2017-06-08T21:33:59ZEric Tobiaseric.tobias@list.luClean properties fileClean the properties file of all unnecessary additions. However, leave some clear documentation in the file for properties that need to be added by any client application (including the expected syntax).Clean the properties file of all unnecessary additions. However, leave some clear documentation in the file for properties that need to be added by any client application (including the expected syntax).Integrate Nicola's workNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/14Review exception handling in TangibleApplication Cosntructor2017-06-08T21:33:59ZEric Tobiaseric.tobias@list.luReview exception handling in TangibleApplication CosntructorReview the exception handling scheme in the TangibleApplication constructor to not throw any exceptions. The system should give an appropriate error/exception notification and then exit if an adapter cannot be instantiated.
Work under...Review the exception handling scheme in the TangibleApplication constructor to not throw any exceptions. The system should give an appropriate error/exception notification and then exit if an adapter cannot be instantiated.
Work under the principle that any modification to the TULIP code **must not** impact any client code unless it is a simple addition to the properties or similar configuration file.Integrate Nicola's workNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/15Inconsistent precondition2017-06-08T21:33:59ZEric Tobiaseric.tobias@list.luInconsistent preconditionTuioAdapter Line 98
The precondition mentions all interface managers needing to be instantiated but it only checks one.TuioAdapter Line 98
The precondition mentions all interface managers needing to be instantiated but it only checks one.Integrate Nicola's workNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/16Remove obsolete/deprecated/dead code2017-06-08T21:33:59ZEric Tobiaseric.tobias@list.luRemove obsolete/deprecated/dead codeTuioAdapter Line 110
If the commented line is not needed, remove it.TuioAdapter Line 110
If the commented line is not needed, remove it.Integrate Nicola's workNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/17Inconsistent contract management2017-06-08T21:33:59ZEric Tobiaseric.tobias@list.luInconsistent contract managementUsing Design by Contract and the proper annotations should be encouraged. Adding @NonNullByDefault on class level makes all methods, parameters, fields, etc to be non-null by default. Hence, the @pre annotation mentioning that some param...Using Design by Contract and the proper annotations should be encouraged. Adding @NonNullByDefault on class level makes all methods, parameters, fields, etc to be non-null by default. Hence, the @pre annotation mentioning that some parameter cannot be null is redundant.
With the correct IDE setup possible null values are shown as errors/warnings. If a contract is documented, you have to assume it is fulfilled.Integrate Nicola's workNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/18Inconsistent path assignment2017-06-08T21:33:59ZEric Tobiaseric.tobias@list.luInconsistent path assignmentTuioAdapter line 126.
When converting from a TuioObject to a TangibleObject you iterate over the path and convert each position to a Point. At that moment you correctly take the path's x and y coordinates but always add the current an...TuioAdapter line 126.
When converting from a TuioObject to a TangibleObject you iterate over the path and convert each position to a Point. At that moment you correctly take the path's x and y coordinates but always add the current angle of the passed object. This seems to be inconsistent.
Find a more accurate solution.Integrate Nicola's workNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/20Inconsistent version numbering2017-06-08T21:33:59ZEric Tobiaseric.tobias@list.luInconsistent version numberingAs an example, take the BluetoothAdapter. It shows has having been added as of version 1.0. This is not the case. the current version stamp is 2.0.41. You probably started working on it as soon as 2.0.1 though. Please correct the version...As an example, take the BluetoothAdapter. It shows has having been added as of version 1.0. This is not the case. the current version stamp is 2.0.41. You probably started working on it as soon as 2.0.1 though. Please correct the version numbering.Integrate Nicola's workNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/21Further reuse2017-06-08T21:33:58ZEric Tobiaseric.tobias@list.luFurther reuseAn example is TcpServer when you close the client and server. The method for closing the server features redundant code.An example is TcpServer when you close the client and server. The method for closing the server features redundant code.Integrate Nicola's workNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/22Rework server and socket closure2017-06-08T21:33:58ZEric Tobiaseric.tobias@list.luRework server and socket closureAs an example, have a look at http://stackoverflow.com/questions/8051863/how-can-i-close-the-socket-in-a-proper-way
Closing streams and servers can be tricky. If after reading the thread you see no problems with your code, I'll explai...As an example, have a look at http://stackoverflow.com/questions/8051863/how-can-i-close-the-socket-in-a-proper-way
Closing streams and servers can be tricky. If after reading the thread you see no problems with your code, I'll explain further.Integrate Nicola's workNicolas GilmardNicolas Gilmardhttps://git.list.lu/nui/tulip/-/issues/23Consistent logging2017-06-08T21:33:58ZEric Tobiaseric.tobias@list.luConsistent loggingDecide on whether to add logging on adapter level or on the base widget level.Decide on whether to add logging on adapter level or on the base widget level.Initial stable releaseEric Tobiaseric.tobias@list.luEric Tobiaseric.tobias@list.luhttps://git.list.lu/nui/tulip/-/issues/24demo2017-06-08T21:33:58ZEric Tobiaseric.tobias@list.ludemodemodemohttps://git.list.lu/nui/tulip/-/issues/25TUIO-1.4 lib is a buggy version, we should update to the version from 6th Nov...2017-06-08T21:33:58ZChristian MollTUIO-1.4 lib is a buggy version, we should update to the version from 6th November 2014 marked as version 1.1.5There is a buggy constructor in the lib we use. It prevents that the angle is correctly set.
```java
/**
* This constructor takes the provided Session ID, Symbol ID, X and Y coordinate
* and angle, and assigs these values to the...There is a buggy constructor in the lib we use. It prevents that the angle is correctly set.
```java
/**
* This constructor takes the provided Session ID, Symbol ID, X and Y coordinate
* and angle, and assigs these values to the newly created TuioObject.
*
* @param si the Session ID to assign
* @param sym the Symbol ID to assign
* @param xp the X coordinate to assign
* @param yp the Y coordinate to assign
* @param a the angle to assign
*/
public TuioObject (long si, int sym, float xp, float yp, float a) {
super(si,xp,yp);
symbol_id = sym;
angle = angle;
rotation_speed = 0.0f;
rotation_accel = 0.0f;
}
```Christian MollChristian Mollhttps://git.list.lu/nui/tulip/-/issues/30Add ability to instantiate colour by HEX code2017-06-08T21:33:58ZEric Tobiaseric.tobias@list.luAdd ability to instantiate colour by HEX codeCatch an exception when the field does not exist on line 97 and decode the HEX in the catch to assign a colour.
This enables both human selection of readable colours and the definition by a colour selector in HTML.Catch an exception when the field does not exist on line 97 and decode the HEX in the catch to assign a colour.
This enables both human selection of readable colours and the definition by a colour selector in HTML.Eric Tobiaseric.tobias@list.luEric Tobiaseric.tobias@list.lu