1 /*
2 * Copyright (c) 2011, 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
118
119 @Override
120 public void select(final int index) {
121 synchronized (getDelegateLock()) {
122 if (index != getDelegate().getSelectedIndex()) {
123 skipPostMessage = true;
124 getDelegate().setSelectedIndex(index);
125 skipPostMessage = false;
126 }
127 }
128 }
129
130 @Override
131 public boolean isFocusable() {
132 return true;
133 }
134
135 @SuppressWarnings("serial")// Safe: outer class is non-serializable.
136 private final class JComboBoxDelegate extends JComboBox<String> {
137
138 // Empty non private constructor was added because access to this
139 // class shouldn't be emulated by a synthetic accessor method.
140 JComboBoxDelegate() {
141 super();
142 }
143
144 @Override
145 public boolean hasFocus() {
146 return getTarget().hasFocus();
147 }
148
149 //Needed for proper popup menu location
150 @Override
151 public Point getLocationOnScreen() {
152 return LWChoicePeer.this.getLocationOnScreen();
153 }
154
155 /**
156 * We should post ITEM_STATE_CHANGED event when the same element is
157 * reselected.
158 */
159 @Override
160 public void setSelectedItem(final Object anObject) {
161 final Object oldSelection = selectedItemReminder;
162 if (oldSelection != null && oldSelection.equals(anObject)) {
163 selectedItemChanged();
|
1 /*
2 * Copyright (c) 2011, 2018, 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
118
119 @Override
120 public void select(final int index) {
121 synchronized (getDelegateLock()) {
122 if (index != getDelegate().getSelectedIndex()) {
123 skipPostMessage = true;
124 getDelegate().setSelectedIndex(index);
125 skipPostMessage = false;
126 }
127 }
128 }
129
130 @Override
131 public boolean isFocusable() {
132 return true;
133 }
134
135 @SuppressWarnings("serial")// Safe: outer class is non-serializable.
136 private final class JComboBoxDelegate extends JComboBox<String> {
137
138 @Override
139 public boolean hasFocus() {
140 return getTarget().hasFocus();
141 }
142
143 //Needed for proper popup menu location
144 @Override
145 public Point getLocationOnScreen() {
146 return LWChoicePeer.this.getLocationOnScreen();
147 }
148
149 /**
150 * We should post ITEM_STATE_CHANGED event when the same element is
151 * reselected.
152 */
153 @Override
154 public void setSelectedItem(final Object anObject) {
155 final Object oldSelection = selectedItemReminder;
156 if (oldSelection != null && oldSelection.equals(anObject)) {
157 selectedItemChanged();
|