@SuppressWarnings("unchecked")
public <T extends Comparable<T> & Serializable> StringMenu<T> getMenu(Class<T> clazz, String preferenceKey, String menuPresentationName, Icon menuIcon) {
if (!menuCache.containsKey(preferenceKey)) {
log.trace("Creating new string menu");
StringMenu menu = new StringMenuImpl(preferences, workbench,
messages, preferenceKey, menuPresentationName, menuIcon);
menu = WorkerFactory.decorate(menu, StringMenu.class);
menuCache.put(preferenceKey, menu);
}
return (StringMenu<T>)menuCache.get(preferenceKey);
}