TableItem: problemas touch screen

olá a todos,
peguei este código na internet a adaptei ao meu sistema para TableItem.
Mas ao selecionar uma linha na tabela com toque, a linha selecionada vai somente para baixo.
Com este problema não consigo dar foco na linha desejada.

O Problema esta em pointerPressed.
Preciso mesmo resolver este problema para finalizar o sistema.

Obrigado.

[code]class SkidletTableItem extends TableItem {

protected double rowBias = -1;
protected double rowCount = -1;

public SkidletTableItem(Display display, String title) {
    super(display, title);
}

public SkidletTableItem(Display display, String title, TableModel model) {
    super(display, title, model);
}

public SkidletTableItem(Display display, String title, TableModel model, ColorSchema colorSchema) {
    super(display, title, model, colorSchema);
}

public void setModel(TableModel model) throws IllegalArgumentException {
    rowBias = -1;
    rowCount = -1;
    super.setModel(model);
}

public void tableModelChanged(TableModel changedModel) {
    rowBias = -1;
    rowCount = -1;
super.tableModelChanged(changedModel);
}

protected void pointerPressed(int x, int y) {
    selectRow((int) calculateRow(y));
    super.pointerPressed(x, y);
}

protected void selectRow(int row) {
    // Do not select a row
    if (row == getSelectedCellRow() || row > rowCount - 1 || row != getSelectedCellRow()) {
    traverse(Canvas.DOWN, 0, 0, new int[]{0, 0, 0, 0});
    }
}

protected double calculateRow(double y) {
    // Accomodate for titles and labels
    if (rowBias == -1) {
    rowBias = 0;
    if (this.getTitle() != null) {
        rowBias++;
    }
    if (this.getLabel() != null) {
        rowBias++;
    }
}

int row = -1;
while (rowCount == -1) {
    traverse(Canvas.DOWN, 0, 0, new int[]{0, 0, 0, 0});
    if (row == getSelectedCellRow()) {
        rowCount = getSelectedCellRow() + 1;
    }
    row = getSelectedCellRow();
}

double h = getMinContentHeight();
double retVal = ((rowCount + rowBias) * y) / h;
return retVal + 0.25 - rowBias; // Round up slightly
}

}[/code]