This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gu] Patch: javax.swing - JTable and JTree


--Boundary-00=_NHU/AKdOmA/v27f
Content-Type: text/plain;
  charset="iso-8859-15"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi list,


I just commited the attached patch to implement some JTable and JTree 
stuff. This will help Anthony Green to compile Jacorb in his 
java-gnome effort. Some methods are still missing but not so much as 
before.


Michael


2004-07-20  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTable.java
	(autoCreateColumnsFromModel): New field.
	(autoResizeMode): Likewise.
	(cellEditor): Likewise.
	(cellSelectionEnabled): Likewise.
	(columnModel): Likewise.
	(dataModel): Likewise.
	(defaultEditorsByColumnClass): Likewise.
	(defaultRenderersByColumnClass): Likewise.
	(editingColumn): Likewise.
	(editingRow): Likewise.
	(gridColor): Likewise.
	(preferredViewportSize): Likewise.
	(rowHeight): Likewise.
	(rowMargin): Likewise.
	(rowSelectionAllowed): Likewise.
	(selectionBackground): Likewise.
	(selectionForeground): Likewise.
	(selectionModel): Likewise.
	(showHorizontalLines): Likewise.
	(showVerticalLines): Likewise.
	(tableHeader): Likewise.
	(JTable): Implemented.
	(getColumnModel): Likewise.
	(getSelectedRow): Likewise.
	(getSelectionModel): Likewise.
	(setModel): Likewise.
	(setSelectionModel): Likewise.
	(createScrollPaneForTable): New method.
	(createDefaultDataModel): Likewise.
	(createDefaultListSelectionModel): Likewise.
	(getModel): Likewise.
	(getTableHeader): Likewise.
	(setTableHeader): Likewise.
	(getColumnSelectionAllowed): Likewise.
	(setColumnSelectionAllowed): Likewise.
	(getRowSelectionAllowed): Likewise.
	(setRowSelectionAllowed): Likewise.
	(getAutoResizeMode): Likewise.
	(setAutoResizeMode): Likewise.
	(getColumnCount): Likewise.
	(getRowCount): Likewise.
	(getCellRenderer): Likewise.
	* javax/swing/JTree.java
	(cellRenderer): New field.
	(editable): Likewise.
	(rootVisible): Likewise.
	(showsRootHandles): Likewise.
	(getModel): New method.
	(setModel): Likewise.
	(isEditable): Likewise.
	(setEditable): Likewise.
	(isRootVisbile): Likewise.
	(setRootVisible): Likewise.
	(getShowsRootHandles): Likewise.
	(setShowRootHandles): Likewise.
	(getCellRenderer): Likewise.
	(setCellRenderer): Likewise.
--
Homepage: http://www.worldforge.org/

--Boundary-00=_NHU/AKdOmA/v27f
Content-Type: text/x-diff;
  charset="iso-8859-15";
  name="swing.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="swing.diff"

Index: javax/swing/JTable.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JTable.java,v
retrieving revision 1.4.18.2
diff -u -b -B -r1.4.18.2 JTable.java
--- javax/swing/JTable.java	24 Jun 2004 05:31:32 -0000	1.4.18.2
+++ javax/swing/JTable.java	20 Jul 2004 15:55:50 -0000
@@ -38,8 +38,10 @@
 
 package javax.swing;
 
+import java.awt.Color;
 import java.awt.Dimension;
 import java.awt.Rectangle;
+import java.util.Hashtable;
 import java.util.Vector;
 
 import javax.accessibility.Accessible;
@@ -51,6 +53,11 @@
 import javax.swing.event.TableColumnModelListener;
 import javax.swing.event.TableModelEvent;
 import javax.swing.event.TableModelListener;
+import javax.swing.table.DefaultTableColumnModel;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.JTableHeader;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableCellRenderer;
 import javax.swing.table.TableColumnModel;
 import javax.swing.table.TableModel;
 
@@ -66,39 +73,115 @@
   public static final int AUTO_RESIZE_OFF = 0;
   public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS = 2;
   
