in src/main/java/org/apache/log4j/chainsaw/ApplicationPreferenceModelPanel.java [194:258]
private void setupComponents() {
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
JPanel tabPlacementBox = new JPanel();
tabPlacementBox.setLayout(new BoxLayout(tabPlacementBox, BoxLayout.Y_AXIS));
tabPlacementBox.setBorder(BorderFactory.createTitledBorder(" Tab Placement "));
ButtonGroup tabPlacementGroup = new ButtonGroup();
tabPlacementGroup.add(topPlacement);
tabPlacementGroup.add(bottomPlacement);
tabPlacementBox.add(topPlacement);
tabPlacementBox.add(bottomPlacement);
/**
* If we're OSX, we're 'not allowed' to change the tab placement...
*/
if (OSXIntegration.IS_OSX) {
tabPlacementBox.setEnabled(false);
topPlacement.setEnabled(false);
bottomPlacement.setEnabled(false);
}
add(tabPlacementBox);
add(statusBar);
add(receivers);
add(toolBar);
JPanel lfPanel = new JPanel();
lfPanel.setLayout(new BoxLayout(lfPanel, BoxLayout.Y_AXIS));
lfPanel.setBorder(BorderFactory.createTitledBorder(" Look & Feel "));
final AbstractConfiguration configuration = SettingsManager.getInstance().getGlobalConfiguration();
for (final UIManager.LookAndFeelInfo lfInfo : lookAndFeels) {
final JRadioButton lfItem = new JRadioButton(" " + lfInfo.getName() + " ");
lfItem.setName(lfInfo.getClassName());
lfItem.addActionListener(
e -> configuration.setProperty("lookAndFeelClassName",
lfInfo.getClassName()));
lookAndFeelGroup.add(lfItem);
lfPanel.add(lfItem);
}
try {
final Class gtkLF =
Class.forName("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
final JRadioButton lfIGTK = new JRadioButton(" GTK+ 2.0 ");
lfIGTK.addActionListener(
e -> configuration.setProperty("lookAndFeelClassName",
gtkLF.getName()));
lookAndFeelGroup.add(lfIGTK);
lfPanel.add(lfIGTK);
} catch (Exception e) {
logger.debug("Can't find new GTK L&F, might be Windows, or <JDK1.4.2");
}
add(lfPanel);
add(
new JLabel(
"<html>Look and Feel change will apply the next time you start Chainsaw.<br>" +
"If this value is not set, the default L&F of your system is used.</html>"));
}