import com.vaadin.ui.VerticalLayout;
public class ACETagEditorExtension implements UIExtensionFactory {
public Component create(Map<String, Object> context) {
final RepositoryObject sgo = getRepositoryObjectFromContext(context);
VerticalLayout result = new VerticalLayout();
result.setCaption("Tag Editor");
final Table table = new Table();
table.setWidth("100%");
table.addContainerProperty("Tag", TextField.class, null);
table.addContainerProperty("Value", TextField.class, null);
table.setEditable(false);
result.addComponent(table);
result.setComponentAlignment(table, Alignment.MIDDLE_CENTER);
final Map<Object, TagTableEntry> idToKey = new HashMap<Object, TagTableEntry>();
Enumeration<String> keys = sgo.getTagKeys();
while (keys.hasMoreElements()) {
String keyString = keys.nextElement();
String valueString = sgo.getTag(keyString);
if ((valueString != null) && (valueString.trim().length() != 0)) {
TagTableEntry tte = new TagTableEntry(sgo, keyString,
valueString);
idToKey.put(tte.addTo(table), tte);
}