RelationTreeModel extends AbstractTreeTableModel implements ISemanticalRelationProvider { public void updateTemplateEntry(final TreePath targetPath, final RelationTemplate newState) { final UUID templateId = (UUID) targetPath.getLastPathComponent(); this.relationTemplates.put(templateId, newState); final int templateIndex = this.getSiblings(templateId).indexOf(templateId); this.modelSupport.fireChildChanged(targetPath.getParentPath(), templateIndex, templateId); } RelationTreeModel(final ISemanticalRelationProvider relationProvider); @Override List<List<RelationTemplate>> provideRelationTemplates(); @Override Object getChild(final Object parent, final int index); @Override int getChildCount(final Object parent); @Override boolean isLeaf(final Object node); @Override int getIndexOfChild(final Object parent, final Object child); @Override int getColumnCount(); @Override String getColumnName(final int columnIndex); @Override Class<?> getColumnClass(final int columnIndex); @Override boolean isCellEditable(final Object node, final int columnIndex); @Override String getValueAt(final Object node, final int columnIndex); @Override void setValueAt(final Object value, final Object node, final int column); TreePath addGroupEntry(); RelationTemplate getTemplateAtPath(final TreePath path); TreePath addTemplateEntryToGroup(final TreePath groupPath); void updateTemplateEntry(final TreePath targetPath, final RelationTemplate newState); void moveEntry(final TreePath targetPath, final boolean moveDown); void removeEntry(final TreePath targetPath);  }
@Test public void testUpdateTemplateEntry() { final Object root = this.model.getRoot(); final Object groupNode1 = this.model.getChild(root, 0); final TreePath targetPath = new TreePath(new Object[] { root, groupNode1 }); final RelationTemplate newState = new RelationTemplate(new AssociateRole("1", true), null, new AssociateRole("2", false), "x"); this.model.updateTemplateEntry(targetPath, newState); Assert.assertEquals(newState, this.model.getTemplateAtPath(targetPath)); }