mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2025-12-06 14:00:55 +03:00
Merge PR #935: Tree: support wide cell renderer
Some checks failed
CI / build (11, ) (push) Has been cancelled
CI / build (17, ) (push) Has been cancelled
CI / build (21, ) (push) Has been cancelled
CI / build (23, ) (push) Has been cancelled
CI / build (8, ) (push) Has been cancelled
CI / snapshot (push) Has been cancelled
CI / release (push) Has been cancelled
Some checks failed
CI / build (11, ) (push) Has been cancelled
CI / build (17, ) (push) Has been cancelled
CI / build (21, ) (push) Has been cancelled
CI / build (23, ) (push) Has been cancelled
CI / build (8, ) (push) Has been cancelled
CI / snapshot (push) Has been cancelled
CI / release (push) Has been cancelled
This commit is contained in:
@@ -1431,6 +1431,7 @@ Tree.showDefaultIcons false
|
||||
Tree.textBackground #46494b HSL 204 3 28 javax.swing.plaf.ColorUIResource [UI]
|
||||
Tree.textForeground #bbbbbb HSL 0 0 73 javax.swing.plaf.ColorUIResource [UI]
|
||||
Tree.timeFactor 1000
|
||||
Tree.wideCellRenderer false
|
||||
Tree.wideSelection true
|
||||
TreeUI com.formdev.flatlaf.ui.FlatTreeUI
|
||||
|
||||
|
||||
@@ -1436,6 +1436,7 @@ Tree.showDefaultIcons false
|
||||
Tree.textBackground #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
||||
Tree.textForeground #000000 HSL 0 0 0 javax.swing.plaf.ColorUIResource [UI]
|
||||
Tree.timeFactor 1000
|
||||
Tree.wideCellRenderer false
|
||||
Tree.wideSelection true
|
||||
TreeUI com.formdev.flatlaf.ui.FlatTreeUI
|
||||
|
||||
|
||||
@@ -1441,6 +1441,7 @@ Tree.showDefaultIcons false
|
||||
Tree.textBackground #282828 HSL 0 0 16 javax.swing.plaf.ColorUIResource [UI]
|
||||
Tree.textForeground #dddddd HSL 0 0 87 javax.swing.plaf.ColorUIResource [UI]
|
||||
Tree.timeFactor 1000
|
||||
Tree.wideCellRenderer false
|
||||
Tree.wideSelection true
|
||||
TreeUI com.formdev.flatlaf.ui.FlatTreeUI
|
||||
|
||||
|
||||
@@ -1445,6 +1445,7 @@ Tree.showDefaultIcons false
|
||||
Tree.textBackground #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
||||
Tree.textForeground #262626 HSL 0 0 15 javax.swing.plaf.ColorUIResource [UI]
|
||||
Tree.timeFactor 1000
|
||||
Tree.wideCellRenderer false
|
||||
Tree.wideSelection true
|
||||
TreeUI com.formdev.flatlaf.ui.FlatTreeUI
|
||||
|
||||
|
||||
@@ -1495,6 +1495,7 @@ Tree.showDefaultIcons false
|
||||
Tree.textBackground #fff0ff HSL 300 100 97 javax.swing.plaf.ColorUIResource [UI]
|
||||
Tree.textForeground #ff0000 HSL 0 100 50 javax.swing.plaf.ColorUIResource [UI]
|
||||
Tree.timeFactor 1000
|
||||
Tree.wideCellRenderer false
|
||||
Tree.wideSelection true
|
||||
TreeUI com.formdev.flatlaf.ui.FlatTreeUI
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.formdev.flatlaf.testing;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.ComponentOrientation;
|
||||
@@ -32,6 +33,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.function.Supplier;
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.*;
|
||||
import javax.swing.event.TableModelEvent;
|
||||
@@ -497,48 +499,23 @@ public class FlatComponents2Test
|
||||
if( !(sel instanceof String) )
|
||||
return;
|
||||
|
||||
JTree[] trees = { tree1, tree2, xTree1 };
|
||||
Supplier<TreeCellRenderer> creator;
|
||||
switch( (String) sel ) {
|
||||
case "default":
|
||||
for( JTree tree : trees )
|
||||
tree.setCellRenderer( new DefaultTreeCellRenderer() );
|
||||
break;
|
||||
|
||||
case "defaultSubclass":
|
||||
for( JTree tree : trees )
|
||||
tree.setCellRenderer( new TestDefaultTreeCellRenderer() );
|
||||
break;
|
||||
|
||||
case "defaultWithIcons":
|
||||
for( JTree tree : trees )
|
||||
tree.setCellRenderer( new TestDefaultWithIconsTreeCellRenderer() );
|
||||
break;
|
||||
|
||||
case "defaultWithIcon":
|
||||
for( JTree tree : trees )
|
||||
tree.setCellRenderer( new TestDefaultWithIconTreeCellRenderer() );
|
||||
break;
|
||||
|
||||
case "label":
|
||||
for( JTree tree : trees )
|
||||
tree.setCellRenderer( new TestLabelTreeCellRenderer() );
|
||||
break;
|
||||
|
||||
case "swingxDefault":
|
||||
for( JTree tree : trees )
|
||||
tree.setCellRenderer( new DefaultTreeRenderer() );
|
||||
break;
|
||||
|
||||
case "jideCheckBox":
|
||||
for( JTree tree : trees )
|
||||
tree.setCellRenderer( new CheckBoxTreeCellRenderer( new DefaultTreeCellRenderer() ) );
|
||||
break;
|
||||
|
||||
case "jideStyled":
|
||||
for( JTree tree : trees )
|
||||
tree.setCellRenderer( new StyledTreeCellRenderer() );
|
||||
break;
|
||||
default:
|
||||
case "default": creator = DefaultTreeCellRenderer::new; break;
|
||||
case "defaultSubclass": creator = TestDefaultTreeCellRenderer::new; break;
|
||||
case "defaultWithIcons": creator = TestDefaultWithIconsTreeCellRenderer::new; break;
|
||||
case "defaultWithIcon": creator = TestDefaultWithIconTreeCellRenderer::new; break;
|
||||
case "label": creator = TestLabelTreeCellRenderer::new; break;
|
||||
case "wide": creator = TestWideTreeCellRenderer::new; break;
|
||||
case "swingxDefault": creator = DefaultTreeRenderer::new; break;
|
||||
case "jideCheckBox": creator = () -> new CheckBoxTreeCellRenderer( new DefaultTreeCellRenderer() ); break;
|
||||
case "jideStyled": creator = StyledTreeCellRenderer::new; break;
|
||||
}
|
||||
|
||||
JTree[] trees = { tree1, tree2, xTree1 };
|
||||
for( JTree tree : trees )
|
||||
tree.setCellRenderer( creator.get() );
|
||||
}
|
||||
|
||||
private void treeWideSelectionChanged() {
|
||||
@@ -547,6 +524,12 @@ public class FlatComponents2Test
|
||||
tree.putClientProperty( FlatClientProperties.TREE_WIDE_SELECTION, wideSelection );
|
||||
}
|
||||
|
||||
private void treeWideCellRendererChanged() {
|
||||
boolean wideCellRenderer = treeWideCellRendererCheckBox.isSelected();
|
||||
for( JTree tree : allTrees )
|
||||
tree.putClientProperty( FlatClientProperties.TREE_WIDE_CELL_RENDERER, wideCellRenderer );
|
||||
}
|
||||
|
||||
private void treePaintSelectionChanged() {
|
||||
boolean paintSelection = treePaintSelectionCheckBox.isSelected();
|
||||
for( JTree tree : allTrees )
|
||||
@@ -691,6 +674,7 @@ public class FlatComponents2Test
|
||||
JLabel treeRendererLabel = new JLabel();
|
||||
treeRendererComboBox = new JComboBox<>();
|
||||
treeWideSelectionCheckBox = new JCheckBox();
|
||||
treeWideCellRendererCheckBox = new JCheckBox();
|
||||
treePaintSelectionCheckBox = new JCheckBox();
|
||||
treePaintLinesCheckBox = new JCheckBox();
|
||||
treeRedLinesCheckBox = new JCheckBox();
|
||||
@@ -1088,6 +1072,7 @@ public class FlatComponents2Test
|
||||
"defaultWithIcons",
|
||||
"defaultWithIcon",
|
||||
"label",
|
||||
"wide",
|
||||
"swingxDefault",
|
||||
"jideCheckBox",
|
||||
"jideStyled"
|
||||
@@ -1100,6 +1085,11 @@ public class FlatComponents2Test
|
||||
treeWideSelectionCheckBox.addActionListener(e -> treeWideSelectionChanged());
|
||||
treeOptionsPanel.add(treeWideSelectionCheckBox, "cell 0 1");
|
||||
|
||||
//---- treeWideCellRendererCheckBox ----
|
||||
treeWideCellRendererCheckBox.setText("wide cell renderer");
|
||||
treeWideCellRendererCheckBox.addActionListener(e -> treeWideCellRendererChanged());
|
||||
treeOptionsPanel.add(treeWideCellRendererCheckBox, "cell 0 1");
|
||||
|
||||
//---- treePaintSelectionCheckBox ----
|
||||
treePaintSelectionCheckBox.setText("paint selection");
|
||||
treePaintSelectionCheckBox.setSelected(true);
|
||||
@@ -1266,6 +1256,7 @@ public class FlatComponents2Test
|
||||
private JPanel treeOptionsPanel;
|
||||
private JComboBox<String> treeRendererComboBox;
|
||||
private JCheckBox treeWideSelectionCheckBox;
|
||||
private JCheckBox treeWideCellRendererCheckBox;
|
||||
private JCheckBox treePaintSelectionCheckBox;
|
||||
private JCheckBox treePaintLinesCheckBox;
|
||||
private JCheckBox treeRedLinesCheckBox;
|
||||
@@ -1794,6 +1785,32 @@ public class FlatComponents2Test
|
||||
}
|
||||
}
|
||||
|
||||
//---- class TestLabelTreeCellRenderer ------------------------------------
|
||||
|
||||
private static class TestWideTreeCellRenderer
|
||||
extends JPanel
|
||||
implements TreeCellRenderer
|
||||
{
|
||||
private final JLabel label = new JLabel();
|
||||
private final JLabel icon = new JLabel( UIManager.getIcon( "FileView.floppyDriveIcon" ) );
|
||||
|
||||
TestWideTreeCellRenderer() {
|
||||
super( new BorderLayout() );
|
||||
setOpaque( false );
|
||||
add( label, BorderLayout.CENTER );
|
||||
add( icon, BorderLayout.LINE_END );
|
||||
setBorder( new LineBorder( Color.red ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public Component getTreeCellRendererComponent( JTree tree, Object value, boolean selected, boolean expanded,
|
||||
boolean leaf, int row, boolean hasFocus )
|
||||
{
|
||||
label.setText( String.valueOf( value ) );
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//---- class TestComboBoxTableCellRenderer --------------------------------
|
||||
|
||||
private static class TestComboBoxTableCellRenderer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
JFDML JFormDesigner: "8.2.2.0.9999" Java: "21.0.1" encoding: "UTF-8"
|
||||
JFDML JFormDesigner: "8.3" encoding: "UTF-8"
|
||||
|
||||
new FormModel {
|
||||
contentType: "form/swing"
|
||||
@@ -484,6 +484,7 @@ new FormModel {
|
||||
addElement( "defaultWithIcons" )
|
||||
addElement( "defaultWithIcon" )
|
||||
addElement( "label" )
|
||||
addElement( "wide" )
|
||||
addElement( "swingxDefault" )
|
||||
addElement( "jideCheckBox" )
|
||||
addElement( "jideStyled" )
|
||||
@@ -505,6 +506,16 @@ new FormModel {
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 0 1"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "treeWideCellRendererCheckBox"
|
||||
"text": "wide cell renderer"
|
||||
auxiliary() {
|
||||
"JavaCodeGenerator.variableLocal": false
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "treeWideCellRendererChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 0 1"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "treePaintSelectionCheckBox"
|
||||
"text": "paint selection"
|
||||
|
||||
Reference in New Issue
Block a user