com.ibm.as400.vaccess.DBCellRenderer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400 Show documentation
Show all versions of jt400 Show documentation
The Open Source version of the IBM Toolbox for Java
The newest version!
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: DBCellRenderer.java
//
// The source code contained herein is licensed under the IBM Public License
// Version 1.0, which has been approved by the Open Source Initiative.
// Copyright (C) 1997-2000 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.as400.vaccess;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import java.awt.Component;
import java.awt.Dimension;
/**
The DBCellRenderer class renders a value by using a string
representation of the value.
Null values are represented using a dash.
**/
class DBCellRenderer
extends DefaultTableCellRenderer
{
private static final String copyright = "Copyright (C) 1997-2000 International Business Machines Corporation and others.";
/**
Constructs a DBCellRenderer object.
**/
public DBCellRenderer ()
{
this (SwingConstants.LEFT);
}
/**
Constructs a DBCellRenderer object.
@param horizontalAlignment One of the following SwingConstants: LEFT, RIGHT, or CENTER.
**/
public DBCellRenderer (int horizontalAlignment)
{
super ();
setHorizontalAlignment (horizontalAlignment);
setBorder (new EmptyBorder (0,5,0,5));
}
/**
Converts a byte array to a string of hex digits.
@param data The data to convert to hex characters.
@return A string containing the hexidecimal representation
of data.
**/
String getHexDigits(byte[] data)
{
StringBuffer result = new StringBuffer();
for (int i = 0; i < data.length; i++)
{
int leftDigitValue = (data[i] >>> 4) & 0xf;
int rightDigitValue = data[i] & 0xf;
char rightDigit = rightDigitValue < 10 ?
(char) (48 + rightDigitValue) :
(char) (rightDigitValue - 10 + 65);
char leftDigit = leftDigitValue < 10 ?
(char) (48 + leftDigitValue) :
(char) (leftDigitValue - 10 + 65);
result.append(leftDigit);
result.append(rightDigit);
}
return result.toString();
}
/**
Renders the value for a table.
@param table The table.
@param value The value.
@param selected true if the item is selected; false otherwise.
@param hasFocus true if the item has focus; false otherwise.
@param rowIndex The row index.
@param columnIndex The column index.
@return The rendered component.
**/
public Component getTableCellRendererComponent (JTable table,
Object value,
boolean selected,
boolean hasFocus,
int rowIndex,
int columnIndex)
{
// Note that subclasses count on this method calling getText().
String v = getText(value);
setText (v);
return super.getTableCellRendererComponent(
table, v, selected, hasFocus, rowIndex, columnIndex);
}
/**
Returns the text representation for this object.
@param value The object for which to get the text representation for.
@return The text representation of the object.
**/
public String getText(Object value)
{
if (value == null)
{
return "-";
}
else if (value instanceof byte[])
{
return getHexDigits((byte[])value);
}
return value.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy