Search in sources :

Example 16 with DemoPanel

use of com.github.weisj.darklaf.ui.DemoPanel in project darklaf by weisJ.

the class OverlayRSyntaxScrollPane method createComponent.

@Override
public JComponent createComponent() {
    RSyntaxTextArea textArea = new RSyntaxTextArea(StringUtil.repeat(DemoResources.LOREM_IPSUM, 5));
    RTextScrollPane sp = new RTextScrollPane(textArea);
    OverlayScrollPane scrollPane = new OverlayScrollPane(sp);
    Random r = new Random();
    Color[] colors = new Color[] { ColorPalette.ORANGE, ColorPalette.RED, ColorPalette.GREEN };
    int length = textArea.getDocument().getLength();
    List<Pair<Position, Color>> markers = new ArrayList<>();
    int count = 15;
    for (int i = 0; i < count; i++) {
        try {
            Position position = textArea.getDocument().createPosition(i * length / count);
            Color color = colors[r.nextInt(colors.length)];
            markers.add(new Pair<>(position, color));
        } catch (BadLocationException ignored) {
        }
    }
    scrollPane.getVerticalScrollBar().putClientProperty(ScrollBarConstants.KEY_BACKGROUND_PAINTER, new MarkerBackgroundPainter(textArea, markers));
    return new DemoPanel(scrollPane, new BorderLayout(), 0);
}
Also used : ArrayList(java.util.ArrayList) OverlayScrollPane(com.github.weisj.darklaf.components.OverlayScrollPane) DemoPanel(com.github.weisj.darklaf.ui.DemoPanel) RSyntaxTextArea(org.fife.ui.rsyntaxtextarea.RSyntaxTextArea) Random(java.util.Random) RTextScrollPane(org.fife.ui.rtextarea.RTextScrollPane) Pair(com.github.weisj.darklaf.util.Pair)

Example 17 with DemoPanel

use of com.github.weisj.darklaf.ui.DemoPanel in project darklaf by weisJ.

the class OverlayScrollPaneDemo method createComponent.

@Override
public JComponent createComponent() {
    JComponent component = new JComponent() {

        private final Random r = new Random();

        private final Color[][] colors = new Color[100][100];

        {
            for (int x = 0; x < 100; x++) {
                for (int y = 0; y < 100; y++) {
                    colors[x][y] = new Color(r.nextInt());
                }
            }
        }

        @Override
        protected void paintComponent(final Graphics g) {
            super.paintComponent(g);
            for (int x = 0; x < 100; x++) {
                for (int y = 0; y < 100; y++) {
                    g.setColor(colors[x][y]);
                    g.fillRect(x * 10, y * 10, 10, 10);
                }
            }
        }

        @Override
        public Dimension getPreferredSize() {
            return new Dimension(1000, 1000);
        }
    };
    OverlayScrollPane scrollPane = new OverlayScrollPane(component);
    return new DemoPanel(scrollPane, new BorderLayout(), 0);
}
Also used : Random(java.util.Random) OverlayScrollPane(com.github.weisj.darklaf.components.OverlayScrollPane) DemoPanel(com.github.weisj.darklaf.ui.DemoPanel)

Example 18 with DemoPanel

use of com.github.weisj.darklaf.ui.DemoPanel in project darklaf by weisJ.

the class SliderDemo method createComponent.