+  protected boolean autoCreateColumnsFromModel;
+  protected int autoResizeMode;
+  protected TableCellEditor cellEditor;
+  protected boolean cellSelectionEnabled;
+  protected TableColumnModel columnModel;
+  protected TableModel dataModel;
+  protected Hashtable defaultEditorsByColumnClass;
+  protected Hashtable defaultRenderersByColumnClass;
+  protected int editingColumn;
+  protected int editingRow;
+  protected Color gridColor;
+  protected Dimension preferredViewportSize;
+  protected int rowHeight;
+  protected int rowMargin;
+  protected boolean rowSelectionAllowed;
+  protected Color selectionBackground;
+  protected Color selectionForeground;
+  protected ListSelectionModel selectionModel;
+  protected boolean showHorizontalLines;
+  protected boolean showVerticalLines;
+  protected JTableHeader tableHeader;
+  
+  /**
+   * Creates a new <code>JTable</code> instance.
+   */
   public JTable ()
   {
-    throw new Error ("Not implemented");
+    this(null, null, null);
   }
 
+  /**
+   * Creates a new <code>JTable</code> instance.
+   *
+   * @param numRows an <code>int</code> value
+   * @param numColumns an <code>int</code> value
+   */
   public JTable (int numRows, int numColumns)
   {
-    throw new Error ("Not implemented");
+    this(new DefaultTableModel(numRows, numColumns));
   }
 
-  public JTable (Object[][] rowData, Object[] columnNames)
+  /**
+   * Creates a new <code>JTable</code> instance.
+   *
+   * @param data an <code>Object[][]</code> value
+   * @param columnNames an <code>Object[]</code> value
+   */
+  public JTable(Object[][] data, Object[] columnNames)
   {
-    throw new Error ("Not implemented");
+    this(new DefaultTableModel(data, columnNames));
   }
 
+  /**
+   * Creates a new <code>JTable</code> instance.
+   *
+   * @param dm a <code>TableModel</code> value
+   */
   public JTable (TableModel dm)
   {
-    throw new Error ("Not implemented");
+    this(dm, null, null);
   }
 
+  /**
+   * Creates a new <code>JTable</code> instance.
+   *
+   * @param dm a <code>TableModel</code> value
+   * @param cm a <code>TableColumnModel</code> value
+   */
   public JTable (TableModel dm, TableColumnModel cm)
   {
-    throw new Error ("Not implemented");
+    this(dm, cm, null);
   }
 
+  /**
+   * Creates a new <code>JTable</code> instance.
+   *
+   * @param dm a <code>TableModel</code> value
+   * @param cm a <code>TableColumnModel</code> value
+   * @param sm a <code>ListSelectionModel</code> value
+   */
   public JTable (TableModel dm, TableColumnModel cm, ListSelectionModel sm)
   {
-    throw new Error ("Not implemented");
+    this.dataModel = dm == null ? createDefaultDataModel() : dm;
+    this.columnModel = cm == null ? createDefaultColumnModel() : cm;
+    this.selectionModel = sm == null ? createDefaultListSelectionModel() : sm;
   }
 
-  public JTable (Vector rowData, Vector columnNames)
+  /**
+   * Creates a new <code>JTable</code> instance.
+   *
+   * @param data a <code>Vector</code> value
+   * @param columnNames a <code>Vector</code> value
+   */
+  public JTable(Vector data, Vector columnNames)
   {
-    throw new Error ("Not implemented");
+    this(new DefaultTableModel(data, columnNames));
+  }
+
+  /**
+   * @deprecated 1.0.2, replaced by <code>new JScrollPane(JTable)</code>
+   */
+  public static JScrollPane createScrollPaneForTable(JTable table)
+  {
+    return new JScrollPane(table);
+  }
+
+  public void clearSelection()
+  {
+    selectionModel.clearSelection();
   }
 
   public void columnAdded (TableColumnModelEvent event)
@@ -126,6 +209,21 @@
     throw new Error ("Not implemented");
   }
  
