Imported Classpath 0.18.

* sources.am, Makefile.in: Updated.
	* Makefile.am (nat_source_files): Removed natProxy.cc.
	* java/lang/reflect/natProxy.cc: Removed.
	* gnu/classpath/jdwp/VMFrame.java,
	gnu/classpath/jdwp/VMIdManager.java,
	gnu/classpath/jdwp/VMVirtualMachine.java,
	java/lang/reflect/VMProxy.java: New files.

2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* scripts/makemake.tcl (verbose): Add gnu/java/awt/peer/qt to BC
	list.

2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/net/DefaultContentHandlerFactory.java (getContent):
	Remove ClasspathToolkit references.

2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/awt/xlib/XCanvasPeer.java: Add new peer methods.
	* gnu/awt/xlib/XFramePeer.java: Likewise.
	* gnu/awt/xlib/XGraphicsConfiguration.java: Likewise.

2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am (libgcjawt_la_SOURCES): Remove jawt.c.  Add
	classpath/native/jawt/jawt.c.
	* Makefile.in: Regenerate.
	* jawt.c: Remove file.
	* include/Makefile.am (tool_include__HEADERS): Remove jawt.h and
	jawt_md.h.  Add ../classpath/include/jawt.h and
	../classpath/include/jawt_md.h.
	* include/Makefile.in: Regenerate.
	* include/jawt.h: Regenerate.
	* include/jawt_md.h: Regenerate.

From-SVN: r104586
This commit is contained in:
Tom Tromey 2005-09-23 21:31:04 +00:00
parent 9b044d1951
commit 1ea63ef8be
544 changed files with 34724 additions and 14512 deletions

View file

