java/JFTable/src/cz/frantovo/gui/tabulky/JTable.java
changeset 3 74211841e25c
parent 2 29fb34084b12
     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  }