git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JAL-2826 added isCollapsed boolean to tree nodes
[jalview.git]
/
src
/
jalview
/
ext
/
archaeopteryx
/
TreeNode.java
diff --git
a/src/jalview/ext/archaeopteryx/TreeNode.java
b/src/jalview/ext/archaeopteryx/TreeNode.java
index
13ee7d0
..
0844171
100644
(file)
--- a/
src/jalview/ext/archaeopteryx/TreeNode.java
+++ b/
src/jalview/ext/archaeopteryx/TreeNode.java
@@
-1,7
+1,8
@@
package jalview.ext.archaeopteryx;
import jalview.datamodel.SequenceI;
package jalview.ext.archaeopteryx;
import jalview.datamodel.SequenceI;
-import jalview.ext.treeviewer.ExternalTreeNodeI;
+import jalview.ext.forester.DataConversions;
+import jalview.ext.treeviewer.TreeNodeI;
import java.awt.Color;
import java.util.ArrayList;
import java.awt.Color;
import java.util.ArrayList;
@@
-11,23
+12,32
@@
import java.util.Map;
import org.forester.phylogeny.PhylogenyMethods;
import org.forester.phylogeny.PhylogenyNode;
import org.forester.phylogeny.PhylogenyMethods;
import org.forester.phylogeny.PhylogenyNode;
-import org.forester.phylogeny.data.BranchColor;
-public class TreeNode implements ExternalTreeNodeI
+public class TreeNode implements TreeNodeI
{
private final PhylogenyNode node;
private SequenceI nodeSeq;
{
private final PhylogenyNode node;
private SequenceI nodeSeq;
- private static Map<PhylogenyNode, ExternalTreeNodeI> originalNodes = new HashMap<>(
- 500); // prolly make this size dynamic
+ private static Map<PhylogenyNode, TreeNodeI> originalNodes = new HashMap<>(
+ 500); // prolly make this size dynamic?
- private static Map<ExternalTreeNodeI, PhylogenyNode> wrappedNodes = new HashMap<>(
+ private static Map<TreeNodeI, PhylogenyNode> wrappedNodes = new HashMap<>(
500);
500);
+ /**
+ * Please don't use me directly.
+ *
+ * @param aptxNode
+ */
private TreeNode(PhylogenyNode aptxNode)
{
node = aptxNode;
private TreeNode(PhylogenyNode aptxNode)
{
node = aptxNode;
+ if (aptxNode.getNodeData().getSequence() != null)
+ {
+ nodeSeq = DataConversions
+ .createJalviewSequence(aptxNode);
+ }
originalNodes.put(aptxNode, this);
wrappedNodes.put(this, aptxNode);
originalNodes.put(aptxNode, this);
wrappedNodes.put(this, aptxNode);
@@
-42,7
+52,7
@@
public class TreeNode implements ExternalTreeNodeI
@Override
@Override
- public List<ExternalTreeNodeI> getAllDescendants()
+ public List<TreeNodeI> getAllDescendants()
{
List<PhylogenyNode> descNodes = PhylogenyMethods
{
List<PhylogenyNode> descNodes = PhylogenyMethods
@@
-53,7
+63,7
@@
public class TreeNode implements ExternalTreeNodeI
}
@Override
}
@Override
- public List<ExternalTreeNodeI> getExternalDescendants()
+ public List<TreeNodeI> getExternalDescendants()
{
List<PhylogenyNode> extDescNodes = node.getAllExternalDescendants();
return getUniqueWrappers(extDescNodes);
{
List<PhylogenyNode> extDescNodes = node.getAllExternalDescendants();
return getUniqueWrappers(extDescNodes);
@@
-61,7
+71,7
@@
public class TreeNode implements ExternalTreeNodeI
@Override
@Override
- public List<ExternalTreeNodeI> getDirectChildren()
+ public List<TreeNodeI> getDirectChildren()
{
List<PhylogenyNode> childNodes = node.getDescendants();
return getUniqueWrappers(childNodes);
{
List<PhylogenyNode> childNodes = node.getDescendants();
return getUniqueWrappers(childNodes);
@@
-85,11
+95,10
@@
public class TreeNode implements ExternalTreeNodeI
public SequenceI getSequence()
{
return nodeSeq;
public SequenceI getSequence()
{
return nodeSeq;
- // ideally this would return a converted node.getNodeData().getSequence()
}
@Override
}
@Override
- public void addAsChild(ExternalTreeNodeI childNode)
+ public void addAsChild(TreeNodeI childNode)
{
PhylogenyNode aptxNode = unwrapNode(childNode);
{
PhylogenyNode aptxNode = unwrapNode(childNode);
@@
-112,7
+121,7
@@
public class TreeNode implements ExternalTreeNodeI
@Override
public void setBranchColor(Color branchColor)
{
@Override
public void setBranchColor(Color branchColor)
{
- node.getBranchData().setBranchColor(new BranchColor(branchColor));
+ PhylogenyMethods.setBranchColorValue(node, branchColor);
}
}
@@
-122,10
+131,10
@@
public class TreeNode implements ExternalTreeNodeI
return node.isInternal();
}
return node.isInternal();
}
- public static List<ExternalTreeNodeI> getUniqueWrappers(
+ public static List<TreeNodeI> getUniqueWrappers(
List<PhylogenyNode> aptxNodes)
{
List<PhylogenyNode> aptxNodes)
{
- List<ExternalTreeNodeI> wrappedNodes = new ArrayList<>(
+ List<TreeNodeI> wrappedNodes = new ArrayList<>(
aptxNodes.size());
for (PhylogenyNode aptxNode : aptxNodes)
aptxNodes.size());
for (PhylogenyNode aptxNode : aptxNodes)
@@
-143,10
+152,14
@@
public class TreeNode implements ExternalTreeNodeI
* @param aptxNode
* @return
*/
* @param aptxNode
* @return
*/
- public static ExternalTreeNodeI getUniqueWrapper(
+ public static TreeNodeI getUniqueWrapper(
PhylogenyNode aptxNode)
{
PhylogenyNode aptxNode)
{
- ExternalTreeNodeI wrappedNode = originalNodes.get(aptxNode);
+ if (aptxNode == null)
+ {
+ return null;
+ }
+ TreeNodeI wrappedNode = originalNodes.get(aptxNode);
if (wrappedNode == null)
{
wrappedNode = new TreeNode(aptxNode);
if (wrappedNode == null)
{
wrappedNode = new TreeNode(aptxNode);
@@
-164,8
+177,12
@@
public class TreeNode implements ExternalTreeNodeI
* @param wrappedNode
* @return
*/
* @param wrappedNode
* @return
*/
- protected static PhylogenyNode unwrapNode(ExternalTreeNodeI wrappedNode)
+ protected static PhylogenyNode unwrapNode(TreeNodeI wrappedNode)
{
{
+ if (wrappedNode == null)
+ {
+ return null;
+ }
PhylogenyNode aptxNode = wrappedNodes.get(wrappedNode);
if (aptxNode == null)
{
PhylogenyNode aptxNode = wrappedNodes.get(wrappedNode);
if (aptxNode == null)
{
@@
-230,4
+247,10
@@
public class TreeNode implements ExternalTreeNodeI
return node.getYcoord();
}
return node.getYcoord();
}
+ @Override
+ public boolean isCollapsed()
+ {
+ return node.isCollapse();
+ }
+
}
}