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 / JTable$AccessibleJTable.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  10.4 KB  |  515 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Point;
  4. import java.beans.PropertyChangeEvent;
  5. import java.beans.PropertyChangeListener;
  6. import java.util.EventObject;
  7. import javax.accessibility.Accessible;
  8. import javax.accessibility.AccessibleContext;
  9. import javax.accessibility.AccessibleRole;
  10. import javax.accessibility.AccessibleSelection;
  11. import javax.accessibility.AccessibleTable;
  12. import javax.swing.event.CellEditorListener;
  13. import javax.swing.event.ChangeEvent;
  14. import javax.swing.event.ListSelectionEvent;
  15. import javax.swing.event.ListSelectionListener;
  16. import javax.swing.event.TableColumnModelEvent;
  17. import javax.swing.event.TableColumnModelListener;
  18. import javax.swing.event.TableModelEvent;
  19. import javax.swing.event.TableModelListener;
  20. import javax.swing.table.JTableHeader;
  21. import javax.swing.table.TableCellEditor;
  22. import javax.swing.table.TableCellRenderer;
  23. import javax.swing.table.TableColumn;
  24. import javax.swing.table.TableColumnModel;
  25. import javax.swing.table.TableModel;
  26.  
  27. public class JTable$AccessibleJTable extends JComponent.AccessibleJComponent implements AccessibleSelection, ListSelectionListener, TableModelListener, TableColumnModelListener, CellEditorListener, PropertyChangeListener, AccessibleTable {
  28.    int lastSelectedRow;
  29.    int lastSelectedCol;
  30.    private Accessible caption;
  31.    private Accessible summary;
  32.    private Accessible[] rowDescription;
  33.    private Accessible[] columnDescription;
  34.    // $FF: synthetic field
  35.    private final JTable this$0;
  36.  
  37.    JTable$AccessibleJTable(JTable var1) {
  38.       super(var1);
  39.       this.this$0 = var1;
  40.       ((JComponent)var1).addPropertyChangeListener(this);
  41.       var1.getSelectionModel().addListSelectionListener(this);
  42.       TableColumnModel var2 = var1.getColumnModel();
  43.       var2.addColumnModelListener(this);
  44.       var2.getSelectionModel().addListSelectionListener(this);
  45.       var1.getModel().addTableModelListener(this);
  46.       this.lastSelectedRow = var1.getSelectedRow();
  47.       this.lastSelectedCol = var1.getSelectedColumn();
  48.    }
  49.  
  50.    public void propertyChange(PropertyChangeEvent var1) {
  51.       String var2 = var1.getPropertyName();
  52.       Object var3 = var1.getOldValue();
  53.       Object var4 = var1.getNewValue();
  54.       if (var2.compareTo("model") == 0) {
  55.          if (var3 != null && var3 instanceof TableModel) {
  56.             ((TableModel)var3).removeTableModelListener(this);
  57.          }
  58.  
  59.          if (var4 != null && var4 instanceof TableModel) {
  60.             ((TableModel)var4).addTableModelListener(this);
  61.          }
  62.       } else if (var2.compareTo("selectionModel") == 0) {
  63.          Object var5 = ((EventObject)var1).getSource();
  64.          if (var5 == this.this$0) {
  65.             if (var3 != null && var3 instanceof ListSelectionModel) {
  66.                ((ListSelectionModel)var3).removeListSelectionListener(this);
  67.             }
  68.  
  69.             if (var4 != null && var4 instanceof ListSelectionModel) {
  70.                ((ListSelectionModel)var4).addListSelectionListener(this);
  71.             }
  72.          } else if (var5 == this.this$0.getColumnModel()) {
  73.             if (var3 != null && var3 instanceof ListSelectionModel) {
  74.                ((ListSelectionModel)var3).removeListSelectionListener(this);
  75.             }
  76.  
  77.             if (var4 != null && var4 instanceof ListSelectionModel) {
  78.                ((ListSelectionModel)var4).addListSelectionListener(this);
  79.             }
  80.          }
  81.       } else if (var2.compareTo("columnModel") == 0) {
  82.          if (var3 != null && var3 instanceof TableColumnModel) {
  83.             TableColumnModel var6 = (TableColumnModel)var3;
  84.             var6.removeColumnModelListener(this);
  85.             var6.getSelectionModel().removeListSelectionListener(this);
  86.          }
  87.  
  88.          if (var4 != null && var4 instanceof TableColumnModel) {
  89.             TableColumnModel var7 = (TableColumnModel)var3;
  90.             var7.addColumnModelListener(this);
  91.             var7.getSelectionModel().addListSelectionListener(this);
  92.          }
  93.       } else if (var2.compareTo("tableCellEditor") == 0) {
  94.          if (var3 != null && var3 instanceof TableCellEditor) {
  95.             ((TableCellEditor)var3).removeCellEditorListener(this);
  96.          }
  97.  
  98.          if (var4 != null && var4 instanceof TableCellEditor) {
  99.             ((TableCellEditor)var4).addCellEditorListener(this);
  100.          }
  101.       }
  102.  
  103.    }
  104.  
  105.    public void tableChanged(TableModelEvent var1) {
  106.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  107.       int var2 = var1.getColumn();
  108.       int var3 = var1.getColumn();
  109.       if (var2 == -1) {
  110.          var2 = 0;
  111.          var3 = this.this$0.getColumnCount() - 1;
  112.       }
  113.  
  114.       JTable.AccessibleJTable.AccessibleJTableModelChange var4 = new JTable.AccessibleJTable.AccessibleJTableModelChange(this, var1.getType(), var1.getFirstRow(), var1.getLastRow(), var2, var3);
  115.       ((AccessibleContext)this).firePropertyChange("accessibleTableModelChanged", (Object)null, var4);
  116.    }
  117.  
  118.    public void tableRowsInserted(TableModelEvent var1) {
  119.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  120.       int var2 = var1.getColumn();
  121.       int var3 = var1.getColumn();
  122.       if (var2 == -1) {
  123.          var2 = 0;
  124.          var3 = this.this$0.getColumnCount() - 1;
  125.       }
  126.  
  127.       JTable.AccessibleJTable.AccessibleJTableModelChange var4 = new JTable.AccessibleJTable.AccessibleJTableModelChange(this, var1.getType(), var1.getFirstRow(), var1.getLastRow(), var2, var3);
  128.       ((AccessibleContext)this).firePropertyChange("accessibleTableModelChanged", (Object)null, var4);
  129.    }
  130.  
  131.    public void tableRowsDeleted(TableModelEvent var1) {
  132.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  133.       int var2 = var1.getColumn();
  134.       int var3 = var1.getColumn();
  135.       if (var2 == -1) {
  136.          var2 = 0;
  137.          var3 = this.this$0.getColumnCount() - 1;
  138.       }
  139.  
  140.       JTable.AccessibleJTable.AccessibleJTableModelChange var4 = new JTable.AccessibleJTable.AccessibleJTableModelChange(this, var1.getType(), var1.getFirstRow(), var1.getLastRow(), var2, var3);
  141.       ((AccessibleContext)this).firePropertyChange("accessibleTableModelChanged", (Object)null, var4);
  142.    }
  143.  
  144.    public void columnAdded(TableColumnModelEvent var1) {
  145.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  146.       byte var2 = 1;
  147.       JTable.AccessibleJTable.AccessibleJTableModelChange var3 = new JTable.AccessibleJTable.AccessibleJTableModelChange(this, var2, 0, 0, var1.getFromIndex(), var1.getToIndex());
  148.       ((AccessibleContext)this).firePropertyChange("accessibleTableModelChanged", (Object)null, var3);
  149.    }
  150.  
  151.    public void columnRemoved(TableColumnModelEvent var1) {
  152.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  153.       byte var2 = -1;
  154.       JTable.AccessibleJTable.AccessibleJTableModelChange var3 = new JTable.AccessibleJTable.AccessibleJTableModelChange(this, var2, 0, 0, var1.getFromIndex(), var1.getToIndex());
  155.       ((AccessibleContext)this).firePropertyChange("accessibleTableModelChanged", (Object)null, var3);
  156.    }
  157.  
  158.    public void columnMoved(TableColumnModelEvent var1) {
  159.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  160.       byte var2 = -1;
  161.       JTable.AccessibleJTable.AccessibleJTableModelChange var3 = new JTable.AccessibleJTable.AccessibleJTableModelChange(this, var2, 0, 0, var1.getFromIndex(), var1.getFromIndex());
  162.       ((AccessibleContext)this).firePropertyChange("accessibleTableModelChanged", (Object)null, var3);
  163.       byte var4 = 1;
  164.       JTable.AccessibleJTable.AccessibleJTableModelChange var5 = new JTable.AccessibleJTable.AccessibleJTableModelChange(this, var4, 0, 0, var1.getToIndex(), var1.getToIndex());
  165.       ((AccessibleContext)this).firePropertyChange("accessibleTableModelChanged", (Object)null, var5);
  166.    }
  167.  
  168.    public void columnMarginChanged(ChangeEvent var1) {
  169.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  170.    }
  171.  
  172.    public void columnSelectionChanged(ListSelectionEvent var1) {
  173.    }
  174.  
  175.    public void editingStopped(ChangeEvent var1) {
  176.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  177.    }
  178.  
  179.    public void editingCanceled(ChangeEvent var1) {
  180.    }
  181.  
  182.    public void valueChanged(ListSelectionEvent var1) {
  183.       ((AccessibleContext)this).firePropertyChange("AccessibleSelection", new Boolean(false), new Boolean(true));
  184.       int var2 = this.this$0.getSelectedRow();
  185.       int var3 = this.this$0.getSelectedColumn();
  186.       if (var2 != this.lastSelectedRow || var3 != this.lastSelectedCol) {
  187.          Accessible var4 = this.getAccessibleAt(this.lastSelectedRow, this.lastSelectedCol);
  188.          Accessible var5 = this.getAccessibleAt(var2, var3);
  189.          ((AccessibleContext)this).firePropertyChange("AccessibleActiveDescendant", var4, var5);
  190.          this.lastSelectedRow = var2;
  191.          this.lastSelectedCol = var3;
  192.       }
  193.  
  194.    }
  195.  
  196.    public AccessibleSelection getAccessibleSelection() {
  197.       return this;
  198.    }
  199.  
  200.    public AccessibleRole getAccessibleRole() {
  201.       return AccessibleRole.TABLE;
  202.    }
  203.  
  204.    public Accessible getAccessibleAt(Point var1) {
  205.       int var2 = this.this$0.columnAtPoint(var1);
  206.       int var3 = this.this$0.rowAtPoint(var1);
  207.       if (var2 != -1 && var3 != -1) {
  208.          TableColumn var4 = this.this$0.getColumnModel().getColumn(var2);
  209.          TableCellRenderer var5 = var4.getCellRenderer();
  210.          if (var5 == null) {
  211.             Class var6 = this.this$0.getColumnClass(var2);
  212.             var5 = this.this$0.getDefaultRenderer(var6);
  213.          }
  214.  
  215.          var5.getTableCellRendererComponent(this.this$0, (Object)null, false, false, var3, var2);
  216.          return new JTable.AccessibleJTable.AccessibleJTableCell(this, this.this$0, var3, var2, this.getAccessibleIndexAt(var3, var2));
  217.       } else {
  218.          return null;
  219.       }
  220.    }
  221.  
  222.    public int getAccessibleChildrenCount() {
  223.       return this.this$0.getColumnCount() * this.this$0.getRowCount();
  224.    }
  225.  
  226.    public Accessible getAccessibleChild(int var1) {
  227.       if (var1 >= 0 && var1 < this.getAccessibleChildrenCount()) {
  228.          int var2 = this.getAccessibleColumnAtIndex(var1);
  229.          int var3 = this.getAccessibleRowAtIndex(var1);
  230.          TableColumn var4 = this.this$0.getColumnModel().getColumn(var2);
  231.          TableCellRenderer var5 = var4.getCellRenderer();
  232.          if (var5 == null) {
  233.             Class var6 = this.this$0.getColumnClass(var2);
  234.             var5 = this.this$0.getDefaultRenderer(var6);
  235.          }
  236.  
  237.          var5.getTableCellRendererComponent(this.this$0, (Object)null, false, false, var3, var2);
  238.          return new JTable.AccessibleJTable.AccessibleJTableCell(this, this.this$0, var3, var2, this.getAccessibleIndexAt(var3, var2));
  239.       } else {
  240.          return null;
  241.       }
  242.    }
  243.  
  244.    public int getAccessibleSelectionCount() {
  245.       int var1 = this.this$0.getSelectedRowCount();
  246.       int var2 = this.this$0.getSelectedColumnCount();
  247.       if (this.this$0.cellSelectionEnabled) {
  248.          return var1 * var2;
  249.       } else if (this.this$0.getRowSelectionAllowed() && this.this$0.getColumnSelectionAllowed()) {
  250.          return var1 * this.this$0.getColumnCount() + var2 * this.this$0.getRowCount() - var1 * var2;
  251.       } else if (this.this$0.getRowSelectionAllowed()) {
  252.          return var1 * this.this$0.getColumnCount();
  253.       } else {
  254.          return this.this$0.getColumnSelectionAllowed() ? var2 * this.this$0.getRowCount() : 0;
  255.       }
  256.    }
  257.  
  258.    public Accessible getAccessibleSelection(int var1) {
  259.       if (var1 >= 0 && var1 <= this.getAccessibleSelectionCount()) {
  260.          int var2 = this.this$0.getSelectedRowCount();
  261.          int var3 = this.this$0.getSelectedColumnCount();
  262.          int[] var4 = this.this$0.getSelectedRows();
  263.          int[] var5 = this.this$0.getSelectedColumns();
  264.          int var6 = this.this$0.getColumnCount();
  265.          int var7 = this.this$0.getRowCount();
  266.          if (this.this$0.cellSelectionEnabled) {
  267.             int var20 = var4[var1 / var3];
  268.             int var25 = var5[var1 % var3];
  269.             return this.getAccessibleChild(var20 * var6 + var25);
  270.          } else {
  271.             if (this.this$0.getRowSelectionAllowed() && this.this$0.getColumnSelectionAllowed()) {
  272.                int var10 = var1;
  273.                int var13 = var4[0] == 0 ? 0 : 1;
  274.                int var14 = 0;
  275.                int var15 = -1;
  276.  
  277.                while(var14 < var4.length) {
  278.                   switch (var13) {
  279.                      case 0:
  280.                         if (var10 < var6) {
  281.                            int var23 = var10 % var6;
  282.                            int var18 = var4[var14];
  283.                            return this.getAccessibleChild(var18 * var6 + var23);
  284.                         }
  285.  
  286.                         var10 -= var6;
  287.                         if (var14 + 1 == var4.length || var4[var14] != var4[var14 + 1] - 1) {
  288.                            var13 = 1;
  289.                            var15 = var4[var14];
  290.                         }
  291.  
  292.                         ++var14;
  293.                         break;
  294.                      case 1:
  295.                         if (var10 < var3 * (var4[var14] - (var15 == -1 ? 0 : var15 + 1))) {
  296.                            int var22 = var5[var10 % var3];
  297.                            int var17 = (var14 > 0 ? var4[var14 - 1] + 1 : 0) + var10 / var3;
  298.                            return this.getAccessibleChild(var17 * var6 + var22);
  299.                         }
  300.  
  301.                         var10 -= var3 * (var4[var14] - (var15 == -1 ? 0 : var15 + 1));
  302.                         var13 = 0;
  303.                   }
  304.                }
  305.  
  306.                if (var10 < var3 * (var7 - (var15 == -1 ? 0 : var15 + 1))) {
  307.                   int var24 = var5[var10 % var3];
  308.                   int var19 = var4[var14 - 1] + var10 / var3 + 1;
  309.                   return this.getAccessibleChild(var19 * var6 + var24);
  310.                }
  311.             } else {
  312.                if (this.this$0.getRowSelectionAllowed()) {
  313.                   int var21 = var1 % var6;
  314.                   int var16 = var4[var1 / var6];
  315.                   return this.getAccessibleChild(var16 * var6 + var21);
  316.                }
  317.  
  318.                if (this.this$0.getColumnSelectionAllowed()) {
  319.                   int var9 = var5[var1 % var3];
  320.                   int var8 = var1 / var3;
  321.                   return this.getAccessibleChild(var8 * var6 + var9);
  322.                }
  323.             }
  324.  
  325.             return (Accessible)null;
  326.          }
  327.       } else {
  328.          return (Accessible)null;
  329.       }
  330.    }
  331.  
  332.    public boolean isAccessibleChildSelected(int var1) {
  333.       int var2 = this.getAccessibleColumnAtIndex(var1);
  334.       int var3 = this.getAccessibleRowAtIndex(var1);
  335.       return this.this$0.isCellSelected(var3, var2);
  336.    }
  337.  
  338.    public void addAccessibleSelection(int var1) {
  339.       if (this.this$0.cellSelectionEnabled) {
  340.          int var2 = this.getAccessibleColumnAtIndex(var1);
  341.          int var3 = this.getAccessibleRowAtIndex(var1);
  342.          this.this$0.addRowSelectionInterval(var3, var3);
  343.          this.this$0.addColumnSelectionInterval(var2, var2);
  344.       }
  345.  
  346.    }
  347.  
  348.    public void removeAccessibleSelection(int var1) {
  349.       if (this.this$0.cellSelectionEnabled) {
  350.          int var2 = this.getAccessibleColumnAtIndex(var1);
  351.          int var3 = this.getAccessibleRowAtIndex(var1);
  352.          this.this$0.removeRowSelectionInterval(var3, var3);
  353.          this.this$0.removeColumnSelectionInterval(var2, var2);
  354.       }
  355.  
  356.    }
  357.  
  358.    public void clearAccessibleSelection() {
  359.       this.this$0.clearSelection();
  360.    }
  361.  
  362.    public void selectAllAccessibleSelection() {
  363.       if (this.this$0.cellSelectionEnabled) {
  364.          this.this$0.selectAll();
  365.       }
  366.  
  367.    }
  368.  
  369.    public AccessibleTable getAccessibleTable() {
  370.       return this;
  371.    }
  372.  
  373.    public Accessible getAccessibleCaption() {
  374.       return this.caption;
  375.    }
  376.  
  377.    public void setAccessibleCaption(Accessible var1) {
  378.       Accessible var2 = this.caption;
  379.       this.caption = var1;
  380.       ((AccessibleContext)this).firePropertyChange("accessibleTableCaptionChanged", var2, this.caption);
  381.    }
  382.  
  383.    public Accessible getAccessibleSummary() {
  384.       return this.summary;
  385.    }
  386.  
  387.    public void setAccessibleSummary(Accessible var1) {
  388.       Accessible var2 = this.summary;
  389.       this.summary = var1;
  390.       ((AccessibleContext)this).firePropertyChange("accessibleTableSummaryChanged", var2, this.summary);
  391.    }
  392.  
  393.    public int getAccessibleRowCount() {
  394.       return this.this$0.getRowCount();
  395.    }
  396.  
  397.    public int getAccessibleColumnCount() {
  398.       return this.this$0.getColumnCount();
  399.    }
  400.  
  401.    public Accessible getAccessibleAt(int var1, int var2) {
  402.       return this.getAccessibleChild(var1 * this.getAccessibleColumnCount() + var2);
  403.    }
  404.  
  405.    public int getAccessibleRowExtentAt(int var1, int var2) {
  406.       return 1;
  407.    }
  408.  
  409.    public int getAccessibleColumnExtentAt(int var1, int var2) {
  410.       return 1;
  411.    }
  412.  
  413.    public AccessibleTable getAccessibleRowHeader() {
  414.       return null;
  415.    }
  416.  
  417.    public void setAccessibleRowHeader(AccessibleTable var1) {
  418.    }
  419.  
  420.    public AccessibleTable getAccessibleColumnHeader() {
  421.       JTableHeader var1 = this.this$0.getTableHeader();
  422.       AccessibleContext var2 = var1.getAccessibleContext();
  423.       if (var2 != null) {
  424.          JTable.7 var3 = new JTable.7(this, var2);
  425.          JTable var4 = new JTable(var3);
  426.          AccessibleContext var5 = var4.getAccessibleContext();
  427.          return var5 != null ? var5.getAccessibleTable() : null;
  428.       } else {
  429.          return null;
  430.       }
  431.    }
  432.  
  433.    public void setAccessibleColumnHeader(AccessibleTable var1) {
  434.    }
  435.  
  436.    public Accessible getAccessibleRowDescription(int var1) {
  437.       if (var1 >= 0 && var1 < this.getAccessibleRowCount()) {
  438.          return this.rowDescription == null ? null : this.rowDescription[var1];
  439.       } else {
  440.          throw new IllegalArgumentException((new Integer(var1)).toString());
  441.       }
  442.    }
  443.  
  444.    public void setAccessibleRowDescription(int var1, Accessible var2) {
  445.       if (var1 >= 0 && var1 < this.getAccessibleRowCount()) {
  446.          if (this.rowDescription == null) {
  447.             int var3 = this.getAccessibleRowCount();
  448.             this.rowDescription = new Accessible[var3];
  449.          }
  450.  
  451.          this.rowDescription[var1] = var2;
  452.       } else {
  453.          throw new IllegalArgumentException((new Integer(var1)).toString());
  454.       }
  455.    }
  456.  
  457.    public Accessible getAccessibleColumnDescription(int var1) {
  458.       if (var1 >= 0 && var1 < this.getAccessibleColumnCount()) {
  459.          return this.columnDescription == null ? null : this.columnDescription[var1];
  460.       } else {
  461.          throw new IllegalArgumentException((new Integer(var1)).toString());
  462.       }
  463.    }
  464.  
  465.    public void setAccessibleColumnDescription(int var1, Accessible var2) {
  466.       if (var1 >= 0 && var1 < this.getAccessibleColumnCount()) {
  467.          if (this.columnDescription == null) {
  468.             int var3 = this.getAccessibleColumnCount();
  469.             this.columnDescription = new Accessible[var3];
  470.          }
  471.  
  472.          this.columnDescription[var1] = var2;
  473.       } else {
  474.          throw new IllegalArgumentException((new Integer(var1)).toString());
  475.       }
  476.    }
  477.  
  478.    public boolean isAccessibleSelected(int var1, int var2) {
  479.       return this.this$0.isCellSelected(var1, var2);
  480.    }
  481.  
  482.    public boolean isAccessibleRowSelected(int var1) {
  483.       return this.this$0.isRowSelected(var1);
  484.    }
  485.  
  486.    public boolean isAccessibleColumnSelected(int var1) {
  487.       return this.this$0.isColumnSelected(var1);
  488.    }
  489.  
  490.    public int[] getSelectedAccessibleRows() {
  491.       return this.this$0.getSelectedRows();
  492.    }
  493.  
  494.    public int[] getSelectedAccessibleColumns() {
  495.       return this.this$0.getSelectedColumns();
  496.    }
  497.  
  498.    public int getAccessibleRowAtIndex(int var1) {
  499.       return var1 / this.getAccessibleColumnCount();
  500.    }
  501.  
  502.    public int getAccessibleColumnAtIndex(int var1) {
  503.       return var1 % this.getAccessibleColumnCount();
  504.    }
  505.  
  506.    public int getAccessibleIndexAt(int var1, int var2) {
  507.       return var1 * this.getAccessibleColumnCount() + var2;
  508.    }
  509.  
  510.    // $FF: synthetic method
  511.    static JTable access$000(JTable$AccessibleJTable var0) {
  512.       return var0.this$0;
  513.    }
  514. }
  515.