X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src2%2Ffr%2Forsay%2Flri%2Fvarna%2Fcontrolers%2FControleurClicMovement.java;fp=src2%2Ffr%2Forsay%2Flri%2Fvarna%2Fcontrolers%2FControleurClicMovement.java;h=0000000000000000000000000000000000000000;hb=a1225b9392dc7657d5cef12907385b07527d6122;hp=42121068921ee3f7c59d896071d762d0917b8c15;hpb=b513684c725997c77341f30ce4e584cf9f7cdfed;p=jalview.git diff --git a/src2/fr/orsay/lri/varna/controlers/ControleurClicMovement.java b/src2/fr/orsay/lri/varna/controlers/ControleurClicMovement.java deleted file mode 100644 index 4212106..0000000 --- a/src2/fr/orsay/lri/varna/controlers/ControleurClicMovement.java +++ /dev/null @@ -1,688 +0,0 @@ -/* - 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.Component; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.awt.event.MouseMotionListener; -import java.awt.geom.Point2D; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Vector; - -import javax.swing.JMenu; -import javax.swing.JMenuItem; -import javax.swing.event.PopupMenuEvent; -import javax.swing.event.PopupMenuListener; - -import fr.orsay.lri.varna.VARNAPanel; -import fr.orsay.lri.varna.exceptions.ExceptionNAViewAlgorithm; -import fr.orsay.lri.varna.models.annotations.TextAnnotation; -import fr.orsay.lri.varna.models.rna.ModeleBase; -import fr.orsay.lri.varna.models.rna.ModeleBaseNucleotide; -import fr.orsay.lri.varna.models.rna.ModeleBasesComparison; -import fr.orsay.lri.varna.models.rna.ModeleBP; -import fr.orsay.lri.varna.models.rna.RNA; - - -/** - * Controller of the mouse click - * - * @author darty - * - */ -public class ControleurClicMovement implements MouseListener, - MouseMotionListener, PopupMenuListener { - private VARNAPanel _vp; - private boolean _presenceMenuSelection; - private JMenu _submenuSelection; - public Point _spawnPoint; - public Point _initialPoint; - public Point _prevPoint; - public Point _currentPoint; - - public static final double MIN_SELECTION_DISTANCE = 40.0; - public static final double HYSTERESIS_DISTANCE = 10.0; - - private ModeleBase _selectedBase = null; - - - public enum MouseStates { - NONE, - MOVE_ELEMENT, - MOVE_OR_SELECT_ELEMENT, - SELECT_ELEMENT, - SELECT_REGION_OR_UNSELECT, - SELECT_REGION, - CREATE_BP, - POPUP_MENU, - MOVE_ANNOTATION, - }; - private MouseStates _currentState = MouseStates.NONE; - - - - public ControleurClicMovement(VARNAPanel _vuep) { - _vp = _vuep; - _vp.getPopup().addPopupMenuListener(this); - _presenceMenuSelection = false; - } - - public void mouseClicked(MouseEvent arg0) { - } - - public void mouseEntered(MouseEvent arg0) { - } - - public void mouseExited(MouseEvent arg0) { - } - - public void mousePressed(MouseEvent arg0) - { - _vp.requestFocus(); - boolean button1 = (arg0.getButton() == MouseEvent.BUTTON1); - boolean button2 = (arg0.getButton() == MouseEvent.BUTTON2); - boolean button3 = (arg0.getButton() == MouseEvent.BUTTON3); - boolean shift = arg0.isShiftDown(); - boolean ctrl = arg0.isControlDown(); - boolean alt = arg0.isAltDown(); - _vp.removeSelectedAnnotation(); - if (button1 && !ctrl && !alt && !shift) - { - if (_vp.isModifiable()) - { - _currentState = MouseStates.MOVE_OR_SELECT_ELEMENT; - if (_vp.getRealCoords() != null - && _vp.getRealCoords().length != 0 - && _vp.getRNA().get_listeBases().size() != 0) - { - _selectedBase = _vp.getNearestBase(arg0.getX(),arg0.getY(),false,false); - TextAnnotation selectedAnnotation = _vp.getNearestAnnotation(arg0.getX(), arg0.getY()); - _initialPoint = new Point(arg0.getX(),arg0.getY()); - _currentPoint = new Point(_initialPoint); - _prevPoint = new Point(_initialPoint); - if (_selectedBase != null) - { - if (_vp.getRNA().get_drawMode() == RNA.DRAW_MODE_RADIATE) - { - _vp.highlightSelectedBase(_selectedBase); - } else { - if (!_vp.getSelectionIndices().contains(_selectedBase.getIndex())) - { - _vp.highlightSelectedBase(_selectedBase); - } - else - { - // Otherwise, keep current selection as it is and move it - } - } - } - else - { - if (selectedAnnotation != null) - { - _currentState = MouseStates.MOVE_ANNOTATION; - _vp.set_selectedAnnotation(selectedAnnotation); - _vp.highlightSelectedAnnotation(); - } - else - { - _vp.clearSelection(); - _selectedBase = null; - _currentState = MouseStates.SELECT_REGION_OR_UNSELECT; - _initialPoint = new Point(arg0.getX(),arg0.getY()); - _prevPoint = new Point(_initialPoint); - _currentPoint = new Point(_initialPoint); - } - } - } - } - } - else if (button1 && ctrl && !alt && !shift) - { - _selectedBase = _vp.getNearestBase(arg0.getX(),arg0.getY(),false,false); - if (_selectedBase != null) - { - _vp.clearSelection(); - _currentState = MouseStates.CREATE_BP; - _vp.highlightSelectedBase(_selectedBase); - _vp.setOriginLink(_vp.logicToPanel(_selectedBase.getCoords())); - _initialPoint = new Point(arg0.getX(),arg0.getY()); - _currentPoint = new Point(_initialPoint); - } - } - else if (button1 && !ctrl && !alt && shift) - { - _currentState = MouseStates.SELECT_ELEMENT; - _initialPoint = new Point(arg0.getX(),arg0.getY()); - _currentPoint = new Point(_initialPoint); - } - else if (button3) - { - _currentState = MouseStates.POPUP_MENU; - if (_presenceMenuSelection) { - _vp.getPopupMenu().removeSelectionMenu(); - } - if ((_vp.getRealCoords() != null) && _vp.getRNA().get_listeBases().size() != 0) { - updateNearestBase(arg0); - // on insere dans le menu les nouvelles options - addMenu(arg0); - if (_vp.get_selectedAnnotation() != null) - _vp.highlightSelectedAnnotation(); - } - // affichage du popup menu - if (_vp.getRNA().get_drawMode() == RNA.DRAW_MODE_LINEAR) { - _vp.getPopup().get_rotation().setEnabled(false); - } else { - _vp.getPopup().get_rotation().setEnabled(true); - } - _vp.getPopup().updateDialog(); - _vp.getPopup().show(_vp, arg0.getX(), arg0.getY()); - } - _vp.repaint(); - } - - public void mouseDragged(MouseEvent me) { - if ((_currentState == MouseStates.MOVE_OR_SELECT_ELEMENT)||(_currentState == MouseStates.MOVE_ELEMENT)) - { - _vp.lockScrolling(); - - _currentState = MouseStates.MOVE_ELEMENT; - // si on deplace la souris et qu'une base est selectionnée - if (_selectedBase != null) { - if (_vp.getRNA().get_drawMode() == RNA.DRAW_MODE_RADIATE) { - _vp.highlightSelectedStem(_selectedBase); - // dans le cas radiale on deplace une helice - _vp.getVARNAUI().UIMoveHelixAtom(_selectedBase.getIndex(), _vp.panelToLogicPoint(new Point2D.Double(me.getX(), me.getY()))); - } else { - // dans le cas circulaire naview ou line on deplace une base - _currentPoint = new Point(me.getX(), me.getY()); - moveSelection(_prevPoint,_currentPoint); - _prevPoint = new Point(_currentPoint); - } - _vp.repaint(); - } - } - else if (_currentState == MouseStates.MOVE_ANNOTATION) - { - if (_vp.get_selectedAnnotation()!=null) - { - Point2D.Double p = _vp.panelToLogicPoint(new Point2D.Double(me.getX(), me.getY())); - _vp.get_selectedAnnotation().setAncrage(p.x,p.y); - _vp.repaint(); - } - } - else if ((_currentState == MouseStates.SELECT_ELEMENT)||(_currentState == MouseStates.SELECT_REGION_OR_UNSELECT)) - { - if (_initialPoint.distance(me.getX(),me.getY())>HYSTERESIS_DISTANCE) - _currentState = MouseStates.SELECT_REGION; - } - else if (_currentState == MouseStates.SELECT_REGION) - { - _currentPoint = new Point(me.getX(),me.getY()); - int minx = Math.min(_currentPoint.x, _initialPoint.x); - int miny = Math.min(_currentPoint.y, _initialPoint.y); - int maxx = Math.max(_currentPoint.x, _initialPoint.x); - int maxy = Math.max(_currentPoint.y, _initialPoint.y); - _vp.setSelectionRectangle(new Rectangle(minx,miny,maxx-minx,maxy-miny)); - } - else if (_currentState == MouseStates.CREATE_BP) - { - if (_initialPoint.distance(me.getX(),me.getY())>HYSTERESIS_DISTANCE) - { - ModeleBase newSelectedBase = _vp.getNearestBase(me.getX(),me.getY(),false,false); - _vp.setHoverBase(newSelectedBase); - if (newSelectedBase==null) - { - _vp.setDestinationLink(new Point2D.Double(me.getX(),me.getY())); - _vp.clearSelection(); - _vp.addToSelection(_selectedBase.getIndex()); - } - else - { - ModeleBase mborig = _selectedBase; - _vp.clearSelection(); - _vp.addToSelection(newSelectedBase.getIndex()); - _vp.addToSelection(mborig.getIndex()); - _vp.setDestinationLink(_vp.logicToPanel(newSelectedBase.getCoords())); - } - _vp.repaint(); - } - - } - } - - - public void mouseReleased(MouseEvent arg0) { - if (arg0.getButton() == MouseEvent.BUTTON1) - { - _vp.fireBaseClicked(_selectedBase, arg0); - //System.out.println(""+_currentState); - - if (_currentState == MouseStates.MOVE_ELEMENT) - { - _vp.clearSelection(); - _selectedBase = null; - _vp.unlockScrolling(); - _vp.removeSelectedAnnotation(); - } - else if (_currentState == MouseStates.SELECT_REGION_OR_UNSELECT) - { - _vp.clearSelection(); - _selectedBase = null; - _vp.removeSelectedAnnotation(); - } - else if (_currentState == MouseStates.SELECT_ELEMENT) - { - if (_vp.getRealCoords() != null - && _vp.getRealCoords().length != 0 - && _vp.getRNA().get_listeBases().size() != 0) - { - int selectedIndex = _vp.getNearestBaseIndex(arg0.getX(),arg0.getY(),false,false); - if (selectedIndex !=-1) - { - _vp.toggleSelection(selectedIndex); - } - } - _selectedBase = null; - } - else if (_currentState == MouseStates.SELECT_REGION) - { - _vp.removeSelectionRectangle(); - } - else if (_currentState == MouseStates.CREATE_BP) - { - if (_initialPoint.distance(arg0.getX(),arg0.getY())>HYSTERESIS_DISTANCE) - { - int selectedIndex = _vp.getNearestBaseIndex(arg0.getX(),arg0.getY(),false,false); - if (selectedIndex>=0) - { - ModeleBase mb = _vp.getNearestBase(arg0.getX(),arg0.getY(),false,false); - ModeleBase mborig = _selectedBase; - ModeleBP msbp = new ModeleBP(mb,mborig); - if (mb!=mborig) - { - _vp.getVARNAUI().UIAddBP(mb.getIndex(),mborig.getIndex(),msbp); - } - } - } - _vp.removeLink(); - _vp.clearSelection(); - _vp.repaint(); - } - else - { - _vp.clearSelection(); - } - - } - _currentState = MouseStates.NONE; - _vp.repaint(); - } - - - private void addMenu(MouseEvent arg0) { - // creation du menu - _submenuSelection = new JMenu("Selection"); - addCurrent(); - // ajout des option sur base - addMenuBase(); - // ajout des option sur paire de base - if (_vp.getRNA().get_listeBases().get(_vp.getNearestBase()) - .getElementStructure() != -1) { - addMenuBasePair(); - } - - // detection renflement - detectBulge(); - // detection 3' - detect3Prime(); - // detection 5' - detect5Prime(); - // detection boucle - detectLoop(); - // detection d'helice - detectHelix(); - // detection tige - detectStem(); - // Ajout de toutes bases - addAllBase(); - // detection d'annotation - detectAnnotation(arg0); - - _vp.getPopup().addSelectionMenu(_submenuSelection); - _presenceMenuSelection = true; - } - - private void detectAnnotation(MouseEvent arg0) { - if (_vp.getListeAnnotations().size() != 0) { - double dist = Double.MAX_VALUE; - double d2; - Point2D.Double position; - for (TextAnnotation textAnnot : _vp.getListeAnnotations()) { - // calcul de la distance - position = textAnnot.getCenterPosition(); - position = _vp.transformCoord(position); - d2 = Math.sqrt(Math.pow((position.x - arg0.getX()), 2) - + Math.pow((position.y - arg0.getY()), 2)); - // si la valeur est inferieur au minimum actuel - if (dist > d2) { - _vp.set_selectedAnnotation(textAnnot); - dist = d2; - } - } - _submenuSelection.addSeparator(); - _vp.getPopup().addAnnotationMenu(_submenuSelection,true); - } - } - - private void detectBulge() { - int indiceB = _vp.getNearestBase(); - ArrayList indices = _vp.getRNA().findBulge(indiceB); - if ((indices.size() > 0) - && (_vp.getRNA().getHelixCountOnLoop(_vp.getNearestBase()) == 2)) { - JMenu submenuBulge = new JMenu("Bulge"); - submenuBulge.addChangeListener(new ControleurSelectionHighlight( - new Vector(indices), _vp, submenuBulge)); - submenuBulge.setActionCommand("bulge"); - if (!_vp.isModifiable()) - submenuBulge.setEnabled(false); - _vp.getPopupMenu().addColorOptions(submenuBulge); - _submenuSelection.add(submenuBulge); - } - } - - private void detectHelix() { - int indiceH = _vp.getNearestBase(); - ArrayList indices = _vp.getRNA().findHelix(indiceH); - if (indices.size() != 0) { - // ajout menu helice - JMenu submenuHelix = new JMenu("Helix"); - submenuHelix.addChangeListener(new ControleurSelectionHighlight( - new Vector(indices), _vp, submenuHelix)); - submenuHelix.setActionCommand("helix"); - if (!_vp.isModifiable()) - submenuHelix.setEnabled(false); - _vp.getPopupMenu().addColorOptions(submenuHelix); - submenuHelix.addSeparator(); - _vp.getPopupMenu().addAnnotationMenu(submenuHelix); - _submenuSelection.add(submenuHelix); - } - } - - private void detectStem() { - int indiceS = _vp.getNearestBase(); - ArrayList indices = _vp.getRNA().findStem(indiceS); - if (indices.size() > 0) { - JMenu submenuStem = new JMenu("Stem"); - submenuStem.addChangeListener(new ControleurSelectionHighlight( - new Vector(indices), _vp, submenuStem)); - submenuStem.setActionCommand("stem"); - if (!_vp.isModifiable()) - submenuStem.setEnabled(false); - _vp.getPopupMenu().addColorOptions(submenuStem); - _submenuSelection.add(submenuStem); - } - } - - private void detect3Prime() { - // detection 3' - int indice3 = _vp.getNearestBase(); - ArrayList indices = _vp.getRNA().find3Prime(indice3); - if (indices.size() != 0) { - JMenu submenu3Prime = new JMenu("3'"); - submenu3Prime.addChangeListener(new ControleurSelectionHighlight( - new Vector(indices), _vp, submenu3Prime)); - submenu3Prime.setActionCommand("3'"); - if (!_vp.isModifiable()) - submenu3Prime.setEnabled(false); - _vp.getPopupMenu().addColorOptions(submenu3Prime); - _submenuSelection.add(submenu3Prime); - } - } - - private void detect5Prime() { - int indice5 = _vp.getNearestBase(); - ArrayList indices = _vp.getRNA().find5Prime(indice5); - if (indices.size() != 0) { - JMenu submenu5Prime = new JMenu("5'"); - submenu5Prime.addChangeListener(new ControleurSelectionHighlight( - new Vector(indices), _vp, submenu5Prime)); - submenu5Prime.setActionCommand("5'"); - if (!_vp.isModifiable()) - submenu5Prime.setEnabled(false); - _vp.getPopupMenu().addColorOptions(submenu5Prime); - _submenuSelection.add(submenu5Prime); - } - } - - private void detectLoop() { - int indexL = _vp.getNearestBase(); - if (_vp.getRNA().get_listeBases().get(indexL).getElementStructure() == -1) { - ArrayList listLoop = _vp.getRNA().findLoop(indexL); - JMenu submenuLoop = new JMenu("Loop"); - submenuLoop.addChangeListener(new ControleurSelectionHighlight( - listLoop, _vp, submenuLoop)); - submenuLoop.setActionCommand("loop1"); - if (!_vp.isModifiable()) - submenuLoop.setEnabled(false); - _vp.getPopupMenu().addColorOptions(submenuLoop); - submenuLoop.addSeparator(); - _vp.getPopupMenu().addAnnotationMenu(submenuLoop); - _submenuSelection.add(submenuLoop); - } else { - ArrayList listLoop1 = _vp.getRNA().findLoopForward(indexL); - if (listLoop1.size() > 0) { - JMenu submenuLoop1 = new JMenu("Forward loop"); - submenuLoop1 - .addChangeListener(new ControleurSelectionHighlight( - listLoop1, _vp, submenuLoop1)); - submenuLoop1.setActionCommand("loop1"); - if (!_vp.isModifiable()) - submenuLoop1.setEnabled(false); - _vp.getPopupMenu().addColorOptions(submenuLoop1); - submenuLoop1.addSeparator(); - _vp.getPopupMenu().addAnnotationMenu(submenuLoop1); - _submenuSelection.add(submenuLoop1); - } - ArrayList listLoop2 = _vp.getRNA() - .findLoopBackward(indexL); - if (listLoop2.size() > 0) { - JMenu submenuLoop2 = new JMenu("Backward loop"); - submenuLoop2 - .addChangeListener(new ControleurSelectionHighlight( - listLoop2, _vp, submenuLoop2)); - submenuLoop2.setActionCommand("loop2"); - if (!_vp.isModifiable()) - submenuLoop2.setEnabled(false); - _vp.getPopupMenu().addColorOptions(submenuLoop2); - submenuLoop2.addSeparator(); - _vp.getPopupMenu().addAnnotationMenu(submenuLoop2); - _submenuSelection.add(submenuLoop2); - } - } - } - - private void addCurrent() { - Collection mbs = _vp.getSelection().getBases(); - if (mbs.size()>0) - { - JMenu submenuAll = new JMenu("Current"); - submenuAll.addChangeListener(new ControleurSelectionHighlight( - mbs, _vp, submenuAll)); - submenuAll.setActionCommand("current"); - if (!_vp.isModifiable()) - submenuAll.setEnabled(false); - _vp.getPopupMenu().addColorOptions(submenuAll); - _submenuSelection.add(submenuAll); - } - } - - - private void addMenuBase() { - JMenu submenuBase = new JMenu(); - ModeleBase mb = _vp.getRNA().get_listeBases().get(_vp.getNearestBase()); - if (mb instanceof ModeleBasesComparison) { - submenuBase.setText("Base #" + (mb.getBaseNumber()) + ":" - + ((ModeleBasesComparison) mb).getBases()); - } else { - submenuBase.setText("Base #" + (mb.getBaseNumber()) + ":" - + ((ModeleBaseNucleotide) mb).getBase()); - } - submenuBase.addChangeListener(new ControleurSelectionHighlight(mb - .getIndex(), _vp, submenuBase)); - submenuBase.setActionCommand("base"); - // option disponible seulement en mode modifiable - if (!_vp.isModifiable()) - submenuBase.setEnabled(false); - - JMenuItem baseChar = new JMenuItem("Edit base"); - baseChar.setActionCommand("baseChar"); - baseChar.addActionListener(_vp.getPopupMenu().get_controleurMenu()); - submenuBase.add(baseChar); - _vp.getPopupMenu().addColorOptions(submenuBase); - submenuBase.addSeparator(); - _vp.getPopupMenu().addAnnotationMenu(submenuBase); - _submenuSelection.add(submenuBase); - } - - private void addAllBase() { - ArrayList indices = _vp.getRNA().findAll(); - JMenu submenuAll = new JMenu("All"); - submenuAll.addChangeListener(new ControleurSelectionHighlight( - new Vector(indices), _vp, submenuAll)); - submenuAll.setActionCommand("all"); - if (!_vp.isModifiable()) - submenuAll.setEnabled(false); - _vp.getPopupMenu().addColorOptions(submenuAll); - _submenuSelection.add(submenuAll); - } - - private void addMenuBasePair() { - int indiceBP = _vp.getNearestBase(); - ArrayList indices = _vp.getRNA().findPair(indiceBP); - ModeleBase base = _vp.getRNA() - .get_listeBases().get(_vp.getNearestBase()); - if (base.getElementStructure() != -1) { - JMenu submenuBasePair = new JMenu(); - ModeleBase partner = _vp - .getRNA().get_listeBases().get( - base.getElementStructure()); - submenuBasePair - .addChangeListener(new ControleurSelectionHighlight( - indices, _vp, submenuBasePair)); - submenuBasePair.setText("Base pair #(" - + (Math.min(base.getBaseNumber(), partner - .getBaseNumber())) - + "," - + (Math.max(base.getBaseNumber(), partner - .getBaseNumber())) + ")"); - submenuBasePair.setActionCommand("bp"); - // option disponible seulement en mode modifiable - if (!_vp.isModifiable()) - submenuBasePair.setEnabled(false); - - JMenuItem basepair = new JMenuItem("Edit BP"); - basepair.setActionCommand("basepair"); - basepair.addActionListener(_vp.getPopupMenu() - .get_controleurMenu()); - - _vp.getPopupMenu().addColorOptions(submenuBasePair); - Component[] comps = submenuBasePair.getMenuComponents(); - int offset = -1; - for (int i = 0; i < comps.length; i++) { - Component c = comps[i]; - if (c instanceof JMenuItem) { - JMenuItem jmi = (JMenuItem) c; - if (jmi.getActionCommand().contains(",BPColor")) { - offset = i; - } - } - } - if (offset != -1) { - submenuBasePair.insert(basepair, offset); - } else { - submenuBasePair.add(basepair); - } - _submenuSelection.add(submenuBasePair); - } - } - - private void updateNearestBase(MouseEvent arg0) { - int i = _vp.getNearestBaseIndex(arg0.getX(),arg0.getY(),true,false); - if (i!=-1) - _vp.setNearestBase(i); - } - - - - - public void mouseMoved(MouseEvent arg0) { - _selectedBase = _vp.getNearestBase(arg0.getX(),arg0.getY()); - TextAnnotation selectedAnnotation = _vp.getNearestAnnotation(arg0.getX(),arg0.getY()); - _vp.setHoverBase(_selectedBase); - if (_selectedBase != null) - { - } - else if (selectedAnnotation!=null) - { - _vp.set_selectedAnnotation(selectedAnnotation); - _vp.highlightSelectedAnnotation(); - _vp.repaint(); - } - _vp.setLastSelectedPosition(new Point2D.Double(arg0.getX(),arg0.getY())); - } - - - - private void moveSelection(Point prev, Point cur) - { - Point2D.Double p1 = _vp.panelToLogicPoint(new Point2D.Double(prev.x,prev.y)); - Point2D.Double p2 = _vp.panelToLogicPoint(new Point2D.Double(cur.x,cur.y)); - double dx = (p2.x - p1.x); - double dy = (p2.y - p1.y); - - if (_vp.isModifiable()) - { - double ndx = dx; - double ndy = dy; - if (_vp.getRNA().get_drawMode() == RNA.DRAW_MODE_LINEAR) - { - ndy=0.0; - } - _vp.getVARNAUI().UIShiftBaseCoord(_vp.getSelectionIndices(), ndx, ndy); - _vp.fireLayoutChanged(); - - } - } - - - public void popupMenuCanceled(PopupMenuEvent arg0) { - } - - public void popupMenuWillBecomeInvisible(PopupMenuEvent arg0) { - _vp.resetAnnotationHighlight(); - _selectedBase = null; - } - - public void popupMenuWillBecomeVisible(PopupMenuEvent arg0) { - } -} \ No newline at end of file