public void draw(Graphics2D g2)
{
sortStateLock.lock();
try
{
int deltaX = component.getWidth() / a.length;
for (int i = 0; i < a.length; i++)
{
if (i == markedPosition)
g2.setColor(Color.RED);
else if (i <= alreadySorted)
g2.setColor(Color.BLUE);
else
g2.setColor(Color.BLACK);
g2.draw(new Line2D.Double(i * deltaX, 0, i * deltaX, a[i]));
}
}
finally
{
sortStateLock.unlock();
}
}