Java tutorial
// Description: Java 7 Swing Blob Text Display Widget. /* * CFLib * * Copyright (c) 2014 Mark Sobkow * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * *********************************************************************** * * Code manufactured by MSS Code Factory * * $Revision: 1408 $ */ package net.sourceforge.msscodefactory.cflib.v1_11.CFLib.Swing; import java.math.*; import java.sql.*; import java.text.*; import java.util.*; import java.awt.*; import javax.swing.*; import javax.swing.table.*; import net.sourceforge.msscodefactory.cflib.v1_11.CFLib.*; import org.apache.commons.codec.binary.Base64; /** * CFBlobColumnCellRenderer Swing Blob Table Cell Renderer. */ public class CFStringColumnCellRenderer extends DefaultTableCellRenderer { protected Object value = null; public CFStringColumnCellRenderer() { super(); } public Component getTableCellRendererComponent(JTable table, Object val, boolean isSelected, boolean hasFocus, int row, int column) { value = val; if (isSelected) { setBackground(Color.BLACK); setForeground(Color.LIGHT_GRAY); } else { setBackground(Color.LIGHT_GRAY); setForeground(Color.BLACK); } return (this); } public void paint(Graphics g) { if (g == null) { return; } Rectangle bounds = getBounds(); g.setColor(getBackground()); g.fill3DRect(0, 0, bounds.width, bounds.height, true); g.setColor(getForeground()); String str; if (value instanceof String) { str = (String) value; } else { str = null; } if (str != null) { int firstNewline = str.indexOf('\n'); if (firstNewline < 0) { firstNewline = str.indexOf('\r'); if (firstNewline < 0) { firstNewline = str.indexOf('\f'); if (firstNewline < 0) { firstNewline = str.length(); } } } String firstLine = str.substring(0, firstNewline); FontMetrics fm = g.getFontMetrics(); int ascent = fm.getAscent(); int leading = fm.getLeading(); g.drawString(firstLine, 4, leading + ascent + 4); } } public void setValue(Object o) { super.setValue(o); value = o; } }