Joe,
I am reviewing your changes and I found an incomplete change which will
result in a NPE:
in TabbedBookDataDisplay.setBookData you have:
datas = null; // OSISUtil.pagenate(data, pagesize * 10);
tabs = (datas.size() > 1);
if (tabs)
I'll let you know if I see more problems. Otherwise it looks great.
DM