+  protected TableColumnModel createDefaultColumnModel()
+  {
+    return new DefaultTableColumnModel();
+  }
+
+  protected TableModel createDefaultDataModel()
+  {
+    return new DefaultTableModel();
+  }
+
+  protected ListSelectionModel createDefaultListSelectionModel()
+  {
+    return new DefaultListSelectionModel();
+  }
+
   public void editingCanceled (ChangeEvent event)
   {
     throw new Error ("Not implemented");
@@ -138,7 +236,12 @@
 
   public TableColumnModel getColumnModel ()
   {
-    throw new Error ("Not implemented");
+    return columnModel;
+  }
+  
+  public TableModel getModel()
+  {
+    return dataModel;
   }
   
   public Dimension getPreferredScrollableViewportSize ()
@@ -168,12 +271,15 @@
 
   public int getSelectedRow ()
   {
-    throw new Error ("Not implemented");
+    return selectionModel.getMinSelectionIndex();
   }
   
   public ListSelectionModel getSelectionModel ()
   {
-    throw new Error ("Not implemented");
+    if (! rowSelectionAllowed)
+      return null;
+
+    return selectionModel;
   }
 
   public void tableChanged (TableModelEvent event)
@@ -183,7 +289,13 @@
 
   public void setModel (TableModel model)
   {
-    throw new Error ("Not implemented");
+    if (model == null)
+      throw new IllegalArgumentException();
+
+    // FIXME: Should we deregister from old model ?
+    
+    dataModel = model;
+    dataModel.addTableModelListener(this);
   }
 
   public void setSelectionMode (int selectionMode)
@@ -193,7 +305,13 @@
 
   public void setSelectionModel (ListSelectionModel model)
   {
-    throw new Error ("Not implemented");
+    if (model == null)
+      throw new IllegalArgumentException();
+
+    // FIXME: Should we deregister from old model ?
+    
+    selectionModel = model;
+    selectionModel.addListSelectionListener(this);
   }
 
   public void setShowGrid (boolean showGrid)
@@ -205,4 +323,65 @@
   {
     throw new Error ("Not implemented");
   }
-} // class JTable
+
+  public JTableHeader getTableHeader()
+  {
+    return tableHeader;
+  }
+
+  public void setTableHeader(JTableHeader newHeader)
+  {
+    tableHeader = newHeader;
+  }
+
+  public boolean getColumnSelectionAllowed()
+  {
+    return columnModel.getColumnSelectionAllowed();
+  }
+  
+  public void setColumnSelectionAllowed(boolean flag)
+  {
+    columnModel.setColumnSelectionAllowed(flag);
+  }
+
+  public boolean getRowSelectionAllowed()
+  {
+    return rowSelectionAllowed;
+  }
+  
+  public void setRowSelectionAllowed(boolean flag)
+  {
+    rowSelectionAllowed = flag;
+  }
+
+  public int getAutoResizeMode()
+  {
+    return autoResizeMode;
+  }
+
+  public void setAutoResizeMode(int mode)
+  {
+    autoResizeMode = mode;
+  }
+
+  public int getColumnCount()
+  {
+    return dataModel.getColumnCount();
+  }
+
+  public int getRowCount()
+  {
+    return dataModel.getRowCount();
+  }
+
+  public TableCellRenderer getCellRenderer(int row, int column)
+  {
+    TableCellRenderer renderer =
+      columnModel.getColumn(column).getCellRenderer();
+    
+    if (renderer == null)
+      renderer = getDefaultRenderer(dataModel.getColumnClass(column));
+    
+    return renderer;
+  }
+}
Index: javax/swing/JTree.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JTree.java,v
retrieving revision 1.3.2.4
diff -u -b -B -r1.3.2.4 JTree.java
--- javax/swing/JTree.java	16 Jun 2004 09:15:35 -0000	1.3.2.4
+++ javax/swing/JTree.java	20 Jul 2004 15:55:50 -0000
@@ -50,6 +50,7 @@
 import javax.swing.event.TreeWillExpandListener;
 import javax.swing.plaf.TreeUI;
 import javax.swing.tree.ExpandVetoException;
+import javax.swing.tree.TreeCellRenderer;
 import javax.swing.tree.TreeModel;
 import javax.swing.tree.TreeNode;
 import javax.swing.tree.TreePath;
