⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tableview.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     *     * @deprecated Table cells are now rendered by an arbitrary     *             <code>View</code> implementation.     */    public int getRowCount()    {      // TODO: Figure out if this is right. However, this is not so important      // since this class isn't used anyway (except maybe be application code      // that still uses this deprecated class).      return 1;    }    /**     * Sets the grid location of this table cell.     *     * @param r the row of this cell     * @param c the column of this cell     *     * @deprecated Table cells are now rendered by an arbitrary     *             <code>View</code> implementation.     */    public void setGridLocation(int r, int c)    {      row = r;      column = c;    }    /**     * Returns the row number of this cell.     *     * @return the row number of this cell     *     * @deprecated Table cells are now rendered by an arbitrary     *             <code>View</code> implementation.     */    public int getGridRow()    {      return row;    }    /**     * Returns the column number of this cell.     *     * @return the column number of this cell     *     * @deprecated Table cells are now rendered by an arbitrary     *             <code>View</code> implementation.     */    public int getGridColumn()    {      return column;    }  }  /**   * The offsets of the columns of this table. Package private to avoid   * synthetic accessor methods.   */  int[] columnOffsets;  /**   * The spans of the columns of this table. Package private to avoid   * synthetic accessor methods.   */  int[] columnSpans;  /**   * The size requirements of the columns.   */  SizeRequirements[] columnRequirements = new SizeRequirements[0];  /**   * Creates a new instance of <code>TableView</code>.   *   * @param el the element for which to create a table view   */  public TableView(Element el)  {    super(el, Y_AXIS);  }  /**   * Replaces a number of child views with a set of new child views. This is   * implemented to call the superclass behaviour and invalidate the layout.   *   * @param offset the offset at which to replace child views   * @param length the number of child views to remove   * @param views the new set of views   */  public void replace(int offset, int length, View[] views)  {    super.replace(offset, length, views);    layoutChanged(Y_AXIS);  }  /**   * Creates a view for a table row.   *   * @param el the element that represents the table row   *   * @return a view for rendering the table row   */  protected TableRow createTableRow(Element el)  {    return new TableRow(el);  }  /**   * Creates a view for a table cell. This method is deprecated and not used   * anymore.   *   * @param el the element that represents the table cell   *   * @return a view for rendering the table cell   *   * @deprecated Table cells are now rendered by an arbitrary   *             <code>View</code> implementation.   */  protected TableCell createTableCell(Element el)  {    return new TableCell(el);  }  protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e,                               Shape a, ViewFactory vf)  {    // TODO: Figure out what to do here.  }  /**   * Lays out the columns to fit within the specified target span.   *   * @param targetSpan the total span for the columns   * @param offsets an array that holds the offsets of the columns when this   *        method returns   * @param spans an array that holds the spans of the columns when this method   *        returns   * @param reqs the size requirements for each column   */  protected void layoutColumns(int targetSpan, int[] offsets, int spans[],                               SizeRequirements[] reqs)  {    updateColumnRequirements();    SizeRequirements r = calculateMinorAxisRequirements(X_AXIS, null);    SizeRequirements.calculateTiledPositions(targetSpan, r, columnRequirements,                                             offsets, spans);  }  /**   * Lays out the child views along the minor axis of the table (that is the   * horizontal axis). This is implemented to call {@link #layoutColumns} to   * layout the column layout of this table, and then forward to the superclass   * to actually lay out the rows.   *   * @param targetSpan the available span along the minor (horizontal) axis   * @param axis the axis   * @param offsets an array that holds the offsets of the columns when this   *        method returns   * @param spans an array that holds the spans of the columns when this method   *        returns   */  protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets,                                 int[] spans)  {    // TODO: Prepare size requirements for the columns.    layoutColumns(targetSpan, columnOffsets, columnSpans, columnRequirements);    super.layoutMinorAxis(targetSpan, axis, offsets, spans);  }  /**   * Calculates the requirements of this view for the minor (== horizontal)   * axis.   *    * This is reimplemented to calculate the requirements as the sum of the   * size requirements of the columns.   *   * @param axis the axis   * @param req the size requirements object to use, if <code>null</code> a new   *        one will be created   */  protected SizeRequirements calculateMinorAxisRequirements(int axis,                                                            SizeRequirements req)  {    // TODO: Maybe prepare columnRequirements.    SizeRequirements res = req;    if (res == null)      res = new SizeRequirements();    else      {        res.alignment = 0.5f;        res.maximum = 0;        res.minimum = 0;        res.preferred = 0;      }    for (int i = 0; i < columnRequirements.length; ++i)      {        res.minimum += columnRequirements[i].minimum;        res.preferred += columnRequirements[i].preferred;        res.maximum += columnRequirements[i].maximum;        // TODO: Do we have to handle alignment somehow?      }    return res;  }  /**   * Returns the child view that represents the specified position in the   * model. This is reimplemented because in this view we do not necessarily   * have a one to one mapping of child elements to child views.   *   * @param pos the model position for which to query the view   * @param a the allocation of this view   *   * @return the view that corresponds to the specified model position or   *         <code>null</code> if there is none   */  protected View getViewAtPosition(int pos, Rectangle a)  {    // FIXME: Do not call super here. Instead walk through the child views    // and look for a range that contains the given position.    return super.getViewAtPosition(pos, a);  }  /**   * Updates the column requirements.   */  private void updateColumnRequirements()  {    int rowCount = getViewCount();    for (int r = 0; r < rowCount; ++r)      {        TableRow row = (TableRow) getView(r);        int columnCount = row.getViewCount();        for (int c = 0; c < columnCount; ++c)          {            View cell = row.getView(c);            SizeRequirements cr = columnRequirements[c];            cr.minimum = Math.max(cr.minimum, (int) cell.getMinimumSpan(X_AXIS));            cr.preferred = Math.max(cr.preferred,                                    (int) cell.getPreferredSpan(X_AXIS));            cr.maximum = Math.max(cr.maximum, (int) cell.getMaximumSpan(X_AXIS));          }      }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -