View Javadoc
1   package com.jsql.view.swing.panel.consoles;
2   
3   import com.jsql.model.injection.strategy.blind.AbstractCallableBinary;
4   import com.jsql.view.swing.util.UiUtil;
5   
6   import javax.swing.*;
7   import java.awt.*;
8   import java.util.List;
9   
10  public class CenterRendererWithIcon extends CenterRenderer {
11      
12      @Override
13      public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
14          Object text = ((List<?>) value).get(0);
15          Object objectCallableBoolean = ((List<?>) value).get(1);
16          
17          if (objectCallableBoolean != null) {
18              AbstractCallableBinary<?> callableBoolean = (AbstractCallableBinary<?>) objectCallableBoolean;
19              String charText = callableBoolean.getCharText();
20              if (charText != null && charText.charAt(0) >= 32) {
21                  text += ":" + callableBoolean.getCharText();
22              }
23          }
24  
25          JLabel label = (JLabel) super.getTableCellRendererComponent(table, text, isSelected, hasFocus, row, column);
26          label.setIcon(null);  // required to remove icon as same renderer applies to subsequent labels
27  
28          if (column == 3 && objectCallableBoolean != null) {
29              AbstractCallableBinary<?> callableBoolean = (AbstractCallableBinary<?>) objectCallableBoolean;
30              if (!callableBoolean.isMultibit()) {
31                  label.setIcon(callableBoolean.isTrue() ? UiUtil.TICK_GREEN.getIcon() : UiUtil.CROSS_RED.getIcon());
32              }
33          }
34          return label;
35      }
36  }