11package org .phoebus .applications .alarm .logging .ui ;
22
3+ import com .fasterxml .jackson .core .JsonProcessingException ;
4+ import com .fasterxml .jackson .databind .ObjectMapper ;
5+ import com .fasterxml .jackson .datatype .jsr310 .JavaTimeModule ;
36import com .sun .jersey .api .client .WebResource ;
47import javafx .animation .KeyFrame ;
58import javafx .animation .KeyValue ;
4346import java .net .URI ;
4447import java .net .URISyntaxException ;
4548import java .time .Instant ;
49+ import java .time .format .DateTimeFormatter ;
4650import java .util .Arrays ;
4751import java .util .List ;
4852import java .util .Map ;
@@ -494,6 +498,11 @@ public void search() {
494498 updateQuery ();
495499 }
496500
501+ private static final ObjectMapper objectMapper = new ObjectMapper ();
502+ static {
503+ objectMapper .registerModule (new JavaTimeModule ());
504+ }
505+
497506 @ FXML
498507 public void createContextMenu () {
499508 final ContextMenu contextMenu = new ContextMenu ();
@@ -519,7 +528,24 @@ public void createContextMenu() {
519528 alarmInfo .setHeaderText (null );
520529 alarmInfo .setResizable (true );
521530 // Corner case: search query may return zero results (or null), so dialog message should show that.
522- alarmInfo .setContentText (result == null ? Messages .ConfigurationInfoNotFound : result .toString ());
531+ if (result == null ) {
532+ alarmInfo .setContentText (Messages .ConfigurationInfoNotFound );
533+ } else {
534+ try {
535+ String newLine = System .lineSeparator ();
536+ StringBuilder sb = new StringBuilder ();
537+ sb .append ("message_time: " + TimestampFormats .MILLI_FORMAT .format (result .getMessage_time ()) + newLine );
538+ sb .append ("config: " + result .getConfig () + newLine );
539+ sb .append ("user: " + result .getUser () + newLine );
540+ sb .append ("host: " + result .getHost () + newLine );
541+ sb .append ("enabled: " + result .isEnabled () + newLine );
542+ Object jsonObject = objectMapper .readValue (result .getConfig_msg (), Object .class );
543+ sb .append ("config_msg: " + objectMapper .writerWithDefaultPrettyPrinter ().writeValueAsString (jsonObject ) + newLine );
544+ alarmInfo .setContentText (sb .toString ());
545+ } catch (JsonProcessingException e ) {
546+ alarmInfo .setContentText (Messages .ConfigurationInfoNotFound );
547+ }
548+ }
523549 alarmInfo .show ();
524550 }),
525551 (url , ex ) -> ExceptionDetailsErrorDialog .openError ("Alarm Log Info Error" , ex .getMessage (), ex )
0 commit comments