@ -43,9 +43,14 @@ import java.awt.Component;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.util.Date;
import java.util.EventObject;
import java.util.Hashtable;
import java.util.Vector;
@ -69,6 +74,7 @@ import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;
import javax.swing.text.Caret;
public class JTable extends JComponent
implements TableModelListener, Scrollable, TableColumnModelListener,
@ -351,6 +357,7 @@ public class JTable extends JComponent
*/
protected transient Component editorComp;
/**
* Whether or not the table should automatically compute a matching
* {@link TableColumnModel} and assign it to the {@link #columnModel}
@ -555,7 +562,27 @@ public class JTable extends JComponent
*/
protected JTableHeader tableHeader;
/**
* The row of the cell being edited.
*/
int rowBeingEdited = -1;
/**
* The column of the cell being edited.
*/
int columnBeingEdited = -1;
/**
* The action listener for the editor's Timer.
*/
Timer editorTimer = new EditorUpdateTimer();
/**
* Stores the old value of a cell before it was edited, in case
* editing is cancelled
*/
Object oldCellValue;
/**
* Creates a new <code>JTable</code> instance.
*/
@ -618,9 +645,14 @@ public class JTable extends JComponent
{
setModel(dm == null ? createDefaultDataModel() : dm);
setSelectionModel(sm == null ? createDefaultSelectionModel() : sm);
this.columnModel = cm;
initializeLocalVars();
// The next two lines are for compliance with the JDK which starts
// the JLists associated with a JTable with both lead selection
// indices at 0, rather than -1 as in regular JLists
selectionModel.setLeadSelectionIndex(0);
columnModel.getSelectionModel().setLeadSelectionIndex(0);
updateUI();
}
@ -641,7 +673,7 @@ public class JTable extends JComponent
this.defaultEditorsByColumnClass = new Hashtable();
createDefaultEditors();
this.autoResizeMode = AUTO_RESIZE_ALL_COLUMNS;
this.autoResizeMode = AUTO_RESIZE_SUBSEQUENT_COLUMNS;
this.rowHeight = 16;
this.rowMargin = 1;
this.rowSelectionAllowed = true;
@ -668,6 +700,51 @@ public class JTable extends JComponent
this(new DefaultTableModel(data, columnNames));
}
/**
* The timer that updates the editor component.
*/
private class EditorUpdateTimer
extends Timer
implements ActionListener
{
/**
* Creates a new EditorUpdateTimer object with a default delay of 0.5 seconds.
*/
public EditorUpdateTimer()
{
super(500, null);
addActionListener(this);
}
/**
* Lets the caret blink and repaints the table.
*/
public void actionPerformed(ActionEvent ev)
{
Caret c = ((JTextField)JTable.this.editorComp).getCaret();
if (c != null)
c.setVisible(!c.isVisible());
JTable.this.repaint();
}
/**
* Updates the blink delay according to the current caret.
*/
public void update()
{
stop();
Caret c = ((JTextField)JTable.this.editorComp).getCaret();
if (c != null)
{
setDelay(c.getBlinkRate());
if (((JTextField)JTable.this.editorComp).isEditable())
start();
else
c.setVisible(false);
}
}
}
public void addColumn(TableColumn column)
{
if (column.getHeaderValue() == null)
@ -769,11 +846,40 @@ public class JTable extends JComponent
public void editingCanceled (ChangeEvent event)
{
if (rowBeingEdited > -1 && columnBeingEdited > -1)
{
if (getValueAt(rowBeingEdited, columnBeingEdited) instanceof JTextField)
{
remove ((Component)getValueAt(rowBeingEdited, columnBeingEdited));
setValueAt(oldCellValue, rowBeingEdited, columnBeingEdited);
}
rowBeingEdited = -1;
columnBeingEdited = -1;
}
editorTimer.stop();
editorComp = null;
cellEditor = null;
requestFocusInWindow(false);
repaint();
}
public void editingStopped (ChangeEvent event)
{
if (rowBeingEdited > -1 && columnBeingEdited > -1)
{
if (getValueAt(rowBeingEdited, columnBeingEdited) instanceof JTextField)
{
remove((Component)getValueAt(rowBeingEdited, columnBeingEdited));
setValueAt(((JTextField)editorComp).getText(),
rowBeingEdited, columnBeingEdited);
}
rowBeingEdited = -1;
columnBeingEdited = -1;
}
editorTimer.stop();
editorComp = null;
cellEditor = null;
requestFocusInWindow(false);
repaint();
}
@ -804,20 +910,23 @@ public class JTable extends JComponent
*/
public int columnAtPoint(Point point)
{
int x0 = getLocation().x;
int ncols = getColumnCount();
Dimension gap = getIntercellSpacing();
TableColumnModel cols = getColumnModel();
int x = point.x;
for (int i = 0; i < ncols; ++i)
if (point != null)
{
int width = cols.getColumn(i).getWidth() + (gap == null ? 0 : gap.width);
if (0 <= x && x < width)
return i;
x -= width;
int x0 = getLocation().x;
int ncols = getColumnCount();
Dimension gap = getIntercellSpacing();
TableColumnModel cols = getColumnModel();
int x = point.x;
for (int i = 0; i < ncols; ++i)
{
int width = cols.getColumn(i).getWidth()
+ (gap == null ? 0 : gap.width);
if (0 <= x && x < width)
return i;
x -= width;
}
}
return -1;
}
@ -831,19 +940,21 @@ public class JTable extends JComponent
*/
public int rowAtPoint(Point point)
{
int y0 = getLocation().y;
int nrows = getRowCount();
Dimension gap = getIntercellSpacing();
int height = getRowHeight() + (gap == null ? 0 : gap.height);
int y = point.y;
for (int i = 0; i < nrows; ++i)
if (point != null)
{
if (0 <= y && y < height)
return i;
y -= height;
int y0 = getLocation().y;
int nrows = getRowCount();
Dimension gap = getIntercellSpacing();
int height = getRowHeight() + (gap == null ? 0 : gap.height);
int y = point.y;
for (int i = 0; i < nrows; ++i)
{
if (0 <= y && y < height)
return i;
y -= height;
}
}
return -1;
}
@ -867,7 +978,7 @@ public class JTable extends JComponent
int column,
boolean includeSpacing)
{
int height = getHeight();
int height = getRowHeight(row);
int width = columnModel.getColumn(column).getWidth();
int x_gap = columnModel.getColumnMargin();
int y_gap = rowMargin;
@ -975,7 +1086,7 @@ public class JTable extends JComponent
if (editor == null)
editor = getDefaultEditor(dataModel.getColumnClass(column));
return editor;
}
@ -1094,6 +1205,19 @@ public class JTable extends JComponent
return rowHeight;
}
/**
* Get the height of the specified row.
*
* @param row the row whose height to return
*/
public int getRowHeight(int row)
{
// FIXME: return the height of the specified row
// which may be different from the general rowHeight
return rowHeight;
}
/**
* Get the value of the {@link #rowMargin} property.
*
@ -1457,14 +1581,27 @@ public class JTable extends JComponent
*/
public void setRowHeight(int r)
{
if (rowHeight < 1)
if (r < 1)
throw new IllegalArgumentException();
rowHeight = r;
revalidate();
repaint();
}
/**
* Sets the value of the rowHeight property for the specified
* row.
*
* @param rh is the new rowHeight
* @param row is the row to change the rowHeight of
*/
public void setRowHeight(int row, int rh)
{
setRowHeight(rh);
// FIXME: not implemented
}
/**
* Set the value of the {@link #rowMargin} property.
*
@ -2065,8 +2202,17 @@ public class JTable extends JComponent
public void selectAll()
{
// rowLead and colLead store the current lead selection indices
int rowLead = selectionModel.getLeadSelectionIndex();
int colLead = getColumnModel().getSelectionModel().getLeadSelectionIndex();
// the following calls to setSelectionInterval change the lead selection
// indices
setColumnSelectionInterval(0, getColumnCount() - 1);
setRowSelectionInterval(0, getRowCount() - 1);
// the following addSelectionInterval calls restore the lead selection
// indices to their previous values
addColumnSelectionInterval(colLead,colLead);
addRowSelectionInterval(rowLead, rowLead);
}
public Object getValueAt(int row, int column)
@ -2076,6 +2222,11 @@ public class JTable extends JComponent
public void setValueAt(Object value, int row, int column)
{
if (!isCellEditable(row, column))
return;
if (value instanceof Component)
add((Component)value);
dataModel.setValueAt(value, row, convertColumnIndexToModel(column));
}
@ -2167,4 +2318,58 @@ public class JTable extends JComponent
}
}
/**
* Programmatically starts editing the specified cell.
*
* @param row the row of the cell to edit.
* @param column the column of the cell to edit.
*/
public boolean editCellAt (int row, int column)
{
oldCellValue = getValueAt(row, column);
setCellEditor(getCellEditor(row, column));
editorComp = prepareEditor(cellEditor, row, column);
cellEditor.addCellEditorListener(this);
rowBeingEdited = row;
columnBeingEdited = column;
setValueAt(editorComp, row, column);
((JTextField)editorComp).requestFocusInWindow(false);
editorTimer.start();
return true;
}
/**
* Programmatically starts editing the specified cell.
*
* @param row the row of the cell to edit.
* @param column the column of the cell to edit.
*/
public boolean editCellAt (int row, int column, EventObject e)
{
return editCellAt(row, column);
}
/**
* Discards the editor object.
*/
public void removeEditor()
{
editingStopped(new ChangeEvent(this));
}
/**
* Prepares the editor by querying for the value and selection state of the
* cell at (row, column).
*
* @param editor the TableCellEditor to set up
* @param row the row of the cell to edit
* @param column the column of the cell to edit
* @return the Component being edited
*/
public Component prepareEditor (TableCellEditor editor, int row, int column)
{
return editor.getTableCellEditorComponent
(this, getValueAt(row, column), isCellSelected(row, column), row, column);
}
}