Mercurial > projects > dwt-addons
annotate dwtx/jface/text/source/AnnotationMap.d @ 133:7d818bd32d63
Fix ctors to this with gvim regexp
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 24 Aug 2008 01:29:22 +0200 |
parents | c4fb132a086c |
children | 02cd5f1224d3 |
rev | line source |
---|---|
129 | 1 /******************************************************************************* |
2 * Copyright (c) 2000, 2006 IBM Corporation and others. | |
3 * All rights reserved. This program and the accompanying materials | |
4 * are made available under the terms of the Eclipse Public License v1.0 | |
5 * which accompanies this distribution, and is available at | |
6 * http://www.eclipse.org/legal/epl-v10.html | |
7 * | |
8 * Contributors: | |
9 * IBM Corporation - initial API and implementation | |
10 * Port to the D programming language: | |
11 * Frank Benoit <benoit@tionex.de> | |
12 *******************************************************************************/ | |
13 module dwtx.jface.text.source.AnnotationMap; | |
14 | |
131 | 15 import dwtx.jface.text.source.ISharedTextColors; // packageimport |
16 import dwtx.jface.text.source.ILineRange; // packageimport | |
17 import dwtx.jface.text.source.IAnnotationPresentation; // packageimport | |
18 import dwtx.jface.text.source.IVerticalRulerInfoExtension; // packageimport | |
19 import dwtx.jface.text.source.ICharacterPairMatcher; // packageimport | |
20 import dwtx.jface.text.source.TextInvocationContext; // packageimport | |
21 import dwtx.jface.text.source.LineChangeHover; // packageimport | |
22 import dwtx.jface.text.source.IChangeRulerColumn; // packageimport | |
23 import dwtx.jface.text.source.IAnnotationMap; // packageimport | |
24 import dwtx.jface.text.source.IAnnotationModelListenerExtension; // packageimport | |
25 import dwtx.jface.text.source.ISourceViewerExtension2; // packageimport | |
26 import dwtx.jface.text.source.IAnnotationHover; // packageimport | |
27 import dwtx.jface.text.source.ContentAssistantFacade; // packageimport | |
28 import dwtx.jface.text.source.IAnnotationAccess; // packageimport | |
29 import dwtx.jface.text.source.IVerticalRulerExtension; // packageimport | |
30 import dwtx.jface.text.source.IVerticalRulerColumn; // packageimport | |
31 import dwtx.jface.text.source.LineNumberRulerColumn; // packageimport | |
32 import dwtx.jface.text.source.MatchingCharacterPainter; // packageimport | |
33 import dwtx.jface.text.source.IAnnotationModelExtension; // packageimport | |
34 import dwtx.jface.text.source.ILineDifferExtension; // packageimport | |
35 import dwtx.jface.text.source.DefaultCharacterPairMatcher; // packageimport | |
36 import dwtx.jface.text.source.LineNumberChangeRulerColumn; // packageimport | |
37 import dwtx.jface.text.source.IAnnotationAccessExtension; // packageimport | |
38 import dwtx.jface.text.source.ISourceViewer; // packageimport | |
39 import dwtx.jface.text.source.AnnotationModel; // packageimport | |
40 import dwtx.jface.text.source.ILineDifferExtension2; // packageimport | |
41 import dwtx.jface.text.source.IAnnotationModelListener; // packageimport | |
42 import dwtx.jface.text.source.IVerticalRuler; // packageimport | |
43 import dwtx.jface.text.source.DefaultAnnotationHover; // packageimport | |
44 import dwtx.jface.text.source.SourceViewer; // packageimport | |
45 import dwtx.jface.text.source.SourceViewerConfiguration; // packageimport | |
46 import dwtx.jface.text.source.AnnotationBarHoverManager; // packageimport | |
47 import dwtx.jface.text.source.CompositeRuler; // packageimport | |
48 import dwtx.jface.text.source.ImageUtilities; // packageimport | |
49 import dwtx.jface.text.source.VisualAnnotationModel; // packageimport | |
50 import dwtx.jface.text.source.IAnnotationModel; // packageimport | |
51 import dwtx.jface.text.source.ISourceViewerExtension3; // packageimport | |
52 import dwtx.jface.text.source.ILineDiffInfo; // packageimport | |
53 import dwtx.jface.text.source.VerticalRulerEvent; // packageimport | |
54 import dwtx.jface.text.source.ChangeRulerColumn; // packageimport | |
55 import dwtx.jface.text.source.ILineDiffer; // packageimport | |
56 import dwtx.jface.text.source.AnnotationModelEvent; // packageimport | |
57 import dwtx.jface.text.source.AnnotationColumn; // packageimport | |
58 import dwtx.jface.text.source.AnnotationRulerColumn; // packageimport | |
59 import dwtx.jface.text.source.IAnnotationHoverExtension; // packageimport | |
60 import dwtx.jface.text.source.AbstractRulerColumn; // packageimport | |
61 import dwtx.jface.text.source.ISourceViewerExtension; // packageimport | |
62 import dwtx.jface.text.source.IVerticalRulerInfo; // packageimport | |
63 import dwtx.jface.text.source.IAnnotationModelExtension2; // packageimport | |
64 import dwtx.jface.text.source.LineRange; // packageimport | |
65 import dwtx.jface.text.source.IAnnotationAccessExtension2; // packageimport | |
66 import dwtx.jface.text.source.VerticalRuler; // packageimport | |
67 import dwtx.jface.text.source.JFaceTextMessages; // packageimport | |
68 import dwtx.jface.text.source.IOverviewRuler; // packageimport | |
69 import dwtx.jface.text.source.Annotation; // packageimport | |
70 import dwtx.jface.text.source.IVerticalRulerListener; // packageimport | |
71 import dwtx.jface.text.source.ISourceViewerExtension4; // packageimport | |
72 import dwtx.jface.text.source.AnnotationPainter; // packageimport | |
73 import dwtx.jface.text.source.IAnnotationHoverExtension2; // packageimport | |
74 import dwtx.jface.text.source.OverviewRuler; // packageimport | |
75 import dwtx.jface.text.source.OverviewRulerHoverManager; // packageimport | |
76 | |
77 | |
129 | 78 import dwt.dwthelper.utils; |
79 | |
80 | |
81 import java.util.ArrayList; | |
82 import java.util.Collection; | |
83 import java.util.HashMap; | |
84 import java.util.Iterator; | |
85 import java.util.Map; | |
86 import java.util.Set; | |
87 | |
88 | |
89 /** | |
90 * Internal implementation of {@link dwtx.jface.text.source.IAnnotationMap}. | |
91 * | |
92 * @since 3.0 | |
93 */ | |
94 class AnnotationMap : IAnnotationMap { | |
95 | |
96 /** | |
97 * The lock object used to synchronize the operations explicitly defined by | |
98 * <code>IAnnotationMap</code> | |
99 */ | |
100 private Object fLockObject; | |
101 /** | |
102 * The internal lock object used if <code>fLockObject</code> is <code>null</code>. | |
103 * @since 3.2 | |
104 */ | |
105 private final Object fInternalLockObject= new Object(); | |
106 | |
107 /** The map holding the annotations */ | |
108 private Map fInternalMap; | |
109 | |
110 /** | |
111 * Creates a new annotation map with the given capacity. | |
112 * | |
113 * @param capacity the capacity | |
114 */ | |
133
7d818bd32d63
Fix ctors to this with gvim regexp
Frank Benoit <benoit@tionex.de>
parents:
131
diff
changeset
|
115 public this(int capacity) { |
129 | 116 fInternalMap= new HashMap(capacity); |
117 } | |
118 | |
119 /* | |
120 * @see dwtx.jface.text.source.ISynchronizable#setLockObject(java.lang.Object) | |
121 */ | |
122 public synchronized void setLockObject(Object lockObject) { | |
123 fLockObject= lockObject; | |
124 } | |
125 | |
126 /* | |
127 * @see dwtx.jface.text.source.ISynchronizable#getLockObject() | |
128 */ | |
129 public synchronized Object getLockObject() { | |
130 if (fLockObject is null) | |
131 return fInternalLockObject; | |
132 return fLockObject; | |
133 } | |
134 | |
135 /* | |
136 * @see dwtx.jface.text.source.IAnnotationMap#valuesIterator() | |
137 */ | |
138 public Iterator valuesIterator() { | |
139 synchronized (getLockObject()) { | |
140 return new ArrayList(fInternalMap.values()).iterator(); | |
141 } | |
142 } | |
143 | |
144 /* | |
145 * @see dwtx.jface.text.source.IAnnotationMap#keySetIterator() | |
146 */ | |
147 public Iterator keySetIterator() { | |
148 synchronized (getLockObject()) { | |
149 return new ArrayList(fInternalMap.keySet()).iterator(); | |
150 } | |
151 } | |
152 | |
153 /* | |
154 * @see java.util.Map#containsKey(java.lang.Object) | |
155 */ | |
156 public bool containsKey(Object annotation) { | |
157 synchronized (getLockObject()) { | |
158 return fInternalMap.containsKey(annotation); | |
159 } | |
160 } | |
161 | |
162 /* | |
163 * @see java.util.Map#put(java.lang.Object, java.lang.Object) | |
164 */ | |
165 public Object put(Object annotation, Object position) { | |
166 synchronized (getLockObject()) { | |
167 return fInternalMap.put(annotation, position); | |
168 } | |
169 } | |
170 | |
171 /* | |
172 * @see java.util.Map#get(java.lang.Object) | |
173 */ | |
174 public Object get(Object annotation) { | |
175 synchronized (getLockObject()) { | |
176 return fInternalMap.get(annotation); | |
177 } | |
178 } | |
179 | |
180 /* | |
181 * @see java.util.Map#clear() | |
182 */ | |
183 public void clear() { | |
184 synchronized (getLockObject()) { | |
185 fInternalMap.clear(); | |
186 } | |
187 } | |
188 | |
189 /* | |
190 * @see java.util.Map#remove(java.lang.Object) | |
191 */ | |
192 public Object remove(Object annotation) { | |
193 synchronized (getLockObject()) { | |
194 return fInternalMap.remove(annotation); | |
195 } | |
196 } | |
197 | |
198 /* | |
199 * @see java.util.Map#size() | |
200 */ | |
201 public int size() { | |
202 synchronized (getLockObject()) { | |
203 return fInternalMap.size(); | |
204 } | |
205 } | |
206 | |
207 /* | |
208 * @see java.util.Map#isEmpty() | |
209 */ | |
210 public bool isEmpty() { | |
211 synchronized (getLockObject()) { | |
212 return fInternalMap.isEmpty(); | |
213 } | |
214 } | |
215 | |
216 /* | |
217 * @see java.util.Map#containsValue(java.lang.Object) | |
218 */ | |
219 public bool containsValue(Object value) { | |
220 synchronized(getLockObject()) { | |
221 return fInternalMap.containsValue(value); | |
222 } | |
223 } | |
224 | |
225 /* | |
226 * @see java.util.Map#putAll(java.util.Map) | |
227 */ | |
228 public void putAll(Map map) { | |
229 synchronized (getLockObject()) { | |
230 fInternalMap.putAll(map); | |
231 } | |
232 } | |
233 | |
234 /* | |
235 * @see IAnnotationMap#entrySet() | |
236 */ | |
237 public Set entrySet() { | |
238 synchronized (getLockObject()) { | |
239 return fInternalMap.entrySet(); | |
240 } | |
241 } | |
242 | |
243 /* | |
244 * @see IAnnotationMap#keySet() | |
245 */ | |
246 public Set keySet() { | |
247 synchronized (getLockObject()) { | |
248 return fInternalMap.keySet(); | |
249 } | |
250 } | |
251 | |
252 /* | |
253 * @see IAnnotationMap#values() | |
254 */ | |
255 public Collection values() { | |
256 synchronized (getLockObject()) { | |
257 return fInternalMap.values(); | |
258 } | |
259 } | |
260 } |