private void showAlignment() { int[] selRows = dataTable.getSelectedRows(); for (int row : selRows) { JFrame frame = new JFrame(); frame.setSize(800, 600); PartitionData partition = options.dataPartitions.get(row); Alignment alignment = partition.getAlignment(); // alignment == null if partition is trait // http://code.google.com/p/beast-mcmc/issues/detail?id=343 if (alignment == null) { JOptionPane.showMessageDialog( this, "Cannot display traits currently. Use the traits panel to view and edit these.", "Illegal Argument Exception", JOptionPane.ERROR_MESSAGE); return; } AlignmentViewer viewer = new AlignmentViewer(); if (alignment.getDataType().getType() == DataType.NUCLEOTIDES) { viewer.setCellDecorator(new StateCellDecorator(new NucleotideDecorator(), false)); } else if (alignment.getDataType().getType() == DataType.AMINO_ACIDS) { viewer.setCellDecorator(new StateCellDecorator(new AminoAcidDecorator(), false)); } else { // no colouring } viewer.setAlignmentBuffer(new BeautiAlignmentBuffer(alignment)); JPanel panel = new JPanel(new BorderLayout()); panel.setOpaque(false); panel.add(viewer, BorderLayout.CENTER); JPanel infoPanel = new JPanel(new BorderLayout()); infoPanel.setOpaque(false); panel.add(infoPanel, BorderLayout.SOUTH); frame.setContentPane(panel); frame.setVisible(true); } }