View Javadoc

1   /**********************************************
2    * Copyright (C) 2011 Lukas Laag
3    * This file is part of svgreal.
4    * 
5    * svgreal is free software: you can redistribute it and/or modify
6    * it under the terms of the GNU General Public License as published by
7    * the Free Software Foundation, either version 3 of the License, or
8    * (at your option) any later version.
9    * 
10   * svgreal is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   * GNU General Public License for more details.
14   * 
15   * You should have received a copy of the GNU General Public License
16   * along with svgreal.  If not, see http://www.gnu.org/licenses/
17   **********************************************/
18  package org.vectomatic.svg.edit.client.gxt.widget;
19  
20  import org.vectomatic.svg.edit.client.SVGWindow;
21  import org.vectomatic.svg.edit.client.SvgrealApp;
22  
23  import com.extjs.gxt.ui.client.data.ModelData;
24  import com.extjs.gxt.ui.client.widget.form.ComboBox;
25  import com.google.gwt.core.client.Scheduler;
26  import com.google.gwt.core.client.Scheduler.ScheduledCommand;
27  
28  /**
29   * Combo box class to make it easier for the end-user to cause the combo box to blur.
30   * @author laaglu
31   *
32   * @param <D>
33   */
34  public class BlurComboBox<D extends ModelData> extends ComboBox<D> {
35  	/**
36  	 * Forces blur on a combo box. This is necessary as the
37  	 * combo box by default keeps the focus after an element has
38  	 * been chosen.
39  	 */
40  	public void triggerBlur() {
41  		Scheduler.get().scheduleDeferred(new ScheduledCommand() {
42  			@Override
43  			public void execute() {
44  				triggerBlur(null);
45  				SVGWindow activeWindow = SvgrealApp.getApp().getActiveWindow();
46  				if (activeWindow != null) {
47  					activeWindow.focus();
48  				}
49  			}
50  		});
51  	}
52  }