001 /*
002 * Created on Apr 14, 2008
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
005 * the License. You may obtain a copy of the License at
006 *
007 * http://www.apache.org/licenses/LICENSE-2.0
008 *
009 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
010 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
011 * specific language governing permissions and limitations under the License.
012 *
013 * Copyright @2008-2010 the original author or authors.
014 */
015 package org.fest.swing.cell;
016
017 import java.awt.Color;
018 import java.awt.Font;
019
020 import javax.swing.JTable;
021
022 import org.fest.swing.annotation.RunsInCurrentThread;
023
024 /**
025 * Understands reading the internal value of a cell in a <code>{@link JTable}</code> as expected in a test.
026 * <p>
027 * <b>Note:</b> methods in this interface are <b>not</b> guaranteed to be executed in the event dispatch thread (EDT.)
028 * Clients are responsible for invoking them in the EDT.
029 * </p>
030 *
031 * @author Alex Ruiz
032 */
033 @RunsInCurrentThread
034 public interface JTableCellReader {
035
036 /**
037 * Returns the internal value of a cell in a <code>{@link JTable}</code> as expected in a test.
038 * <p>
039 * <b>Note:</b> Implementations of this method <b>may not</b> guaranteed to be executed in the event dispatch thread
040 * (EDT.) Clients are responsible for invoking this method in the EDT.
041 * </p>
042 * @param table the given <code>JTable</code>.
043 * @param row the row index of the cell.
044 * @param column the column index of the cell.
045 * @return the internal value of a cell in a <code>JTable</code> as expected in a test.
046 */
047 String valueAt(JTable table, int row, int column);
048
049 /**
050 * Returns the font of the cell renderer for the given table cell.
051 * <p>
052 * <b>Note:</b> Implementations of this method <b>may not</b> guaranteed to be executed in the event dispatch thread
053 * (EDT.) Clients are responsible for invoking this method in the EDT.
054 * </p>
055 * @param table the given <code>JTable</code>.
056 * @param row the row index of the cell.
057 * @param column the column index of the cell.
058 * @return the font of the cell renderer for the given table cell.
059 */
060 Font fontAt(JTable table, int row, int column);
061
062 /**
063 * Returns the background color of the cell renderer for the given table cell.
064 * <p>
065 * <b>Note:</b> Implementations of this method <b>may not</b> guaranteed to be executed in the event dispatch thread
066 * (EDT.) Clients are responsible for invoking this method in the EDT.
067 * </p>
068 * @param table the given <code>JTable</code>.
069 * @param row the row index of the cell.
070 * @param column the column index of the cell.
071 * @return the background color of the cell renderer for the given table cell.
072 */
073 Color backgroundAt(JTable table, int row, int column);
074
075 /**
076 * Returns the foreground color of the cell renderer for the given table cell.
077 * <p>
078 * <b>Note:</b> Implementations of this method <b>may not</b> guaranteed to be executed in the event dispatch thread
079 * (EDT.) Clients are responsible for invoking this method in the EDT.
080 * </p>
081 * @param table the given <code>JTable</code>.
082 * @param row the row index of the cell.
083 * @param column the column index of the cell.
084 * @return the foreground color of the cell renderer for the given table cell.
085 */
086 Color foregroundAt(JTable table, int row, int column);
087 }