- 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.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-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.ChemProbAnnotation;
-import fr.orsay.lri.varna.models.annotations.HighlightRegionAnnotation;
-
-
-public class VueChemProbAnnotation implements ChangeListener, ActionListener, ItemListener {
-
- protected VARNAPanel _vp;
- private JPanel panel;
- protected ChemProbAnnotation _an;
- private static int CONTROL_HEIGHT = 50;
- private static int TITLE_WIDTH = 70;
- private static int CONTROL_WIDTH = 200;
- protected JButton color = new JButton();
- JSpinner intensity;
- JComboBox outward = new JComboBox(new String[]{"Inward","Outward"});
- JComboBox type = new JComboBox(ChemProbAnnotation.ChemProbAnnotationType.values());
-
- public VueChemProbAnnotation(VARNAPanel vp, ChemProbAnnotation an) {
- _an = an;
- _vp = vp;
-
- panel = new JPanel();
- panel.setLayout(new FlowLayout(FlowLayout.LEFT));
-
-
- JPanel outlinep = new JPanel();
- JLabel l1 = new JLabel("Color: ");
- l1.setPreferredSize(new Dimension(TITLE_WIDTH,CONTROL_HEIGHT));
- color.setContentAreaFilled(false);
- color.setOpaque(true);
- color.setPreferredSize(new Dimension(CONTROL_WIDTH,CONTROL_HEIGHT));
- color.setBackground(_an.getColor());
- color.addActionListener(this);
- color.setActionCommand("outline");
- outlinep.add(l1);
- outlinep.add(color);
-
-
- JPanel radiusp = new JPanel();
- l1 = new JLabel("Intensity: ");
- l1.setPreferredSize(new Dimension(TITLE_WIDTH,CONTROL_HEIGHT));
- SpinnerNumberModel jm = new SpinnerNumberModel(_an.getIntensity(),0.01,10.0,0.01);
- intensity = new JSpinner(jm);
- radiusp.add(l1);
- radiusp.add(intensity);
- intensity.addChangeListener(this);
-
- JPanel dirp = new JPanel();
- l1 = new JLabel("Direction: ");
- l1.setPreferredSize(new Dimension(TITLE_WIDTH,CONTROL_HEIGHT));
- outward.addItemListener(this);
- dirp.add(l1);
- dirp.add(outward);
-
- JPanel typep = new JPanel();
- l1 = new JLabel("Type: ");
- l1.setPreferredSize(new Dimension(TITLE_WIDTH,CONTROL_HEIGHT));
- type.addItemListener(this);
- typep.add(l1);
- typep.add(type);
-
-
-
- JPanel jp = new JPanel();
- jp.setLayout(new GridLayout(4,1));
- jp.add(outlinep);
- jp.add(radiusp);
- jp.add(dirp);
- jp.add(typep);
- panel.add(jp);
- }
-
- public JPanel getPanel() {
- return panel;
- }
-
- public VARNAPanel get_vp() {
- return _vp;
- }
-
- HighlightRegionAnnotation _backup = null;
-
- public boolean show() {
- boolean accept = false;
- intensity.setValue(_an.getIntensity());
- color.setBackground(_an.getColor());
- type.setSelectedItem(_an.getType());
- outward.setSelectedItem((_an.isOut()?"Inward":"Outward"));
-
- if (JOptionPane.showConfirmDialog(_vp, getPanel(),
- "Edit chemical probing 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().equals(intensity))
- {
- Object val = intensity.getValue();
- if (val instanceof Double)
- {
- _an.setIntensity(((Double)val).doubleValue());
- _vp.repaint();
- }
- }
-
- }
-
- public void actionPerformed(ActionEvent e) {
- if (e.getActionCommand().equals("outline")) {
- // BH j2s SwingJS asynchronous for JavaScript; synchronous for Java
- _vp.getVARNAUI().showColorDialog("Choose new outline color", _an.getColor(), new Runnable() {
-
- @Override
- public void run() {
- Color c = (Color) _vp.getVARNAUI().dialogReturnValue;
- if (c != null) {
- _an.setColor(c);
- color.setBackground(_an.getColor());
- _vp.repaint();
- }
- }
-
- });
- }
-
- }
-
- public void itemStateChanged(ItemEvent e) {
- if (e.getSource()==outward)
- {
- _an.setOut(!e.getItem().equals("Outward"));
- _vp.repaint();
- }
- else if ((e.getSource()==type)&&(e.getItem() instanceof ChemProbAnnotation.ChemProbAnnotationType))
- {
- ChemProbAnnotation.ChemProbAnnotationType t = (ChemProbAnnotation.ChemProbAnnotationType) e.getItem();
- _an.setType(t);
- _vp.repaint();
- }
-
- }
- }
-
-