Class QueryTreeRecord

  • All Implemented Interfaces:
    java.lang.Comparable, javax.swing.tree.TreeNode

    public class QueryTreeRecord
    extends java.lang.Object
    implements java.lang.Comparable, javax.swing.tree.TreeNode

    Instances of the QueryTreeRecord class represent nodes in a tree of the QueryTreeModel class, which in turn is used by the QueryTreeBrowser class.

    This class is publically visible primarily so that selection change listeners can be constructed for QueryTreeBrowser, since the user's selection is returned as a path of QueryTreeRecord instances, which need to be cast accordingly.

    • Constructor Detail

      • QueryTreeRecord

        public QueryTreeRecord​(QueryInformationModel q,
                               AttributeList filter,
                               QueryTreeRecord parent,
                               java.lang.String value,
                               InformationEntity ie,
                               Attribute uniqueKey,
                               AttributeList allAttributesReturnedInIdentifier,
                               int debugLevel)

        Make a new node in a tree.

        Parameters:
        q - the query information model to build the tree from
        filter - the query request identifier as a list of DICOM attributes
        parent - the parent of this node
        value - a string value which is used primarily to sort siblings into lexicographic order
        ie - the entity in the DICOM information model that the constructed node is an instance of
        uniqueKey - the DICOM attribute which is the unique key at the level of this record
        allAttributesReturnedInIdentifier - a list of all the DICOM attributes from the query response for this level of a query
        debugLevel - unused
      • QueryTreeRecord

        public QueryTreeRecord​(QueryInformationModel q,
                               AttributeList filter,
                               QueryTreeRecord parent,
                               java.lang.String value,
                               InformationEntity ie,
                               Attribute uniqueKey,
                               AttributeList allAttributesReturnedInIdentifier)

        Make a new node in a tree.

        Parameters:
        q - the query information model to build the tree from
        filter - the query request identifier as a list of DICOM attributes
        parent - the parent of this node
        value - a string value which is used primarily to sort siblings into lexicographic order
        ie - the entity in the DICOM information model that the constructed node is an instance of
        uniqueKey - the DICOM attribute which is the unique key at the level of this record
        allAttributesReturnedInIdentifier - a list of all the DICOM attributes from the query response for this level of a query
    • Method Detail

      • toString

        public java.lang.String toString()

        Dump the string value of the node.

        Overrides:
        toString in class java.lang.Object
        Returns:
        the string value of this node
      • compareTo

        public int compareTo​(java.lang.Object o)

        Compare nodes based on the lexicographic order of their string values.

        Note that the comparison is more complex than a simple lexicographic comparison of strings (as described in the definition of java.lang.String.compareTo(String) but rather accounts for embedded non-zero padded integers. See com.pixelmed.utils.compareStringsWithEmbeddedNonZeroPaddedIntegers(String,String)

        If the string values are equal but they do not have the same unique key, then an arbitrary but consistent order is return.

        Specified by:
        compareTo in interface java.lang.Comparable
        Parameters:
        o - the QueryTreeRecord to compare this QueryTreeRecord against
        Returns:
        the value 0 if the argument is equal to this object; a value less than 0 if this object is lexicographically less than the argument; and a value greater than 0 if this object is lexicographically greater than the argument
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
        Parameters:
        o -
      • getParent

        public javax.swing.tree.TreeNode getParent()

        Returns the parent node of this node.

        Specified by:
        getParent in interface javax.swing.tree.TreeNode
        Returns:
        the parent node, or null if the root
      • getChildAt

        public javax.swing.tree.TreeNode getChildAt​(int index)

        Returns the child at the specified index.

        Specified by:
        getChildAt in interface javax.swing.tree.TreeNode
        Parameters:
        index - the index of the child to be returned, numbered from 0
        Returns:
        the child TreeNode at the specified index
      • getIndex

        public int getIndex​(javax.swing.tree.TreeNode child)

        Returns the index of the specified child from amongst this node's children, if present.

        Specified by:
        getIndex in interface javax.swing.tree.TreeNode
        Parameters:
        child - the child to search for amongst this node's children
        Returns:
        the index of the child, or -1 if not present
      • getAllowsChildren

        public boolean getAllowsChildren()

        Always returns true, since children may always be added.

        Specified by:
        getAllowsChildren in interface javax.swing.tree.TreeNode
        Returns:
        always true
      • isLeaf

        public boolean isLeaf()

        Returns true if the receiver is a leaf (has no children).

        Specified by:
        isLeaf in interface javax.swing.tree.TreeNode
        Returns:
        true if the receiver is a leaf
      • populateChildrenIfRequired

        protected void populateChildrenIfRequired()
      • getChildCount

        public int getChildCount()

        Return the number of children that this node contains.

        Specified by:
        getChildCount in interface javax.swing.tree.TreeNode
        Returns:
        the number of children, 0 if none
      • children

        public java.util.Enumeration children()

        Returns the children of this node as an Enumeration.

        Specified by:
        children in interface javax.swing.tree.TreeNode
        Returns:
        the children of this node
      • getQueryLevelToPopulateChildren

        protected InformationEntity getQueryLevelToPopulateChildren()
      • populateChildren

        protected void populateChildren()
      • addChild

        public void addChild​(QueryTreeRecord child)

        Add a child to this nodes sorted collection of children.

        Parameters:
        child - the child node to be added
      • addSibling

        public void addSibling​(QueryTreeRecord sibling)
                        throws DicomException

        Add a sibling to this node, that is add a child to this node's parent's sorted collection of children.

        Parameters:
        sibling - the sibling node to be added
        Throws:
        DicomException - thrown if this node has no parent
      • getValue

        public java.lang.String getValue()

        Get the string value of the node which is used for sorting and human-readable rendering.

        Returns:
        the string value of this node
      • getInformationEntity

        public InformationEntity getInformationEntity()

        Get the information entity that this node represents.

        Returns:
        information entity that this node represents
      • getUniqueKeys

        public AttributeList getUniqueKeys()

        Get the list of DICOM attributes, one for each unique key of each parent of this level as well as this level itself.

        Returns:
        the list of unique keys
      • getUniqueKey

        public Attribute getUniqueKey()

        Get the DICOM attribute that is the unique key at the level of this record.

        Returns:
        the unique key
      • getAllAttributesReturnedInIdentifier

        public AttributeList getAllAttributesReturnedInIdentifier()

        Get the list of all the DICOM attributes from the query response for this level of the query.

        Returns:
        the list of all response attributes for this level