Controller.getCurrentModeController().execute(actor, map);
}
@Override
public void performSetValueAt(final NodeAttributeTableModel model, final Object o, final int row, final int col) {
final Attribute attribute = model.getAttribute(row);
final MapModel map = model.getNode().getMap();
final AttributeRegistry registry = AttributeRegistry.getRegistry(map);
switch (col) {
case 0: {
final String name = o.toString().trim();
final String oldName = attribute.getName();
if (oldName.equals(name)) {
return;
}
final IActor nameActor = new SetAttributeNameActor(model, name, oldName, row);
Controller.getCurrentModeController().execute(nameActor, map);
try {
final AttributeRegistryElement element = registry.getElement(name);
final String value = model.getValueAt(row, 1).toString();
final int index = element.getValues().getIndexOf(value);
if (index == -1) {
final IActor valueActor = new SetAttributeValueActor(model, row, element.getValues().firstElement());
Controller.getCurrentModeController().execute(valueActor, map);
}
}
catch (final NoSuchElementException ex) {
final IActor registryActor = new RegistryAttributeActor(name, false, false, registry, map);
Controller.getCurrentModeController().execute(registryActor, map);
}
break;
}
case 1: {
if (attribute.getValue().equals(o)) {
return;
}
final IActor actor = new SetAttributeValueActor(model, row, o);
Controller.getCurrentModeController().execute(actor, map);
final String name = model.getValueAt(row, 0).toString();