@Override
public JComponent createComponent() {
    JSlider slider = new JSlider();
    slider.setMajorTickSpacing(20);
    slider.setMinorTickSpacing(5);
    DemoPanel panel = new DemoPanel(slider);
    JPanel controlPanel = panel.addControls();
    controlPanel.add(new JLabel("Orientation:"));
    controlPanel.add(new JComboBox<String>() {

        {
            setEditable(false);
            addItem("Horizontal");
            addItem("Vertical");
            setSelectedItem("Horizontal");
            addItemListener(e -> slider.setOrientation(e.getItem() == "Vertical" ? JSlider.VERTICAL : JSlider.HORIZONTAL));
        }
    });
    controlPanel = panel.addControls();
    controlPanel.add(new JCheckBox("enabled") {

        {
            setSelected(slider.isEnabled());
            addActionListener(e -> slider.setEnabled(isSelected()));
        }
    });
    controlPanel.add(new JCheckBox("LeftToRight") {

        {
            setSelected(slider.getComponentOrientation().isLeftToRight());
            addActionListener(e -> slider.setComponentOrientation(isSelected() ? ComponentOrientation.LEFT_TO_RIGHT : ComponentOrientation.RIGHT_TO_LEFT));
        }
    });
    controlPanel.add(new JCheckBox("inverted") {

        {
            setSelected(slider.getInverted());
            addActionListener(e -> slider.setInverted(isSelected()));
        }
    });
    controlPanel.add(new JCheckBox("snap to ticks") {

        {
            setSelected(slider.getSnapToTicks());
            addActionListener(e -> slider.setSnapToTicks(isSelected()));
        }
    });
    controlPanel.add(new JCheckBox("paint ticks") {

        {
            setSelected(slider.getPaintTicks());
            addActionListener(e -> slider.setPaintTicks(isSelected()));
        }
    });
    controlPanel.add(new JCheckBox("paint labels") {

        {
            setSelected(slider.getPaintLabels());
            addActionListener(e -> slider.setPaintLabels(isSelected()));
        }
    });
    controlPanel.add(new JCheckBox("paint track") {

        {
            setSelected(slider.getPaintTrack());
            addActionListener(e -> slider.setPaintTrack(isSelected()));
        }
    });
    controlPanel.add(new JCheckBox(DarkSliderUI.KEY_VARIANT + " = " + DarkSliderUI.VARIANT_VOLUME) {

        {
            addActionListener(e -> slider.putClientProperty(DarkSliderUI.KEY_VARIANT, isSelected() ? DarkSliderUI.VARIANT_VOLUME : null));
        }
    });
    controlPanel.add(new JCheckBox(DarkSliderUI.KEY_INSTANT_SCROLL) {

        {
            addActionListener(e -> slider.putClientProperty(DarkSliderUI.KEY_INSTANT_SCROLL, isSelected()));
        }
    });
    controlPanel.add(new JCheckBox(DarkSliderUI.KEY_SHOW_VOLUME_ICON) {

        {
            addActionListener(e -> slider.putClientProperty(DarkSliderUI.KEY_SHOW_VOLUME_ICON, isSelected()));
        }
    });
    return panel;
}
Also used : java.awt(java.awt) DemoExecutor(com.github.weisj.darklaf.ui.demo.DemoExecutor) BaseComponentDemo(com.github.weisj.darklaf.ui.demo.BaseComponentDemo) DemoPanel(com.github.weisj.darklaf.ui.DemoPanel) javax.swing(javax.swing) DemoPanel(com.github.weisj.darklaf.ui.DemoPanel)

Example 19 with DemoPanel

use of com.github.weisj.darklaf.ui.DemoPanel in project darklaf by weisJ.

the class ListDemo method createComponent.

@Override
public JComponent createComponent() {
    String[] week = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };
    JList<String> list = new JList<>(week);
    list.setSelectedIndex(2);
    DemoPanel panel = new DemoPanel(list, new BorderLayout(), 0);
    JPanel controlPanel = panel.addControls();
    controlPanel.add(new JCheckBox("enabled") {

        {
            setSelected(list.isEnabled());
            addActionListener(e -> list.setEnabled(isSelected()));
        }
    });
    controlPanel.add(new JCheckBox(DarkListUI.KEY_ALTERNATE_ROW_COLOR) {

        {
            setSelected(PropertyUtil.getBooleanProperty(list, DarkListUI.KEY_ALTERNATE_ROW_COLOR));
            addActionListener(e -> list.putClientProperty(DarkListUI.KEY_ALTERNATE_ROW_COLOR, isSelected()));
        }
    }, "span");
    controlPanel = panel.addControls();
    controlPanel.add(new JLabel("Layout orientation:", JLabel.RIGHT));
    controlPanel.add(new JComboBox<String>() {

        {
            Map<String, Integer> mapping = new HashMap<String, Integer>() {

                {
                    put("VERTICAL", JList.VERTICAL);
                    put("VERTICAL_WRAP", JList.VERTICAL_WRAP);
                    put("HORIZONTAL_WRAP", JList.HORIZONTAL_WRAP);
                }
            };
            addItem("VERTICAL");
            addItem("VERTICAL_WRAP");
            addItem("HORIZONTAL_WRAP");
            setSelectedItem("VERTICAL");
            // noinspection MagicConstant
            addItemListener(e -> list.setLayoutOrientation(mapping.get(e.getItem().toString())));
        }
    }, "sgx");
    controlPanel.add(new JLabel("Selection mode:", JLabel.RIGHT));
    controlPanel.add(new JComboBox<String>() {

        {
            Map<String, Integer> mapping = new HashMap<String, Integer>() {

                {
                    put("SINGLE_SELECTION", ListSelectionModel.SINGLE_SELECTION);
                    put("MULTIPLE_INTERVAL_SELECTION", ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
                    put("SINGLE_INTERVAL_SELECTION", ListSelectionModel.SINGLE_INTERVAL_SELECTION);
                }
            };
            addItem("SINGLE_SELECTION");
            addItem("MULTIPLE_INTERVAL_SELECTION");
            addItem("SINGLE_INTERVAL_SELECTION");
            setSelectedItem("SINGLE_SELECTION");
            list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            // noinspection MagicConstant
            addItemListener(e -> list.setSelectionMode(mapping.get(e.getItem().toString())));
        }
    }, "sgx");
    return panel;
}
Also used : java.awt(java.awt) DemoExecutor(com.github.weisj.darklaf.ui.demo.DemoExecutor) BaseComponentDemo(com.github.weisj.darklaf.ui.demo.BaseComponentDemo) Map(java.util.Map) HashMap(java.util.HashMap) DemoPanel(com.github.weisj.darklaf.ui.DemoPanel) PropertyUtil(com.github.weisj.darklaf.util.PropertyUtil) javax.swing(javax.swing) DemoPanel(com.github.weisj.darklaf.ui.DemoPanel) Map(java.util.Map) HashMap(java.util.HashMap)

