package es.upm.fi.dia.oeg.map4rdf.client.widget; import com.google.gwt.event.dom.client.ChangeEvent; import com.google.gwt.event.dom.client.ChangeHandler; import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.Widget; import es.upm.fi.dia.oeg.map4rdf.share.SubjectDescription; /** * @author Filip */ public class DescriptionTreeItem { private Grid grid; private TextBox predicate; private TextBox object; private DescriptionTreeItem parent = null; //the value means that the parent is a root private SubjectDescription subjectDescriptionThis; private Integer depth = 1; public DescriptionTreeItem(SubjectDescription subjectDescription, DescriptionTreeItem parent) { this.subjectDescriptionThis = subjectDescription; this.parent = parent; grid = new Grid(1, 2); this.predicate = new TextBox(); this.predicate.setWidth("330px"); this.predicate.setText(subjectDescription.getPredicate().getText()); this.object = new TextBox(); this.object.setWidth("330px"); this.object.setText(subjectDescription.getObject().getText()); grid.setWidget(0, 0, this.predicate); grid.setWidget(0, 1, this.object); if ( parent!= null ) { depth=parent.getDepth()+1; } this.object.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { subjectDescriptionThis.getObject().setText(object.getText()); } }); this.predicate.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { subjectDescriptionThis.getPredicate().setText(predicate.getText()); } }); } public Widget getWidget(){ return grid; } public SubjectDescription getSubjectDescriptions(){ return this.subjectDescriptionThis; } public String getPredicateText(){ return subjectDescriptionThis.getPredicate().getText(); } public String getObjectText(){ return subjectDescriptionThis.getObject().getText(); } public DescriptionTreeItem getParent() { return parent; } public void setParent(DescriptionTreeItem parent) { this.parent = parent; } public Integer getDepth() { return depth; } public void setDepth(Integer depth) { this.depth = depth; } }