refs #22
Code improvement, more comments and added a ToolTip to the label.
This commit is contained in:
parent
4462dd6e3d
commit
37589f8d4f
@ -13,24 +13,26 @@ import java.util.logging.Logger;
|
|||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JMenuItem;
|
import javax.swing.JMenuItem;
|
||||||
import javax.swing.JPopupMenu;
|
import javax.swing.JPopupMenu;
|
||||||
import javax.swing.JSeparator;
|
|
||||||
import javax.swing.event.PopupMenuEvent;
|
|
||||||
import javax.swing.event.PopupMenuListener;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This is a JLabel that shows the current logging level
|
||||||
|
* depending on the Logger provided. It creates a popup
|
||||||
|
* menu on left-click to change the logging level. Logging
|
||||||
|
* levels are as specified by "java.util.logging.Level.*"
|
||||||
*
|
*
|
||||||
* @author becker
|
* @author becker
|
||||||
*/
|
*/
|
||||||
public final class LoggingLevelLabel extends JLabel {
|
public final class LoggingLevelLabel extends JLabel {
|
||||||
private JPopupMenu menu;
|
private JPopupMenu menu;
|
||||||
private String[] options;
|
private String[] options;
|
||||||
private String selected;
|
|
||||||
private Logger logger;
|
private Logger logger;
|
||||||
|
|
||||||
public LoggingLevelLabel(Logger logger) {
|
public LoggingLevelLabel(final Logger logger) {
|
||||||
options = new String[]{"Info", "Warning", "Severe", "Fine", "Finer", "Finest", "All"};
|
options = new String[]{"Info", "Warning", "Severe", "Fine", "Finer", "Finest", "All"};
|
||||||
|
|
||||||
this.logger = logger;
|
this.logger = logger;
|
||||||
|
|
||||||
|
setToolTipText("Click to change current logging level");
|
||||||
createPopupMenu();
|
createPopupMenu();
|
||||||
updateText();
|
updateText();
|
||||||
}
|
}
|
||||||
@ -61,13 +63,18 @@ public final class LoggingLevelLabel extends JLabel {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
JMenuItem menuItem;
|
||||||
|
ActionListener menuAction = new MenuActionListener();
|
||||||
for (String option : options) {
|
for (String option : options) {
|
||||||
JMenuItem menuItem = new JMenuItem(option);
|
menuItem = new JMenuItem(option);
|
||||||
menuItem.addActionListener(new MenuActionListener());
|
menuItem.addActionListener(menuAction);
|
||||||
menu.add(menuItem);
|
menu.add(menuItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the visible text on the label.
|
||||||
|
*/
|
||||||
private void updateText() {
|
private void updateText() {
|
||||||
/* Get the current logging Level */
|
/* Get the current logging Level */
|
||||||
Level lvl = logger.getLevel();
|
Level lvl = logger.getLevel();
|
||||||
@ -79,6 +86,11 @@ public final class LoggingLevelLabel extends JLabel {
|
|||||||
setText("<html><b>Level</b>: " + lvl.getName());
|
setText("<html><b>Level</b>: " + lvl.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the level of the logger to a new level.
|
||||||
|
*
|
||||||
|
* @param level The new level for the logger
|
||||||
|
*/
|
||||||
private void setLoggerLevel(Level level) {
|
private void setLoggerLevel(Level level) {
|
||||||
logger.setLevel(level);
|
logger.setLevel(level);
|
||||||
logger.log(Level.INFO, "Logging Level changed to {0}", level.getName());
|
logger.log(Level.INFO, "Logging Level changed to {0}", level.getName());
|
||||||
@ -103,7 +115,5 @@ public final class LoggingLevelLabel extends JLabel {
|
|||||||
|
|
||||||
LoggingLevelLabel.this.updateText();
|
LoggingLevelLabel.this.updateText();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user