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