1.1 --- a/java/JFTable/src/cz/frantovo/gui/tabulky/JTable.java Sat Feb 28 17:10:53 2009 +0100
1.2 +++ b/java/JFTable/src/cz/frantovo/gui/tabulky/JTable.java Sat Feb 28 17:11:20 2009 +0100
1.3 @@ -1,6 +1,5 @@
1.4 package cz.frantovo.gui.tabulky;
1.5
1.6 -
1.7 import java.awt.Point;
1.8 import java.awt.event.MouseEvent;
1.9
1.10 @@ -30,86 +29,76 @@
1.11 */
1.12 public class JTable extends javax.swing.JTable {
1.13
1.14 - private static final long serialVersionUID = -5133441062459764995L;
1.15 + private static final long serialVersionUID = -5133441062459764995L;
1.16 + private TableSorterModel tableSorterModel;
1.17 + private TableModel realTableModel;
1.18 + private boolean showTooltips = false;
1.19
1.20 - private TableSorterModel tableSorterModel;
1.21 + public boolean isShowTooltips() {
1.22 + return showTooltips;
1.23 + }
1.24
1.25 - private TableModel realTableModel;
1.26 + /** Nastavuje, zda se mají zobrazovat tooltipy zobrazující obsah buňky */
1.27 + public void setShowTooltips(boolean showTooltips) {
1.28 + this.showTooltips = showTooltips;
1.29 + }
1.30
1.31 - private boolean showTooltips = false;
1.32 + /**
1.33 + * Nastaví TableModel a zabalí ho do TableSorterModelu, tabulka tím
1.34 + * získá schopnost řazení řádků
1.35 + */
1.36 + @Override
1.37 + public void setModel(TableModel dataModel) {
1.38 + realTableModel = dataModel;
1.39 + tableSorterModel = new TableSorterModel(dataModel);
1.40
1.41 - public boolean isShowTooltips ()
1.42 - {
1.43 - return showTooltips;
1.44 + tableSorterModel.setTableHeader(getTableHeader());
1.45 +
1.46 + super.setModel(tableSorterModel);
1.47 + }
1.48 +
1.49 + /**
1.50 + * @return TableModel, která obsahuje data. Není tedy zabalen do
1.51 + * TableSorterModelu
1.52 + */
1.53 + public TableModel getRealTableModel() {
1.54 + return realTableModel;
1.55 + }
1.56 +
1.57 + /**
1.58 + * @return TableSorterModel, který obaluje skutečný TableModel, který
1.59 + * obsahuje data. TableSorterModel slouží pouze k řazení položek
1.60 + */
1.61 + @Override
1.62 + public TableModel getModel() {
1.63 + return super.getModel();
1.64 + }
1.65 +
1.66 + /**
1.67 + * Pokud je nastaveno showTooltips, zobrazuje v tooltipu obsah buňky pod
1.68 + * myší (hodí se, pokud je obsah buňky příliš dlouhý). Pokud buňka
1.69 + * obsahuje ImageIcon, pak tooltip zobrazuje ImageIcon.getDescription()
1.70 + */
1.71 + @Override
1.72 + public String getToolTipText(MouseEvent event) {
1.73 + if (showTooltips) {
1.74 + Point p = event.getPoint();
1.75 + int col = columnAtPoint(p);
1.76 + int rw = rowAtPoint(p);
1.77 + if (col >= 0 && rw >= 0) {
1.78 + Object o = getValueAt(rw,
1.79 + col);
1.80 + if (o != null) {
1.81 + if (o instanceof ImageIcon) {
1.82 + return ((ImageIcon) o).getDescription();
1.83 + } else {
1.84 + return o.toString();
1.85 + }
1.86 + }
1.87 + }
1.88 + return super.getToolTipText();
1.89 + } else {
1.90 + return super.getToolTipText();
1.91 }
1.92 -
1.93 - /** Nastavuje, zda se mají zobrazovat tooltipy zobrazující obsah buňky */
1.94 - public void setShowTooltips (boolean showTooltips)
1.95 - {
1.96 - this.showTooltips = showTooltips;
1.97 - }
1.98 -
1.99 - /**
1.100 - * Nastaví TableModel a zabalí ho do TableSorterModelu, tabulka tím
1.101 - * získá schopnost řazení řádků
1.102 - */
1.103 - @Override
1.104 - public void setModel (TableModel dataModel)
1.105 - {
1.106 - realTableModel = dataModel;
1.107 - tableSorterModel = new TableSorterModel(dataModel);
1.108 -
1.109 - tableSorterModel.setTableHeader(getTableHeader());
1.110 -
1.111 - super.setModel(tableSorterModel);
1.112 - }
1.113 -
1.114 - /**
1.115 - * @return TableModel, která obsahuje data. Není tedy zabalen do
1.116 - * TableSorterModelu
1.117 - */
1.118 - public TableModel getRealTableModel ()
1.119 - {
1.120 - return realTableModel;
1.121 - }
1.122 -
1.123 - /**
1.124 - * @return TableSorterModel, který obaluje skutečný TableModel, který
1.125 - * obsahuje data. TableSorterModel slouží pouze k řazení položek
1.126 - */
1.127 - @Override
1.128 - public TableModel getModel ()
1.129 - {
1.130 - return super.getModel();
1.131 - }
1.132 -
1.133 - /**
1.134 - * Pokud je nastaveno showTooltips, zobrazuje v tooltipu obsah buňky pod
1.135 - * myší (hodí se, pokud je obsah buňky příliš dlouhý). Pokud buňka
1.136 - * obsahuje ImageIcon, pak tooltip zobrazuje ImageIcon.getDescription()
1.137 - */
1.138 - @Override
1.139 - public String getToolTipText (MouseEvent event)
1.140 - {
1.141 - if (showTooltips) {
1.142 - Point p = event.getPoint();
1.143 - int col = columnAtPoint(p);
1.144 - int rw = rowAtPoint(p);
1.145 - if (col >= 0 && rw >= 0) {
1.146 - Object o = getValueAt(rw,
1.147 - col);
1.148 - if (o != null) {
1.149 - if (o instanceof ImageIcon) {
1.150 - return ((ImageIcon) o).getDescription();
1.151 - } else {
1.152 - return o.toString();
1.153 - }
1.154 - }
1.155 - }
1.156 - return super.getToolTipText();
1.157 - } else {
1.158 - return super.getToolTipText();
1.159 - }
1.160 - }
1.161 -
1.162 + }
1.163 }