package entities.xmlmodels.viewstyledefinition; import java.util.LinkedList; import java.util.List; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import entities.xmlmodels.modeldefinition.DatabaseModelDefinition; import utilities.XmlSerializable; import utilities.builders.XmlBuilder; public class FieldGroup implements DatabaseViewStyleDefinition,XmlSerializable{ private String id; private int ordinal; private boolean defaultVisibility; private int page; private String description; private String title; private String extendedDescription; private List
fieldSets; public String getId() { return id; } public void setId(String id) { this.id = id; } public int getOrdinal() { return ordinal; } public void setOrdinal(int ordinal) { this.ordinal = ordinal; } public boolean isDefaultVisibility() { return defaultVisibility; } public void setDefaultVisibility(boolean defaultVisibility) { this.defaultVisibility = defaultVisibility; } public int getPage() { return page; } public void setPage(int page) { this.page = page; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getExtendedDescription() { return extendedDescription; } public void setExtendedDescription(String extendedDescription) { this.extendedDescription = extendedDescription; } public List
getFieldSets() { return fieldSets; } public void setFieldSets(List
fieldSets) { this.fieldSets = fieldSets; } @Override public Element toXml(Document doc) { Element root = doc.createElement("fieldGroup"); root.setAttribute("id", this.id); root.setAttribute("ordinal", ""+this.ordinal); root.setAttribute("defaultVisibility", ""+this.defaultVisibility); root.setAttribute("page", ""+this.page); Element title = doc.createElement("title"); title.setTextContent(this.title); Element description = doc.createElement("description"); description.setTextContent(this.description); Element extendedDescription = doc.createElement("extendedDescription"); extendedDescription.setTextContent(this.extendedDescription); Element fieldSets = doc.createElement("fieldsets"); for(FieldSet fieldSet : this.fieldSets){ fieldSets.appendChild(fieldSet.toXml(doc)); } root.appendChild(fieldSets); root.appendChild(title); root.appendChild(description); root.appendChild(extendedDescription); return root; } @Override public FieldGroup fromXml(Element element) { this.id = element.getAttribute("id"); this.ordinal = Integer.parseInt(element.getAttribute("ordinal")); this.defaultVisibility = Boolean.getBoolean(element.getAttribute("defaultVisibility")); this.page = Integer.parseInt(element.getAttribute("page")); Element title = XmlBuilder.getNodeFromListByTagName(element.getChildNodes(),"title"); this.title = title.getTextContent(); Element extendedDescription = XmlBuilder.getNodeFromListByTagName(element.getChildNodes(),"extendedDescription"); this.extendedDescription = extendedDescription.getTextContent(); Element description = XmlBuilder.getNodeFromListByTagName(element.getChildNodes(),"description"); this.description = description .getTextContent(); this.fieldSets = new LinkedList(); Element fieldSets = (Element)element.getElementsByTagName("fieldsets").item(0); if(fieldSets!=null){ NodeList fieldSetElements = fieldSets.getChildNodes(); for (int temp = 0; temp < fieldSetElements.getLength(); temp++) { Node fieldSetElement = fieldSetElements.item(temp); if (fieldSetElement.getNodeType() == Node.ELEMENT_NODE) { this.fieldSets.add(new FieldSet().fromXml((Element)fieldSetElement)); } } } return this; } }