View Javadoc

1   /*
2    * Copyright 2006-2025 The JGUIraffe Team.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License")
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package net.sf.jguiraffe.gui.platform.swing.builder.event;
17  
18  import java.awt.event.FocusEvent;
19  import java.awt.event.FocusListener;
20  
21  import net.sf.jguiraffe.gui.builder.event.FormEventManager;
22  import net.sf.jguiraffe.gui.builder.event.FormFocusEvent;
23  import net.sf.jguiraffe.gui.builder.event.FormFocusListener;
24  import net.sf.jguiraffe.gui.builder.event.FormListenerType;
25  import net.sf.jguiraffe.gui.forms.ComponentHandler;
26  
27  /**
28   * <p>
29   * A specific event adapter for Swing focus events.
30   * </p>
31   *
32   * @author Oliver Heger
33   * @version $Id: FocusEventAdapter.java 205 2012-01-29 18:29:57Z oheger $
34   */
35  class FocusEventAdapter extends SwingEventAdapter implements FocusListener
36  {
37      /**
38       * Creates a new instance of {@code FocusEventAdapter} that passes received
39       * events to a {@code FormEventManager}.
40       *
41       * @param eventManager the {@code FormEventManager} (must not be
42       *        <b>null</b>)
43       * @param handler the component handler
44       * @param name the component's name
45       * @throws IllegalArgumentException if the {@code FormEventManager} is
46       *         <b>null</b>
47       */
48      public FocusEventAdapter(FormEventManager eventManager,
49              ComponentHandler<?> handler, String name)
50      {
51          super(eventManager, handler, name);
52      }
53  
54      /**
55       * Creates a new instance of {@code FocusEventAdapter} that passes received
56       * events to a {@code FormFocusListener}.
57       *
58       * @param listener the {@code FormFocusListener} (must not be <b>null</b>)
59       * @param handler the component handler
60       * @param name the component's name
61       * @throws IllegalArgumentException if the {@code FormFocusListener} is
62       *         <b>null</b>
63       */
64      public FocusEventAdapter(FormFocusListener listener,
65              ComponentHandler<?> handler, String name)
66      {
67          super(listener, handler, name);
68      }
69  
70      /**
71       * Call back for focus gained events.
72       *
73       * @param event the event
74       */
75      public void focusGained(FocusEvent event)
76      {
77          fireFocusEvent(event, FormFocusEvent.Type.FOCUS_GAINED);
78      }
79  
80      /**
81       * Call back for focus lost events.
82       *
83       * @param event the event
84       */
85      public void focusLost(FocusEvent event)
86      {
87          fireFocusEvent(event, FormFocusEvent.Type.FOCUS_LOST);
88      }
89  
90      /**
91       * Sends a focus event to the event manager. The form event is created from
92       * the passed in focus event.
93       *
94       * @param event the Swing focus event
95       * @param type the event type
96       */
97      protected void fireFocusEvent(FocusEvent event, FormFocusEvent.Type type)
98      {
99          fireEvent(createFocusEvent(event, type));
100     }
101 
102     /**
103      * Creates a general form focus event from the passed in Swing focus event.
104      *
105      * @param event the original event
106      * @param type the event type
107      * @return the form event
108      */
109     protected FormFocusEvent createFocusEvent(FocusEvent event,
110             FormFocusEvent.Type type)
111     {
112         return new FormFocusEvent(event, getHandler(), getName(), type);
113     }
114 
115     /**
116      * Returns the form listener type for this adapter.
117      *
118      * @return the listener type
119      */
120     @Override
121     protected FormListenerType getListenerType()
122     {
123         return FormListenerType.FOCUS;
124     }
125 }