consclipbrd.addActionListener(this);
pop.add(consclipbrd);
}
- if (aa[selectedRow].graph == AlignmentAnnotation.CONTACT_MAP
+ if (aa[selectedRow].graph == AlignmentAnnotation.CONTACT_MAP
&& PAEContactMatrix.PAEMATRIX
.equals(aa[selectedRow].getCalcId()))
{
final PAEContactMatrix cm = (PAEContactMatrix) av
.getContactMatrix(aa[selectedRow]);
- if (cm.getNewickString()!=null && cm.getNewickString().length()>0)
+ if (cm != null && cm.getNewick() != null
+ && cm.getNewick().length() > 0)
{
- item = new JMenuItem("Show Matrix");
+ item = new JMenuItem("Show Tree for Matrix");
item.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
- ap.alignFrame.showContactMapTree(aa[selectedRow],cm);
+ ap.alignFrame.showContactMapTree(aa[selectedRow], cm);
}
});
g.translate(0, getScrollOffset());
g.setColor(Color.black);
SequenceI lastSeqRef = null;
+ String lastLabel = null;
AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation();
int fontHeight = g.getFont().getSize();
int y = 0;
{
hasHiddenRows = false;
int olY = 0;
+ int nexAA = 0;
for (int i = 0; i < aa.length; i++)
{
visible = true;
continue;
}
olY = y;
+ // look ahead to next annotation
+ for (nexAA = i + 1; nexAA < aa.length
+ && !aa[nexAA].visible; nexAA++)
+ ;
y += aa[i].height;
if (clip)
{
}
String label = aa[i].label;
boolean vertBar = false;
+ if ((lastLabel != null && lastLabel.equals(label)))
+ {
+ label = aa[i].description;
+ }
+ else
+ {
+ if (nexAA < aa.length && label.equals(aa[nexAA].label)) // &&
+ // aa[nexY].sequenceRef==aa[i].sequenceRef)
+ {
+ lastLabel = label;
+ // next label is the same as this label
+ label = aa[i].description;
+ }
+ else
+ {
+ lastLabel = label;
+ }
+ }
if (aa[i].sequenceRef != null)
{
if (aa[i].sequenceRef != lastSeqRef)
{
if (vertBar)
{
- g.drawLine(20, y + offset, 20, y - aa[i].height);
- g.drawLine(20, y + offset, x - 20, y + offset);
+ g.drawLine(width - 3, y + offset - fontHeight, width - 3,
+ (int) (y - 1.5 * aa[i].height - offset - fontHeight));
+ // g.drawLine(20, y + offset, x - 20, y + offset);
}
g.drawString(label, x, y + offset);