import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import jalview.datamodel.SequenceNode;
+import jalview.gui.JalviewColourChooser.ColourChooserListener;
import jalview.schemes.ColourSchemeI;
import jalview.structure.SelectionSource;
import jalview.util.Format;
import java.util.List;
import java.util.Vector;
-import javax.swing.JColorChooser;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
TreePanel tp;
- AlignViewport av;
+ private AlignViewport av;
- AlignmentPanel ap;
+ private AlignmentPanel ap;
Font font;
int offy;
- float threshold;
+ private float threshold;
String longestName;
{
this.tp = tp;
this.av = ap.av;
- this.ap = ap;
+ this.setAssociatedPanel(ap);
font = av.getFont();
scrollPane = scroller;
addMouseListener(this);
public int print(Graphics pg, PageFormat pf, int pi)
throws PrinterException
{
- pg.setFont(font);
- pg.translate((int) pf.getImageableX(), (int) pf.getImageableY());
int pwidth = (int) pf.getImageableWidth();
int pheight = (int) pf.getImageableHeight();
pwidth = getWidth();
}
+ pg = pg.create();
+ pg.setFont(font);
+ pg.translate((int) pf.getImageableX(), (int) pf.getImageableY());
+
if (fitToWindow)
{
if (pheight > getHeight())
FontMetrics fm = pg.getFontMetrics(font);
int height = fm.getHeight() * nameHash.size();
pg.translate(0, -pi * pheight);
- pg.setClip(0, pi * pheight, pwidth, (pi * pheight) + pheight);
+ // BH 2020.03.19 avoiding setClip here
+ pg.clipRect(0, pi * pheight, pwidth, (pi * pheight) + pheight);
// translate number of pages,
// height is screen size as this is the
draw(pg, pwidth, pheight);
+ pg.dispose();
+
return Printable.PAGE_EXISTS;
}
*/
void chooseSubtreeColour()
{
- Color col = JColorChooser.showDialog(this,
- MessageManager.getString("label.select_subtree_colour"),
- highlightNode.color);
- if (col != null)
- {
- setColor(highlightNode, col);
- PaintRefresher.Refresh(tp, ap.av.getSequenceSetId());
- repaint();
- }
+ String ttl = MessageManager.getString("label.select_subtree_colour");
+ ColourChooserListener listener = new ColourChooserListener() {
+ @Override
+ public void colourSelected(Color c)
+ {
+ setColor(highlightNode, c);
+ PaintRefresher.Refresh(tp, ap.av.getSequenceSetId());
+ repaint();
+ }
+ };
+ JalviewColourChooser.showColourChooser(this, ttl, highlightNode.color, listener);
}
@Override
if (ob instanceof SequenceI)
{
treeSelectionChanged((Sequence) ob);
- PaintRefresher.Refresh(tp, ap.av.getSequenceSetId());
+ PaintRefresher.Refresh(tp, getAssociatedPanel().av.getSequenceSetId());
repaint();
av.sendSelection();
return;
.deleteAllGroups();
aps[a].av.getCodingComplement().clearSequenceColours();
}
+ aps[a].av.setUpdateStructures(true);
}
colourGroups(groups);
}
}
- PaintRefresher.Refresh(tp, ap.av.getSequenceSetId());
+ PaintRefresher.Refresh(tp, getAssociatedPanel().av.getSequenceSetId());
repaint();
}
}
else
{
- return new AlignmentPanel[] { ap };
+ return new AlignmentPanel[] { getAssociatedPanel() };
}
}
+
+ public AlignmentPanel getAssociatedPanel()
+ {
+ return ap;
+ }
+
+ public void setAssociatedPanel(AlignmentPanel ap)
+ {
+ this.ap = ap;
+ }
+
+ public AlignViewport getViewport()
+ {
+ return av;
+ }
+
+ public void setViewport(AlignViewport av)
+ {
+ this.av = av;
+ }
+
+ public float getThreshold()
+ {
+ return threshold;
+ }
+
+ public void setThreshold(float threshold)
+ {
+ this.threshold = threshold;
+ }
+
+ public boolean isApplyToAllViews()
+ {
+ return this.applyToAllViews;
+ }
+
+ public void setApplyToAllViews(boolean applyToAllViews)
+ {
+ this.applyToAllViews = applyToAllViews;
+ }
}