feat(jdk8): move files to new folder to avoid resources compiled.
This commit is contained in:
311
jdkSrc/jdk8/javax/swing/tree/TreeSelectionModel.java
Normal file
311
jdkSrc/jdk8/javax/swing/tree/TreeSelectionModel.java
Normal file
@@ -0,0 +1,311 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2013, 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.tree;
|
||||
|
||||
import javax.swing.event.*;
|
||||
import java.beans.PropertyChangeListener;
|
||||
|
||||
/**
|
||||
* This interface represents the current state of the selection for
|
||||
* the tree component.
|
||||
* For information and examples of using tree selection models,
|
||||
* see <a href="https://docs.oracle.com/javase/tutorial/uiswing/components/tree.html">How to Use Trees</a>
|
||||
* in <em>The Java Tutorial.</em>
|
||||
*
|
||||
* <p>
|
||||
* The state of the tree selection is characterized by
|
||||
* a set of TreePaths, and optionally a set of integers. The mapping
|
||||
* from TreePath to integer is done by way of an instance of RowMapper.
|
||||
* It is not necessary for a TreeSelectionModel to have a RowMapper to
|
||||
* correctly operate, but without a RowMapper <code>getSelectionRows</code>
|
||||
* will return null.
|
||||
*
|
||||
* <p>
|
||||
*
|
||||
* A TreeSelectionModel can be configured to allow only one
|
||||
* path (<code>SINGLE_TREE_SELECTION</code>) a number of
|
||||
* contiguous paths (<code>CONTIGUOUS_TREE_SELECTION</code>) or a number of
|
||||
* discontiguous paths (<code>DISCONTIGUOUS_TREE_SELECTION</code>).
|
||||
* A <code>RowMapper</code> is used to determine if TreePaths are
|
||||
* contiguous.
|
||||
* In the absence of a RowMapper <code>CONTIGUOUS_TREE_SELECTION</code> and
|
||||
* <code>DISCONTIGUOUS_TREE_SELECTION</code> behave the same, that is they
|
||||
* allow any number of paths to be contained in the TreeSelectionModel.
|
||||
*
|
||||
* <p>
|
||||
*
|
||||
* For a selection model of <code>CONTIGUOUS_TREE_SELECTION</code> any
|
||||
* time the paths are changed (<code>setSelectionPath</code>,
|
||||
* <code>addSelectionPath</code> ...) the TreePaths are again checked to
|
||||
* make they are contiguous. A check of the TreePaths can also be forced
|
||||
* by invoking <code>resetRowSelection</code>. How a set of discontiguous
|
||||
* TreePaths is mapped to a contiguous set is left to implementors of
|
||||
* this interface to enforce a particular policy.
|
||||
*
|
||||
* <p>
|
||||
*
|
||||
* Implementations should combine duplicate TreePaths that are
|
||||
* added to the selection. For example, the following code
|
||||
* <pre>
|
||||
* TreePath[] paths = new TreePath[] { treePath, treePath };
|
||||
* treeSelectionModel.setSelectionPaths(paths);
|
||||
* </pre>
|
||||
* should result in only one path being selected:
|
||||
* <code>treePath</code>, and
|
||||
* not two copies of <code>treePath</code>.
|
||||
*
|
||||
* <p>
|
||||
*
|
||||
* The lead TreePath is the last path that was added (or set). The lead
|
||||
* row is then the row that corresponds to the TreePath as determined
|
||||
* from the RowMapper.
|
||||
*
|
||||
* @author Scott Violet
|
||||
*/
|
||||
|
||||
public interface TreeSelectionModel
|
||||
{
|
||||
/** Selection can only contain one path at a time. */
|
||||
public static final int SINGLE_TREE_SELECTION = 1;
|
||||
|
||||
/** Selection can only be contiguous. This will only be enforced if
|
||||
* a RowMapper instance is provided. That is, if no RowMapper is set
|
||||
* this behaves the same as DISCONTIGUOUS_TREE_SELECTION. */
|
||||
public static final int CONTIGUOUS_TREE_SELECTION = 2;
|
||||
|
||||
/** Selection can contain any number of items that are not necessarily
|
||||
* contiguous. */
|
||||
public static final int DISCONTIGUOUS_TREE_SELECTION = 4;
|
||||
|
||||
/**
|
||||
* Sets the selection model, which must be one of SINGLE_TREE_SELECTION,
|
||||
* CONTIGUOUS_TREE_SELECTION or DISCONTIGUOUS_TREE_SELECTION.
|
||||
* <p>
|
||||
* This may change the selection if the current selection is not valid
|
||||
* for the new mode. For example, if three TreePaths are
|
||||
* selected when the mode is changed to <code>SINGLE_TREE_SELECTION</code>,
|
||||
* only one TreePath will remain selected. It is up to the particular
|
||||
* implementation to decide what TreePath remains selected.
|
||||
*/
|
||||
void setSelectionMode(int mode);
|
||||
|
||||
/**
|
||||
* Returns the current selection mode, one of
|
||||
* <code>SINGLE_TREE_SELECTION</code>,
|
||||
* <code>CONTIGUOUS_TREE_SELECTION</code> or
|
||||
* <code>DISCONTIGUOUS_TREE_SELECTION</code>.
|
||||
*/
|
||||
int getSelectionMode();
|
||||
|
||||
/**
|
||||
* Sets the selection to path. If this represents a change, then
|
||||
* the TreeSelectionListeners are notified. If <code>path</code> is
|
||||
* null, this has the same effect as invoking <code>clearSelection</code>.
|
||||
*
|
||||
* @param path new path to select
|
||||
*/
|
||||
void setSelectionPath(TreePath path);
|
||||
|
||||
/**
|
||||
* Sets the selection to path. If this represents a change, then
|
||||
* the TreeSelectionListeners are notified. If <code>paths</code> is
|
||||
* null, this has the same effect as invoking <code>clearSelection</code>.
|
||||
*
|
||||
* @param paths new selection
|
||||
*/
|
||||
void setSelectionPaths(TreePath[] paths);
|
||||
|
||||
/**
|
||||
* Adds path to the current selection. If path is not currently
|
||||
* in the selection the TreeSelectionListeners are notified. This has
|
||||
* no effect if <code>path</code> is null.
|
||||
*
|
||||
* @param path the new path to add to the current selection
|
||||
*/
|
||||
void addSelectionPath(TreePath path);
|
||||
|
||||
/**
|
||||
* Adds paths to the current selection. If any of the paths in
|
||||
* paths are not currently in the selection the TreeSelectionListeners
|
||||
* are notified. This has
|
||||
* no effect if <code>paths</code> is null.
|
||||
*
|
||||
* @param paths the new paths to add to the current selection
|
||||
*/
|
||||
void addSelectionPaths(TreePath[] paths);
|
||||
|
||||
/**
|
||||
* Removes path from the selection. If path is in the selection
|
||||
* The TreeSelectionListeners are notified. This has no effect if
|
||||
* <code>path</code> is null.
|
||||
*
|
||||
* @param path the path to remove from the selection
|
||||
*/
|
||||
void removeSelectionPath(TreePath path);
|
||||
|
||||
/**
|
||||
* Removes paths from the selection. If any of the paths in
|
||||
* <code>paths</code>
|
||||
* are in the selection, the TreeSelectionListeners are notified.
|
||||
* This method has no effect if <code>paths</code> is null.
|
||||
*
|
||||
* @param paths the path to remove from the selection
|
||||
*/
|
||||
void removeSelectionPaths(TreePath[] paths);
|
||||
|
||||
/**
|
||||
* Returns the first path in the selection. How first is defined is
|
||||
* up to implementors, and may not necessarily be the TreePath with
|
||||
* the smallest integer value as determined from the
|
||||
* <code>RowMapper</code>.
|
||||
*/
|
||||
TreePath getSelectionPath();
|
||||
|
||||
/**
|
||||
* Returns the paths in the selection. This will return null (or an
|
||||
* empty array) if nothing is currently selected.
|
||||
*/
|
||||
TreePath[] getSelectionPaths();
|
||||
|
||||
/**
|
||||
* Returns the number of paths that are selected.
|
||||
*/
|
||||
int getSelectionCount();
|
||||
|
||||
/**
|
||||
* Returns true if the path, <code>path</code>, is in the current
|
||||
* selection.
|
||||
*/
|
||||
boolean isPathSelected(TreePath path);
|
||||
|
||||
/**
|
||||
* Returns true if the selection is currently empty.
|
||||
*/
|
||||
boolean isSelectionEmpty();
|
||||
|
||||
/**
|
||||
* Empties the current selection. If this represents a change in the
|
||||
* current selection, the selection listeners are notified.
|
||||
*/
|
||||
void clearSelection();
|
||||
|
||||
/**
|
||||
* Sets the RowMapper instance. This instance is used to determine
|
||||
* the row for a particular TreePath.
|
||||
*/
|
||||
void setRowMapper(RowMapper newMapper);
|
||||
|
||||
/**
|
||||
* Returns the RowMapper instance that is able to map a TreePath to a
|
||||
* row.
|
||||
*/
|
||||
RowMapper getRowMapper();
|
||||
|
||||
/**
|
||||
* Returns all of the currently selected rows. This will return
|
||||
* null (or an empty array) if there are no selected TreePaths or
|
||||
* a RowMapper has not been set.
|
||||
*/
|
||||
int[] getSelectionRows();
|
||||
|
||||
/**
|
||||
* Returns the smallest value obtained from the RowMapper for the
|
||||
* current set of selected TreePaths. If nothing is selected,
|
||||
* or there is no RowMapper, this will return -1.
|
||||
*/
|
||||
int getMinSelectionRow();
|
||||
|
||||
/**
|
||||
* Returns the largest value obtained from the RowMapper for the
|
||||
* current set of selected TreePaths. If nothing is selected,
|
||||
* or there is no RowMapper, this will return -1.
|
||||
*/
|
||||
int getMaxSelectionRow();
|
||||
|
||||
/**
|
||||
* Returns true if the row identified by <code>row</code> is selected.
|
||||
*/
|
||||
boolean isRowSelected(int row);
|
||||
|
||||
/**
|
||||
* Updates this object's mapping from TreePaths to rows. This should
|
||||
* be invoked when the mapping from TreePaths to integers has changed
|
||||
* (for example, a node has been expanded).
|
||||
* <p>
|
||||
* You do not normally have to call this; JTree and its associated
|
||||
* listeners will invoke this for you. If you are implementing your own
|
||||
* view class, then you will have to invoke this.
|
||||
*/
|
||||
void resetRowSelection();
|
||||
|
||||
/**
|
||||
* Returns the lead selection index. That is the last index that was
|
||||
* added.
|
||||
*/
|
||||
int getLeadSelectionRow();
|
||||
|
||||
/**
|
||||
* Returns the last path that was added. This may differ from the
|
||||
* leadSelectionPath property maintained by the JTree.
|
||||
*/
|
||||
TreePath getLeadSelectionPath();
|
||||
|
||||
/**
|
||||
* Adds a PropertyChangeListener to the listener list.
|
||||
* The listener is registered for all properties.
|
||||
* <p>
|
||||
* A PropertyChangeEvent will get fired when the selection mode
|
||||
* changes.
|
||||
*
|
||||
* @param listener the PropertyChangeListener to be added
|
||||
*/
|
||||
void addPropertyChangeListener(PropertyChangeListener listener);
|
||||
|
||||
/**
|
||||
* Removes a PropertyChangeListener from the listener list.
|
||||
* This removes a PropertyChangeListener that was registered
|
||||
* for all properties.
|
||||
*
|
||||
* @param listener the PropertyChangeListener to be removed
|
||||
*/
|
||||
void removePropertyChangeListener(PropertyChangeListener listener);
|
||||
|
||||
/**
|
||||
* Adds x to the list of listeners that are notified each time the
|
||||
* set of selected TreePaths changes.
|
||||
*
|
||||
* @param x the new listener to be added
|
||||
*/
|
||||
void addTreeSelectionListener(TreeSelectionListener x);
|
||||
|
||||
/**
|
||||
* Removes x from the list of listeners that are notified each time
|
||||
* the set of selected TreePaths changes.
|
||||
*
|
||||
* @param x the listener to remove
|
||||
*/
|
||||
void removeTreeSelectionListener(TreeSelectionListener x);
|
||||
}
|
||||
Reference in New Issue
Block a user