private void setProperties(ClassPropertiesInfo classInfo) { DefaultProperty[] beforeProps; PropertiesProvider provider; String[] errors; beforeProps = convertPropertyType(classInfo.getPropertiesPanel().getProperties()); provider = classInfo.getClassInstance(); errors = provider.getPropertiesErrors(beforeProps); if (errors != null && errors.length > 0) { printErrors(errors); } else { provider.setProperties(beforeProps); } }
public void saveChanges() { TreeModel model = tree.getModel(); Object root = model.getRoot(); ClassPropertiesInfo classInfo; int classCount = model.getChildCount(root); for (int c = 0; c < classCount; c++) { classInfo = (ClassPropertiesInfo) ((DefaultMutableTreeNode) model.getChild(root, c)).getUserObject(); PropertySheetPanel propertiesPanel = classInfo.getPropertiesPanel(); if (propertiesPanel != null) { // to exit edit mode and retrieve the value propertiesPanel.getTable().commitEditing(); setProperties(classInfo); } } GeneralPreferences.saveProperties(); }
private HashMap<String, Property[]> extractProperties(TreeModel model) { HashMap<String, Property[]> props = new HashMap<>(); DefaultMutableTreeNode classNode; Object root = model.getRoot(); ClassPropertiesInfo classInfo; int classCount = model.getChildCount(root); Property[] classProperties; for (int c = 0; c < classCount; c++) { classNode = (DefaultMutableTreeNode) model.getChild(root, c); classInfo = (ClassPropertiesInfo) classNode.getUserObject(); PropertySheetPanel propertiesPanel = classInfo.getPropertiesPanel(); if (propertiesPanel != null) { // force out of edit mode propertiesPanel.getTable().commitEditing(); classProperties = propertiesPanel.getProperties(); props.put(classInfo.getName(), classProperties.clone()); } } return props; }