@@ -60,6 +61,10 @@
 {
   private static final long serialVersionUID = 7559816092864483649L;
 
+  protected TreeCellRenderer cellRenderer;
+  protected boolean editable;
+  protected boolean rootVisible;
+  protected boolean showsRootHandles;
   protected TreeModel treeModel;
 
   /**
@@ -354,4 +359,87 @@
     for (int index = 0; index < listeners.length; ++index)
       listeners[index].treeWillExpand(event);
   }
+
+  /**
+   * Returns the model of this <code>JTree</code> object.
+   *
+   * @return the associated <code>TreeModel</code>
+   */
+  public TreeModel getModel()
+  {
+    return treeModel;
+  }
+
+  /**
+   * Sets the model to use in <code>JTree</object>.
+   *
+   * @param model the <code>TreeModel</code> to use
+   */
+  public void setModel(TreeModel model)
+  {
+    treeModel = model;
+  }
+
+  /**
+   * Checks if this <code>JTree</code> object is editable.
+   *
+   * @return <code>true</code> if this tree object is editable,
+   * <code>false</code> otherwise
+   */
+  public boolean isEditable()
+  {
+    return editable;
+  }
+
+  /**
+   * Sets the <code>editable</code> property.
+   *
+   * @param flag <code>true</code> to make this tree object editable,
+   * <code>false</code> otherwise
+   */
+  public void setEditable(boolean flag)
+  {
+    if (editable == flag)
+      return;
+
+    boolean oldValue = editable;
+    editable = flag;
+    firePropertyChange("editable", oldValue, editable);
+  }
+
+  /**
+   * Checks if the root element is visible.
+   *
+   * @return <code>true</code> if the root element is visible,
+   * <code>false</code> otherwise
+   */
+  public boolean isRootVisbile()
+  {
+    return rootVisible;
+  }
+
+  public void setRootVisible(boolean flag)
+  {
+    rootVisible = flag;
+  }
+
+  public boolean getShowsRootHandles()
+  {
+    return showsRootHandles;
+  }
+
+  public void setShowRootHandles(boolean flag)
+  {
+    showsRootHandles = flag;
+  }
+
+  public TreeCellRenderer getCellRenderer()
+  {
+    return cellRenderer;
+  }
+  
+  public void setCellRenderer(TreeCellRenderer newRenderer)
+  {
+    cellRenderer = newRenderer;
+  }
 }

--Boundary-00=_NHU/AKdOmA/v27f
Content-Type: Text/Plain;
  charset="iso-8859-15"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

=2D----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi list,


I just commited the attached patch to implement some JTable and JTree=20
stuff. This will help Anthony Green to compile Jacorb in his=20
java-gnome effort. Some methods are still missing but not so much as=20
before.


Michael


2004-07-20  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTable.java
	(autoCreateColumnsFromModel): New field.
	(autoResizeMode): Likewise.
	(cellEditor): Likewise.
	(cellSelectionEnabled): Likewise.
	(columnModel): Likewise.
	(dataModel): Likewise.
	(defaultEditorsByColumnClass): Likewise.
	(defaultRenderersByColumnClass): Likewise.
	(editingColumn): Likewise.
	(editingRow): Likewise.
	(gridColor): Likewise.
	(preferredViewportSize): Likewise.
	(rowHeight): Likewise.
	(rowMargin): Likewise.
	(rowSelectionAllowed): Likewise.
	(selectionBackground): Likewise.
	(selectionForeground): Likewise.
	(selectionModel): Likewise.
	(showHorizontalLines): Likewise.
	(showVerticalLines): Likewise.
	(tableHeader): Likewise.
	(JTable): Implemented.
	(getColumnModel): Likewise.
	(getSelectedRow): Likewise.
	(getSelectionModel): Likewise.
	(setModel): Likewise.
	(setSelectionModel): Likewise.
	(createScrollPaneForTable): New method.
	(createDefaultDataModel): Likewise.
	(createDefaultListSelectionModel): Likewise.
	(getModel): Likewise.
	(getTableHeader): Likewise.
	(setTableHeader): Likewise.
	(getColumnSelectionAllowed): Likewise.
	(setColumnSelectionAllowed): Likewise.
	(getRowSelectionAllowed): Likewise.
	(setRowSelectionAllowed): Likewise.
	(getAutoResizeMode): Likewise.
	(setAutoResizeMode): Likewise.
	(getColumnCount): Likewise.
	(getRowCount): Likewise.
	(getCellRenderer): Likewise.
	* javax/swing/JTree.java
	(cellRenderer): New field.
	(editable): Likewise.
	(rootVisible): Likewise.
	(showsRootHandles): Likewise.
	(getModel): New method.
	(setModel): Likewise.
	(isEditable): Likewise.
	(setEditable): Likewise.
	(isRootVisbile): Likewise.
	(setRootVisible): Likewise.
	(getShowsRootHandles): Likewise.
	(setShowRootHandles): Likewise.
	(getCellRenderer): Likewise.
	(setCellRenderer): Likewise.
