Skip to content
Snippets Groups Projects

Resolve "Display of program state on GUI"

Merged Céline TREBEAU requested to merge 6-display-of-program-state-on-gui into dev
2 files
+ 23
48
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -28,6 +28,8 @@
*/
package fr.pasteur.ida.zellige.gui;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
import fr.pasteur.ida.zellige.steps.selection.exception.DataValidationException;
import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
@@ -74,11 +76,32 @@ public class MainAppFrame extends JFrame
this.fxPanel = new JFXPanel();
this.add( this.fxPanel );
this.setVisible( true );
setLogStatus();
// The call to runLater() avoid a mix between JavaFX thread and Swing
// thread.
Platform.runLater( this::initFX );
}
/**
* Creates a new LogAppender to display the program state in the GUI.
*/
public void setLogStatus()
{
LoggerContext lc = ( LoggerContext ) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder ple = new PatternLayoutEncoder();
ple.setPattern( "%msg%n" );
ple.setContext( lc );
ple.start();
LogAppender appender = new LogAppender();
appender.setContext( lc );
appender.start();
ch.qos.logback.classic.Logger logbackLogger =
( ch.qos.logback.classic.Logger ) LoggerFactory.getLogger( Logger.ROOT_LOGGER_NAME );
logbackLogger.addAppender( appender );
}
public < T extends RealType< T > & NativeType< T > > void initFX()
{
// Init the root layout
Loading