additionally:
- added search icons
- solved problem of Scrollbars being shown too far from the right side
(all praise FX, Swing did not offer such a simple solution)
- relocated infoLabel into the highest row, is now located above the
messageList
additionally:
- made selecting of bmp or gif images possible
- defined a DEFAULT_ICON_SIZE in which most icons are loaded
- displayed attachment button with attachment icon
* Add envoy.client.data.audio package
* Move AudioRecorder to the audio package
* Add AudioPlayer class
* Add AudioControl class that acts as a small media player
* Display the audio control in message controls that contain voice
messages
When the length value encoding is violated, which can occur by sending
an incorrect object length to the client, the error is logged and the
receiver continues to run.
The ChatScene layout has been adjusted to include a voice message
button. When pressed, a recording starts. To finish the recording, press
the button again. The recording will be saved as a pending attachment.
The next message sent will include the attachment. When a pending
attachment is present, a message can be sent without text.
When the chat is switched, the pending attachment is discarded. This
does not stop active recordings, however.
The ChatScene layout handles large stages better now by ditching
percentage-wise row and column scaling in favor of absolute values for
all cells except the message list and text area.
Implemented ClearableTextField and redesigned UI.
TAKE CARE:
in order to use SceneBuilder further, you have to import the attached
JAR "CustomComponents.jar" into the SceneBuilder. If you don't do this,
Scenebuilder no longer can load FXML files that depend on a custom
component. If you are implementing another custom component, feel free
to add it to the jar.
Note however that SceneBuilder cannot load any components that rely on
libraries other than the standard Java library or the JavaFX standard.
Meaning that even if you are referencing another Envoy file, the
component will not be importable. Because of this, the
ClearableTextField is also present only in a slimmed down version, as
SceneBuilder additionally has problems when dealing with loading
resources.