home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing;
-
- import com.sun.java.accessibility.Accessible;
- import com.sun.java.accessibility.AccessibleContext;
- import com.sun.java.swing.border.LineBorder;
- import com.sun.java.swing.event.CellEditorListener;
- import com.sun.java.swing.event.ChangeEvent;
- import com.sun.java.swing.event.ListSelectionEvent;
- import com.sun.java.swing.event.ListSelectionListener;
- import com.sun.java.swing.event.TableColumnModelEvent;
- import com.sun.java.swing.event.TableColumnModelListener;
- import com.sun.java.swing.event.TableModelEvent;
- import com.sun.java.swing.event.TableModelListener;
- import com.sun.java.swing.plaf.TableUI;
- import com.sun.java.swing.table.DefaultTableCellRenderer;
- import com.sun.java.swing.table.DefaultTableColumnModel;
- import com.sun.java.swing.table.DefaultTableModel;
- import com.sun.java.swing.table.JTableHeader;
- import com.sun.java.swing.table.TableCellEditor;
- import com.sun.java.swing.table.TableCellRenderer;
- import com.sun.java.swing.table.TableColumn;
- import com.sun.java.swing.table.TableColumnModel;
- import com.sun.java.swing.table.TableModel;
- import java.awt.AWTEvent;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.LayoutManager;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.event.InputEvent;
- import java.awt.event.MouseEvent;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.Enumeration;
- import java.util.EventObject;
- import java.util.Hashtable;
- import java.util.Vector;
-
- public class JTable extends JComponent implements TableModelListener, Scrollable, TableColumnModelListener, ListSelectionListener, CellEditorListener, Accessible {
- public static final int AUTO_RESIZE_OFF = 0;
- public static final int AUTO_RESIZE_LAST_COLUMN = 1;
- public static final int AUTO_RESIZE_ALL_COLUMNS = 2;
- protected TableModel dataModel;
- protected TableColumnModel columnModel;
- protected ListSelectionModel selectionModel;
- protected JTableHeader tableHeader;
- protected int rowHeight;
- protected int rowMargin;
- protected Color gridColor;
- protected boolean showHorizontalLines;
- protected boolean showVerticalLines;
- protected int autoResizeMode;
- protected boolean autoCreateColumnsFromModel;
- protected Dimension preferredViewportSize;
- protected boolean rowSelectionAllowed;
- protected boolean cellSelectionEnabled;
- protected transient Component editorComp;
- protected transient TableCellEditor cellEditor;
- protected transient int editingColumn;
- protected transient int editingRow;
- protected transient Hashtable defaultRenderersByColumnClass;
- protected transient Hashtable defaultEditorsByColumnClass;
- protected Color selectionForeground;
- protected Color selectionBackground;
- // $FF: synthetic field
- static Class class$java$lang$Object;
- // $FF: synthetic field
- static Class class$java$lang$Number;
- // $FF: synthetic field
- static Class class$com$sun$java$swing$ImageIcon;
- // $FF: synthetic field
- static Class class$java$lang$Boolean;
-
- public JTable() {
- this((TableModel)null, (TableColumnModel)null, (ListSelectionModel)null);
- }
-
- public JTable(TableModel var1) {
- this(var1, (TableColumnModel)null, (ListSelectionModel)null);
- }
-
- public JTable(TableModel var1, TableColumnModel var2) {
- this(var1, var2, (ListSelectionModel)null);
- }
-
- public JTable(TableModel var1, TableColumnModel var2, ListSelectionModel var3) {
- ((Container)this).setLayout((LayoutManager)null);
- if (var1 == null) {
- var1 = this.createDefaultDataModel();
- }
-
- this.setModel(var1);
- if (var2 == null) {
- var2 = this.createDefaultColumnModel();
- }
-
- this.setColumnModel(var2);
- if (var3 == null) {
- var3 = this.createDefaultSelectionModel();
- }
-
- this.setSelectionModel(var3);
- this.initializeLocalVars();
- this.updateUI();
- }
-
- public JTable(int var1, int var2) {
- this(new DefaultTableModel(var1, var2));
- }
-
- public JTable(Vector var1, Vector var2) {
- this(new DefaultTableModel(var1, var2));
- }
-
- public JTable(Object[][] var1, Object[] var2) {
- this(new DefaultTableModel(var1, var2));
- }
-
- public static JScrollPane createScrollPaneForTable(JTable var0) {
- if (var0 == null) {
- var0 = new JTable();
- }
-
- JScrollPane var1 = new JScrollPane(var0);
- var1.setColumnHeaderView(var0.getTableHeader());
- var1.getViewport().setBackingStoreEnabled(true);
- ((JComponent)var1).setBorder(UIManager.getBorder("Table.scrollPaneBorder"));
- return var1;
- }
-
- public void setTableHeader(JTableHeader var1) {
- if (this.tableHeader != var1) {
- if (this.tableHeader != null) {
- this.tableHeader.setTable((JTable)null);
- }
-
- this.tableHeader = var1;
- if (this.tableHeader != null) {
- this.tableHeader.setTable(this);
- }
- }
-
- }
-
- public JTableHeader getTableHeader() {
- return this.tableHeader;
- }
-
- public void setRowHeight(int var1) {
- if (var1 <= 0) {
- throw new IllegalArgumentException("New row height less than 1");
- } else {
- this.rowHeight = var1;
- this.resizeAndRepaint();
- }
- }
-
- public int getRowHeight() {
- return this.rowHeight;
- }
-
- public void setIntercellSpacing(Dimension var1) {
- this.rowMargin = var1.height;
- this.getColumnModel().setColumnMargin(var1.width);
- this.resizeAndRepaint();
- }
-
- public Dimension getIntercellSpacing() {
- return new Dimension(this.getColumnModel().getColumnMargin(), this.rowMargin);
- }
-
- public void setGridColor(Color var1) {
- if (var1 == null) {
- throw new IllegalArgumentException("New color is null");
- } else {
- this.gridColor = var1;
- ((Component)this).repaint();
- }
- }
-
- public Color getGridColor() {
- return this.gridColor;
- }
-
- public void setShowGrid(boolean var1) {
- this.setShowHorizontalLines(var1);
- this.setShowVerticalLines(var1);
- ((Component)this).repaint();
- }
-
- public void setShowHorizontalLines(boolean var1) {
- this.showHorizontalLines = var1;
- ((Component)this).repaint();
- }
-
- public void setShowVerticalLines(boolean var1) {
- this.showVerticalLines = var1;
- ((Component)this).repaint();
- }
-
- public boolean getShowHorizontalLines() {
- return this.showHorizontalLines;
- }
-
- public boolean getShowVerticalLines() {
- return this.showVerticalLines;
- }
-
- public void setAutoResizeMode(int var1) {
- if (var1 == 2 || var1 == 1 || var1 == 0) {
- this.autoResizeMode = var1;
- this.resizeAndRepaint();
- this.tableHeader.resizeAndRepaint();
- }
-
- }
-
- public int getAutoResizeMode() {
- return this.autoResizeMode;
- }
-
- public void setAutoCreateColumnsFromModel(boolean var1) {
- if (this.autoCreateColumnsFromModel != var1) {
- this.autoCreateColumnsFromModel = var1;
- if (this.autoCreateColumnsFromModel) {
- this.createDefaultColumnsFromModel();
- }
- }
-
- }
-
- public boolean getAutoCreateColumnsFromModel() {
- return this.autoCreateColumnsFromModel;
- }
-
- public void createDefaultColumnsFromModel() {
- TableModel var1 = this.getModel();
- if (var1 != null) {
- TableColumnModel var2 = this.getColumnModel();
- var2.removeColumnModelListener(this);
-
- while(var2.getColumnCount() > 0) {
- var2.removeColumn(var2.getColumn(0));
- }
-
- for(int var3 = 0; var3 < var1.getColumnCount(); ++var3) {
- TableColumn var4 = new TableColumn(var3);
- this.addColumn(var4);
- }
-
- var2.addColumnModelListener(this);
- }
-
- }
-
- public void setDefaultRenderer(Class var1, TableCellRenderer var2) {
- this.defaultRenderersByColumnClass.put(var1, var2);
- }
-
- public TableCellRenderer getDefaultRenderer(Class var1) {
- if (var1 == null) {
- return null;
- } else {
- Object var2 = this.defaultRenderersByColumnClass.get(var1);
- return var2 != null ? (TableCellRenderer)var2 : this.getDefaultRenderer(var1.getSuperclass());
- }
- }
-
- public void setDefaultEditor(Class var1, TableCellEditor var2) {
- this.defaultEditorsByColumnClass.put(var1, var2);
- }
-
- public TableCellEditor getDefaultEditor(Class var1) {
- if (var1 == null) {
- return null;
- } else {
- Object var2 = this.defaultEditorsByColumnClass.get(var1);
- return var2 != null ? (TableCellEditor)var2 : this.getDefaultEditor(var1.getSuperclass());
- }
- }
-
- public void setSelectionMode(int var1) {
- this.clearSelection();
- this.getSelectionModel().setSelectionMode(var1);
- this.getColumnModel().getSelectionModel().setSelectionMode(var1);
- }
-
- public void setRowSelectionAllowed(boolean var1) {
- this.clearSelection();
- this.rowSelectionAllowed = var1;
- }
-
- public boolean getRowSelectionAllowed() {
- return this.rowSelectionAllowed;
- }
-
- public void setColumnSelectionAllowed(boolean var1) {
- this.clearSelection();
- this.columnModel.setColumnSelectionAllowed(var1);
- }
-
- public boolean getColumnSelectionAllowed() {
- return this.columnModel.getColumnSelectionAllowed();
- }
-
- public void setCellSelectionEnabled(boolean var1) {
- this.clearSelection();
- this.cellSelectionEnabled = var1;
- }
-
- public boolean getCellSelectionEnabled() {
- return this.cellSelectionEnabled;
- }
-
- public void selectAll() {
- if (this.getSelectedRowCount() > 0) {
- int var1 = this.getRowCount();
- if (var1 > 0) {
- this.setRowSelectionInterval(0, var1);
- }
- }
-
- if (this.getSelectedColumnCount() > 0) {
- int var2 = this.getColumnCount();
- if (var2 > 0) {
- this.setColumnSelectionInterval(0, var2);
- }
- }
-
- }
-
- public void clearSelection() {
- this.columnModel.getSelectionModel().clearSelection();
- this.selectionModel.clearSelection();
- }
-
- public void setRowSelectionInterval(int var1, int var2) {
- this.selectionModel.setSelectionInterval(var1, var2);
- }
-
- public void setColumnSelectionInterval(int var1, int var2) {
- this.columnModel.getSelectionModel().setSelectionInterval(var1, var2);
- }
-
- public void addRowSelectionInterval(int var1, int var2) {
- this.selectionModel.addSelectionInterval(var1, var2);
- }
-
- public void addColumnSelectionInterval(int var1, int var2) {
- this.columnModel.getSelectionModel().addSelectionInterval(var1, var2);
- }
-
- public void removeRowSelectionInterval(int var1, int var2) {
- this.selectionModel.removeSelectionInterval(var1, var2);
- }
-
- public void removeColumnSelectionInterval(int var1, int var2) {
- this.columnModel.getSelectionModel().removeSelectionInterval(var1, var2);
- }
-
- public int getSelectedRow() {
- return this.selectionModel != null ? this.selectionModel.getAnchorSelectionIndex() : -1;
- }
-
- public int getSelectedColumn() {
- return this.columnModel.getSelectionModel().getAnchorSelectionIndex();
- }
-
- public int[] getSelectedRows() {
- if (this.selectionModel != null) {
- int var1 = this.selectionModel.getMinSelectionIndex();
- int var2 = this.selectionModel.getMaxSelectionIndex();
- if (var1 != -1 && var2 != -1) {
- int[] var3 = new int[1 + (var2 - var1)];
- int var4 = 0;
-
- for(int var5 = var1; var5 <= var2; ++var5) {
- if (this.selectionModel.isSelectedIndex(var5)) {
- var3[var4++] = var5;
- }
- }
-
- int[] var6 = new int[var4];
- System.arraycopy(var3, 0, var6, 0, var4);
- return var6;
- } else {
- return new int[0];
- }
- } else {
- return new int[0];
- }
- }
-
- public int[] getSelectedColumns() {
- return this.columnModel.getSelectedColumns();
- }
-
- public int getSelectedRowCount() {
- if (this.selectionModel != null) {
- int var1 = this.selectionModel.getMinSelectionIndex();
- int var2 = this.selectionModel.getMaxSelectionIndex();
- int var3 = 0;
-
- for(int var4 = var1; var4 <= var2; ++var4) {
- if (this.selectionModel.isSelectedIndex(var4)) {
- ++var3;
- }
- }
-
- return var3;
- } else {
- return 0;
- }
- }
-
- public int getSelectedColumnCount() {
- return this.columnModel.getSelectedColumnCount();
- }
-
- public boolean isRowSelected(int var1) {
- return this.selectionModel != null ? this.selectionModel.isSelectedIndex(var1) : false;
- }
-
- public boolean isColumnSelected(int var1) {
- return this.columnModel.getSelectionModel().isSelectedIndex(var1);
- }
-
- public boolean isCellSelected(int var1, int var2) {
- if (this.cellSelectionEnabled) {
- return this.isRowSelected(var1) && this.isColumnSelected(var2);
- } else {
- return this.getRowSelectionAllowed() && this.isRowSelected(var1) || this.getColumnSelectionAllowed() && this.isColumnSelected(var2);
- }
- }
-
- public Color getSelectionForeground() {
- return this.selectionForeground;
- }
-
- public void setSelectionForeground(Color var1) {
- Color var2 = this.selectionForeground;
- this.selectionForeground = var1;
- ((JComponent)this).firePropertyChange("selectionForeground", var2, var1);
- }
-
- public Color getSelectionBackground() {
- return this.selectionBackground;
- }
-
- public void setSelectionBackground(Color var1) {
- Color var2 = this.selectionBackground;
- this.selectionBackground = var1;
- ((JComponent)this).firePropertyChange("selectionBackground", var2, var1);
- }
-
- public TableColumn getColumn(Object var1) {
- TableColumnModel var2 = this.getColumnModel();
- int var3 = var2.getColumnIndex(var1);
- return var2.getColumn(var3);
- }
-
- public int convertColumnIndexToModel(int var1) {
- return var1 < 0 ? var1 : this.getColumnModel().getColumn(var1).getModelIndex();
- }
-
- public int convertColumnIndexToView(int var1) {
- if (var1 < 0) {
- return var1;
- } else {
- TableColumnModel var2 = this.getColumnModel();
-
- for(int var3 = 0; var3 < this.getColumnCount(); ++var3) {
- if (var2.getColumn(var3).getModelIndex() == var1) {
- return var3;
- }
- }
-
- return -1;
- }
- }
-
- public int getRowCount() {
- return this.getModel().getRowCount();
- }
-
- public int getColumnCount() {
- return this.getColumnModel().getColumnCount();
- }
-
- public String getColumnName(int var1) {
- return this.getModel().getColumnName(this.convertColumnIndexToModel(var1));
- }
-
- public Class getColumnClass(int var1) {
- return this.getModel().getColumnClass(this.convertColumnIndexToModel(var1));
- }
-
- public Object getValueAt(int var1, int var2) {
- return this.getModel().getValueAt(var1, this.convertColumnIndexToModel(var2));
- }
-
- public void setValueAt(Object var1, int var2, int var3) {
- this.getModel().setValueAt(var1, var2, this.convertColumnIndexToModel(var3));
- }
-
- public boolean isCellEditable(int var1, int var2) {
- return this.getModel().isCellEditable(var1, this.convertColumnIndexToModel(var2));
- }
-
- public void addColumn(TableColumn var1) {
- int var2 = var1.getModelIndex();
- String var3 = this.getModel().getColumnName(var2);
- if (var1.getHeaderValue() == null) {
- var1.setHeaderValue(var3);
- }
-
- this.getColumnModel().addColumn(var1);
- }
-
- public void removeColumn(TableColumn var1) {
- this.getColumnModel().removeColumn(var1);
- }
-
- public void moveColumn(int var1, int var2) {
- this.getColumnModel().moveColumn(var1, var2);
- }
-
- public int columnAtPoint(Point var1) {
- return this.getColumnModel().getColumnIndexAtX(var1.x);
- }
-
- public int rowAtPoint(Point var1) {
- int var2 = var1.y;
- int var3 = this.getRowHeight();
- int var4 = this.getIntercellSpacing().height;
- int var5 = var3 + var4;
- int var6 = var2 / var5;
- if (var6 < 0) {
- return -1;
- } else {
- return var6 >= this.getRowCount() ? -1 : var6;
- }
- }
-
- public Rectangle getCellRect(int var1, int var2, boolean var3) {
- int var4 = 0;
- int var6 = this.getColumnModel().getColumnMargin();
- Enumeration var7 = this.getColumnModel().getColumns();
- Rectangle var5 = new Rectangle();
- var5.height = this.getRowHeight() + this.rowMargin;
-
- for(var5.y = var1 * var5.height; var7.hasMoreElements(); ++var4) {
- TableColumn var8 = (TableColumn)var7.nextElement();
- var5.width = var8.getWidth() + var6;
- if (var4 == var2) {
- break;
- }
-
- var5.x += var5.width;
- }
-
- if (!var3) {
- Dimension var9 = this.getIntercellSpacing();
- var5.setBounds(var5.x + var9.width / 2, var5.y + var9.height / 2, var5.width - var9.width, var5.height - var9.height);
- }
-
- return var5;
- }
-
- public void sizeColumnsToFit(boolean var1) {
- int var2 = this.getColumnModel().getColumnMargin();
- int var3 = ((JComponent)this).getWidth();
- int var4 = 0;
- int var6 = 0;
- int[] var7 = new int[this.getColumnCount()];
- int[] var8 = new int[this.getColumnCount()];
- int[] var9 = new int[this.getColumnCount()];
-
- for(Enumeration var11 = this.getColumnModel().getColumns(); var11.hasMoreElements(); ++var6) {
- TableColumn var5 = (TableColumn)var11.nextElement();
- var7[var6] = var5.getWidth();
- var8[var6] = var5.getMaxWidth();
- var9[var6] = var5.getMinWidth();
- var4 += var5.getWidth() + var2;
- }
-
- int var12 = var3 - var4;
- if (var12 < -1 || var12 > 1) {
- if (var1) {
- for(int var19 = this.getColumnCount() - 1; var19 >= 0; --var19) {
- int var10;
- if (var12 > 0) {
- var10 = var8[var19] - var7[var19];
- } else {
- var10 = var9[var19] - var7[var19];
- }
-
- if (Math.abs(var10) >= Math.abs(var12)) {
- var7[var19] += var12;
- break;
- }
-
- var7[var19] += var10;
- var12 -= var10;
- }
- } else {
- float[] var13 = new float[this.getColumnCount()];
- boolean var14 = true;
-
- for(int var20 = 0; var20 < this.getColumnCount(); ++var20) {
- var13[var20] = (float)(var7[var20] + var2) / (float)var4;
- }
-
- while(var12 != 0 && var14) {
- int var15 = var12;
- var14 = false;
-
- for(int var21 = 0; var21 < this.getColumnCount(); ++var21) {
- int var16 = (int)Math.ceil((double)((float)var12 * var13[var21]));
- if (var15 == 0) {
- break;
- }
-
- if (Math.abs(var15) < Math.abs(var16)) {
- var16 = var15;
- }
-
- int var25;
- if (var16 > 0) {
- var25 = var8[var21] - var7[var21];
- } else {
- if (var16 >= 0) {
- continue;
- }
-
- var25 = var9[var21] - var7[var21];
- }
-
- if (Math.abs(var25) >= Math.abs(var16)) {
- var14 = true;
- var7[var21] += var16;
- var15 -= var16;
- } else if (var25 != 0) {
- var7[var21] += var25;
- var15 -= var25;
- var13[var21] = 0.0F;
- }
- }
-
- var12 = var15;
- if (var15 != 0) {
- float var17 = 0.0F;
-
- for(int var22 = 0; var22 < this.getColumnCount(); ++var22) {
- var17 += var13[var22];
- }
-
- float var27 = 100.0F / var17;
-
- for(int var23 = 0; var23 < this.getColumnCount(); ++var23) {
- var13[var23] *= var27;
- }
- }
- }
- }
-
- var6 = 0;
-
- for(Enumeration var26 = this.getColumnModel().getColumns(); var26.hasMoreElements(); ++var6) {
- TableColumn var18 = (TableColumn)var26.nextElement();
- var18.setWidth(var7[var6]);
- }
-
- }
- }
-
- public String getToolTipText(MouseEvent var1) {
- String var2 = null;
- Point var3 = var1.getPoint();
- int var4 = this.columnAtPoint(var3);
- int var5 = this.rowAtPoint(var3);
- if (var4 != -1 && var5 != -1) {
- TableColumn var6 = this.getColumnModel().getColumn(var4);
- TableCellRenderer var7 = var6.getCellRenderer();
- if (var7 == null) {
- Class var8 = this.getColumnClass(var4);
- var7 = this.getDefaultRenderer(var8);
- }
-
- Component var11 = var7.getTableCellRendererComponent(this, (Object)null, false, false, var5, var4);
- if (var11 instanceof JComponent) {
- Rectangle var10 = this.getCellRect(var5, var4, false);
- var3.translate(-var10.x, -var10.y);
- MouseEvent var9 = new MouseEvent(var11, ((AWTEvent)var1).getID(), ((InputEvent)var1).getWhen(), ((InputEvent)var1).getModifiers(), var3.x, var3.y, var1.getClickCount(), var1.isPopupTrigger());
- var2 = ((JComponent)var11).getToolTipText(var9);
- }
- }
-
- if (var2 == null) {
- var2 = ((JComponent)this).getToolTipText();
- }
-
- return var2;
- }
-
- public boolean editCellAt(int var1, int var2) {
- return this.editCellAt(var1, var2, (EventObject)null);
- }
-
- public boolean editCellAt(int var1, int var2, EventObject var3) {
- if (!this.isCellEditable(var1, var2)) {
- return false;
- } else {
- if (this.isEditing() && this.cellEditor != null) {
- boolean var4 = this.cellEditor.stopCellEditing();
- if (!var4) {
- return false;
- }
- }
-
- TableColumn var6 = this.getColumnModel().getColumn(var2);
- TableCellEditor var5 = var6.getCellEditor();
- if (var5 == null) {
- var5 = this.getDefaultEditor(this.getColumnClass(var2));
- }
-
- if (var5 != null) {
- this.editorComp = this.prepareEditor(var5, var1, var2);
- if (var5.isCellEditable(var3)) {
- this.editorComp.setBounds(this.getCellRect(var1, var2, false));
- ((Container)this).add(this.editorComp);
- this.editorComp.validate();
- var5.shouldSelectCell(var3);
- this.setCellEditor(var5);
- this.setEditingRow(var1);
- this.setEditingColumn(var2);
- var5.addCellEditorListener(this);
- ((Component)this).repaint();
- return true;
- }
- }
-
- return false;
- }
- }
-
- public boolean isEditing() {
- return this.cellEditor != null;
- }
-
- public Component getEditorComponent() {
- return this.editorComp;
- }
-
- public int getEditingColumn() {
- return this.editingColumn;
- }
-
- public int getEditingRow() {
- return this.editingRow;
- }
-
- public TableUI getUI() {
- return (TableUI)super.ui;
- }
-
- public void setUI(TableUI var1) {
- if (super.ui != var1) {
- super.setUI(var1);
- ((Component)this).repaint();
- }
-
- }
-
- private void updateSubComponentUI(Object var1) {
- if (var1 != null) {
- Component var2 = null;
- if (var1 instanceof Component) {
- var2 = (Component)var1;
- }
-
- if (var1 instanceof DefaultCellEditor) {
- var2 = ((DefaultCellEditor)var1).getComponent();
- }
-
- if (var2 != null && var2 instanceof JComponent) {
- ((JComponent)var2).updateUI();
- }
-
- }
- }
-
- public void updateUI() {
- TableColumnModel var1 = this.getColumnModel();
-
- for(int var2 = 0; var2 < var1.getColumnCount(); ++var2) {
- TableColumn var3 = var1.getColumn(var2);
- this.updateSubComponentUI(var3.getCellEditor());
- }
-
- Enumeration var4 = this.defaultEditorsByColumnClass.elements();
-
- while(var4.hasMoreElements()) {
- this.updateSubComponentUI(var4.nextElement());
- }
-
- this.setUI((TableUI)UIManager.getUI(this));
- this.resizeAndRepaint();
- ((Container)this).invalidate();
- }
-
- public String getUIClassID() {
- return "TableUI";
- }
-
- public void setModel(TableModel var1) {
- TableModel var2 = this.dataModel;
- if (var1 == null) {
- throw new IllegalArgumentException("Cannot set a null TableModel");
- } else {
- if (var1 != var2) {
- if (var2 != null) {
- var2.removeTableModelListener(this);
- }
-
- this.dataModel = var1;
- var1.addTableModelListener(this);
- if (this.getColumnModel() != null) {
- this.tableChanged(new TableModelEvent(this.dataModel, -1));
- }
- }
-
- }
- }
-
- public TableModel getModel() {
- return this.dataModel;
- }
-
- public void setColumnModel(TableColumnModel var1) {
- if (var1 == null) {
- throw new IllegalArgumentException("Cannot set a null ColumnModel");
- } else {
- TableColumnModel var2 = this.columnModel;
- if (var1 != var2) {
- if (var2 != null) {
- var2.removeColumnModelListener(this);
- }
-
- this.columnModel = var1;
- var1.addColumnModelListener(this);
- if (this.tableHeader != null) {
- this.tableHeader.setColumnModel(var1);
- }
-
- this.resizeAndRepaint();
- }
-
- }
- }
-
- public TableColumnModel getColumnModel() {
- return this.columnModel;
- }
-
- public void setSelectionModel(ListSelectionModel var1) {
- ListSelectionModel var2 = this.selectionModel;
- if (var1 != var2) {
- if (var2 != null) {
- var2.removeListSelectionListener(this);
- }
-
- this.selectionModel = var1;
- if (var1 != null) {
- var1.addListSelectionListener(this);
- }
-
- ((Component)this).repaint();
- }
-
- }
-
- public ListSelectionModel getSelectionModel() {
- return this.selectionModel;
- }
-
- public void tableChanged(TableModelEvent var1) {
- if (var1 != null && var1.getFirstRow() != -1) {
- if (var1.getType() == 1) {
- this.tableRowsInserted(var1);
- } else if (var1.getType() == -1) {
- this.tableRowsDeleted(var1);
- } else {
- int var2 = var1.getColumn();
- int var3 = var1.getFirstRow();
- int var4 = var1.getLastRow();
- if (var3 == -1) {
- var3 = 0;
- var4 = Integer.MAX_VALUE;
- }
-
- int var5 = this.getRowHeight() + this.rowMargin;
- Rectangle var6;
- if (var2 == -1) {
- var6 = new Rectangle(0, var3 * var5, this.getColumnModel().getTotalColumnWidth(), 0);
- } else {
- int var7 = this.convertColumnIndexToView(var2);
- var6 = this.getCellRect(var3, var7, false);
- }
-
- if (var4 != Integer.MAX_VALUE) {
- var6.height = (var4 - var3 + 1) * var5;
- ((Component)this).repaint(var6.x, var6.y, var6.width, var6.height);
- } else {
- this.resizeAndRepaint();
- }
- }
- } else {
- this.clearSelection();
- if (this.getAutoCreateColumnsFromModel()) {
- this.createDefaultColumnsFromModel();
- }
-
- this.resizeAndRepaint();
- if (this.tableHeader != null) {
- this.tableHeader.resizeAndRepaint();
- }
-
- }
- }
-
- private void tableRowsInserted(TableModelEvent var1) {
- int var2 = var1.getFirstRow();
- if (var2 < 0) {
- var2 = 0;
- }
-
- int var3 = this.getRowHeight() + this.rowMargin;
- Rectangle var4 = new Rectangle(0, var2 * var3, this.getColumnModel().getTotalColumnWidth(), (this.getRowCount() - var2) * var3);
- if (this.selectionModel != null) {
- int var5 = var1.getLastRow();
- if (var5 < 0) {
- var5 = this.getRowCount() - 1;
- }
-
- int var6 = var5 - var2 + 1;
- this.selectionModel.insertIndexInterval(var2, var6, true);
- }
-
- ((JComponent)this).revalidate();
- ((Component)this).repaint(var4.x, var4.y, var4.width, var4.height);
- }
-
- private void tableRowsDeleted(TableModelEvent var1) {
- int var2 = var1.getFirstRow();
- if (var2 < 0) {
- var2 = 0;
- }
-
- int var3 = this.getRowHeight() + this.rowMargin;
- Rectangle var4 = new Rectangle(0, var2 * var3, this.getColumnModel().getTotalColumnWidth(), (this.getRowCount() - var2) * var3);
- if (this.selectionModel != null) {
- int var5 = var1.getLastRow();
- if (var5 < 0) {
- var5 = this.getRowCount() - 1;
- }
-
- this.selectionModel.removeIndexInterval(var2, var5);
- }
-
- ((JComponent)this).revalidate();
- ((Component)this).repaint(var4.x, var4.y, var4.width, var4.height);
- }
-
- public void columnAdded(TableColumnModelEvent var1) {
- if (this.isEditing()) {
- this.removeEditor();
- }
-
- this.resizeAndRepaint();
- }
-
- public void columnRemoved(TableColumnModelEvent var1) {
- if (this.isEditing()) {
- this.removeEditor();
- }
-
- this.resizeAndRepaint();
- }
-
- public void columnMoved(TableColumnModelEvent var1) {
- if (this.isEditing()) {
- this.removeEditor();
- }
-
- ((Component)this).repaint();
- }
-
- public void columnMarginChanged(ChangeEvent var1) {
- if (this.isEditing()) {
- this.removeEditor();
- }
-
- this.resizeAndRepaint();
- }
-
- public void columnSelectionChanged(ListSelectionEvent var1) {
- if (this.isEditing()) {
- this.removeEditor();
- }
-
- int var2 = var1.getFirstIndex();
- int var3 = var1.getLastIndex();
- if (var2 == -1 && var3 == -1) {
- ((Component)this).repaint();
- }
-
- Rectangle var4 = this.getCellRect(0, var2, false);
- Rectangle var5 = this.getCellRect(this.getRowCount(), var3, false);
- Rectangle var6 = var4.union(var5);
- ((Component)this).repaint(var6.x, var6.y, var6.width, var6.height);
- }
-
- public void valueChanged(ListSelectionEvent var1) {
- int var2 = var1.getFirstIndex();
- int var3 = var1.getLastIndex();
- if (var2 == -1 && var3 == -1) {
- ((Component)this).repaint();
- }
-
- Rectangle var4 = this.getCellRect(var2, 0, false);
- Rectangle var5 = this.getCellRect(var3, this.getColumnCount(), false);
- Rectangle var6 = var4.union(var5);
- ((Component)this).repaint(var6.x, var6.y, var6.width, var6.height);
- }
-
- public void editingStopped(ChangeEvent var1) {
- TableCellEditor var2 = this.getCellEditor();
- if (var2 != null) {
- Object var3 = var2.getCellEditorValue();
- this.setValueAt(var3, this.editingRow, this.editingColumn);
- this.removeEditor();
- }
-
- }
-
- public void editingCanceled(ChangeEvent var1) {
- this.removeEditor();
- }
-
- public void setPreferredScrollableViewportSize(Dimension var1) {
- this.preferredViewportSize = var1;
- }
-
- public Dimension getPreferredScrollableViewportSize() {
- return this.preferredViewportSize;
- }
-
- public int getScrollableUnitIncrement(Rectangle var1, int var2, int var3) {
- return var2 == 0 ? 1 : this.rowHeight;
- }
-
- public int getScrollableBlockIncrement(Rectangle var1, int var2, int var3) {
- return var2 == 1 ? var1.height : var1.width;
- }
-
- public boolean getScrollableTracksViewportWidth() {
- return false;
- }
-
- public boolean getScrollableTracksViewportHeight() {
- return false;
- }
-
- protected void createDefaultRenderers() {
- this.defaultRenderersByColumnClass = new Hashtable();
- DefaultTableCellRenderer var1 = new DefaultTableCellRenderer();
- this.setDefaultRenderer(class$java$lang$Object != null ? class$java$lang$Object : (class$java$lang$Object = JComponent.class$("java.lang.Object")), var1);
- DefaultTableCellRenderer var2 = new DefaultTableCellRenderer();
- ((JLabel)var2).setHorizontalAlignment(4);
- this.setDefaultRenderer(class$java$lang$Number != null ? class$java$lang$Number : (class$java$lang$Number = JComponent.class$("java.lang.Number")), var2);
- 1 var3 = new 1();
- ((JLabel)var3).setHorizontalAlignment(0);
- this.setDefaultRenderer(class$com$sun$java$swing$ImageIcon != null ? class$com$sun$java$swing$ImageIcon : (class$com$sun$java$swing$ImageIcon = JComponent.class$("com.sun.java.swing.ImageIcon")), var3);
- CheckBoxRenderer var4 = new CheckBoxRenderer(this);
- ((AbstractButton)var4).setHorizontalAlignment(0);
- this.setDefaultRenderer(class$java$lang$Boolean != null ? class$java$lang$Boolean : (class$java$lang$Boolean = JComponent.class$("java.lang.Boolean")), var4);
- }
-
- protected void createDefaultEditors() {
- this.defaultEditorsByColumnClass = new Hashtable();
- JTextField var1 = new JTextField();
- ((JComponent)var1).setBorder(new LineBorder(Color.black));
- this.setDefaultEditor(class$java$lang$Object != null ? class$java$lang$Object : (class$java$lang$Object = JComponent.class$("java.lang.Object")), new DefaultCellEditor(var1));
- JTextField var2 = new JTextField();
- var2.setHorizontalAlignment(4);
- ((JComponent)var2).setBorder(new LineBorder(Color.black));
- this.setDefaultEditor(class$java$lang$Number != null ? class$java$lang$Number : (class$java$lang$Number = JComponent.class$("java.lang.Number")), new DefaultCellEditor(var2));
- JCheckBox var3 = new JCheckBox();
- ((AbstractButton)var3).setHorizontalAlignment(0);
- this.setDefaultEditor(class$java$lang$Boolean != null ? class$java$lang$Boolean : (class$java$lang$Boolean = JComponent.class$("java.lang.Boolean")), new DefaultCellEditor(var3));
- }
-
- protected void initializeLocalVars() {
- this.createDefaultRenderers();
- this.createDefaultEditors();
- this.setTableHeader(this.createDefaultTableHeader());
- this.setShowGrid(true);
- this.setAutoResizeMode(2);
- this.setRowHeight(16);
- this.setIntercellSpacing(new Dimension(1, 1));
- this.setSelectionMode(2);
- this.setColumnSelectionAllowed(false);
- this.setRowSelectionAllowed(true);
- this.setCellSelectionEnabled(false);
- this.setAutoCreateColumnsFromModel(true);
- this.cellEditor = null;
- this.editingColumn = this.editingRow = -1;
- this.preferredViewportSize = new Dimension(450, 400);
- ToolTipManager var1 = ToolTipManager.sharedInstance();
- var1.registerComponent(this);
- ((JComponent)this).setAutoscrolls(true);
- this.tableHeader.setAutoscrolls(true);
- }
-
- protected TableModel createDefaultDataModel() {
- return new DefaultTableModel();
- }
-
- protected TableColumnModel createDefaultColumnModel() {
- return new DefaultTableColumnModel();
- }
-
- protected ListSelectionModel createDefaultSelectionModel() {
- DefaultListSelectionModel var1 = new DefaultListSelectionModel();
- var1.setLeadAnchorNotificationEnabled(false);
- return var1;
- }
-
- protected JTableHeader createDefaultTableHeader() {
- return new JTableHeader(this.columnModel);
- }
-
- protected void resizeAndRepaint() {
- ((JComponent)this).revalidate();
- ((Component)this).repaint();
- }
-
- public TableCellEditor getCellEditor() {
- return this.cellEditor;
- }
-
- public void setCellEditor(TableCellEditor var1) {
- this.cellEditor = var1;
- }
-
- public void setEditingColumn(int var1) {
- this.editingColumn = var1;
- }
-
- public void setEditingRow(int var1) {
- this.editingRow = var1;
- }
-
- public boolean isOpaque() {
- return true;
- }
-
- public Component prepareEditor(TableCellEditor var1, int var2, int var3) {
- Object var4 = this.getValueAt(var2, var3);
- this.getColumnModel().getColumn(var3);
- boolean var5 = this.isCellSelected(var2, var3);
- Component var6 = var1.getTableCellEditorComponent(this, var4, var5, var2, var3);
- if (var6 != null && var6.getFont() == null) {
- var6.setFont(((Component)this).getFont());
- }
-
- return var6;
- }
-
- public void removeEditor() {
- TableCellEditor var1 = this.getCellEditor();
- if (var1 != null) {
- var1.removeCellEditorListener(this);
- if (this.editorComp instanceof JComboBox) {
- ((JComboBox)this.editorComp).hidePopup();
- }
-
- ((Container)this).remove(this.editorComp);
- Rectangle var2 = this.getCellRect(this.editingRow, this.editingColumn, false);
- ((Component)this).repaint(var2.x, var2.y, var2.width, var2.height);
- if (!(this.editorComp instanceof JComponent) || ((JComponent)this.editorComp).hasFocus()) {
- ((JComponent)this).requestFocus();
- }
-
- this.setCellEditor((TableCellEditor)null);
- this.setEditingColumn(-1);
- this.setEditingRow(-1);
- this.editorComp = null;
- }
-
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- var1.defaultWriteObject();
- }
-
- private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
- var1.defaultReadObject();
- this.createDefaultRenderers();
- this.createDefaultEditors();
- }
-
- public AccessibleContext getAccessibleContext() {
- if (super.accessibleContext == null) {
- super.accessibleContext = new AccessibleJTable(this);
- }
-
- return super.accessibleContext;
- }
- }
-