OpenConcerto

Dépôt officiel du code source de l'ERP OpenConcerto
sonarqube

svn://code.openconcerto.org/openconcerto

Rev

Rev 18 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 18 Rev 83
Line 18... Line 18...
18
import java.awt.Color;
18
import java.awt.Color;
19
import java.awt.Component;
19
import java.awt.Component;
20
 
20
 
21
import javax.swing.JTable;
21
import javax.swing.JTable;
22
 
22
 
23
 
-
 
24
public class BalanceCellRenderer extends CompteCellRenderer {
23
public class BalanceCellRenderer extends CompteCellRenderer {
25
 
24
 
26
    private int colNumeroCompte;
25
    private int colNumeroCompte;
27
 
26
 
28
    public BalanceCellRenderer(int colNumeroCompte) {
27
    public BalanceCellRenderer(int colNumeroCompte) {
29
        this.colNumeroCompte = colNumeroCompte;
28
        this.colNumeroCompte = colNumeroCompte;
30
    }
29
    }
31
 
30
 
32
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
31
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
33
 
32
 
34
        String numeroCompte = table.getValueAt(row, this.colNumeroCompte).toString();
33
        String numeroCompte = table.getValueAt(row, this.colNumeroCompte).toString().trim();
35
        String numeroCompteSuiv = null;
34
        String numeroCompteSuiv = null;
36
 
35
 
37
        if (row < table.getRowCount() - 1) {
36
        if (row < table.getRowCount() - 1) {
38
            numeroCompteSuiv = table.getValueAt(row + 1, this.colNumeroCompte).toString();
37
            numeroCompteSuiv = table.getValueAt(row + 1, this.colNumeroCompte).toString().trim();
39
        }
38
        }
40
 
39
 
41
        super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
40
        super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
42
 
41
 
43
        if (!isSelected) {
42
        if (!isSelected) {
44
            // si le numéro compte est composé d'un seul chiffre
43
            // si le numéro compte est composé d'un seul chiffre
-
 
44
            final int length = numeroCompte.length();
45
            if (numeroCompte.trim().length() == 1) {
45
            if (length == 1) {
46
                this.setBackground(couleurCompteClasse);
46
                this.setBackground(couleurCompteClasse);
47
                this.setForeground(Color.BLACK);
47
                this.setForeground(Color.BLACK);
48
            } else {
48
            } else if ((numeroCompteSuiv != null) && (length < numeroCompteSuiv.length()) && (numeroCompte.equalsIgnoreCase(numeroCompteSuiv.substring(0, length)))) {
49
 
-
 
50
                // si le compte est racine
49
                // si le compte est racine
51
                if ((numeroCompteSuiv != null) && (numeroCompte.trim().length() < numeroCompteSuiv.trim().length())
-
 
52
                        && (numeroCompte.trim().equalsIgnoreCase(numeroCompteSuiv.trim().substring(0, numeroCompte.length())))) {
-
 
53
 
-
 
54
                    // on affiche le numero et le libellé pas le reste
50
                // on affiche le numero et le libellé pas le reste
55
                    // compte racine à 2 chiffres
51
                if (length == 2) { // compte racine à 2 chiffres
56
                    if (numeroCompte.trim().length() == 2) {
-
 
57
                        this.setBackground(couleurCompte2);
52
                    this.setBackground(couleurCompte2);
58
                        this.setForeground(Color.BLACK);
53
                    this.setForeground(Color.BLACK);
59
                    } else {
54
                } else if (length == 3) {
60
                        // compte racine à 3 chiffres
55
                    // compte racine à 3 chiffres
61
                        if (numeroCompte.trim().length() == 3) {
-
 
62
                            this.setBackground(couleurCompte3);
56
                    this.setBackground(couleurCompte3);
63
                            this.setForeground(Color.BLACK);
57
                    this.setForeground(Color.BLACK);
64
                        } else {
58
                } else {
65
                            // autre compte racine
59
                    // autre compte racine
66
                            this.setBackground(couleurCompteRacine);
60
                    this.setBackground(couleurCompteRacine);
67
                            this.setForeground(Color.BLACK);
61
                    this.setForeground(Color.BLACK);
68
                        }
62
                }
69
                    }
-
 
70
 
-
 
71
                } else {
63
            } else {
72
                    // compte normaux
64
                // compte normaux
73
                    this.setBackground(Color.WHITE);
65
                this.setBackground(Color.WHITE);
74
                    this.setForeground(Color.BLACK);
66
                this.setForeground(Color.BLACK);
75
                }
67
            }
76
            }
68
 
77
        }
69
        }
78
 
70
 
79
        if (value.getClass() == Long.class) {
71
        if (value != null && value.getClass() == Long.class) {
80
            this.setText(GestionDevise.currencyToString(((Long) value).longValue()));
72
            this.setText(GestionDevise.currencyToString(((Long) value).longValue()));
81
        }
73
        }
82
 
74
 
83
        return this;
75
        return this;
84
    }
76
    }