// This code assumes that the buffers contain plain
// text
Menu menu = (Menu)group.getContainer();
MenuEntry entry;
DOMOutputBuffer buffer;
Text text;
int max = 0;
int len;
// Determine the maximum length menu item label
for (int i = 0; i < menu.getSize(); i++) {
entry = menu.get(i);
if (entry instanceof MenuItem) {
buffer = (DOMOutputBuffer)((MenuItem)entry).
getLabel().getText().getText();
// Assumes that there is just a single text node
text = (Text)buffer.getRoot().getHead();
len = text.getLength();
if (max < len) {
max = len;
}
} else if (entry instanceof MenuItemGroup) {
MenuItemGroup mig = (MenuItemGroup)entry;
MenuItem item;
for (int j = 0; j < mig.getSize(); j++) {
item = mig.get(j);
buffer = (DOMOutputBuffer)item.
getLabel().getText().getText();
// Assumes that there is just a single text node
text = (Text)buffer.getRoot().getHead();
len = text.getLength();
if (max < len) {
max = len;
}
}