001 /*
002 * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
003 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004 *
005 * This code is free software; you can redistribute it and/or modify it
006 * under the terms of the GNU General Public License version 2 only, as
007 * published by the Free Software Foundation. Sun designates this
008 * particular file as subject to the "Classpath" exception as provided
009 * by Sun in the LICENSE file that accompanied this code.
010 *
011 * This code is distributed in the hope that it will be useful, but WITHOUT
012 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
013 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
014 * version 2 for more details (a copy is included in the LICENSE file that
015 * accompanied this code).
016 *
017 * You should have received a copy of the GNU General Public License version
018 * 2 along with this work; if not, write to the Free Software Foundation,
019 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
020 *
021 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
022 * CA 95054 USA or visit www.sun.com if you need additional information or
023 * have any questions.
024 */
025 package javax.swing;
026
027 /**
028 * Drop modes, used to determine the method by which a component
029 * tracks and indicates a drop location during drag and drop.
030 *
031 * @author Shannon Hickey
032 * @version 1.8 05/05/07
033 * @see JTable#setDropMode
034 * @see JList#setDropMode
035 * @see JTree#setDropMode
036 * @see javax.swing.text.JTextComponent#setDropMode
037 * @since 1.6
038 */
039 public enum DropMode {
040
041 /**
042 * A component's own internal selection mechanism (or caret for text
043 * components) should be used to track the drop location.
044 */
045 USE_SELECTION,
046
047 /**
048 * The drop location should be tracked in terms of the index of
049 * existing items. Useful for dropping on items in tables, lists,
050 * and trees.
051 */
052 ON,
053
054 /**
055 * The drop location should be tracked in terms of the position
056 * where new data should be inserted. For components that manage
057 * a list of items (list and tree for example), the drop location
058 * should indicate the index where new data should be inserted.
059 * For text components the location should represent a position
060 * between characters. For components that manage tabular data
061 * (table for example), the drop location should indicate
062 * where to insert new rows, columns, or both, to accommodate
063 * the dropped data.
064 */
065 INSERT,
066
067 /**
068 * The drop location should be tracked in terms of the row index
069 * where new rows should be inserted to accommodate the dropped
070 * data. This is useful for components that manage tabular data.
071 */
072 INSERT_ROWS,
073
074 /**
075 * The drop location should be tracked in terms of the column index
076 * where new columns should be inserted to accommodate the dropped
077 * data. This is useful for components that manage tabular data.
078 */
079 INSERT_COLS,
080
081 /**
082 * This mode is a combination of <code>ON</code>
083 * and <code>INSERT</code>, specifying that data can be
084 * dropped on existing items, or in insert locations
085 * as specified by <code>INSERT</code>.
086 */
087 ON_OR_INSERT,
088
089 /**
090 * This mode is a combination of <code>ON</code>
091 * and <code>INSERT_ROWS</code>, specifying that data can be
092 * dropped on existing items, or as insert rows
093 * as specified by <code>INSERT_ROWS</code>.
094 */
095 ON_OR_INSERT_ROWS,
096
097 /**
098 * This mode is a combination of <code>ON</code>
099 * and <code>INSERT_COLS</code>, specifying that data can be
100 * dropped on existing items, or as insert columns
101 * as specified by <code>INSERT_COLS</code>.
102 */
103 ON_OR_INSERT_COLS
104 }
|