All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.modules.java.desktop.classes.javax.swing.table.TableColumnModel Maven / Gradle / Ivy

There is a newer version: 2024-05-10
Show newest version
/*
 * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package javax.swing.table;

import java.util.Enumeration;
import javax.swing.event.ChangeEvent;
import javax.swing.event.*;
import javax.swing.*;


/**
 * Defines the requirements for a table column model object suitable for
 * use with JTable.
 *
 * @author Alan Chung
 * @author Philip Milne
 * @see DefaultTableColumnModel
 */
public interface TableColumnModel
{
//
// Modifying the model
//

    /**
     *  Appends aColumn to the end of the
     *  tableColumns array.
     *  This method posts a columnAdded
     *  event to its listeners.
     *
     * @param   aColumn         the TableColumn to be added
     * @see     #removeColumn
     */
    public void addColumn(TableColumn aColumn);

    /**
     *  Deletes the TableColumn column from the
     *  tableColumns array.  This method will do nothing if
     *  column is not in the table's column list.
     *  This method posts a columnRemoved
     *  event to its listeners.
     *
     * @param   column          the TableColumn to be removed
     * @see     #addColumn
     */
    public void removeColumn(TableColumn column);

    /**
     * Moves the column and its header at columnIndex to
     * newIndex.  The old column at columnIndex
     * will now be found at newIndex.  The column that used
     * to be at newIndex is shifted left or right
     * to make room.  This will not move any columns if
     * columnIndex equals newIndex.  This method
     * posts a columnMoved event to its listeners.
     *
     * @param   columnIndex                     the index of column to be moved
     * @param   newIndex                        index of the column's new location
     * @exception IllegalArgumentException      if columnIndex or
     *                                          newIndex
     *                                          are not in the valid range
     */
    public void moveColumn(int columnIndex, int newIndex);

    /**
     * Sets the TableColumn's column margin to
     * newMargin.  This method posts
     * a columnMarginChanged event to its listeners.
     *
     * @param   newMargin       the width, in pixels, of the new column margins
     * @see     #getColumnMargin
     */
    public void setColumnMargin(int newMargin);

//
// Querying the model
//

    /**
     * Returns the number of columns in the model.
     * @return the number of columns in the model
     */
    public int getColumnCount();

    /**
     * Returns an Enumeration of all the columns in the model.
     * @return an Enumeration of all the columns in the model
     */
    public Enumeration getColumns();

    /**
     * Returns the index of the first column in the table
     * whose identifier is equal to identifier,
     * when compared using equals.
     *
     * @param           columnIdentifier        the identifier object
     * @return          the index of the first table column
     *                  whose identifier is equal to identifier
     * @exception IllegalArgumentException      if identifier
     *                          is null, or no
     *                          TableColumn has this
     *                          identifier
     * @see             #getColumn
     */
    public int getColumnIndex(Object columnIdentifier);

    /**
     * Returns the TableColumn object for the column at
     * columnIndex.
     *
     * @param   columnIndex     the index of the desired column
     * @return  the TableColumn object for
     *                          the column at columnIndex
     */
    public TableColumn getColumn(int columnIndex);

    /**
     * Returns the width between the cells in each column.
     * @return the margin, in pixels, between the cells
     */
    public int getColumnMargin();

    /**
     * Returns the index of the column that lies on the
     * horizontal point, xPosition;
     * or -1 if it lies outside the any of the column's bounds.
     *
     * In keeping with Swing's separable model architecture, a
     * TableColumnModel does not know how the table columns actually appear on
     * screen.  The visual presentation of the columns is the responsibility
     * of the view/controller object using this model (typically JTable).  The
     * view/controller need not display the columns sequentially from left to
     * right.  For example, columns could be displayed from right to left to
     * accommodate a locale preference or some columns might be hidden at the
     * request of the user.  Because the model does not know how the columns
     * are laid out on screen, the given xPosition should not be
     * considered to be a coordinate in 2D graphics space.  Instead, it should
     * be considered to be a width from the start of the first column in the
     * model.  If the column index for a given X coordinate in 2D space is
     * required, JTable.columnAtPoint can be used instead.
     *
     * @param xPosition  width from the start of the first column in
     * the model.
     *
     * @return  the index of the column; or -1 if no column is found
     * @see javax.swing.JTable#columnAtPoint
     */
    public int getColumnIndexAtX(int xPosition);

    /**
     * Returns the total width of all the columns.
     * @return the total computed width of all columns
     */
    public int getTotalColumnWidth();

//
// Selection
//

    /**
     * Sets whether the columns in this model may be selected.
     * @param flag   true if columns may be selected; otherwise false
     * @see #getColumnSelectionAllowed
     */
    public void setColumnSelectionAllowed(boolean flag);

    /**
     * Returns true if columns may be selected.
     * @return true if columns may be selected
     * @see #setColumnSelectionAllowed
     */
    public boolean getColumnSelectionAllowed();

    /**
     * Returns an array of indicies of all selected columns.
     * @return an array of integers containing the indicies of all
     *          selected columns; or an empty array if nothing is selected
     */
    public int[] getSelectedColumns();

    /**
     * Returns the number of selected columns.
     *
     * @return the number of selected columns; or 0 if no columns are selected
     */
    public int getSelectedColumnCount();

    /**
     * Sets the selection model.
     *
     * @param newModel  a ListSelectionModel object
     * @see #getSelectionModel
     */
    public void setSelectionModel(ListSelectionModel newModel);

    /**
     * Returns the current selection model.
     *
     * @return a ListSelectionModel object
     * @see #setSelectionModel
     */
    public ListSelectionModel getSelectionModel();

//
// Listener
//

    /**
     * Adds a listener for table column model events.
     *
     * @param x  a TableColumnModelListener object
     */
    public void addColumnModelListener(TableColumnModelListener x);

    /**
     * Removes a listener for table column model events.
     *
     * @param x  a TableColumnModelListener object
     */
    public void removeColumnModelListener(TableColumnModelListener x);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy