use of com.github.weisj.darklaf.theme.event.ThemeInstalledListener in project darklaf by weisJ.
the class SplitPaneDemo method createComponent.
@Override
public JComponent createComponent() {
JSplitPane splitPane = new JSplitPane();
JPanel leftPanel = new JPanel();
leftPanel.setBackground(new ThemedColor("glowError"));
leftPanel.setPreferredSize(new Dimension(200, 200));
JPanel rightPanel = new JPanel();
rightPanel.setBackground(new ThemedColor("glowFocus"));
rightPanel.setPreferredSize(new Dimension(200, 200));
splitPane.setLeftComponent(leftPanel);
splitPane.setRightComponent(rightPanel);
SwingUtilities.invokeLater(() -> splitPane.setDividerLocation(0.5));
DemoPanel panel = new DemoPanel(splitPane, new BorderLayout(), 0);
JPanel controlPanel = panel.addControls();
controlPanel.add(new JCheckBox("ContinuousLayout") {
{
LafManager.addThemeChangeListener((ThemeInstalledListener) e -> setSelected(splitPane.isContinuousLayout()));
setSelected(splitPane.isContinuousLayout());
addActionListener(e -> splitPane.setContinuousLayout(isSelected()));
}
});
controlPanel.add(new JCheckBox("OneTouchExpandable") {
{
setSelected(splitPane.isOneTouchExpandable());
addActionListener(e -> splitPane.setOneTouchExpandable(isSelected()));
}
});
controlPanel.add(new JCheckBox("enabled") {
{
setSelected(splitPane.isEnabled());
addActionListener(e -> splitPane.setEnabled(isSelected()));
}
});
controlPanel = panel.addControls();
controlPanel.add(new JLabel("Orientation:", JLabel.RIGHT));
controlPanel.add(new JComboBox<String>() {
{
Map<String, Integer> mapping = new HashMap<String, Integer>() {
{
put("VERTICAL_SPLIT", JSplitPane.VERTICAL_SPLIT);
put("HORIZONTAL_SPLIT", JSplitPane.HORIZONTAL_SPLIT);
}
};
addItem("VERTICAL_SPLIT");
addItem("HORIZONTAL_SPLIT");
setSelectedItem("HORIZONTAL_SPLIT");
addItemListener(e -> splitPane.setOrientation(mapping.get(e.getItem().toString())));
}
}, "sgx");
controlPanel.add(new JLabel(SplitPaneConstants.KEY_STYLE + ":", JLabel.RIGHT));
controlPanel.add(new JComboBox<DividerStyle>() {
{
for (DividerStyle style : DividerStyle.values()) {
addItem(style);
}
setSelectedItem(DividerStyle.get(UIManager.get("SplitPane.defaultDividerStyle")));
addItemListener(e -> splitPane.putClientProperty(SplitPaneConstants.KEY_STYLE, e.getItem()));
}
}, "sgx");
return panel;
}
use of com.github.weisj.darklaf.theme.event.ThemeInstalledListener in project darklaf by weisJ.
the class ForegroundGenerationDemo method createComponent.
@Override
public JComponent createComponent() {
JPanel holder = new JPanel(new GridBagLayout());
holder.setPreferredSize(new Dimension(300, 100));
holder.setOpaque(true);
JLabel label = new JLabel("Demo Readability Text");
holder.add(label);
DemoPanel panel = new DemoPanel(holder, new BorderLayout(), 0);
JPanel controls = panel.addControls();
Consumer<Color> updater = c -> SwingUtilities.invokeLater(() -> {
holder.setBackground(c);
label.setForeground(ForegroundColorGenerationTask.makeForeground(c));
label.repaint();
});
Color current = UIManager.getColor("textCompSelectionBackground");
updater.accept(current);
QuickColorChooser quickColorChooser = new QuickColorChooser("Background", current, updater);
controls.add(quickColorChooser);
LafManager.addThemeChangeListener((ThemeInstalledListener) e -> {
Color c = UIManager.getColor("textCompSelectionBackground");
quickColorChooser.setColor(c);
updater.accept(c);
});
return panel;
}
use of com.github.weisj.darklaf.theme.event.ThemeInstalledListener in project darklaf by weisJ.
the class IconDemo method createComponent.
@Override
public JComponent createComponent() {
iconPanel = new JPanel(new GridLayout(3, 2, LayoutHelper.getDefaultSpacing(), LayoutHelper.getDefaultSpacing()));
iconPanel.setBorder(LayoutHelper.createEmptyContainerBorder());
UIManager.put("TestIcon.color", new Color(255, 35, 181));
IconLoader iconLoader = IconLoader.get(IconDemo.class);
UIAwareIcon uiAwareImageIcon = iconLoader.getUIAwareIcon("aware_image_icon.png");
UIAwareIcon uiAwareImageIconDual = uiAwareImageIcon.getDual();
UIAwareIcon uiAwareIcon = iconLoader.getUIAwareIcon("aware_icon.svg");
UIAwareIcon uiAwareIconDual = uiAwareIcon.getDual();
Icon themedIcon = iconLoader.getIcon("themed_icon.svg", 16, 16, true);
Icon imageIcon = iconLoader.getIcon("image_icon.png");
iconPanel.add(new JLabel("Aware image icon", uiAwareImageIcon, JLabel.LEFT));
iconPanel.add(new JLabel("Aware image icon (dual)", uiAwareImageIconDual, JLabel.LEFT));
iconPanel.add(new JLabel("Aware svg icon", uiAwareIcon, JLabel.LEFT));
iconPanel.add(new JLabel("Aware svg icon (dual)", uiAwareIconDual, JLabel.LEFT));
iconPanel.add(new JLabel("Themed icon", themedIcon, JLabel.LEFT));
iconPanel.add(new JLabel("Image icon", imageIcon, JLabel.LEFT));
DemoPanel panel = new DemoPanel(iconPanel, new BorderLayout(), 0);
JPanel controlPanel = panel.addControls();
controlPanel.add(new JToggleButton("Light/Dark") {
{
LafManager.addThemeChangeListener((ThemeInstalledListener) e -> setSelected(Theme.isDark(e.getNewTheme())));
putClientProperty("JToggleButton.variant", "slider");
addActionListener(e -> updateAwareIconStyle());
}
});
controlPanel.add(new QuickColorChooser("Themed icon color", UIManager.getColor("TestIcon.color"), this::updateThemedIconColor));
return panel;
}
use of com.github.weisj.darklaf.theme.event.ThemeInstalledListener in project darklaf by weisJ.
the class DemoMenuBar method createThemeMenu.
private JMenu createThemeMenu() {
JMenu menu = new JMenu("Theme");
menu.setMnemonic('T');
ButtonGroup bg = new ButtonGroup();
for (UIManager.LookAndFeelInfo theme : LafManager.getRegisteredThemeInfos()) {
createThemeItem(menu, bg, theme);
}
Runnable updater = () -> bg.setSelected(Optional.ofNullable(getSelectedThemeButton(bg)).map(AbstractButton::getModel).orElse(null), true);
menu.addMenuListener(new MenuListener() {
@Override
public void menuSelected(final MenuEvent e) {
updater.run();
}
@Override
public void menuDeselected(final MenuEvent e) {
}
@Override
public void menuCanceled(final MenuEvent e) {
}
});
LafManager.addThemeChangeListener((ThemeInstalledListener) e -> updater.run());
return menu;
}
Aggregations