01: /*******************************************************************************
02: * Copyright (c) 2000, 2005 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.ui.contexts;
11:
12: import java.util.SortedSet;
13:
14: /**
15: * <p>
16: * A context manager tracks the sets of defined and enabled contexts within the
17: * application. The manager sends notification events to listeners when these
18: * sets change. It is also possible to retrieve any given context with its
19: * identifier.
20: * </p>
21: * <p>
22: * This interface is not intended to be extended or implemented by clients.
23: * </p>
24: *
25: * @since 3.0
26: * @deprecated Please use the "org.eclipse.core.commands" plug-in instead.
27: * @see org.eclipse.core.commands.contexts.ContextManager
28: */
29: public interface IContextManager {
30:
31: /**
32: * Registers an instance of <code>IContextManagerListener</code> to listen
33: * for changes to properties of this instance.
34: *
35: * @param contextManagerListener
36: * the instance to register. Must not be <code>null</code>. If
37: * an attempt is made to register an instance which is already
38: * registered with this instance, no operation is performed.
39: */
40: void addContextManagerListener(
41: IContextManagerListener contextManagerListener);
42:
43: /**
44: * Returns an instance of <code>IContext</code> given an identifier.
45: *
46: * @param contextId
47: * an identifier. Must not be <code>null</code>
48: * @return an instance of <code>IContext</code>.
49: */
50: IContext getContext(String contextId);
51:
52: /**
53: * Returns the set of identifiers to defined contexts. The set is sorted by
54: * the depth of the context within the tree of contexts. So, for example,
55: * a child context will always appear before its parent.
56: * <p>
57: * Notification is sent to all registered listeners if this property
58: * changes.
59: * </p>
60: *
61: * @return the set of identifiers to defined contexts. This set may be
62: * empty, but is guaranteed not to be <code>null</code>. If this
63: * set is not empty, it is guaranteed to only contain instances of
64: * <code>String</code>.
65: */
66: SortedSet getDefinedContextIds();
67:
68: /**
69: * Returns the set of identifiers to enabled contexts. The set is sorted by
70: * the depth of the context within the tree of contexts. So, for example,
71: * a child context will always appear before its parent.
72: * <p>
73: * Notification is sent to all registered listeners if this property
74: * changes.
75: * </p>
76: *
77: * @return the set of identifiers to enabled contexts. This set may be
78: * empty, but is guaranteed not to be <code>null</code>. If this
79: * set is not empty, it is guaranteed to only contain instances of
80: * <code>String</code>.
81: */
82: SortedSet getEnabledContextIds();
83:
84: /**
85: * Unregisters an instance of <code>IContextManagerListener</code>
86: * listening for changes to properties of this instance.
87: *
88: * @param contextManagerListener
89: * the instance to unregister. Must not be <code>null</code>.
90: * If an attempt is made to unregister an instance which is not
91: * already registered with this instance, no operation is
92: * performed.
93: */
94: void removeContextManagerListener(
95: IContextManagerListener contextManagerListener);
96: }
|