use of com.github.weisj.darklaf.ui.DemoPanel in project darklaf by weisJ.
the class BaseComponentDemo method setupControls.
@SuppressWarnings("unchecked")
private void setupControls(final JComponent component, final DemoPanel demoPanel) {
final Runnable updateComponent = () -> {
if (!DEBUG) {
component.invalidate();
component.doLayout();
Component parent = component.getParent();
if (parent != null) {
parent.invalidate();
parent.doLayout();
}
}
};
JComponent controls = demoPanel.addControls();
for (DemoSpec<?> demoSpec : demoSpecList) {
if (demoSpec instanceof SpacerSpec) {
if (controls.getComponentCount() > 0) {
controls = demoPanel.addControls(2);
}
} else if (demoSpec instanceof BooleanDemoSpec) {
JCheckBox checkBox = new JCheckBox(demoSpec.getName());
checkBox.setSelected(((BooleanDemoSpec) demoSpec).get(component) == Boolean.TRUE);
checkBox.addActionListener(e -> {
((BooleanDemoSpec) demoSpec).set(component, checkBox.isSelected());
updateComponent.run();
});
controls.add(checkBox);
} else if (demoSpec instanceof CustomControlSpec) {
if (controls.getComponentCount() > 0) {
controls = demoPanel.addControls();
}
((CustomControlSpec) demoSpec).builderClosure.accept(controls);
controls = demoPanel.addControls();
} else {
JComboBox<Object> comboBox = new JComboBox<>(demoSpec.getPossibleValues().toArray());
Object initial = demoSpec.get(component);
if (!demoSpec.getPossibleValues().contains(initial)) {
initial = demoSpec.getPossibleValues().get(0);
}
comboBox.addItemListener(e -> {
((DemoSpec<Object>) demoSpec).set(component, e.getItem());
updateComponent.run();
});
comboBox.setSelectedItem(initial);
controls.add(new JLabel(demoSpec.getName()));
controls.add(comboBox);
}
}
}
use of com.github.weisj.darklaf.ui.DemoPanel in project darklaf by weisJ.
the class ScrollPaneDemo method createComponent.
@Override
public JComponent createComponent() {
JScrollPane scrollPane = new JScrollPane(new JTextArea() {
{
setText(StringUtil.repeat(DemoResources.LOREM_IPSUM, 10));
}
});
JPanel upperLeft = new SolidColorComponent(Color.RED, 20, 20);
JPanel upperRight = new SolidColorComponent(Color.RED, 20, 20);
JPanel lowerLeft = new SolidColorComponent(Color.RED, 20, 20);
JPanel lowerRight = new SolidColorComponent(Color.RED, 20, 20);
DemoPanel panel = new DemoPanel(scrollPane, new BorderLayout(), 10);
JPanel controlPanel = panel.addControls();
controlPanel.add(new JCheckBox("LeftToRight") {
{
setSelected(scrollPane.getComponentOrientation().isLeftToRight());
addActionListener(e -> scrollPane.setComponentOrientation(isSelected() ? ComponentOrientation.LEFT_TO_RIGHT : ComponentOrientation.RIGHT_TO_LEFT));
}
}, "span");
controlPanel = panel.addControls();
controlPanel.add(new JCheckBox("UpperLeft corner") {
{
addActionListener(e -> scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, isSelected() ? upperLeft : null));
}
});
controlPanel.add(new JCheckBox("UpperRight corner") {
{
addActionListener(e -> scrollPane.setCorner(JScrollPane.UPPER_RIGHT_CORNER, isSelected() ? upperRight : null));
}
});
controlPanel.add(new JCheckBox("LowerLeft corner") {
{
addActionListener(e -> scrollPane.setCorner(JScrollPane.LOWER_LEFT_CORNER, isSelected() ? lowerLeft : null));
}
});
controlPanel.add(new JCheckBox("LowerRight corner") {
{
addActionListener(e -> scrollPane.setCorner(JScrollPane.LOWER_RIGHT_CORNER, isSelected() ? lowerRight : null));
}
});
return panel;
}
use of com.github.weisj.darklaf.ui.DemoPanel in project darklaf by weisJ.
the class SpinnerDemo method createComponent.
@Override
public JComponent createComponent() {
JSpinner spinner = new JSpinner(new SpinnerNumberModel(0, 0, 10, 1)) {
@Override
public void updateUI() {
super.updateUI();
((JFormattedTextField) getEditor().getComponent(0)).setColumns(3);
}
};
DemoPanel panel = new DemoPanel(spinner);
JPanel controlPanel = panel.addControls(1);
controlPanel.add(new JCheckBox("enabled") {
{
setSelected(spinner.isEnabled());
addActionListener(e -> spinner.setEnabled(isSelected()));
}
});
controlPanel.add(new JCheckBox("LeftToRight") {
{
setSelected(spinner.getComponentOrientation().isLeftToRight());
addActionListener(e -> spinner.setComponentOrientation(isSelected() ? ComponentOrientation.LEFT_TO_RIGHT : ComponentOrientation.RIGHT_TO_LEFT));
}
});
controlPanel.add(new JCheckBox(SpinnerConstants.KEY_VARIANT + " = " + SpinnerConstants.VARIANT_PLUS_MINUS) {
{
addActionListener(e -> spinner.putClientProperty(SpinnerConstants.KEY_VARIANT, isSelected() ? SpinnerConstants.VARIANT_PLUS_MINUS : null));
}
});
controlPanel.add(new JCheckBox(SpinnerConstants.KEY_IS_TREE_EDITOR) {
{
setSelected(false);
addActionListener(e -> spinner.putClientProperty(SpinnerConstants.KEY_IS_TREE_EDITOR, isSelected()));
}
});
controlPanel.add(new JCheckBox(SpinnerConstants.KEY_IS_TABLE_EDITOR) {
{
setSelected(false);
addActionListener(e -> spinner.putClientProperty(SpinnerConstants.KEY_IS_TABLE_EDITOR, isSelected()));
}
});
return panel;
}
use of com.github.weisj.darklaf.ui.DemoPanel 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.ui.DemoPanel in project darklaf by weisJ.
the class AbstractTabbedPaneDemo method createComponent.
@Override
public JComponent createComponent() {
T tabbedPane = createTabbedPane();
setupTabbedPane(tabbedPane);
DemoPanel panel = new DemoPanel(tabbedPane, new BorderLayout(), 0);
JPanel controlPanel = panel.addControls();
controlPanel.add(new JLabel("TabLayoutPolicy:", JLabel.RIGHT));
controlPanel.add(new JComboBox<String>() {
{
Map<String, Integer> mapping = new HashMap<String, Integer>() {
{
put("SCROLL_TAB_LAYOUT", JTabbedPane.SCROLL_TAB_LAYOUT);
put("WRAP_TAB_LAYOUT", JTabbedPane.WRAP_TAB_LAYOUT);
}
};
addItem("SCROLL_TAB_LAYOUT");
addItem("WRAP_TAB_LAYOUT");
setSelectedItem("SCROLL_TAB_LAYOUT");
addItemListener(e -> tabbedPane.setTabLayoutPolicy(mapping.get(e.getItem().toString())));
}
}, "sgx");
controlPanel.add(new JLabel("TabPlacement:", JLabel.RIGHT));
controlPanel.add(new JComboBox<String>() {
{
Map<String, Integer> mapping = new HashMap<String, Integer>() {
{
put("TOP", JTabbedPane.TOP);
put("BOTTOM", JTabbedPane.BOTTOM);
put("LEFT", JTabbedPane.LEFT);
put("RIGHT", JTabbedPane.RIGHT);
}
};
addItem("TOP");
addItem("BOTTOM");
addItem("LEFT");
addItem("RIGHT");
setSelectedItem("TOP");
addItemListener(e -> tabbedPane.setTabPlacement(mapping.get(e.getItem().toString())));
}
}, "sgx");
controlPanel = panel.addControls();
controlPanel.add(new JCheckBox("enabled") {
{
setSelected(tabbedPane.isEnabled());
addActionListener(e -> tabbedPane.setEnabled(isSelected()));
}
});
controlPanel.add(new JCheckBox("LeftToRight") {
{
setSelected(tabbedPane.getComponentOrientation().isLeftToRight());
addActionListener(e -> tabbedPane.setComponentOrientation(isSelected() ? ComponentOrientation.LEFT_TO_RIGHT : ComponentOrientation.RIGHT_TO_LEFT));
}
});
controlPanel.add(new JCheckBox(DarkTabbedPaneUI.KEY_CENTER_TABS) {
{
setSelected(false);
addActionListener(e -> tabbedPane.putClientProperty(DarkTabbedPaneUI.KEY_CENTER_TABS, isSelected()));
}
});
controlPanel.add(new JCheckBox(DarkTabbedPaneUI.KEY_DND) {
{
setSelected(false);
addActionListener(e -> tabbedPane.putClientProperty(DarkTabbedPaneUI.KEY_DND, isSelected()));
}
});
controlPanel.add(new JCheckBox(DarkTabbedPaneUI.KEY_SHOW_NEW_TAB_BUTTON) {
{
setSelected(false);
addActionListener(e -> tabbedPane.putClientProperty(DarkTabbedPaneUI.KEY_SHOW_NEW_TAB_BUTTON, isSelected()));
}
});
controlPanel.add(new JCheckBox(DarkTabbedPaneUI.KEY_LEADING_COMP) {
{
setSelected(false);
JLabel leading = new PlaceholderLabel("Leading");
addActionListener(e -> tabbedPane.putClientProperty(DarkTabbedPaneUI.KEY_LEADING_COMP, isSelected() ? leading : null));
}
});
controlPanel.add(new JCheckBox(DarkTabbedPaneUI.KEY_TRAILING_COMP) {
{
setSelected(false);
JLabel trailing = new PlaceholderLabel("Trailing");
addActionListener(e -> tabbedPane.putClientProperty(DarkTabbedPaneUI.KEY_TRAILING_COMP, isSelected() ? trailing : null));
}
});
controlPanel.add(new JCheckBox(DarkTabbedPaneUI.KEY_NORTH_COMP) {
{
setSelected(false);
JLabel north = new PlaceholderLabel("North");
addActionListener(e -> tabbedPane.putClientProperty(DarkTabbedPaneUI.KEY_NORTH_COMP, isSelected() ? north : null));
}
});
controlPanel.add(new JCheckBox(DarkTabbedPaneUI.KEY_EAST_COMP) {
{
setSelected(false);
JLabel east = new PlaceholderLabel("East");
addActionListener(e -> tabbedPane.putClientProperty(DarkTabbedPaneUI.KEY_EAST_COMP, isSelected() ? east : null));
}
});
controlPanel.add(new JCheckBox(DarkTabbedPaneUI.KEY_SOUTH_COMP) {
{
setSelected(false);
JLabel south = new PlaceholderLabel("South");
addActionListener(e -> tabbedPane.putClientProperty(DarkTabbedPaneUI.KEY_SOUTH_COMP, isSelected() ? south : null));
}
});
controlPanel.add(new JCheckBox(DarkTabbedPaneUI.KEY_WEST_COMP) {
{
setSelected(false);
JLabel west = new PlaceholderLabel("West");
addActionListener(e -> tabbedPane.putClientProperty(DarkTabbedPaneUI.KEY_WEST_COMP, isSelected() ? west : null));
}
});
return panel;
}
Aggregations