+++ /dev/null
-package fr.orsay.lri.varna.views;
-
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.GridLayout;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyVetoException;
-import java.beans.VetoableChangeListener;
-import java.util.ArrayList;
-import java.util.Vector;
-
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTable;
-import javax.swing.event.TableModelEvent;
-import javax.swing.event.TableModelListener;
-import javax.swing.table.AbstractTableModel;
-
-import fr.orsay.lri.varna.VARNAPanel;
-import fr.orsay.lri.varna.components.ColorRenderer;
-import fr.orsay.lri.varna.models.rna.ModeleBase;
-import fr.orsay.lri.varna.models.rna.ModeleBaseNucleotide;
-import fr.orsay.lri.varna.models.rna.ModeleColorMap;
-import fr.orsay.lri.varna.models.rna.RNA;
-
-public class VueBaseValues extends JPanel implements TableModelListener {
-
- private JTable table;
- private ValueTableModel _tm;
- private VARNAPanel _vp;
- private ArrayList<ModeleBase> data;
- private ArrayList<Double> _backup;
- private ArrayList<Object> columns;
-
-
- public VueBaseValues(VARNAPanel vp)
- {
- super(new GridLayout(1, 0));
- _vp = vp;
- init();
- }
-
- private void init()
- {
- Object[] col = {"Number","Base","Value","Preview"};
- columns = new ArrayList<Object>();
- for (int i = 0; i < col.length; i++)
- {
- columns.add(col[i]);
- }
-
- _backup = new ArrayList<Double>();
- data = new ArrayList<ModeleBase>();
- for (int i = 0; i < _vp.getRNA().get_listeBases().size(); i++)
- {
- ModeleBase mb = _vp.getRNA().get_listeBases().get(i);
- data.add(mb);
- _backup.add(mb.getValue());
- }
- _tm = new ValueTableModel();
- table = new JTable(_tm);
- table.setDefaultRenderer(Color.class, new ColorRenderer(true));
- table.setPreferredScrollableViewportSize(new Dimension(300, 300));
- table.getModel().addTableModelListener(this);
-
- JScrollPane scrollPane = new JScrollPane(table);
- this.add(scrollPane);
- }
-
- public void cancelChanges()
- {
- for (int i = 0; i < _vp.getRNA().get_listeBases().size(); i++)
- {
- ModeleBase mb = _vp.getRNA().get_listeBases().get(i);
- mb.setValue(_backup.get(i));
- }
- _vp.getRNA().rescaleColorMap(_vp.getColorMap());
- }
-
- private class ValueTableModel extends AbstractTableModel {
- public String getColumnName(int col) {
- return columns.get(col).toString();
- }
- public int getRowCount() { return data.size(); }
- public int getColumnCount() { return columns.size(); }
- public Object getValueAt(int row, int col) {
- ModeleBase mb = data.get(row);
- if (col==0)
- {
- return new Integer(mb.getBaseNumber());
- }
- else if (col==1)
- {
- return new String(mb.getContent());
- }
- else if (col==2)
- {
- return new Double(mb.getValue());
- }
- else if (col==3)
- {
- return _vp.getColorMap().getColorForValue(mb.getValue());
- }
- return "N/A";
- }
- public boolean isCellEditable(int row, int col)
- {
- if (getColumnName(col).equals("Value"))
- return true;
- return false;
- }
- public void setValueAt(Object value, int row, int col) {
- if (getColumnName(col).equals("Value"))
- {
- data.get(row).setValue(((Double)value));
- _vp.getRNA().rescaleColorMap(_vp.getColorMap());
- _vp.repaint();
- fireTableCellUpdated(row, col);
- }
- }
- public Class getColumnClass(int c) {
- return getValueAt(0, c).getClass();
- }
- }
-
- public void tableChanged(TableModelEvent e) {
- if (e.getType() == TableModelEvent.UPDATE)
- {
- table.repaint();
- }
-
- }
-
-}