=2D --=20
Homepage: http://www.worldforge.org/
=2D----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFA/UHPWSOgCCdjSDsRAlcEAKCL1GU2zLcH/f/AmRv6KrwsUWf+vwCfSWGD
ainjXh13GJFz8+i0byRW1EM=3D
=3DOOMf
=2D----END PGP SIGNATURE-----

--Boundary-00=_NHU/AKdOmA/v27f
Content-Type: text/x-diff;
  charset="iso-8859-15";
  name="swing.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="swing.diff"

Index: javax/swing/JTable.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JTable.java,v
retrieving revision 1.4.18.2
diff -u -b -B -r1.4.18.2 JTable.java
--- javax/swing/JTable.java	24 Jun 2004 05:31:32 -0000	1.4.18.2
+++ javax/swing/JTable.java	20 Jul 2004 15:55:50 -0000
@@ -38,8 +38,10 @@
 
 package javax.swing;
 
+import java.awt.Color;
 import java.awt.Dimension;
 import java.awt.Rectangle;
+import java.util.Hashtable;
 import java.util.Vector;
 
 import javax.accessibility.Accessible;
@@ -51,6 +53,11 @@
 import javax.swing.event.TableColumnModelListener;
 import javax.swing.event.TableModelEvent;
 import javax.swing.event.TableModelListener;
+import javax.swing.table.DefaultTableColumnModel;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.JTableHeader;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableCellRenderer;
 import javax.swing.table.TableColumnModel;
 import javax.swing.table.TableModel;
 
@@ -66,39 +73,115 @@
   public static final int AUTO_RESIZE_OFF = 0;
   public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS = 2;
   
+  protected boolean autoCreateColumnsFromModel;
+  protected int autoResizeMode;
+  protected TableCellEditor cellEditor;
+  protected boolean cellSelectionEnabled;
+  protected TableColumnModel columnModel;
+  protected TableModel dataModel;
+  protected Hashtable defaultEditorsByColumnClass;
+  protected Hashtable defaultRenderersByColumnClass;
+  protected int editingColumn;
+  protected int editingRow;
+  protected Color gridColor;
+  protected Dimension preferredViewportSize;
+  protected int rowHeight;
+  protected int rowMargin;
+  protected boolean rowSelectionAllowed;
+  protected Color selectionBackground;
+  protected Color selectionForeground;
+  protected ListSelectionModel selectionModel;
+  protected boolean showHorizontalLines;
+  protected boolean showVerticalLines;
+  protected JTableHeader tableHeader;
+  
+  /**
+   * Creates a new <code>JTable</code> instance.
+   */
   public JTable ()
   {
-    throw new Error ("Not implemented");
+    this(null, null, null);
   }
 
+  /**
+   * Creates a new <code>JTable</code> instance.
+   *
+   * @param numRows an <code>int</code> value
+   * @param numColumns an <code>int</code> value
+   */
   public JTable (int numRows, int numColumns)
   {
-    throw new Error ("Not implemented");
+    this(new DefaultTableModel(numRows, numColumns));
   }
 
-  public JTable (Object[][] rowData, Object[] columnNames)
+  /**
+   * Creates a new <code>JTable</code> instance.
+   *
+   * @param data an <code>Object[][]</code> value
+   * @param columnNames an <code>Object[]</code> value
+   */
+  public JTable(Object[][] data, Object[] columnNames)
   {
-    throw new Error ("Not implemented");
+    this(new DefaultTableModel(data, columnNames));
   }
 
+  /**
+   * Creates a new <code>JTable</code> instance.
+   *
+   * @param dm a <code>TableModel</code> value
+   */
   public JTable (TableModel dm)
   {
-    throw new Error ("Not implemented");
+    this(dm, null, null);
   }
 
