X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FFeatureSettings.java;h=e3cdf766c64e96dbbcfd03b5ef6aa7f749df237e;hb=fee1b781ca14aadea5d112fc554fe14879c787c5;hp=a4d87286d696faab81991219d8d905d54d760aed;hpb=2fa752e929d92978a4afaeebd859295512552fce;p=jalview.git diff --git a/src/jalview/gui/FeatureSettings.java b/src/jalview/gui/FeatureSettings.java index a4d8728..e3cdf76 100644 --- a/src/jalview/gui/FeatureSettings.java +++ b/src/jalview/gui/FeatureSettings.java @@ -174,7 +174,7 @@ public class FeatureSettings extends JPanel implements public void mousePressed(MouseEvent evt) { selectedRow = table.rowAtPoint(evt.getPoint()); - if (SwingUtilities.isRightMouseButton(evt)) + if (evt.isPopupTrigger()) { popupSort(selectedRow, (String) table.getValueAt(selectedRow, 0), table.getValueAt(selectedRow, 1), fr.getMinMax(), @@ -182,14 +182,16 @@ public class FeatureSettings extends JPanel implements } else if (evt.getClickCount() == 2) { + boolean invertSelection = evt.isAltDown(); + boolean toggleSelection = Platform.isControlDown(evt); + boolean extendSelection = evt.isShiftDown(); fr.ap.alignFrame.avc.markColumnsContainingFeatures( - evt.isAltDown(), evt.isShiftDown() || evt.isMetaDown(), - evt.isMetaDown(), + invertSelection, extendSelection, toggleSelection, (String) table.getValueAt(selectedRow, 0)); } } - // isPopupTrigger fires on mouseReleased on Mac + // isPopupTrigger fires on mouseReleased on Windows @Override public void mouseReleased(MouseEvent evt) { @@ -211,11 +213,20 @@ public class FeatureSettings extends JPanel implements int newRow = table.rowAtPoint(evt.getPoint()); if (newRow != selectedRow && selectedRow != -1 && newRow != -1) { + /* + * reposition 'selectedRow' to 'newRow' (the dragged to location) + * this could be more than one row away for a very fast drag action + * so just swap it with adjacent rows until we get it there + */ Object[][] data = ((FeatureTableModel) table.getModel()) .getData(); - Object[] temp = data[selectedRow]; - data[selectedRow] = data[newRow]; - data[newRow] = temp; + int direction = newRow < selectedRow ? -1 : 1; + for (int i = selectedRow; i != newRow; i += direction) + { + Object[] temp = data[i]; + data[i] = data[i + direction]; + data[i + direction] = temp; + } updateFeatureRenderer(data); table.repaint(); selectedRow = newRow; @@ -807,8 +818,8 @@ public class FeatureSettings extends JPanel implements } else { - Color color = new Color( - Integer.parseInt(jucs.getColour(i).getRGB(), 16)); + Color color = new Color(Integer.parseInt(jucs.getColour(i) + .getRGB(), 16)); fr.setColour(name = jucs.getColour(i).getName(), new FeatureColour(color)); } @@ -833,8 +844,7 @@ public class FeatureSettings extends JPanel implements void save() { JalviewFileChooser chooser = new JalviewFileChooser( - Cache.getProperty("LAST_DIRECTORY"), - new String[] { "fc" }, + Cache.getProperty("LAST_DIRECTORY"), new String[] { "fc" }, new String[] { "Sequence Feature Colours" }, "Sequence Feature Colours"); chooser.setFileView(new jalview.io.JalviewFileView()); @@ -1392,15 +1402,15 @@ public class FeatureSettings extends JPanel implements public void noDasSourceActive() { complete(); - JOptionPane + JvOptionPane .showInternalConfirmDialog( Desktop.desktop, MessageManager .getString("label.no_das_sources_selected_warn"), MessageManager .getString("label.no_das_sources_selected_title"), - JOptionPane.DEFAULT_OPTION, - JOptionPane.INFORMATION_MESSAGE); + JvOptionPane.DEFAULT_OPTION, + JvOptionPane.INFORMATION_MESSAGE); } // ///////////////////////////////////////////////////////////////////////