package org.objectstyle.wolips.eomodeler.outline; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.ICellModifier; import org.eclipse.swt.widgets.Display; import org.objectstyle.wolips.eomodeler.core.model.DuplicateNameException; import org.objectstyle.wolips.eomodeler.core.model.ISortableEOModelObject; public class EOModelOutlineModifier implements ICellModifier { public boolean canModify(Object element, String property) { System.out.println("EOModelOutlineModifier.canModify: " + element); return (element instanceof ISortableEOModelObject); } public Object getValue(Object element, String property) { String text; if (element instanceof ISortableEOModelObject) { text = ((ISortableEOModelObject) element).getName(); // } else if (element instanceof EORelationshipPath) { // EORelationshipPath relationshipPath = (EORelationshipPath) element; // text = relationshipPath.getChildRelationship().getName(); // } else if (element instanceof EOAttributePath) { // EOAttributePath attributePath = (EOAttributePath) element; // text = attributePath.getChildAttribute().getName(); } else { text = null; } if (text == null) { text = ""; } System.out.println("EOModelOutlineModifier.getValue: " + text); return text; } public void modify(Object element, String property, Object value) { if (element instanceof ISortableEOModelObject) { String newName = (String) value; try { ((ISortableEOModelObject)element).setName(newName); } catch (DuplicateNameException e) { MessageDialog.openError(Display.getCurrent().getActiveShell(), "Duplicate Name", "The name '" + newName + "' is already taken."); } // } else if (element instanceof EORelationshipPath) { // EORelationshipPath relationshipPath = (EORelationshipPath) element; // text = relationshipPath.getChildRelationship().getName(); // } else if (element instanceof EOAttributePath) { // EOAttributePath attributePath = (EOAttributePath) element; // text = attributePath.getChildAttribute().getName(); } } }