+  /**
+   * Creates a new <code>JTable</code> instance.
+   *
+   * @param dm a <code>TableModel</code> value
+   * @param cm a <code>TableColumnModel</code> value
+   */
   public JTable (TableModel dm, TableColumnModel cm)
   {
-    throw new Error ("Not implemented");
+    this(dm, cm, null);
   }
 
+  /**
+   * Creates a new <code>JTable</code> instance.
+   *
+   * @param dm a <code>TableModel</code> value
+   * @param cm a <code>TableColumnModel</code> value
+   * @param sm a <code>ListSelectionModel</code> value
+   */
   public JTable (TableModel dm, TableColumnModel cm, ListSelectionModel sm)
   {
-    throw new Error ("Not implemented");
+    this.dataModel = dm == null ? createDefaultDataModel() : dm;
+    this.columnModel = cm == null ? createDefaultColumnModel() : cm;
+    this.selectionModel = sm == null ? createDefaultListSelectionModel() : sm;
   }
 
-  public JTable (Vector rowData, Vector columnNames)
+  /**
+   * Creates a new <code>JTable</code> instance.
+   *
+   * @param data a <code>Vector</code> value
+   * @param columnNames a <code>Vector</code> value
+   */
+  public JTable(Vector data, Vector columnNames)
   {
-    throw new Error ("Not implemented");
+    this(new DefaultTableModel(data, columnNames));
+  }
+
+  /**
+   * @deprecated 1.0.2, replaced by <code>new JScrollPane(JTable)</code>
+   */
+  public static JScrollPane createScrollPaneForTable(JTable table)
+  {
+    return new JScrollPane(table);
+  }
+
+  public void clearSelection()
+  {
+    selectionModel.clearSelection();
   }
 
   public void columnAdded (TableColumnModelEvent event)
@@ -126,6 +209,21 @@
     throw new Error ("Not implemented");
   }
  
+  protected TableColumnModel createDefaultColumnModel()
+  {
+    return new DefaultTableColumnModel();
+  }
+
+  protected TableModel createDefaultDataModel()
+  {
+    return new DefaultTableModel();
+  }
+
+  protected ListSelectionModel createDefaultListSelectionModel()
+  {
+    return new DefaultListSelectionModel();
+  }
+
   public void editingCanceled (ChangeEvent event)
   {
     throw new Error ("Not implemented");
@@ -138,7 +236,12 @@
 
   public TableColumnModel getColumnModel ()
   {
-    throw new Error ("Not implemented");
+    return columnModel;
+  }
+  
+  public TableModel getModel()
+  {
+    return dataModel;
   }
   
   public Dimension getPreferredScrollableViewportSize ()
@@ -168,12 +271,15 @@
 
   public int getSelectedRow ()
   {
-    throw new Error ("Not implemented");
+    return selectionModel.getMinSelectionIndex();
   }
   
   public ListSelectionModel getSelectionModel ()
   {
-    throw new Error ("Not implemented");
+    if (! rowSelectionAllowed)
+      return null;
+
+    return selectionModel;
   }
 
   public void tableChanged (TableModelEvent event)
@@ -183,7 +289,13 @@
 
   public void setModel (TableModel model)
   {
-    throw new Error ("Not implemented");
+    if (model == null)
+      throw new IllegalArgumentException();
+
+    // FIXME: Should we deregister from old model ?
+    
+    dataModel = model;
+    dataModel.addTableModelListener(this);
   }
 
   public void setSelectionMode (int selectionMode)
@@ -193,7 +305,13 @@
 
   public void setSelectionModel (ListSelectionModel model)
   {
-    throw new Error ("Not implemented");
+    if (model == null)
+      throw new IllegalArgumentException();
+
+    // FIXME: Should we deregister from old model ?
+    
+    selectionModel = model;
+    selectionModel.addListSelectionListener(this);
   }
 
   public void setShowGrid (boolean showGrid)
@@ -205,4 +323,65 @@
   {
     throw new Error ("Not implemented");
   }
-} // class JTable
+
+  public JTableHeader getTableHeader()
+  {
+    return tableHeader;
+  }
+
+  public void setTableHeader(JTableHeader newHeader)
+  {
+    tableHeader = newHeader;
+  }
+
+  public boolean getColumnSelectionAllowed()
+  {
+    return columnModel.getColumnSelectionAllowed();
+  }
+  
+  public void setColumnSelectionAllowed(boolean flag)
+  {
+    columnModel.setColumnSelectionAllowed(flag);
+  }
+
+  public boolean getRowSelectionAllowed()
+  {
+    return rowSelectionAllowed;
+  }
+  
+  public void setRowSelectionAllowed(boolean flag)
+  {
+    rowSelectionAllowed = flag;
+  }
+
+  public int getAutoResizeMode()
+  {
+    return autoResizeMode;
+  }
+
+  public void setAutoResizeMode(int mode)
+  {
+    autoResizeMode = mode;
+  }
+
+  public int getColumnCount()
+  {
+    return dataModel.getColumnCount();
+  }
+
+  public int getRowCount()
+  {
+    return dataModel.getRowCount();
+  }
+
+  public TableCellRenderer getCellRenderer(int row, int column)
+  {
+    TableCellRenderer renderer =
+      columnModel.getColumn(column).getCellRenderer();
+    
+    if (renderer == null)
+      renderer = getDefaultRenderer(dataModel.getColumnClass(column));
+    
+    return renderer;
+  }
+}
Index: javax/swing/JTree.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JTree.java,v
retrieving revision 1.3.2.4
diff -u -b -B -r1.3.2.4 JTree.java
--- javax/swing/JTree.java	16 Jun 2004 09:15:35 -0000	1.3.2.4
+++ javax/swing/JTree.java	20 Jul 2004 15:55:50 -0000
@@ -50,6 +50,7 @@
 import javax.swing.event.TreeWillExpandListener;
 import javax.swing.plaf.TreeUI;
 import javax.swing.tree.ExpandVetoException;
