home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / table / JTableHeader.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  6.9 KB  |  292 lines

  1. package javax.swing.table;
  2.  
  3. import java.awt.AWTEvent;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Point;
  7. import java.awt.Rectangle;
  8. import java.awt.event.InputEvent;
  9. import java.awt.event.MouseEvent;
  10. import java.io.IOException;
  11. import java.io.ObjectOutputStream;
  12. import javax.accessibility.Accessible;
  13. import javax.accessibility.AccessibleContext;
  14. import javax.swing.JComponent;
  15. import javax.swing.JLabel;
  16. import javax.swing.JTable;
  17. import javax.swing.ToolTipManager;
  18. import javax.swing.UIManager;
  19. import javax.swing.event.ChangeEvent;
  20. import javax.swing.event.ListSelectionEvent;
  21. import javax.swing.event.TableColumnModelEvent;
  22. import javax.swing.event.TableColumnModelListener;
  23. import javax.swing.plaf.TableHeaderUI;
  24.  
  25. public class JTableHeader extends JComponent implements TableColumnModelListener, Accessible {
  26.    private static final String uiClassID = "TableHeaderUI";
  27.    protected JTable table;
  28.    protected TableColumnModel columnModel;
  29.    protected boolean reorderingAllowed;
  30.    protected boolean resizingAllowed;
  31.    protected boolean updateTableInRealTime;
  32.    protected transient TableColumn resizingColumn;
  33.    protected transient TableColumn draggedColumn;
  34.    protected transient int draggedDistance;
  35.    private TableCellRenderer defaultRenderer;
  36.  
  37.    public JTableHeader() {
  38.       this((TableColumnModel)null);
  39.    }
  40.  
  41.    public JTableHeader(TableColumnModel var1) {
  42.       if (var1 == null) {
  43.          var1 = this.createDefaultColumnModel();
  44.       }
  45.  
  46.       this.setColumnModel(var1);
  47.       this.initializeLocalVars();
  48.       this.updateUI();
  49.    }
  50.  
  51.    public void setTable(JTable var1) {
  52.       JTable var2 = this.table;
  53.       this.table = var1;
  54.       ((JComponent)this).firePropertyChange("table", var2, var1);
  55.    }
  56.  
  57.    public JTable getTable() {
  58.       return this.table;
  59.    }
  60.  
  61.    public void setReorderingAllowed(boolean var1) {
  62.       boolean var2 = this.reorderingAllowed;
  63.       this.reorderingAllowed = var1;
  64.       ((JComponent)this).firePropertyChange("reorderingAllowed", var2, var1);
  65.    }
  66.  
  67.    public boolean getReorderingAllowed() {
  68.       return this.reorderingAllowed;
  69.    }
  70.  
  71.    public void setResizingAllowed(boolean var1) {
  72.       boolean var2 = this.resizingAllowed;
  73.       this.resizingAllowed = var1;
  74.       ((JComponent)this).firePropertyChange("resizingAllowed", var2, var1);
  75.    }
  76.  
  77.    public boolean getResizingAllowed() {
  78.       return this.resizingAllowed;
  79.    }
  80.  
  81.    public TableColumn getDraggedColumn() {
  82.       return this.draggedColumn;
  83.    }
  84.  
  85.    public int getDraggedDistance() {
  86.       return this.draggedDistance;
  87.    }
  88.  
  89.    public TableColumn getResizingColumn() {
  90.       return this.resizingColumn;
  91.    }
  92.  
  93.    public void setUpdateTableInRealTime(boolean var1) {
  94.       this.updateTableInRealTime = var1;
  95.    }
  96.  
  97.    public boolean getUpdateTableInRealTime() {
  98.       return this.updateTableInRealTime;
  99.    }
  100.  
  101.    public void setDefaultRenderer(TableCellRenderer var1) {
  102.       this.defaultRenderer = var1;
  103.    }
  104.  
  105.    public TableCellRenderer getDefaultRenderer() {
  106.       return this.defaultRenderer;
  107.    }
  108.  
  109.    public int columnAtPoint(Point var1) {
  110.       return this.getColumnModel().getColumnIndexAtX(var1.x);
  111.    }
  112.  
  113.    public Rectangle getHeaderRect(int var1) {
  114.       Rectangle var2 = new Rectangle();
  115.       TableColumnModel var3 = this.getColumnModel();
  116.       var2.height = ((JComponent)this).getHeight();
  117.       if (var1 >= 0) {
  118.          if (var1 >= var3.getColumnCount()) {
  119.             var2.x = ((JComponent)this).getWidth();
  120.          } else {
  121.             for(int var4 = 0; var4 < var1; ++var4) {
  122.                var2.x += var3.getColumn(var4).getWidth();
  123.             }
  124.  
  125.             var2.width = var3.getColumn(var1).getWidth();
  126.          }
  127.       }
  128.  
  129.       return var2;
  130.    }
  131.  
  132.    public String getToolTipText(MouseEvent var1) {
  133.       String var2 = null;
  134.       Point var3 = var1.getPoint();
  135.       int var4;
  136.       if ((var4 = this.columnModel.getColumnIndexAtX(var3.x)) != -1) {
  137.          TableColumn var5 = this.columnModel.getColumn(var4);
  138.          TableCellRenderer var6 = var5.getHeaderRenderer();
  139.          if (var6 == null) {
  140.             var6 = this.defaultRenderer;
  141.          }
  142.  
  143.          Component var7 = var6.getTableCellRendererComponent(this.getTable(), var5.getHeaderValue(), false, false, -1, var4);
  144.          if (var7 instanceof JComponent) {
  145.             Rectangle var9 = this.getHeaderRect(var4);
  146.             var3.translate(-var9.x, -var9.y);
  147.             MouseEvent var8 = new MouseEvent(var7, ((AWTEvent)var1).getID(), ((InputEvent)var1).getWhen(), ((InputEvent)var1).getModifiers(), var3.x, var3.y, var1.getClickCount(), var1.isPopupTrigger());
  148.             var2 = ((JComponent)var7).getToolTipText(var8);
  149.          }
  150.       }
  151.  
  152.       if (var2 == null) {
  153.          var2 = ((JComponent)this).getToolTipText();
  154.       }
  155.  
  156.       return var2;
  157.    }
  158.  
  159.    public TableHeaderUI getUI() {
  160.       return (TableHeaderUI)super.ui;
  161.    }
  162.  
  163.    public void setUI(TableHeaderUI var1) {
  164.       if (super.ui != var1) {
  165.          super.setUI(var1);
  166.          ((Component)this).repaint();
  167.       }
  168.  
  169.    }
  170.  
  171.    public void updateUI() {
  172.       this.setUI((TableHeaderUI)UIManager.getUI(this));
  173.       this.resizeAndRepaint();
  174.       ((Container)this).invalidate();
  175.    }
  176.  
  177.    public String getUIClassID() {
  178.       return "TableHeaderUI";
  179.    }
  180.  
  181.    public void setColumnModel(TableColumnModel var1) {
  182.       if (var1 == null) {
  183.          throw new IllegalArgumentException("Cannot set a null ColumnModel");
  184.       } else {
  185.          TableColumnModel var2 = this.columnModel;
  186.          if (var1 != var2) {
  187.             if (var2 != null) {
  188.                var2.removeColumnModelListener(this);
  189.             }
  190.  
  191.             this.columnModel = var1;
  192.             var1.addColumnModelListener(this);
  193.             ((JComponent)this).firePropertyChange("columnModel", var2, var1);
  194.             this.resizeAndRepaint();
  195.          }
  196.  
  197.       }
  198.    }
  199.  
  200.    public TableColumnModel getColumnModel() {
  201.       return this.columnModel;
  202.    }
  203.  
  204.    public void columnAdded(TableColumnModelEvent var1) {
  205.       this.resizeAndRepaint();
  206.    }
  207.  
  208.    public void columnRemoved(TableColumnModelEvent var1) {
  209.       this.resizeAndRepaint();
  210.    }
  211.  
  212.    public void columnMoved(TableColumnModelEvent var1) {
  213.       ((Component)this).repaint();
  214.    }
  215.  
  216.    public void columnMarginChanged(ChangeEvent var1) {
  217.       this.resizeAndRepaint();
  218.    }
  219.  
  220.    public void columnSelectionChanged(ListSelectionEvent var1) {
  221.    }
  222.  
  223.    protected TableColumnModel createDefaultColumnModel() {
  224.       return new DefaultTableColumnModel();
  225.    }
  226.  
  227.    protected TableCellRenderer createDefaultRenderer() {
  228.       1 var1 = new 1(this);
  229.       ((JLabel)var1).setHorizontalAlignment(0);
  230.       return var1;
  231.    }
  232.  
  233.    protected void initializeLocalVars() {
  234.       ((JComponent)this).setOpaque(true);
  235.       this.table = null;
  236.       this.reorderingAllowed = true;
  237.       this.resizingAllowed = true;
  238.       this.draggedColumn = null;
  239.       this.draggedDistance = 0;
  240.       this.resizingColumn = null;
  241.       this.updateTableInRealTime = true;
  242.       ToolTipManager var1 = ToolTipManager.sharedInstance();
  243.       var1.registerComponent(this);
  244.       this.setDefaultRenderer(this.createDefaultRenderer());
  245.    }
  246.  
  247.    public void resizeAndRepaint() {
  248.       ((JComponent)this).revalidate();
  249.       ((Component)this).repaint();
  250.    }
  251.  
  252.    public void setDraggedColumn(TableColumn var1) {
  253.       this.draggedColumn = var1;
  254.    }
  255.  
  256.    public void setDraggedDistance(int var1) {
  257.       this.draggedDistance = var1;
  258.    }
  259.  
  260.    public void setResizingColumn(TableColumn var1) {
  261.       this.resizingColumn = var1;
  262.    }
  263.  
  264.    private void writeObject(ObjectOutputStream var1) throws IOException {
  265.       var1.defaultWriteObject();
  266.       if (super.ui != null && this.getUIClassID().equals("TableHeaderUI")) {
  267.          super.ui.installUI(this);
  268.       }
  269.  
  270.    }
  271.  
  272.    protected String paramString() {
  273.       String var1 = this.reorderingAllowed ? "true" : "false";
  274.       String var2 = this.resizingAllowed ? "true" : "false";
  275.       String var3 = this.updateTableInRealTime ? "true" : "false";
  276.       return super.paramString() + ",draggedDistance=" + this.draggedDistance + ",reorderingAllowed=" + var1 + ",resizingAllowed=" + var2 + ",updateTableInRealTime=" + var3;
  277.    }
  278.  
  279.    public AccessibleContext getAccessibleContext() {
  280.       if (super.accessibleContext == null) {
  281.          super.accessibleContext = new AccessibleJTableHeader(this);
  282.       }
  283.  
  284.       return super.accessibleContext;
  285.    }
  286.  
  287.    // $FF: synthetic method
  288.    static TableCellRenderer access$000(JTableHeader var0) {
  289.       return var0.defaultRenderer;
  290.    }
  291. }
  292.