Mercurial > projects > dwt-addons
annotate dwtx/core/commands/contexts/ContextEvent.d @ 3:6518c18a01f7
eclipse.core package without osgi dependencies
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 26 Mar 2008 00:57:19 +0100 |
parents | |
children |
rev | line source |
---|---|
3
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1 /******************************************************************************* |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2 * Copyright (c) 2004, 2006 IBM Corporation and others. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3 * All rights reserved. This program and the accompanying materials |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4 * are made available under the terms of the Eclipse Public License v1.0 |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5 * which accompanies this distribution, and is available at |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6 * http://www.eclipse.org/legal/epl-v10.html |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7 * |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
8 * Contributors: |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
9 * IBM Corporation - initial API and implementation |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
10 * Port to the D programming language: |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
11 * Frank Benoit <benoit@tionex.de> |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
12 *******************************************************************************/ |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
13 |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
14 module dwtx.core.commands.contexts.ContextEvent; |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
15 |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
16 import dwtx.core.commands.contexts.Context; |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
17 import dwtx.core.commands.common.AbstractNamedHandleEvent; |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
18 import dwt.dwthelper.utils; |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
19 |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
20 /** |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
21 * An instance of this class describes changes to an instance of |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
22 * <code>IContext</code>. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
23 * <p> |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
24 * This class is not intended to be extended by clients. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
25 * </p> |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
26 * |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
27 * @since 3.1 |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
28 * @see IContextListener#contextChanged(ContextEvent) |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
29 */ |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
30 public final class ContextEvent : AbstractNamedHandleEvent { |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
31 |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
32 /** |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
33 * The bit used to represent whether the context has changed its parent. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
34 */ |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
35 private static const int CHANGED_PARENT_ID = LAST_USED_BIT << 1; |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
36 |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
37 /** |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
38 * The context that has changed. This value is never <code>null</code>. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
39 */ |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
40 private Context context; |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
41 |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
42 /** |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
43 * Creates a new instance of this class. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
44 * |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
45 * @param context |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
46 * the instance of the interface that changed; must not be |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
47 * <code>null</code>. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
48 * @param definedChanged |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
49 * <code>true</code>, iff the defined property changed. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
50 * @param nameChanged |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
51 * <code>true</code>, iff the name property changed. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
52 * @param descriptionChanged |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
53 * <code>true</code>, iff the description property changed. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
54 * @param parentIdChanged |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
55 * <code>true</code>, iff the parentId property changed. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
56 */ |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
57 public this(Context context, bool definedChanged, |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
58 bool nameChanged, bool descriptionChanged, |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
59 bool parentIdChanged) { |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
60 super(definedChanged, descriptionChanged, nameChanged); |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
61 |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
62 if (context is null) { |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
63 throw new NullPointerException(); |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
64 } |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
65 this.context = context; |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
66 |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
67 if (parentIdChanged) { |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
68 changedValues |= CHANGED_PARENT_ID; |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
69 } |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
70 } |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
71 |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
72 /** |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
73 * Returns the instance of the interface that changed. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
74 * |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
75 * @return the instance of the interface that changed. Guaranteed not to be |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
76 * <code>null</code>. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
77 */ |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
78 public final Context getContext() { |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
79 return context; |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
80 } |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
81 |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
82 /** |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
83 * Returns whether or not the parentId property changed. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
84 * |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
85 * @return <code>true</code>, iff the parentId property changed. |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
86 */ |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
87 public final bool isParentIdChanged() { |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
88 return ((changedValues & CHANGED_PARENT_ID) !is 0); |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
89 } |
6518c18a01f7
eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
90 } |