+++ /dev/null
-/*
- VARNA is a tool for the automated drawing, visualization and annotation of the secondary structure of RNA, designed as a companion software for web servers and databases.
- Copyright (C) 2008 Kevin Darty, Alain Denise and Yann Ponty.
- electronic mail : Yann.Ponty@lri.fr
- paper mail : LRI, bat 490 Université Paris-Sud 91405 Orsay Cedex France
-
- This file is part of VARNA version 3.1.
- VARNA version 3.1 is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-
- VARNA version 3.1 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with VARNA version 3.1.
- If not, see http://www.gnu.org/licenses.
- */
-package fr.orsay.lri.varna.controlers;
-
-import java.awt.Color;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ComponentEvent;
-import java.awt.event.ComponentListener;
-
-import fr.orsay.lri.varna.components.BaseSpecialColorEditor;
-import fr.orsay.lri.varna.models.BaseList;
-import fr.orsay.lri.varna.models.rna.ModeleBase;
-
-/**
- * BH SwingJS - additions here to allow asynchronous JColorChooser
- */
-public class ControleurBaseSpecialColorEditor implements ActionListener, ComponentListener { // BH SwingJS
-
- private BaseSpecialColorEditor _specialColorEditor;
-
- private int _selectedRow;
- private int _selectedCol;
- private Color _selectedColor;
- private String _selectedColTitle;
-
- public ControleurBaseSpecialColorEditor(BaseSpecialColorEditor specialColorEditor) {
- _specialColorEditor = specialColorEditor;
- }
-
- /**
- * Handles events from the editor button and from the dialog's OK button.
- */
- public void actionPerformed(ActionEvent e) {
- if (BaseSpecialColorEditor.getEDIT().equals(e.getActionCommand())) {
- // The user has clicked the cell, so
- // bring up the dialog.
- _specialColorEditor.getButton().setBackground(
- _specialColorEditor.getCurrentColor());
- _specialColorEditor.getColorChooser().setColor(
- _specialColorEditor.getCurrentColor());
-
- // BH SwingJS in JavaScript, this is not modal.
- // We have to set a callback to stop the editing.
-
- _specialColorEditor.getDialog().removeComponentListener(this);
- _specialColorEditor.getDialog().addComponentListener(this);
- _specialColorEditor.getDialog().setVisible(true);
-
-
- // Make the renderer reappear.
- // BH SwingJS not so fast...
- //_specialColorEditor.callFireEditingStopped();
-
- } else { // User pressed dialog's "OK" button.
- _specialColorEditor.setCurrentColor(_specialColorEditor
- .getColorChooser().getColor());
-
- _selectedRow = _specialColorEditor.get_vueBases().getTable()
- .getSelectedRow();
-
- _selectedCol = _specialColorEditor.get_vueBases().getTable()
- .getSelectedColumn();
-
- _selectedColor = _specialColorEditor.getCurrentColor();
-
- _selectedColTitle = _specialColorEditor.get_vueBases()
- .getSpecialTableModel().getColumnName(_selectedCol);
- BaseList lb = _specialColorEditor.get_vueBases().getDataAt(_selectedRow);
- for(ModeleBase mb: lb.getBases())
- {
- applyColor(_selectedColTitle, _selectedColor,mb);
- }
- _specialColorEditor.get_vueBases().get_vp().repaint();
- }
- }
-
-
- private void applyColor(String titreCol, Color couleur, ModeleBase mb) {
- if (titreCol.equals("Inner Color")) {
- mb.getStyleBase()
- .setBaseInnerColor(couleur);
- } else if (titreCol.equals("Outline Color")) {
- mb.getStyleBase()
- .setBaseOutlineColor(couleur);
- } else if (titreCol.equals("Name Color")) {
- mb.getStyleBase()
- .setBaseNameColor(couleur);
- } else if (titreCol.equals("Number Color")) {
- mb.getStyleBase()
- .setBaseNumberColor(couleur);
- }
-
- }
-
-
- @Override
- public void componentResized(ComponentEvent e) {
- }
-
- @Override
- public void componentMoved(ComponentEvent e) {
- }
-
- @Override
- public void componentShown(ComponentEvent e) {
- }
-
- @Override
- public void componentHidden(ComponentEvent e) {
-
- _specialColorEditor.callFireEditingStopped(); // BH SwingJS -- need to catch this
-
- }
-
-}