Skip to main content
summaryrefslogtreecommitdiffstats
blob: 4b6d09a4c019a568e334127787ba74f38d62ef43 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/**********************************************************************
Copyright (c) 2000, 2003 IBM Corp. and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Common Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/cpl-v10.html

Contributors:
	IBM Corporation - Initial implementation
**********************************************************************/
package org.eclipse.jface.text;

/**
 * Extension interface to <code>IWidgetTokenKeeper</code>. Replaces the original
 * <code>requestWidgetToken</code> functionality with a new priority based approach.
 * Adds the concept of focus handling.
 * 
 * @since 3.0
 */
public interface IWidgetTokenKeeperExtension {
	
	/**
	 * The given widget token owner requests the widget token  from 
	 * this token keeper. Returns  <code>true</code> if the token is released
	 * by this token keeper. Note, the keeper must not call 
	 * <code>releaseWidgetToken(IWidgetTokenKeeper)</code> explicitly.
	 * 
	 * <p>The general contract is that the receiver should release the token
	 * if <code>priority</code> exceeds the receiver's priority.</p>
	 * 
	 * @param owner the token owner
	 * @param priority the priority of the request
	 * @return <code>true</code> if token has been released <code>false</code> otherwise
	 */
	boolean requestWidgetToken(IWidgetTokenOwner owner, int priority);
	
	/**
	 * Requests the receiver to give focus to its popup shell, hover, or similar. There is
	 * no assumption made whether the receiver actually succeeded in taking the focus. The return 
	 * value gives a hint whether the receiver tried to take focus.
	 * 
	 * @param owner the token owner
	 * @return <code>true</code> if the receiver tried to take focus, <code>false</code> if it did not.
	 */
	boolean setFocus(IWidgetTokenOwner owner);
}

Back to the top