public void reload(DatasetConfigTreeNode editingNode, DatasetConfigTreeNode parentNode) { int start, finish; String parentClassName = (parentNode.getUserObject().getClass()).getName(); String childClassName = (editingNode.getUserObject().getClass()).getName(); start = childClassName.lastIndexOf(".") + 1; finish = childClassName.length(); String childName = childClassName.substring(start, finish); if (parentClassName.equals("org.ensembl.mart.lib.config.DatasetConfig")) { if (childClassName.equals("org.ensembl.mart.lib.config.FilterPage")) { config = (DatasetConfig) parentNode.getUserObject(); config.addFilterPage((FilterPage) editingNode.getUserObject()); // config.removeAttributePage(); } else if (childClassName.equals("org.ensembl.mart.lib.config.AttributePage")) { config = (DatasetConfig) parentNode.getUserObject(); config.addAttributePage((AttributePage) editingNode.getUserObject()); } else if (childClassName.equals("org.ensembl.mart.lib.config.Importable")) { config = (DatasetConfig) parentNode.getUserObject(); config.addImportable((Importable) editingNode.getUserObject()); } else if (childClassName.equals("org.ensembl.mart.lib.config.Exportable")) { config = (DatasetConfig) parentNode.getUserObject(); config.addExportable((Exportable) editingNode.getUserObject()); } } else if (parentClassName.equals("org.ensembl.mart.lib.config.FilterPage")) { if (childClassName.equals("org.ensembl.mart.lib.config.FilterGroup")) { FilterPage fp = (FilterPage) parentNode.getUserObject(); fp.addFilterGroup((FilterGroup) editingNode.getUserObject()); } } else if (parentClassName.equals("org.ensembl.mart.lib.config.FilterGroup")) { if (childClassName.equals("org.ensembl.mart.lib.config.FilterCollection")) { FilterGroup fg = (FilterGroup) parentNode.getUserObject(); fg.addFilterCollection((FilterCollection) editingNode.getUserObject()); } } else if (parentClassName.equals("org.ensembl.mart.lib.config.FilterCollection")) { if (childClassName.equals("org.ensembl.mart.lib.config.FilterDescription")) { FilterCollection fc = (FilterCollection) parentNode.getUserObject(); fc.addFilterDescription((FilterDescription) editingNode.getUserObject()); } } else if (parentClassName.equals("org.ensembl.mart.lib.config.FilterDescription")) { if (childClassName.equals("org.ensembl.mart.lib.config.Option")) { FilterDescription fd = (FilterDescription) parentNode.getUserObject(); fd.addOption((Option) editingNode.getUserObject()); } else if (childClassName.equals("org.ensembl.mart.lib.config.SpecificFilterContent")) { FilterDescription ad = (FilterDescription) parentNode.getUserObject(); ad.addSpecificFilterContent((SpecificFilterContent) editingNode.getUserObject()); } } else if (parentClassName.equals("org.ensembl.mart.lib.config.Option")) { if (childClassName.equals("org.ensembl.mart.lib.config.SpecificOptionContent")) { Option ad = (Option) parentNode.getUserObject(); ad.addSpecificOptionContent((SpecificOptionContent) editingNode.getUserObject()); } else if (childClassName.equals("org.ensembl.mart.lib.config.PushAction")) { Option op = (Option) parentNode.getUserObject(); op.addPushAction((PushAction) editingNode.getUserObject()); } else if (childClassName.equals("org.ensembl.mart.lib.config.Option")) { Option op = (Option) parentNode.getUserObject(); op.addOption((Option) editingNode.getUserObject()); } } else if (parentClassName.equals("org.ensembl.mart.lib.config.PushAction")) { if (childClassName.equals("org.ensembl.mart.lib.config.Option")) { PushAction pa = (PushAction) parentNode.getUserObject(); pa.addOption((Option) editingNode.getUserObject()); } } else if (parentClassName.equals("org.ensembl.mart.lib.config.AttributePage")) { if (childClassName.equals("org.ensembl.mart.lib.config.AttributeGroup")) { AttributePage ap = (AttributePage) parentNode.getUserObject(); ap.addAttributeGroup((AttributeGroup) editingNode.getUserObject()); } } else if (parentClassName.equals("org.ensembl.mart.lib.config.AttributeGroup")) { if (childClassName.equals("org.ensembl.mart.lib.config.AttributeCollection")) { AttributeGroup ag = (AttributeGroup) parentNode.getUserObject(); ag.addAttributeCollection((AttributeCollection) editingNode.getUserObject()); } } else if (parentClassName.equals("org.ensembl.mart.lib.config.AttributeCollection")) { if (childClassName.equals("org.ensembl.mart.lib.config.AttributeDescription")) { AttributeCollection ac = (AttributeCollection) parentNode.getUserObject(); ac.addAttributeDescription((AttributeDescription) editingNode.getUserObject()); } else if (childClassName.equals("org.ensembl.mart.lib.config.AttributeList")) { AttributeCollection ac = (AttributeCollection) parentNode.getUserObject(); ac.addAttributeList((AttributeList) editingNode.getUserObject()); } } else if (parentClassName.equals("org.ensembl.mart.lib.config.AttributeDescription")) { if (childClassName.equals("org.ensembl.mart.lib.config.SpecificAttributeContent")) { AttributeDescription ad = (AttributeDescription) parentNode.getUserObject(); ad.addSpecificAttributeContent((SpecificAttributeContent) editingNode.getUserObject()); } } else if (parentClassName.equals("org.ensembl.mart.lib.config.SpecificFilterContent")) { if (childClassName.equals("org.ensembl.mart.lib.config.Option")) { SpecificFilterContent fd = (SpecificFilterContent) parentNode.getUserObject(); System.out.println( "TREE MODEL -- ADDING DYN OPTION " + ((Option) editingNode.getUserObject()).getInternalName()); fd.addOption((Option) editingNode.getUserObject()); } } super.reload(parentNode); }