• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

evolvedbinary / elemental / 982

29 Apr 2025 08:34PM UTC coverage: 56.409% (+0.007%) from 56.402%
982

push

circleci

adamretter
[feature] Improve README.md badges

28451 of 55847 branches covered (50.94%)

Branch coverage included in aggregate %.

77468 of 131924 relevant lines covered (58.72%)

0.59 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/exist-core/src/main/java/org/exist/client/CheckboxTableCellRenderer.java
1
/*
2
 * Elemental
3
 * Copyright (C) 2024, Evolved Binary Ltd
4
 *
5
 * admin@evolvedbinary.com
6
 * https://www.evolvedbinary.com | https://www.elemental.xyz
7
 *
8
 * Use of this software is governed by the Business Source License 1.1
9
 * included in the LICENSE file and at www.mariadb.com/bsl11.
10
 *
11
 * Change Date: 2028-04-27
12
 *
13
 * On the date above, in accordance with the Business Source License, use
14
 * of this software will be governed by the Apache License, Version 2.0.
15
 *
16
 * Additional Use Grant: Production use of the Licensed Work for a permitted
17
 * purpose. A Permitted Purpose is any purpose other than a Competing Use.
18
 * A Competing Use means making the Software available to others in a commercial
19
 * product or service that: substitutes for the Software; substitutes for any
20
 * other product or service we offer using the Software that exists as of the
21
 * date we make the Software available; or offers the same or substantially
22
 * similar functionality as the Software.
23
 */
24
package org.exist.client;
25

26
import com.evolvedbinary.j8fu.tuple.Tuple2;
27

28
import java.awt.Component;
29
import java.util.function.Function;
30
import javax.swing.JCheckBox;
31
import javax.swing.JTable;
32
import javax.swing.SwingConstants;
33
import javax.swing.UIManager;
34
import javax.swing.border.Border;
35
import javax.swing.border.EmptyBorder;
36
import javax.swing.plaf.UIResource;
37
import javax.swing.table.TableCellRenderer;
38

39
/**
40
 * Renders a T as a JCheckBox.
41
 *
42
 * @author <a href="mailto:adam@evolvedbinary.com">Adam Retter</a>
43
 */
44
public class CheckboxTableCellRenderer<T> extends JCheckBox
45
        implements TableCellRenderer, UIResource {
46
    
47
    private static final Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
×
48
    private final Function<T, Tuple2<String, Boolean>> valueStateFn;
49

50
    public CheckboxTableCellRenderer(final Function<T, Tuple2<String, Boolean>> valueStateFn) {
51
        super();
×
52
        setHorizontalAlignment(SwingConstants.LEFT);
×
53
        setBorderPainted(true);
×
54
        setHorizontalTextPosition(SwingConstants.RIGHT);
×
55
        this.valueStateFn = valueStateFn;
×
56
    }
×
57

58
    @Override
59
    public Component getTableCellRendererComponent(final JTable table, final Object value, 
60
            final boolean isSelected, final boolean hasFocus, final int row, final int column) {
61
        
62
        if (isSelected) {
×
63
            setForeground(table.getSelectionForeground());
×
64
            super.setBackground(table.getSelectionBackground());
×
65
        } else {
×
66
            setForeground(table.getForeground());
×
67
            setBackground(table.getBackground());
×
68
        }
69
        
70
        //set selected
71
        final Tuple2<String, Boolean> state = valueStateFn.apply((T)value);
×
72
        setSelected(state._2 != null && state._2);
×
73

74
        //set label
75
        if (value != null) {
×
76
            setText(state._1);
×
77
        }
78

79
        if (hasFocus) {
×
80
            setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));
×
81
        } else {
×
82
            setBorder(noFocusBorder);
×
83
        }
84

85
        return this;
×
86
    }
87
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc