private int computeIndex(CompositeRuler ruler, RulerColumnDescriptor descriptor) {
int index= 0;
List all= fRegistry.getColumnDescriptors();
int newPos= all.indexOf(descriptor);
for (Iterator it= ruler.getDecoratorIterator(); it.hasNext();) {
IVerticalRulerColumn column= (IVerticalRulerColumn) it.next();
if (column instanceof IContributedRulerColumn) {
RulerColumnDescriptor rcd= ((IContributedRulerColumn)column).getDescriptor();
if (rcd != null && all.indexOf(rcd) > newPos)
break;
} else if ("org.eclipse.jface.text.source.projection.ProjectionRulerColumn".equals(column.getClass().getName())) { //$NON-NLS-1$
// projection column is always the rightmost column
break;
}
index++;
}