Lines 57-62
Link Here
|
57 |
private boolean updating; |
57 |
private boolean updating; |
58 |
private RunnableChain afterUpdate; |
58 |
private RunnableChain afterUpdate; |
59 |
|
59 |
|
|
|
60 |
private int concurrentValidationsNumber = 0; |
61 |
|
60 |
private static class RunnableChain { |
62 |
private static class RunnableChain { |
61 |
RunnableChain next; |
63 |
RunnableChain next; |
62 |
Runnable run; |
64 |
Runnable run; |
Lines 147-152
Link Here
|
147 |
map.put(root, rect); |
149 |
map.put(root, rect); |
148 |
firePainting(rect, map); |
150 |
firePainting(rect, map); |
149 |
} |
151 |
} |
|
|
152 |
performValidation(); |
150 |
root.paint(graphics); |
153 |
root.paint(graphics); |
151 |
graphics.dispose(); |
154 |
graphics.dispose(); |
152 |
} |
155 |
} |
Lines 184-198
Link Here
|
184 |
if (invalidFigures.isEmpty()) |
187 |
if (invalidFigures.isEmpty()) |
185 |
return; |
188 |
return; |
186 |
try { |
189 |
try { |
|
|
190 |
concurrentValidationsNumber++; |
187 |
IFigure fig; |
191 |
IFigure fig; |
188 |
fireValidating(); |
192 |
fireValidating(); |
189 |
for (int i = 0; i < invalidFigures.size(); i++) { |
193 |
for (int i = 0; i < invalidFigures.size(); i++) { |
190 |
fig = (IFigure) invalidFigures.get(i); |
194 |
fig = (IFigure) invalidFigures.get(i); |
191 |
invalidFigures.set(i, null); |
|
|
192 |
fig.validate(); |
195 |
fig.validate(); |
193 |
} |
196 |
} |
194 |
} finally { |
197 |
} finally { |
195 |
invalidFigures.clear(); |
198 |
if (--concurrentValidationsNumber == 0) |
|
|
199 |
invalidFigures.clear(); |
196 |
} |
200 |
} |
197 |
} |
201 |
} |
198 |
|
202 |
|