+++ /dev/null
-package fr.orsay.lri.varna.views;
-
-
- import java.awt.Color;
-import java.awt.Dimension;
- import java.awt.FlowLayout;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.ArrayList;
-
-import javax.swing.JButton;
-import javax.swing.JColorChooser;
- import javax.swing.JLabel;
-import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JSlider;
-import javax.swing.JSpinner;
-import javax.swing.SpinnerNumberModel;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-
-import fr.orsay.lri.varna.VARNAPanel;
-import fr.orsay.lri.varna.models.annotations.HighlightRegionAnnotation;
-import fr.orsay.lri.varna.models.rna.ModeleBase;
-
- public class VueHighlightRegionEdit implements ChangeListener, ActionListener {
-
- private VARNAPanel _vp;
- private JSlider _fromSlider;
- private JSlider _toSlider;
- private JPanel panel;
- private HighlightRegionAnnotation _an;
- private static int CONTROL_HEIGHT = 50;
- private static int TITLE_WIDTH = 70;
- private static int CONTROL_WIDTH = 200;
- private JButton fillShow = new JButton();
- private JButton outlineShow = new JButton();
- JSpinner rad;
-
- public VueHighlightRegionEdit(VARNAPanel vp, HighlightRegionAnnotation an) {
- _an = an;
- _vp = vp;
- _toSlider = new JSlider(JSlider.HORIZONTAL, 0,vp.getRNA().getSize()-1,0);
- _toSlider.setMajorTickSpacing(10);
- _toSlider.setPaintTicks(true);
- _toSlider.setPaintLabels(true);
- _toSlider.setPreferredSize(new Dimension(CONTROL_WIDTH, CONTROL_HEIGHT));
-
- _fromSlider = new JSlider(JSlider.HORIZONTAL, 0,vp.getRNA().getSize()-1,0);
- _fromSlider.setMajorTickSpacing(10);
- _fromSlider.setPaintTicks(true);
- _fromSlider.setPaintLabels(true);
- _fromSlider.setPreferredSize(new Dimension(CONTROL_WIDTH, CONTROL_HEIGHT));
-
- _fromSlider.addChangeListener(this);
- _toSlider.addChangeListener(this);
-
- panel = new JPanel();
- panel.setLayout(new FlowLayout(FlowLayout.LEFT));
-
- JPanel fromp = new JPanel();
- JLabel l1 = new JLabel("From: ");
- l1.setPreferredSize(new Dimension(TITLE_WIDTH,CONTROL_HEIGHT));
- fromp.add(l1);
- fromp.add(_fromSlider);
-
- JPanel top = new JPanel();
- l1 = new JLabel("To: ");
- l1.setPreferredSize(new Dimension(TITLE_WIDTH,CONTROL_HEIGHT));
- top.add(l1);
- top.add(_toSlider);
-
- JPanel outlinep = new JPanel();
- l1 = new JLabel("Outline color: ");
- l1.setPreferredSize(new Dimension(TITLE_WIDTH,CONTROL_HEIGHT));
- outlineShow.setContentAreaFilled(false);
- outlineShow.setOpaque(true);
- outlineShow.setPreferredSize(new Dimension(CONTROL_WIDTH,CONTROL_HEIGHT));
- outlineShow.setBackground(an.getOutlineColor());
- outlineShow.addActionListener(this);
- outlineShow.setActionCommand("outline");
- outlinep.add(l1);
- outlinep.add(outlineShow);
-
- JPanel fillp = new JPanel();
- l1 = new JLabel("Fill color: ");
- l1.setPreferredSize(new Dimension(TITLE_WIDTH,CONTROL_HEIGHT));
- fillShow.setContentAreaFilled(false);
- fillShow.setOpaque(true);
- fillShow.setPreferredSize(new Dimension(CONTROL_WIDTH,CONTROL_HEIGHT));
- fillShow.setBackground(an.getFillColor());
- fillShow.addActionListener(this);
- fillShow.setActionCommand("fill");
- fillp.add(l1);
- fillp.add(fillShow);
-
- JPanel radiusp = new JPanel();
- l1 = new JLabel("Radius: ");
- l1.setPreferredSize(new Dimension(TITLE_WIDTH,CONTROL_HEIGHT));
- SpinnerNumberModel jm = new SpinnerNumberModel(_an.getRadius(),1.0,50.0,0.1);
- rad = new JSpinner(jm);
- rad.setPreferredSize(new Dimension(CONTROL_WIDTH,CONTROL_HEIGHT));
- radiusp.add(l1);
- radiusp.add(rad);
- rad.addChangeListener(this);
-
- JPanel jp = new JPanel();
- jp.setLayout(new GridLayout(5,1));
- jp.add(fromp);
- jp.add(top);
- jp.add(outlinep);
- jp.add(fillp);
- jp.add(radiusp);
- panel.add(jp);
- }
-
- public JPanel getPanel() {
- return panel;
- }
-
- public double getAngle() {
- return _toSlider.getValue();
- }
-
- public VARNAPanel get_vp() {
- return _vp;
- }
-
- HighlightRegionAnnotation _backup = null;
-
- public boolean show() {
- boolean accept = false;
- int from = _an.getMinIndex();
- int to = _an.getMaxIndex();
- _fromSlider.setValue(from);
- _toSlider.setValue(to );
- if (JOptionPane.showConfirmDialog(_vp, getPanel(),
- "Edit region annotation", JOptionPane.OK_CANCEL_OPTION,
- JOptionPane.PLAIN_MESSAGE) == JOptionPane.OK_OPTION)
- {
- accept = true;
- }
- _vp.repaint();
- return accept;
- }
-
- public void stateChanged(ChangeEvent e) {
- if ((e.getSource()==_toSlider)||(e.getSource()==_fromSlider))
- {
- int from = _fromSlider.getValue();
- int to = _toSlider.getValue();
- if (from>to)
- {
- if (e.getSource().equals(_fromSlider))
- {
- _toSlider.setValue(from);
- }
- else if (e.getSource().equals(_toSlider))
- {
- _fromSlider.setValue(to);
- }
- }
- from = _fromSlider.getValue();
- to = _toSlider.getValue();
- _an.setBases(_vp.getRNA().getBasesBetween(from, to));
- _vp.repaint();
- }
- else if (e.getSource().equals(rad))
- {
- Object val = rad.getValue();
- if (val instanceof Double)
- {
- _an.setRadius(((Double)val).doubleValue());
- }
- }
-
- }
-
- public void actionPerformed(ActionEvent e) {
- if (e.getActionCommand().equals("outline"))
- {
- Color c = JColorChooser.showDialog(getPanel(), "Choose new outline color", _an.getOutlineColor());
- if (c!= null)
- { _an.setOutlineColor(c); }
- }
- else if (e.getActionCommand().equals("fill"))
- {
- Color c = JColorChooser.showDialog(getPanel(), "Choose new fill color", _an.getFillColor());
- if (c!= null)
- { _an.setFillColor(c); }
- }
- outlineShow.setBackground(_an.getOutlineColor());
- fillShow.setBackground(_an.getFillColor());
- _vp.repaint();
-
- }
- }
-