package com.aionemu.packetsamurai.gui; import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; import com.aionemu.packetsamurai.parser.datatree.DataTreeNode; import com.aionemu.packetsamurai.parser.datatree.DataTreeNodeContainer; import com.aionemu.packetsamurai.parser.datatree.ValuePart; public class DataPartNode extends DefaultMutableTreeTableNode { private DataTreeNode _node; private int _offset; private int _length; public DataPartNode(DataTreeNode node, int offset) { super(); _node = node; if (_node instanceof DataTreeNodeContainer) { int i = 0; for(DataTreeNode n : ((DataTreeNodeContainer)_node).getNodes()) { this.insert(new DataPartNode(n, offset), i++); this.setOffset(offset); this.setLengtht(_node.getBytesSize()*3 - 1); offset += n.getBytesSize()*3; } } else { this.setOffset(offset); this.setLengtht(_node.getBytesSize()*3 - 1); offset += this.getLength() + 1; } } public boolean getAllowsChildren() { return (_node instanceof DataTreeNodeContainer); } public boolean isLeaf() { return(_node instanceof ValuePart); } public DataTreeNode getPacketNode() { return _node; } private void setOffset(int offset) { _offset = offset; } public int getOffset() { return _offset; } private void setLengtht(int length) { _length = length; } public int getLength() { return _length; } }