2
* The contents of this file are subject to the terms of the Common Development
3
* and Distribution License (the License). You may not use this file except in
4
* compliance with the License.
6
* You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7
* or http://www.netbeans.org/cddl.txt.
9
* When distributing Covered Code, include this CDDL Header Notice in each file
10
* and include the License file at http://www.netbeans.org/cddl.txt.
11
* If applicable, add the following below the CDDL Header, with the fields
12
* enclosed by brackets [] replaced by your own identifying information:
13
* "Portions Copyrighted [year] [name of copyright owner]"
15
* The Original Software is NetBeans. The Initial Developer of the Original
16
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17
* Microsystems, Inc. All Rights Reserved.
21
import org.netbeans.api.visual.action.ActionFactory;
22
import org.netbeans.api.visual.action.TextFieldInplaceEditor;
23
import org.netbeans.api.visual.widget.LabelWidget;
24
import org.netbeans.api.visual.widget.Scene;
25
import org.netbeans.api.visual.widget.Widget;
26
import test.SceneSupport;
30
import java.awt.event.ActionListener;
31
import java.awt.event.ActionEvent;
34
* @author David Kaspar
36
public class RequestFocusTest {
38
public static void main (String[] args) {
39
JPanel panel = new JPanel ();
40
panel.setLayout (new BorderLayout ());
42
JToolBar toolbar = new JToolBar ();
43
panel.add (toolbar, BorderLayout.NORTH);
45
final JButton button = new JButton ("Press me while you are in in-place editing. The focus should be on the button.");
46
button.addActionListener (new ActionListener() {
47
public void actionPerformed (ActionEvent e) {
48
JOptionPane.showMessageDialog (button, "The actionPerformed method is called, so everything is ok.");
53
Scene scene = new Scene ();
55
LabelWidget label = new LabelWidget (scene, "Double-click on this label to invoke edit, then click on the icon in toolbar to trace the focus behaviour.");
56
label.getActions ().addAction (ActionFactory.createInplaceEditorAction (new TextFieldInplaceEditor() {
57
public boolean isEnabled (Widget widget) {
60
public String getText (Widget widget) {
61
return ((LabelWidget) widget).getLabel ();
63
public void setText (Widget widget, String text) {
64
((LabelWidget) widget).setLabel (text);
67
scene.addChild (label);
69
JComponent view = scene.createView ();
70
panel.add (view, BorderLayout.CENTER);
72
SceneSupport.showCore (panel);