1 /****************************************************************************/ 2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo 3 // Copyright (C) 2016-2018 German Aerospace Center (DLR) and others. 4 // This program and the accompanying materials 5 // are made available under the terms of the Eclipse Public License v2.0 6 // which accompanies this distribution, and is available at 7 // http://www.eclipse.org/legal/epl-v20.html 8 // SPDX-License-Identifier: EPL-2.0 9 /****************************************************************************/ 10 /// @file Constants.java 11 /// @author Maximiliano Bottazzi 12 /// @date 2016 13 /// @version $Id$ 14 /// 15 // 16 /****************************************************************************/ 17 package de.dlr.ts.lisum.gui.center; 18 19 import de.dlr.ts.lisum.gui.debug.DebugConsole; 20 import de.dlr.ts.commons.logger.DLRLogger; 21 import de.dlr.ts.commons.logger.LogLevel; 22 import de.dlr.ts.lisum.gui.GlobalConfig; 23 import de.dlr.ts.lisum.gui.Icons; 24 import de.dlr.ts.lisum.gui.SystemProperties; 25 import javafx.event.ActionEvent; 26 import javafx.scene.Node; 27 import javafx.scene.control.Button; 28 import javafx.scene.control.ComboBox; 29 import javafx.scene.control.TextArea; 30 import javafx.scene.control.ToolBar; 31 import javafx.scene.control.Tooltip; 32 import javafx.scene.layout.AnchorPane; 33 34 35 /** 36 * 37 * @author @author <a href="mailto:maximiliano.bottazzi@dlr.de">Maximiliano Bottazzi</a> 38 */ 39 public class CenterAdmin 40 { 41 private final AnchorPane root = new AnchorPane(); 42 private TextArea textArea = new TextArea(); 43 private final ToolBar toolbar = new ToolBar(); 44 45 46 /** 47 * 48 */ 49 private final Button clearbutton = new Button("", Icons.getInstance().getIconImageView("Cancel", 16)); 50 { clearbutton.setOnAction(event) -> textArea.clear()51 clearbutton.setOnAction((event) -> textArea.clear()); clearbutton.setTooltip(new Tooltip(R))52 clearbutton.setTooltip(new Tooltip("Clear logging area")); 53 } 54 55 /** 56 * 57 */ 58 private ComboBox<String> logLevelComboBox = new ComboBox<>(); 59 { 60 for (LogLevel value : LogLevel.values()) 61 logLevelComboBox.getItems().add(value.name()); 62 63 logLevelComboBox.setEditable(false); 64 logLevelComboBox.setOnAction(ActionEvent event) -> { DLRLogger.setLevel(LogLevel.ALL); String selectedItem = logLevelComboBox.getSelectionModel().getSelectedItem(); DLRLogger.info(this, R + selectedItem); GlobalConfig.getInstance().setLoggingLevel(selectedItem); GlobalConfig.getInstance().saveProps(); DLRLogger.setLevel(LogLevel.parse(selectedItem.toUpperCase())); if(selectedItem.equals(R)) DebugConsole.getInstance().setEmptyPrintOutput(); else if(selectedItem.equals(R) || selectedItem.equals(R) || selectedItem.equals(R)) { System.out.println(R); System.out.println(R); System.out.println(R + selectedItem + R); System.out.println(R); System.out.println(R); System.out.println(R); System.out.println(R); System.out.println(R); System.out.println(R); } else DebugConsole.getInstance().setTextAreaPrintOutput(); }65 logLevelComboBox.setOnAction((ActionEvent event) -> 66 { 67 DLRLogger.setLevel(LogLevel.ALL); 68 String selectedItem = logLevelComboBox.getSelectionModel().getSelectedItem(); 69 DLRLogger.info(this, "Setting Log level to " + selectedItem); 70 71 GlobalConfig.getInstance().setLoggingLevel(selectedItem); 72 GlobalConfig.getInstance().saveProps(); 73 74 DLRLogger.setLevel(LogLevel.parse(selectedItem.toUpperCase())); 75 76 if(selectedItem.equals("OFF")) 77 DebugConsole.getInstance().setEmptyPrintOutput(); 78 else if(selectedItem.equals("ALL") || selectedItem.equals("FINEST") || selectedItem.equals("FINER")) 79 { 80 System.out.println("***************************************************************************************************"); 81 System.out.println("***************************************************************************************************"); 82 System.out.println("**** >>> Logging level set to " + selectedItem + " <<< "); 83 System.out.println("**** "); 84 System.out.println("**** Use this logging level only for debugging purposes!"); 85 System.out.println("**** If you run SUMO at full speed, you may experience some problems"); 86 System.out.println("**** like interruptions and/or a delayed execution of LiSuM"); 87 System.out.println("***************************************************************************************************"); 88 System.out.println("***************************************************************************************************"); 89 } 90 else 91 DebugConsole.getInstance().setTextAreaPrintOutput(); 92 }); 93 logLevelComboBox.setTooltip(new Tooltip(R))94 logLevelComboBox.setTooltip(new Tooltip("Logging level")); 95 } 96 97 /** 98 * 99 */ CenterAdmin()100 public CenterAdmin() 101 { 102 clearbutton.setPrefWidth(55.); 103 104 //textArea.setDisable(true); 105 textArea.setEditable(false); 106 textArea.setWrapText(false); 107 108 AnchorPane.setTopAnchor(textArea, 42.); 109 AnchorPane.setLeftAnchor(textArea, 3.); 110 AnchorPane.setRightAnchor(textArea, 3.); 111 AnchorPane.setBottomAnchor(textArea, 3.); 112 113 toolbar.getItems().addAll(logLevelComboBox, clearbutton); 114 AnchorPane.setTopAnchor(toolbar, 3.); 115 AnchorPane.setLeftAnchor(toolbar, 3.); 116 AnchorPane.setRightAnchor(toolbar, 3.); 117 118 root.getChildren().addAll(textArea, toolbar); 119 120 DebugConsole.getInstance().setTextArea(textArea); 121 DebugConsole.getInstance().setTextAreaPrintOutput(); 122 123 //logLevelComboBox.setValue(DLRLogger.getCurrentLevel().name()); 124 logLevelComboBox.setValue(GlobalConfig.getInstance().getLoggingLevel()); 125 126 DLRLogger.info(this, "" + SystemProperties.getInstance().getSystemName() + " started" ); 127 } 128 129 /** 130 * 131 * @return 132 */ getNode()133 public Node getNode() 134 { 135 return root; 136 } 137 138 } 139