1 /*
2  * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.  Oracle designates this
8  * particular file as subject to the "Classpath" exception as provided
9  * by Oracle in the LICENSE file that accompanied this code.
10  *
11  * This code is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * version 2 for more details (a copy is included in the LICENSE file that
15  * accompanied this code).
16  *
17  * You should have received a copy of the GNU General Public License version
18  * 2 along with this work; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22  * or visit www.oracle.com if you need additional information or have any
23  * questions.
24  */
25 
26 package java.awt;
27 
28 import java.awt.event.*;
29 
30 import java.lang.annotation.Native;
31 
32 /**
33  * The interface for objects which have an adjustable numeric value
34  * contained within a bounded range of values.
35  *
36  * @author Amy Fowler
37  * @author Tim Prinzing
38  */
39 public interface Adjustable {
40 
41     /**
42      * Indicates that the {@code Adjustable} has horizontal orientation.
43      */
44     @Native public static final int HORIZONTAL = 0;
45 
46     /**
47      * Indicates that the {@code Adjustable} has vertical orientation.
48      */
49     @Native public static final int VERTICAL = 1;
50 
51     /**
52      * Indicates that the {@code Adjustable} has no orientation.
53      */
54     @Native public static final int NO_ORIENTATION = 2;
55 
56     /**
57      * Gets the orientation of the adjustable object.
58      * @return the orientation of the adjustable object;
59      *   either {@code HORIZONTAL}, {@code VERTICAL},
60      *   or {@code NO_ORIENTATION}
61      */
getOrientation()62     int getOrientation();
63 
64     /**
65      * Sets the minimum value of the adjustable object.
66      * @param min the minimum value
67      */
setMinimum(int min)68     void setMinimum(int min);
69 
70     /**
71      * Gets the minimum value of the adjustable object.
72      * @return the minimum value of the adjustable object
73      */
getMinimum()74     int getMinimum();
75 
76     /**
77      * Sets the maximum value of the adjustable object.
78      * @param max the maximum value
79      */
setMaximum(int max)80     void setMaximum(int max);
81 
82     /**
83      * Gets the maximum value of the adjustable object.
84      * @return the maximum value of the adjustable object
85      */
getMaximum()86     int getMaximum();
87 
88     /**
89      * Sets the unit value increment for the adjustable object.
90      * @param u the unit increment
91      */
setUnitIncrement(int u)92     void setUnitIncrement(int u);
93 
94     /**
95      * Gets the unit value increment for the adjustable object.
96      * @return the unit value increment for the adjustable object
97      */
getUnitIncrement()98     int getUnitIncrement();
99 
100     /**
101      * Sets the block value increment for the adjustable object.
102      * @param b the block increment
103      */
setBlockIncrement(int b)104     void setBlockIncrement(int b);
105 
106     /**
107      * Gets the block value increment for the adjustable object.
108      * @return the block value increment for the adjustable object
109      */
getBlockIncrement()110     int getBlockIncrement();
111 
112     /**
113      * Sets the length of the proportional indicator of the
114      * adjustable object.
115      * @param v the length of the indicator
116      */
setVisibleAmount(int v)117     void setVisibleAmount(int v);
118 
119     /**
120      * Gets the length of the proportional indicator.
121      * @return the length of the proportional indicator
122      */
getVisibleAmount()123     int getVisibleAmount();
124 
125     /**
126      * Sets the current value of the adjustable object. If
127      * the value supplied is less than {@code minimum}
128      * or greater than {@code maximum} - {@code visibleAmount},
129      * then one of those values is substituted, as appropriate.
130      * <p>
131      * Calling this method does not fire an
132      * {@code AdjustmentEvent}.
133      *
134      * @param v the current value, between {@code minimum}
135      *    and {@code maximum} - {@code visibleAmount}
136      */
setValue(int v)137     void setValue(int v);
138 
139     /**
140      * Gets the current value of the adjustable object.
141      * @return the current value of the adjustable object
142      */
getValue()143     int getValue();
144 
145     /**
146      * Adds a listener to receive adjustment events when the value of
147      * the adjustable object changes.
148      * @param l the listener to receive events
149      * @see AdjustmentEvent
150      */
addAdjustmentListener(AdjustmentListener l)151     void addAdjustmentListener(AdjustmentListener l);
152 
153     /**
154      * Removes an adjustment listener.
155      * @param l the listener being removed
156      * @see AdjustmentEvent
157      */
removeAdjustmentListener(AdjustmentListener l)158     void removeAdjustmentListener(AdjustmentListener l);
159 
160 }
161