// $Id: ConclusionAttrConditionTreeNodeData.java,v 1.3 2010/08/24 21:35:50 olga Exp $
package agg.gui.treeview.nodedata;
import javax.swing.tree.DefaultMutableTreeNode;
import agg.editor.impl.EdAtomic;
import agg.editor.impl.EdRule;
import agg.attribute.impl.CondMember;
import agg.util.Pair;
/**
* The ConclusionAttrConditionTreeNodeData implements an user object of a tree node in the
* GraGraTreeModel.
*
* @author $Author: olga $
* @version $Id: ConclusionAttrConditionTreeNodeData.java,v 1.3 2010/08/24 21:35:50 olga Exp $
*/
public class ConclusionAttrConditionTreeNodeData extends GraGraTreeNodeDataAdapter {
private Object data;
private Pair<CondMember, EdRule> attrCondition;
/** Value to display. */
private String string = "";
/** My tree node in a tree */
private DefaultMutableTreeNode treeNode;
public ConclusionAttrConditionTreeNodeData(final CondMember attrCond, final EdAtomic conclusion) {
setAttrCondition(new Pair<CondMember, EdRule> (attrCond, conclusion));
}
private void setAttrCondition(final Pair<CondMember, EdRule> attrCondRulePair) {
this.data = attrCondRulePair;
if (!attrCondRulePair.first.isEnabled())
this.string = "[D]" + attrCondRulePair.first.getExprAsText();
else
this.string = attrCondRulePair.first.getExprAsText();
this.attrCondition = attrCondRulePair;
}
public ConclusionAttrConditionTreeNodeData(String s) {
this.data = s;
this.string = s;
}
@SuppressWarnings("rawtypes")
public ConclusionAttrConditionTreeNodeData(Object obj) {
if (obj instanceof Pair) {
Pair<?,?> p = (Pair) obj;
setAttrCondition(new Pair<CondMember, EdRule> ((CondMember) p.first, (EdRule) p.second));
}
else if (obj instanceof String)
new ConclusionAttrConditionTreeNodeData((String) obj);
}
public void dispose() {
this.data = null;
this.attrCondition = null;
this.string = null;
this.treeNode = null;
}
/* Set this.data object of this tree node this.data */
@SuppressWarnings("rawtypes")
public void setData(Object obj) {
if (obj instanceof Pair) {
Pair<?,?> p = (Pair) obj;
setAttrCondition(new Pair<CondMember, EdRule> ((CondMember) p.first, (EdRule) p.second));
}
else if (obj instanceof String) {
this.string = (String) obj;
this.data = obj;
}
else {
this.data = null;
this.attrCondition = null;
this.string = null;
}
}
public Object getData() {
return this.data;
}
/**
* Sets the string to display for this object.
*/
public void setString(String str) {
if (str == null) {
return;
}
String newString = str.replaceAll(" ", "");
this.string = newString;
if (!this.attrCondition.first.isEnabled())
this.string = "[D]" + this.attrCondition.first.getExprAsText();
else
this.string = this.attrCondition.first.getExprAsText();
}
public void setString(String tag, String newString) {
if (tag.equals("[]"))
tag = "";
this.string = tag + newString;
this.string = tag + this.attrCondition.first.getExprAsText();
}
/**
* Returns the string to display for this object.
*/
public String string() {
return this.string;
}
public void update() {
if (!this.attrCondition.first.isEnabled())
this.string = "[D]" + this.attrCondition.first.getExprAsText();
else
this.string = this.attrCondition.first.getExprAsText();
}
public String toString() {
return this.string();
}
/* (non-Javadoc)
* @see agg.gui.treeview.GraGraTreeNodeData#isAttrCondition()
*/
public boolean isAttrCondition() {
return true;
}
public Pair<CondMember, EdRule> getAttrCondition() {
return this.attrCondition;
}
public void setTreeNode(DefaultMutableTreeNode node) {
this.treeNode = node;
}
public DefaultMutableTreeNode getTreeNode() {
return this.treeNode;
}
public String getToolTipText() {
return " Attribute condition ";
}
public boolean isTreeTextEditable() {
return false;
}
}