public void saveSignals() {
        final String signalsFilePath = dlgSignals.open();
        if (signalsFilePath != null) {
            Yaml yaml = new Yaml();
            BufferedWriter stream = null;
            try {
                stream = new BufferedWriter(new FileWriter(signalsFilePath));
                stream.write(yaml.dump(signals));
                stream.close();
            } catch (FileNotFoundException ex) {
                showMessage(Messages.ERROR_FILE_NOT_FOUND + signalsFilePath, "Error");
            } catch (IOException ex) {
                showMessage(Messages.ERROR_CANT_WRITE_TO_FILE + signalsFilePath, "Error");
            }
            String message = Messages.FILE_SAVED + signalsFilePath;
            status(message);
            signalEditorPrepare();
            se_signal.select(-1);
            signalEditorSignalsChanged();
            signalEditorSelectionChanged();
        } else {
            status(Messages.SIGNALS_FILE_NOT_SELECTED);
        }
    }