Commit 3adc3424 authored by Locatelli's avatar Locatelli
Browse files

Merge V4.0 to master

parent 76101e5d
<?xml version="1.0" encoding="UTF-8"?>
4.0.64 dd/09/2020
4.0.132 14/10/2021
* Avoid crash if 'extensions' attribute for file text widgets is not provided.
4.0.131 08/10/2021
* Avoid some crashes occuring during client synchronisation, if commandbox is deleted once created.
* Combos in settings command boxes were disabled if the user does not own the token, even in an editor.
* Bug fixed following crashes on D33 ([visa-instance-7008] Oct 6 2021 09:59:50 and [visa-instance-6905] Oct 6 2021 09:59:51): auto deletion of command boxes
when maxFinishedCommandBoxes value is reached crashed on a ClassCastException.
4.0.130 27/09/2021
* Fix bug: crash in CommandZoneSynchroniser, NullPointerException in addAtomicCommandBox.
* Delete INewSlicesFileListener: no longer necessary since fcu_acquisition_setup uses a file chooser widget.
4.0.129 23/09/2021
* Improve file chooser widget's layout.
4.0.128 21/09/2021
* Add test on controller name != null.
* Added logs transfer applications.
4.0.127 21/09/2021
* Update nomadcommandsystem version to 4.0.51.
4.0.126 20/09/2021
* Add debug messages for "addCommandBox" crashes.
4.0.125 20/09/2021
* When the client is disconnected from the server, remove all servercommandzone's listeners on server events.
* Add some log messages on client close.
* Update nomadcommandsystem version.
4.0.124 08/09/2021
* Fix bug: Bad mouse caret position when editing a text field in a command box if the launch pad is running and there is a change of command box executed.
* Fix crash: if main shell's width is too low to display an editor tab, Nomad crashes. Occurs on:
* - in12 Sep 4 13:28:03 CEST 2021 and Sat Sep 4 13:27:06 CEST 2021,
* - d3 Sep 3 15:47:27 CEST 2021
4.0.123 26/08/2021
* Fix bug: Open two editors in command mode / append to launch pad one of them / once content is appended, both server tab & other editor are selected.
4.0.122 24/08/2021
* Fix bug: default logs application was not correctly set.
4.0.121 24/08/2021
* Corrected two bugs related to old plot: Bad size of plot in spy and toolbar buttons not redrawn when being selected.
4.0.120 20/08/2021
* Specific for D11: Display beamstop plugin in "more options" view if beamstop is not correct at start.
4.0.119 17/08/2021
* Implement "breaking news", allowing to display a specific message at start.
4.0.118 04/08/2021
* Update class variable currentContainers in Switcher class to avoid problems when hiding/showing composites.
* Bug fixed: toggle parallel on an atomic command box was not synchronised between clients.
* Bug fixed: remove calls to parseXMLFile (replaced by parseXMLString).
* Add rgb option for plot.
4.0.117 22/06/2021
* Test if controllerCommandPlugin.getScanDynamicProperties() is not null before copy.
* Implement code to enable/disable SimpleImage widget (to enable/disable code of arrow buttons in SampleSequencer)
4.0.116 22/06/2021
* Avoid potential ConcurrentModficationException by copying scanDynamicProperties (D22 Fri 18 Jun 14:52:21 CEST 2021)
* Add a debug mode in TokenManager.
* Add debug messages in CommandZoneSynchronizer.
4.0.115 17/06/2021
* Bug fixed: following multiple crashes on D9 when dynamic plot datas is null.
(java.lang.NullPointerException at fr.ill.ics.client.view.pluginpeer.ControllerPluginPeer.createWidget(
4.0.114 11/06/2021
* Bug fixed: following crash on D17 (Fri Jun 11 10:56:50 CEST 2021) ConcurrentModificationException
4.0.113 11/06/2021
* Maxlength condition no longer prevents to enter a value which length exceeds maxlength, but is only used to give text's griddata an appropriate width.
* Check that XBU or PAL file name does not match an existing node in tree.
4.0.112 10/06/2021
* Reference to last version of nomadcommandsystem.
4.0.111 10/06/2021
* Bug fixed: java.lang.NullPointerException at fr.ill.ics.client.control.plugin.command.ControllerCommandPlugin.addMissingDynamicProperty(
4.0.110 08/06/2021
* Bug fixed: settings commandbox problem: when a settings command is appended from an editor, undo state of properties was not correctly set to autoapply because tabbutton was set too late.
4.0.109 02/06/2021
* When server is stopped or killed, simply close the logs and charts apps before exiting.
* Bug fixed: widgets were enabled in settings tab plugins whereas user does not have the token.
4.0.108 31/05/2021
* Inform user that client can not start if not any enabled controller of type ExperimentData is found.
* Bug fixed: when more than one D11Settings in an editor, with two different files, and appending editor content to launch pad, command boxes in LP have the same file names.
4.0.107 27/05/2021
* Bug fixed: following multiple crashes on d7 (Wed 26 May 2021) test if parent directory for settings plugins is set before setting matching property.
4.0.106 20/05/2021
* Avoid crash when not any user's script is present in nomadScans.
4.0.105 19/05/2021
* Prevent user to enter a "/" in directory name for user's scripts.
* Change calls of setRefresh.
* Bug fixed: following crash on d9 (Wed 19 May 2021 07:14:38): user can modify for loop line whereas he does not own the token.
4.0.104 18/05/2021
* Control on max length is now done by MaxLengthCondition and no longer in SWTPText.
4.0.103 10/05/2021
* Create 2 entries per settings controller in SettingsFilesRestore so that previous directories and files are correctly re-initialised.
* Correctly set settings plugins properties (content and directory) on start.
4.0.102 30/04/2021
* If user doesn't own the token, both settings controller's (main one and its clone) widgets are disabled.
* If user doesn't own the token, he cannot reconnect a driver in hardware tab.
* Add a property for ploty2.
* Change type of realDynamicProperties map (ControllerPlugin) from LinkedHashMap to ConcurrentHashMap to avoid problems of concurrency when using SampleSequencer controller.
4.0.101 09/04/2021
* Click on modify button in settings command box did not load file content in settings plugin.
* Default extension when saving a command line file set to XBU instead of PAL.
* Bug fixed in controllerpluginpeer, crash when allWidgets is null.
* Add a class to restore directory and file names in combos for settings plugin.
* Bug fixed: enability of widgets in settings plugins was not correctly set if start command was running.
* Bug fixed: Correct Settings command box after rewind and creation of a configuration.
* Settings review (following problems with SampleSequencer / L.Porcar / D11).
* Inform user that its Nomad client is disconnected from Nomad server.
4.0.100 04/03/2021
* Change griddata for current value in forloop line (it was truncated when its number of digits increases).
* Click on pause button in commandline mode when commandline is already paused calls restart.
4.0.99 01/03/2021
* Improve command bar in text mode:
- Start button removed,
- Change images for pause and stop buttons according to current command line state.
* Avoid crash when closing forLoop commandBox which has a field with a not valid value.
* Add a label to display current number of command boxes (only visible if DISPLAY_NBBOXES set to true (in file .nomad/
* Improve error messages in for loop.
* Improve connected users L&F.
* Improve file_text widget: a starting directory can be set and a boolean indicates whether the user can go up.
* Set default color to black for new plot version.
* Bug fixed: Force creation of parent xbu and pal directory.
* Bug fixed: problem of launch pad refresh between clients when a box containing a dynamic composite is dropped in one of them.
4.0.98 18/02/2021
* Bug fixed: wrong decrease of command box number on commandboxdeleted events.
4.0.97 11/02/2021
* After execution of a settings command box, the combo for filename was empty.
4.0.96 11/02/2021
* Mix of 4.094 and part of 4.0.95: all from 4.0.95 EXCEPT "Avoid problems with propertyCombos and dynamic_composites when enabling a controller"
that creates a bug on scan controllers in the launch pad.
4.0.95 10/02/2021
* Improve NomadGUI behaviour when problems occur during startup phase:
* - when incorrect login/password entered, the GUI stops immediately but user name is however stored in preferences file for future execution.
* - display a different message if multiple clients on the same endpoints or multiple connections of the same user.
* Avoid problems with propertyCombos and dynamic_composites when enabling a controller.
4.0.94 09/02/2021
* Corrected memory leak in SWTPlotLauncherExternImageButton: dispose the image before creating a new one.
* Set connectedUserName (if the property exists) instead of userName when the user logs in. Avoid that user directory changes for instruments working with command line.
* Improve "Connected Users" layout for Visa.
4.0.93 05/02/2021
* For server tab, initialisation of textcommandzone is done once the server is started to avoid crash, for others tabs (editor and simulation), initialisation can be done when the textcommandzone is created.
* Fix bug: Save editor menu disabled for editors .
* Implement synchronisation for settings command box, now that filename is a property of Settings controller. Manage the case when nomadserver is not updated with file_directory property.
4.0.92 04/02/2021
* Correct bug after move initialisation of CommandLine after server is started modification
4.0.91 04/02/2021
* Ignore DEBUG event in command line shell updatelog method.
* Move initialisation of CommandLine after server is started.
* Avoid crash of GUI when incorrect date value in histo files.
* Save/Load spies in a specific file per instrument.
4.0.90 28/01/2021
* Modify x and y coordinates of spy when outside screen.
* Fix bug: add move listener in header part of the uncloseable spy.
4.0.89 26/01/2021
* Use Jitsi meet applet for Jitsi meeting.
4.0.88 25/01/2021
* When receiving a newfile event, just refresh user' scripts tree.
4.0.87 25/01/2021
* Bypass proposal selection when opening login popup to access logs, charts or meeting room.
4.0.86 19/01/2021
* Fix bug: clicking on jitsi meeting button when on Visa must not open a browser but only copy proper url to clipboard.
* Delete the command boxes when a CommandBoxDeleted event is received.
4.0.85 18/01/2021
* Direct link to nomadsurvey web application.
4.0.84 15/01/2021
* With right version of nomadcommandsystem
4.0.83 15/01/2021
* Added method updateCombo in PropertyComboFiller and SWTPPropertyCombo.
* Improve FileTree: set selected value in tree + return full path.
* Manage new file created event: create a new user's script.
4.0.82 14/01/2021
* Remove debug messages.
4.0.79 to 4.0.81 14/01/2021
debug versions
4.0.78 14/01/2021
* Replace https by visa in meetingurl when running on a visa instance
4.0.77 13/01/2021
* Change file_text widget so that it lists files from main instead of local machine.
* Start for link to parameter survey web application.
* Parameter jitsi meeting url for Visa instances.
4.0.76 08/01/2021
* Use settings controller base class in server for logging filename and info for settings
4.0.75 08/01/2021
* Set nomadlogs as default log viewer tool.
4.0.74 07/01/2021
* Created ResolutionManager class which will help with the spies resolution (up to now only their width). Further usages of this class can be foreseen.
* Added getEditionState method in NewSimpleSettingsControllerSetupPlugin class. It is used by special client class of D22.
4.0.73 21/12/2020
4.0.72 21/12/2020
* Improve the way current value is updated in running for loops: till then, all fields were refreshed. Now, only current step value is refreshed.
* Fix bug: if a forloop is currently running, paused or is finished when starting GUI, getting the token enabled forlooplines fields.
* Merge branch meeting.
4.0.71 03/12/2020
* Update version of nomad-command-system (4.0.35 --> 4.0.36)
4.0.70 26/11/2020
* Change of proposal is forbidden if at least one command is running (or paused) in the launch pad.
* Button to enable/disable RAC is not only available for main clients but now also to instrument responsibles or IT members or SCI members.
* ConnectedUsers functionnality ok
4.0.69 13/11/2020
* Cameo 1.0.0 integrated.
4.0.68 22/10/2020
* Create /tmp/nomad/ for nomadmail in all case remote or not...
4.0.67 22/10/2020
* Add special code error when server kill or crash (-2 client owned the token, -3 client didn't own he token)
4.0.66 13/10/2020
* Add functionnality to attach files in chat.
* Shortcut for stopatend removed because it was often entered by mistake.
4.0.65 12/10/2020
* Add 2 preference values to restore main window x and y.
* Fix bug in PropertyPlotData: NumberFormatException while trying to create an int from a float property.
* Add a new PWidget: PSelector
* For each atomic command box, add a shortcut to its settings plugin.
* Add attribute "synchro" for PropertyCombo: combo content is reloaded each time user clicks on it.
* By default, if remote client doesn't have any spy, load spies from main client.
* Add ploty2 messages
4.0.64 17/09/2020
* Shell for chat does not need to be blocking.
* Do not save X & Y of uncloseable spy twice.
* Do not close spy in save preferences method.
4.0.63 14/09/2020
......@@ -78,12 +78,34 @@ echo "Finished at $FINISHED_DATE" >> $FILE
rm -f $TEMP_FILE
rm -f $TEMP_FILE2
if [ $STATUS -ne 0 ];
if [ $STATUS -eq 253 ];
zenity --info --width=200 --text="Nomad server has been killed.\nThe client has been shutdown." --title="Nomad Report"
elif [ $STATUS -eq 254 ];
if [ -n "${NOMAD_MAIL}" ]
echo "Please describe the actions you performed before the crash:" > $TEMP_FILE
echo "" >> $TEMP_FILE
CRASHMESSAGE=`zenity --text-info --filename=$TEMP_FILE --editable --ok-label="Send" --title="Nomad Crash Report"`
if [ -n "$CRASHMESSAGE" ];
mail -r -s "[`hostname`][client] crash" $NOMAD_MAIL < $FILE
mail -r -s "[`hostname`][client] crash" < $FILE
java -jar lib64/nomadmail.jar "[`hostname`][report] user crash report" "$CRASHMESSAGE" $NOMAD_MAIL
rm -f $TEMP_FILE
if [ $STATUS -ne 0 ];
content=`cat $FILE`
if [ -n "${NOMAD_MAIL}" ]
java -jar lib64/nomadmail.jar "[`hostname`][client] crash" "$content" $NOMAD_MAIL
java -jar lib64/nomadmail.jar "[`hostname`][client] crash" "$content" $NOMAD_MAIL
\ No newline at end of file
# Usage: get the endpoint of the VISA instance ('ip addr' in terminal of the VISA instance to get the IP)
# Ex: tcp://
java -Djava.library.path=/usr/lib:/usr/lib/x86_64-linux-gnu/jni -classpath lib64/nomadgui-gtk.linux.x86_64.jar fr.ill.ics.apps.LogsTransferCaller $1
......@@ -25,7 +25,6 @@ clientWrongLoginTitle=Login failed
clientWrongLoginMessage=We don't recognise the login and password you entered. Please try again.
clientAlreadyLaunchedTitle=Launch failed
clientAlreadyLaunchedMessage=Nomad is already running. Please quit before relaunching.
multipleClientsPerEndPointMessage=Nomad is already running. Please quit before relaunching.
multipleConnectionsPerUserMessage=You already launched Nomad in another environment.\nPlease quit it before relaunching.
cannotGlobalySetPropertiesFor=Cannot globally set property values for
nameConflictOnSaveTitle=Error while saving script
......@@ -209,11 +208,23 @@ commandLineNoGrammarDefinedForThisInstrument=Command line unavailable. No gramma
commandLinePauseMessage=Execution is paused. Type ENTER to continue or x to stop or n to stop at end
commandLineNotSynchronised=Switch to box view forbidden while a command is running!
forbiddenChangeOfProposalWhileSomethingRunning=You cannot change proposal while commands are running in the server.
forbiddenChangeOfProposalWhileSomethingPaused=You cannot change proposal while commands are paused in the server.
changeOfProposalTitle=Change proposal
simulationTabCannotBeClosedWhileSomethingRunningOrPaused=You cannot close the simulation tab while something is running or paused.
simulationTabCannotBeClosedWhileSomethingRunningOrPausedTitle=Invalid action
incoherentContentBetweenClientAndServerCommandZonesMessage=Client and server command zone contents are no longer coherent.\nThe client is going to restart.
incorrectValueEnteredMessage=Incorrect value entered!
incorrectFromValueEnteredMessage=Incorrect from value!
incorrectRoValueEnteredMessage=Incorrect to value!
incorrectStepValueEnteredMessage=Incorrect step value!
incorrectNbPointsValueEnteredMessage=Incorrect number of points value!
mustEnterFromValue=You must enter a from value!
mustEnterToValue=You must enter a to value!
mustEnterStepValue=You must enter a step value!
mustEnterNbPointsValue=You must enter a number of points value!
propertyWrongValueEnteredMessage1=Problem while setting property
propertyWrongValueEnteredMessage2=to value
settingsPluginApplyConfigButtonToolTip=Apply settings configuration
......@@ -314,6 +325,8 @@ multiClient.tokenOwnedByOtherMessage=Another client already controls Nomad. Clic
multiClient.tokenOwnedByMeMessage=You own control over Nomad. Click to give it back.
multiClient.tokenOwnedByOtherShortMessage=Another client already controls Nomad!
multiClient.forbiddenRemoteMessage=Remote control is not allowed!
multiClient.forbiddenReconnectDriverMessage=You don't have the rights to reconnect a driver.\nAsk for token.
cannotModifyLaunchPadWithoutTokenMessage=You don't have the rights to modify launch pad content.\nAsk for token.
cannotChangeProposalWithoutTokenMessage=You don't have the rights to change proposal.\nAsk for token.
......@@ -333,6 +346,12 @@ incomingChatMessage=You have a new message!
authorizedRemoteControlToolTip=Forbid remote control to Nomad
forbiddenRemoteControlToolTip=Allow remote control to Nomad
usersImageToolTip=See connected users
videoImageToolTip=Join meeting room
noMeetingURLFoundMessage=Unable to find any meeting for current proposal!
meetingURLCopiedInClipboardMessage=URL to join proposal's meeting is ready to be pasted in VISA clipboard.
noMeetingForInternalUseMessage=Meeting not available for internal use.
errorWhileOpeningMeetingURLMessage=Nomad failed opening web browser.\nHowever URL to join proposal's meeting has been copied to the clipboard,\nopen a web browser and paste it.
mustLogInToJoinMeetingMessage=You must log in to join meeting room.
serverEndedOnErrorMessage=An error occurred, the server is no longer running.\nThe client is going to be shutdown.
......@@ -351,6 +370,8 @@ remoteControlIsDisabled=Remote control is disabled!
remoteClientMustLoginMessage=As a remote client, you must log in to run Nomad
mustLogInToViewLogsMessage=You must log in to view logs!
viewLogsTitle=View Logs
mustLogInToViewSurveyMessage=You must log in to view Nomad charts!
viewSurveyTitle=View Nomad Charts
cannotAdminIfRACEnabledMessage=Administrator mode is not available while remote access control is authorized!
logAsAdminMessage=Log as administrator
......@@ -359,4 +380,13 @@ enableRemoteAccessMessage=Enable remote access
widgetIsDisableForRemoteClientMessage=File Chooser is not available on remote client yet!\nPlease type the file name in the text box.
usersControllerMissingMessage=Functionnality not yet configured on this instrument.\nContact SCI
nomadlogsNotAvailableOnVisaMessage=Nomadlogs is not available yet on Visa instances.\nUse your web browser to see logs.
\ No newline at end of file
commandBoxGoToSettingsTooltip=Go to settings plugin for
attachFileMessage=Attach a file
alreadyAtTopDirectoryMessage=You are already at root directory!
clientDisconnectedMessage=Your Nomad client is disconnected from the server.\nPlease restart a new client.
clientDisconnectedTitle=Client disconnected
invalidCharacterInDirectoryNameMessage=Invalid character in directory name:
noEnabledExperimentDataControllerFoundMessage=Unable to find any enabled controller of type ExperimentData!\nNomad GUI can not start.
starNomadGUITitle=Start Nomad GUI
\ No newline at end of file
......@@ -73,6 +73,11 @@ rafin,5,command
......@@ -31,6 +31,7 @@ menu.view=&View
menu.view.survey=Nomad Charts
menu.view.multiplot=&Multiplot window
menu.view.imageViewer=Image &viewer
menu.view.configurationErrors=Configuration errors
......@@ -181,6 +182,7 @@ selectionTreePopupMenuItem.clearClipboardPrefix=Clear
selectionTreePopupMenuItem.reconnectDriverPrefix2=Reconnect driver
# Scan tabs popup menu items
......@@ -563,4 +565,11 @@ generateCommandFileLabel=Generate command file
generateControllerFilesLabel=Generate controller files
mustSelectControllerOrDriverMessage=You must select a controller or a driver.
mustSelectDirectoryMessage=You must select a directory to save generated files.
filesGeneratedMessage=files generated:
\ No newline at end of file
filesGeneratedMessage=files generated:
saveFileLabel=Save file
selectFileLabel=Double click on a file to select it
fileChooserToolTip=Open file selector
nbBoxesLabel=Current number of command boxes
upDirectoryMessage=Up directory
\ No newline at end of file
......@@ -5,6 +5,7 @@
<menu key="menu.view">
<item key="menu.view.logs" action="" accelerator="l"/>
<item key="menu.view.survey" action=""/>
<item key="menu.view.multiplot" check="true" action="" accelerator="m"/>
<item key="menu.view.imageViewer" action="" accelerator="w" instruments="gamma34,gamma26,d9,d19,ssci7,thales,gamma15"/>
<item key="menu.view.configurationErrors" action=""/>
......@@ -25,7 +26,7 @@
<item key="menu.command.pasteClipboard" action="" accelerator="v"/>
<item key="menu.command.startExecution" action="" accelerator="START_ACCELERATOR"/>
<item key="menu.command.stopCurrentCommand" action="" accelerator="STOP_CURRENT_ACCELERATOR"/>
<item key="menu.command.stopAtEndCommand" action="" accelerator="STOP_AT_END_ACCELERATOR"/>
<item key="menu.command.stopAtEndCommand" action=""/>
<item key="menu.command.printContent" action="" accelerator="p"/>
<menu key="menu.editor">
instrument_setting.visiblePrefix=Visible in Command Tab
......@@ -6,6 +6,7 @@ COUNT_CONTROLLER=acquisition
......@@ -20,7 +21,7 @@ EXPERIMENTDATA_EXPERIMENT_NUMBER_PROPERTY=experiment_number
......@@ -42,4 +43,10 @@ UTILITIES_IMAGE_VIEWER_TYPE_PROPERTY=type
\ No newline at end of file
......@@ -3,7 +3,7 @@
<description>Graphical user interface for Nomad</description>
......@@ -140,7 +140,7 @@
<dependency> <!-- For CollectionUtils -->
......@@ -215,4 +215,4 @@
\ No newline at end of file
package fr.ill.ics.apps;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import fr.ill.ics.cameo.Application;
import fr.ill.ics.cameo.Application.This;
public class LogsTransfer {
public static void main(String[] args) {
try {
String logsPath = args[0];
// Executing the command in the nomadgui-release directory.
String command = "zip -r /tmp/ " + logsPath;
String[] commandList = command.split(" ");