+import javax.swing.tree.TreeCellRenderer;
 import javax.swing.tree.TreeModel;
 import javax.swing.tree.TreeNode;
 import javax.swing.tree.TreePath;
@@ -60,6 +61,10 @@
 {
   private static final long serialVersionUID = 7559816092864483649L;
 
+  protected TreeCellRenderer cellRenderer;
+  protected boolean editable;
+  protected boolean rootVisible;
+  protected boolean showsRootHandles;
   protected TreeModel treeModel;
 
   /**
@@ -354,4 +359,87 @@
     for (int index = 0; index < listeners.length; ++index)
       listeners[index].treeWillExpand(event);
   }
+
+  /**
+   * Returns the model of this <code>JTree</code> object.
+   *
+   * @return the associated <code>TreeModel</code>
+   */
+  public TreeModel getModel()
+  {
+    return treeModel;
+  }
+
+  /**
+   * Sets the model to use in <code>JTree</object>.
+   *
+   * @param model the <code>TreeModel</code> to use
+   */
+  public void setModel(TreeModel model)
+  {
+    treeModel = model;
+  }
+
+  /**
+   * Checks if this <code>JTree</code> object is editable.
+   *
+   * @return <code>true</code> if this tree object is editable,
+   * <code>false</code> otherwise
+   */
+  public boolean isEditable()
+  {
+    return editable;
+  }
+
+  /**
+   * Sets the <code>editable</code> property.
+   *
+   * @param flag <code>true</code> to make this tree object editable,
+   * <code>false</code> otherwise
+   */
+  public void setEditable(boolean flag)
+  {
+    if (editable == flag)
+      return;
+
+    boolean oldValue = editable;
+    editable = flag;
+    firePropertyChange("editable", oldValue, editable);
+  }
+
+  /**
+   * Checks if the root element is visible.
+   *
+   * @return <code>true</code> if the root element is visible,
+   * <code>false</code> otherwise
+   */
+  public boolean isRootVisbile()
+  {
+    return rootVisible;
+  }
+
+  public void setRootVisible(boolean flag)
+  {
+    rootVisible = flag;
+  }
+
+  public boolean getShowsRootHandles()
+  {
+    return showsRootHandles;
+  }
+
+  public void setShowRootHandles(boolean flag)
+  {
+    showsRootHandles = flag;
+  }
+
+  public TreeCellRenderer getCellRenderer()
+  {
+    return cellRenderer;
+  }
+  
+  public void setCellRenderer(TreeCellRenderer newRenderer)
+  {
+    cellRenderer = newRenderer;
+  }
 }

--Boundary-00=_NHU/AKdOmA/v27f--

----
-------


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]