Example 20 with DemoPanel

use of com.github.weisj.darklaf.ui.DemoPanel in project darklaf by weisJ.

the class ProgressBarDemo method createComponent.

@Override
public JComponent createComponent() {
    JProgressBar progressBar = new JProgressBar();
    progressBar.setString("Test ProgressBar");
    progressBar.setMinimum(0);
    progressBar.setMaximum(100);
    progressBar.setValue(50);
    DemoPanel panel = new DemoPanel(progressBar);
    JPanel controlPanel = panel.addControls();
    controlPanel.add(new JCheckBox("enabled") {

        {
            setSelected(progressBar.isEnabled());
            addActionListener(e -> progressBar.setEnabled(isSelected()));
        }
    });
    controlPanel.add(new JCheckBox("indeterminate") {

        {
            setSelected(progressBar.isIndeterminate());
            addActionListener(e -> progressBar.setIndeterminate(isSelected()));
        }
    });
    controlPanel.add(new JCheckBox("LeftToRight") {

        {
            setSelected(progressBar.getComponentOrientation().isLeftToRight());
            addActionListener(e -> progressBar.setComponentOrientation(isSelected() ? ComponentOrientation.LEFT_TO_RIGHT : ComponentOrientation.RIGHT_TO_LEFT));
        }
    });
    controlPanel.add(new JCheckBox("String painted") {

        {
            setSelected(progressBar.isStringPainted());
            addActionListener(e -> progressBar.setStringPainted(isSelected()));
        }
    });
    controlPanel.add(new JCheckBox("JProgressBar.failed") {

        {
            addActionListener(e -> progressBar.putClientProperty("JProgressBar.failed", isSelected()));
        }
    });
    controlPanel.add(new JCheckBox("JProgressBar.passed") {

        {
            addActionListener(e -> progressBar.putClientProperty("JProgressBar.passed", 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("HORIZONTAL", JProgressBar.HORIZONTAL);
                    put("VERTICAL", JProgressBar.VERTICAL);
                }
            };
            addItem("HORIZONTAL");
            addItem("VERTICAL");
            setSelectedItem("HORIZONTAL");
            addItemListener(e -> progressBar.setOrientation(mapping.get(e.getItem().toString())));
        }
    }, "sgx");
    controlPanel.add(new JLabel("Value:", JLabel.RIGHT));
    controlPanel.add(new JPanel() {

        {
            // Wrap in JPanel. Otherwise, the slider appears too low.
            add(new JSlider() {

                {
                    setMinimum(progressBar.getMinimum());
                    setMaximum(progressBar.getMaximum());
                    setValue(progressBar.getValue());
                    addChangeListener(e -> progressBar.setValue(getValue()));
                }
            });
        }
    }, "sgx");
    return panel;
}
Also used : java.awt(java.awt) DemoExecutor(com.github.weisj.darklaf.ui.demo.DemoExecutor) BaseComponentDemo(com.github.weisj.darklaf.ui.demo.BaseComponentDemo) Map(java.util.Map) HashMap(java.util.HashMap) DemoPanel(com.github.weisj.darklaf.ui.DemoPanel) javax.swing(javax.swing) DemoPanel(com.github.weisj.darklaf.ui.DemoPanel) Map(java.util.Map) HashMap(java.util.HashMap)

Aggregations

DemoPanel (com.github.weisj.darklaf.ui.DemoPanel)29 BaseComponentDemo (com.github.weisj.darklaf.ui.demo.BaseComponentDemo)19 javax.swing (javax.swing)19 java.awt (java.awt)18 DemoExecutor (com.github.weisj.darklaf.ui.demo.DemoExecutor)17 OverlayScrollPane (com.github.weisj.darklaf.components.OverlayScrollPane)7 PropertyKey (com.github.weisj.darklaf.util.PropertyKey)6 PropertyUtil (com.github.weisj.darklaf.util.PropertyUtil)5 Collections (java.util.Collections)5 List (java.util.List)5 StringUtil (com.github.weisj.darklaf.util.StringUtil)4 HashMap (java.util.HashMap)4 Map (java.util.Map)4 DarkToggleButtonUI (com.github.weisj.darklaf.ui.togglebutton.DarkToggleButtonUI)3 LafManager (com.github.weisj.darklaf.LafManager)2 ThemeInstalledListener (com.github.weisj.darklaf.theme.event.ThemeInstalledListener)2 DemoResources (com.github.weisj.darklaf.ui.DemoResources)2 Alignment (com.github.weisj.darklaf.util.Alignment)2 Pair (com.github.weisj.darklaf.util.Pair)2 ArrayList (java.util.ArrayList)2