X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FTreeCanvas.java;h=9180d52269a0dc660e80e4ef8639742bf384919c;hb=a9177efb4097815d9a8031aa22700c61a7d6260a;hp=2d4bdc849bce8b88d61581ff71d267bec45f4be5;hpb=e8ca34d6b969ecde379e9cc5c484fcdc4f057ff5;p=jalview.git diff --git a/src/jalview/gui/TreeCanvas.java b/src/jalview/gui/TreeCanvas.java index 2d4bdc8..9180d52 100755 --- a/src/jalview/gui/TreeCanvas.java +++ b/src/jalview/gui/TreeCanvas.java @@ -145,7 +145,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, scrollPane = scroller; addMouseListener(this); addMouseMotionListener(this); - + ToolTipManager.sharedInstance().registerComponent(this); } @@ -182,6 +182,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, PaintRefresher.Refresh(tp, av.getSequenceSetId()); repaint(); } + /** * DOCUMENT ME! * @@ -224,12 +225,12 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, longestName = ""; AlignmentAnnotation aa = tp.getAssocAnnotation(); - ContactMatrixI cm = (aa!=null) ? av.getContactMatrix(aa) : null; - if (cm!=null && cm.hasCutHeight()) + ContactMatrixI cm = (aa != null) ? av.getContactMatrix(aa) : null; + if (cm != null && cm.hasCutHeight()) { - threshold=(float) cm.getCutHeight(); + threshold = (float) cm.getCutHeight(); } - + for (int i = 0; i < leaves.size(); i++) { BinaryNode lf = leaves.elementAt(i); @@ -245,13 +246,17 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, longestName = TreeCanvas.PLACEHOLDER + ((Sequence) lf.element()).getName(); } - if (tp.isColumnWise() && cm!=null) + if (tp.isColumnWise() && cm != null) { // get color from group colours, if they are set for the matrix - try { + try + { Color col = cm.getGroupColorForPosition(parseColumnNode(lf)); - setColor(lf,col.brighter()); - } catch (NumberFormatException ex) {}; + setColor(lf, col.brighter()); + } catch (NumberFormatException ex) + { + } + ; } } @@ -791,8 +796,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, if (top.count == 0) { - top.count = top.left().count - + top.right().count; + top.count = top.left().count + top.right().count; } float chunk = (float) (height - (offy)) / top.count; @@ -881,7 +885,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Vector leaves = tree.findLeaves(highlightNode); if (tp.isColumnWise()) { - markColumnsFor(getAssociatedPanels(), leaves, Color.red,false); + markColumnsFor(getAssociatedPanels(), leaves, Color.red, false); } else { @@ -1058,7 +1062,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, for (int i = 0; i < groups.size(); i++) { Color col = ColorUtils.getARandomColor(); - + setColor(groups.get(i), col.brighter()); Vector l = tree.findLeaves(groups.get(i)); @@ -1106,11 +1110,13 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, } } } + private int parseColumnNode(BinaryNode bn) throws NumberFormatException { return Integer.parseInt( bn.getName().substring(bn.getName().indexOf("c") + 1)); } + private boolean isColumnForNodeSelected(BinaryNode bn) { SequenceI rseq = tp.assocAnnotation.sequenceRef; @@ -1130,16 +1136,17 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, ColumnSelection cs = av.getColumnSelection(); HiddenColumns hc = av.getAlignment().getHiddenColumns(); AlignmentAnnotation aa = tp.getAssocAnnotation(); - int offp=-1; + int offp = -1; if (aa != null) { ContactMatrixI cm = av.getContactMatrix(aa); - // generally, we assume cm has 1:1 mapping to annotation row - probably wrong + // generally, we assume cm has 1:1 mapping to annotation row - probably + // wrong // but.. if if (cm instanceof MappableContactMatrixI) { int[] pos; - // use the mappable's mapping - always the case for PAE Matrices so good + // use the mappable's mapping - always the case for PAE Matrices so good // for 2.11.3 MappableContactMatrixI mcm = (MappableContactMatrixI) cm; pos = mcm.getMappedPositionsFor(rseq, colm + 1); @@ -1148,16 +1155,18 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, { offp = rseq.findIndex(pos[0]); } - } else { + } + else + { offp = colm; } } - if (offp<=0) + if (offp <= 0) { return false; } - offp-=2; + offp -= 2; if (!av.hasHiddenColumns()) { return cs.contains(offp); @@ -1169,6 +1178,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, } return false; } + private BitSet createColumnGroupFor(Vector l, Color col) { BitSet gp = new BitSet(); @@ -1226,17 +1236,16 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, { continue; } - if (mcm!=null) + if (mcm != null) { - int[] seqpos = mcm.getMappedPositionsFor( - rseq, colm); + int[] seqpos = mcm.getMappedPositionsFor(rseq, colm); if (seqpos == null) { // no mapping for this column. continue; } // TODO: handle ranges... - offp = rseq.findIndex(seqpos[0])-1; + offp = rseq.findIndex(seqpos[0]) - 1; } else {