package entities.xmlmodels.viewstyledefinition; import org.w3c.dom.Document; import org.w3c.dom.Element; import entities.xmlmodels.modeldefinition.DatabaseModelDefinition; import models.components.commons.ViewStyle; import models.components.commons.Visibility; import models.components.commons.datafield.FieldData; import utilities.XmlSerializable; import utilities.builders.ModelBuilder; public class Field implements DatabaseViewStyleDefinition,XmlSerializable{ private String id; private int ordinal; private boolean defaultVisibility; private String title; private String description; private String extendedDescription; private ViewStyle viewStyle; private Visibility visible; private FieldData data; 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 String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getExtendedDescription() { return extendedDescription; } public void setExtendedDescription(String extendedDescription) { this.extendedDescription = extendedDescription; } public ViewStyle getViewStyle() { return viewStyle; } public void setViewStyle(ViewStyle viewStyle) { this.viewStyle = viewStyle; } public FieldData getData() { return data; } public void setData(FieldData data) { this.data = data; } public Visibility getVisible() { return visible; } public void setVisible(Visibility visible) { this.visible = visible; } @Override public Element toXml(Document doc) { Element rootElement = doc.createElement("field"); rootElement.setAttribute("id", this.id); rootElement.setAttribute("ordinal", ""+this.ordinal); rootElement.setAttribute("defaultVisibility",""+this.defaultVisibility); Element extendedDescription = doc.createElement("extendedDescription"); extendedDescription.setTextContent(this.extendedDescription); Element description = doc.createElement("description"); description.setTextContent(this.description); Element title = doc.createElement("title"); title.setTextContent(this.title); Element viewStyle = doc.createElement("viewStyle"); viewStyle.setAttribute("renderstyle", this.viewStyle.getRenderStyle()); viewStyle.setAttribute("cssClass", this.viewStyle.getCssClass()); Element visibility = this.visible.toXml(doc); rootElement.appendChild(title); rootElement.appendChild(visibility); rootElement.appendChild(extendedDescription); rootElement.appendChild(viewStyle); rootElement.appendChild(description); if(this.data!=null)rootElement.appendChild(this.data.toXml(doc)); return rootElement; } @Override public Field fromXml(Element element) { this.id = element.getAttribute("id"); this.ordinal = Integer.parseInt(element.getAttribute("ordinal")); this.defaultVisibility = Boolean.getBoolean(element.getAttribute("defaultVisibility")); Element extendedDescription = (Element)element.getElementsByTagName("extendedDescription").item(0); this.extendedDescription = extendedDescription.getTextContent(); Element description = (Element)element.getElementsByTagName("description").item(0); this.description = description.getTextContent(); Element title = (Element)element.getElementsByTagName("title").item(0); this.title = title.getTextContent(); this.viewStyle = new ViewStyle(); Element viewStyle = (Element)element.getElementsByTagName("viewStyle").item(0); this.viewStyle.setRenderStyle(viewStyle.getAttribute("renderstyle")); this.viewStyle.setCssClass(viewStyle.getAttribute("cssClass")); Element visibility = (Element)element.getElementsByTagName("visible").item(0); this.visible = new Visibility().fromXml(visibility); Element dataElement = (Element)element.getElementsByTagName("data").item(0); this.data = new ModelBuilder().toFieldData(null, this.viewStyle.getRenderStyle()); if(this.data!=null)this.data.fromXml(dataElement); return this; } }