package org.geogebra.desktop.cas.view; import java.awt.Component; import java.awt.Font; import javax.swing.JTable; import javax.swing.table.TableCellRenderer; import org.geogebra.common.kernel.geos.GeoCasCell; import org.geogebra.desktop.awt.GColorD; /** * CAS cell renderer */ public class CASTableCellRenderer extends CASTableCell implements TableCellRenderer { private static final long serialVersionUID = 1L; /** * @param view * CAS view */ CASTableCellRenderer(CASViewD view) { super(view); } @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Font casFont = view.getCASViewComponent().getFont(); if (value instanceof GeoCasCell) { GeoCasCell cell = (GeoCasCell) value; // set CASTableCell value setValue(cell); // update font and row height if (cell.isUseAsText()) { setFont(casFont.deriveFont(cell.getFontStyle(), (float) (casFont.getSize() * (cell.getFontSizeMultiplier())))); setForeground(GColorD.getAwtColor(cell.getFontColor())); dummyField.setForeground( GColorD.getAwtColor(cell.getFontColor())); this.getInputArea().setForeground( GColorD.getAwtColor(cell.getFontColor())); } else { setFont(casFont); } updateTableRowHeight(table, row); // set inputPanel width to match table column width // -1 = set to table column width (even if larger than viewport) setInputPanelWidth(-1); } return this; } }