X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FFeatureSettings.java;h=ef688f7b6327f695b76c1f89f75844cbdb25245f;hb=8240aa86ee94d4c372af7deb1452a8294ff8800b;hp=ce88b90118c1336147836fcc1103f23a07b100ee;hpb=8f759d39bf8d95e5657eccda618b65ad31171fcf;p=jalview.git diff --git a/src/jalview/gui/FeatureSettings.java b/src/jalview/gui/FeatureSettings.java index ce88b90..ef688f7 100755 --- a/src/jalview/gui/FeatureSettings.java +++ b/src/jalview/gui/FeatureSettings.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -31,8 +31,6 @@ import jalview.io.JalviewFileChooser; import java.awt.BorderLayout; import java.awt.Font; import java.awt.Color; -import jalview.biojava.dasobert.dasregistry.DasSource; -import jalview.biojava.dasobert.dasregistry.DasCoordinateSystem; public class FeatureSettings extends JPanel { @@ -50,7 +48,6 @@ public class FeatureSettings extends JPanel JSlider transparency = new JSlider(); JPanel transPanel = new JPanel(new FlowLayout()); - boolean alignmentHasFeatures = false; public FeatureSettings(AlignFrame af) { @@ -68,6 +65,54 @@ public class FeatureSettings extends JPanel ex.printStackTrace(); } + table = new JTable(); + table.getTableHeader().setFont(new Font("Verdana", Font.PLAIN, 12)); + table.setFont(new Font("Verdana", Font.PLAIN, 12)); + table.setDefaultRenderer(Color.class, + new ColorRenderer()); + + table.setDefaultEditor(Color.class, + new ColorEditor()); + + table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + + table.addMouseListener(new MouseAdapter() + { + public void mousePressed(MouseEvent evt) + { + selectedRow = table.rowAtPoint(evt.getPoint()); + } + }); + + table.addMouseMotionListener(new MouseMotionAdapter() + { + public void mouseDragged(MouseEvent evt) + { + int newRow = table.rowAtPoint(evt.getPoint()); + if (newRow != selectedRow + && selectedRow != -1 + && newRow != -1) + { + Object[] temp = new Object[3]; + temp[0] = table.getValueAt(selectedRow, 0); + temp[1] = table.getValueAt(selectedRow, 1); + temp[2] = table.getValueAt(selectedRow, 2); + + table.setValueAt(table.getValueAt(newRow, 0), selectedRow, 0); + table.setValueAt(table.getValueAt(newRow, 1), selectedRow, 1); + table.setValueAt(table.getValueAt(newRow, 2), selectedRow, 2); + + table.setValueAt(temp[0], newRow, 0); + table.setValueAt(temp[1], newRow, 1); + table.setValueAt(temp[2], newRow, 2); + + selectedRow = newRow; + } + } + }); + + scrollPane.setViewportView(table); + dassourceBrowser = new DasSourceBrowser(); dasSettingsPane.add(dassourceBrowser, BorderLayout.CENTER); @@ -76,7 +121,6 @@ public class FeatureSettings extends JPanel if (af.getViewport().featuresDisplayed == null || fr.renderOrder==null) fr.findAllFeatures(); - setTableData(); frame = new JInternalFrame(); @@ -85,10 +129,8 @@ public class FeatureSettings extends JPanel frame.setLayer(JLayeredPane.PALETTE_LAYER); } - public void setTableData() + synchronized public void setTableData() { - alignmentHasFeatures = false; - if (fr.featureGroups == null) fr.featureGroups = new Hashtable(); @@ -102,8 +144,6 @@ public class FeatureSettings extends JPanel if (af.getViewport().alignment.getSequenceAt(i).getDatasetSequence().getSequenceFeatures() == null) continue; - alignmentHasFeatures = true; - tmpfeatures = af.getViewport().alignment.getSequenceAt(i).getDatasetSequence().getSequenceFeatures(); int index = 0; @@ -127,14 +167,28 @@ public class FeatureSettings extends JPanel { visible = ( (Boolean) fr.featureGroups.get(group)).booleanValue(); } - else - { - fr.featureGroups.put(group, new Boolean(visible)); + if (groupPanel == null) { groupPanel = new JPanel(); } + boolean alreadyAdded = false; + for(int g=0; g