diff -r 000000000000 -r 0359f2c3b3ba java/JFTable/src/cz/frantovo/gui/tabulky/JTable.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/JFTable/src/cz/frantovo/gui/tabulky/JTable.java Sat Feb 28 16:51:54 2009 +0100 @@ -0,0 +1,115 @@ +package cz.frantovo.gui.tabulky; + + +import java.awt.Point; +import java.awt.event.MouseEvent; + +import javax.swing.ImageIcon; +import javax.swing.table.TableModel; + +/** + * Tahle t��da umo��uje jednoduch�m zp�sobem p�idat va�im tabulk�m funkci + * �azen�. Sta�� ve va�� t��d� nahradit:
+ * "import javax.swing.JTable;"
+ * t�mto importem: " import cz.frantovo.gui.tabulky.JTable;
+ *
+ * Pomoc� kl�vesy ctrl jde �adit podle v�ce sloupc�"
+ *
+ * Tak� p�id�v� funkci zobrazov�n� tooltipu (zobrazuje obsah bu�ky) + * + * Proto�e t��d�c� model a skute�n� model obsahuj� ��dky v jin�m po�ad�,
+ * je pot�eba p�epo��tat index z�skan� metodou getSelectedRow() na index ve skute�n�m modelu
+ *
+ * k tomu slou�� tento postup:
+ * int r = jTable1.getSelectedRow();
+ * int rr = ((TableSorterModel)tabulka.getModel()).modelIndex(r);
+ *
+ * rr je potom index ��dku ve skute�n�m modelu. * + * + * @author František Kučera + */ +public class JTable extends javax.swing.JTable { + + private static final long serialVersionUID = -5133441062459764995L; + + private TableSorterModel tableSorterModel; + + private TableModel realTableModel; + + private boolean showTooltips = false; + + public boolean isShowTooltips () + { + return showTooltips; + } + + /** Nastavuje, zda se maj� zobrazovat tooltipy zobrazuj�c� obsah bu�ky */ + public void setShowTooltips (boolean showTooltips) + { + this.showTooltips = showTooltips; + } + + /** + * Nastav� TableModel a zabal� ho do TableSorterModelu, tabulka t�m + * z�sk� schopnost �azen� ��dk� + */ + @Override + public void setModel (TableModel dataModel) + { + realTableModel = dataModel; + tableSorterModel = new TableSorterModel(dataModel); + + tableSorterModel.setTableHeader(getTableHeader()); + + super.setModel(tableSorterModel); + } + + /** + * @return TableModel, kter� obsahuje data. Nen� tedy zabalen do + * TableSorterModelu + */ + public TableModel getRealTableModel () + { + return realTableModel; + } + + /** + * @return TableSorterModel, kter� obaluje skute�n� TableModel, kter� + * obsahuje data. TableSorterModel slou�� pouze k �azen� polo�ek + */ + @Override + public TableModel getModel () + { + return super.getModel(); + } + + /** + * Pokud je nastaveno showTooltips, zobrazuje v tooltipu obsah bu�ky pod + * my�� (hod� se, pokud je obsah bu�ky p��li� dlouh�). Pokud bu�ka + * obsahuje ImageIcon, pak tooltip zobrazuje ImageIcon.getDescription() + */ + @Override + public String getToolTipText (MouseEvent event) + { + if (showTooltips) { + Point p = event.getPoint(); + int col = columnAtPoint(p); + int rw = rowAtPoint(p); + if (col >= 0 && rw >= 0) { + Object o = getValueAt(rw, + col); + if (o != null) { + if (o instanceof ImageIcon) { + return ((ImageIcon) o).getDescription(); + } else { + return o.toString(); + } + } + } + return super.getToolTipText(); + } else { + return super.getToolTipText(); + } + } + +}