X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FFeatureSettings.java;h=6ca0769f867fe0ffdd45b105f8a6661160a58afd;hb=ef9282b464dc189faf9ce40a4b7420a204266668;hp=940a216e5aee502f9d394d4571cd9d40379845be;hpb=7ec8c23d92c88099a6378cc60e896e4c90ada5e7;p=jalview.git diff --git a/src/jalview/gui/FeatureSettings.java b/src/jalview/gui/FeatureSettings.java index 940a216..6ca0769 100644 --- a/src/jalview/gui/FeatureSettings.java +++ b/src/jalview/gui/FeatureSettings.java @@ -54,6 +54,7 @@ import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; +import java.util.Arrays; import java.util.Hashtable; import java.util.Iterator; import java.util.List; @@ -125,7 +126,8 @@ public class FeatureSettings extends JPanel implements this.af = af; fr = af.getFeatureRenderer(); // allow transparency to be recovered - transparency.setMaximum(100 - (int) ((originalTransparency=fr.getTransparency()) * 100)); + transparency.setMaximum(100 - (int) ((originalTransparency = fr + .getTransparency()) * 100)); try { @@ -135,15 +137,18 @@ public class FeatureSettings extends JPanel implements ex.printStackTrace(); } - table = new JTable() { + table = new JTable() + { @Override - public String getToolTipText(MouseEvent e) { - if (table.columnAtPoint(e.getPoint()) == 0) { + public String getToolTipText(MouseEvent e) + { + if (table.columnAtPoint(e.getPoint()) == 0) + { /* * Tooltip for feature name only */ - return JvSwingUtils.wrapTooltip(true, - MessageManager.getString("label.feature_settings_click_drag")); + return JvSwingUtils.wrapTooltip(true, MessageManager + .getString("label.feature_settings_click_drag")); } return null; } @@ -160,6 +165,7 @@ public class FeatureSettings extends JPanel implements table.addMouseListener(new MouseAdapter() { + @Override public void mousePressed(MouseEvent evt) { selectedRow = table.rowAtPoint(evt.getPoint()); @@ -187,38 +193,32 @@ public class FeatureSettings extends JPanel implements { popupSort(selectedRow, (String) table.getValueAt(selectedRow, 0), table.getValueAt(selectedRow, 1), fr.getMinMax(), - evt.getX(), - evt.getY()); + evt.getX(), evt.getY()); } } }); table.addMouseMotionListener(new MouseMotionAdapter() { + @Override 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); - + Object[][] data = ((FeatureTableModel) table.getModel()) + .getData(); + Object[] temp = data[selectedRow]; + data[selectedRow] = data[newRow]; + data[newRow] = temp; + updateFeatureRenderer(data); + table.repaint(); selectedRow = newRow; } } }); -// table.setToolTipText(JvSwingUtils.wrapTooltip(true, -// MessageManager.getString("label.feature_settings_click_drag"))); + // table.setToolTipText(JvSwingUtils.wrapTooltip(true, + // MessageManager.getString("label.feature_settings_click_drag"))); scrollPane.setViewportView(table); dassourceBrowser = new DasSourceBrowser(this); @@ -234,6 +234,7 @@ public class FeatureSettings extends JPanel implements final FeatureSettings fs = this; fr.addPropertyChangeListener(change = new PropertyChangeListener() { + @Override public void propertyChange(PropertyChangeEvent evt) { if (!fs.resettingTable && !fs.handlingUpdate) @@ -264,6 +265,7 @@ public class FeatureSettings extends JPanel implements frame.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() { + @Override public void internalFrameClosed( javax.swing.event.InternalFrameEvent evt) { @@ -278,8 +280,7 @@ public class FeatureSettings extends JPanel implements final Object typeCol, final Hashtable minmax, int x, int y) { JPopupMenu men = new JPopupMenu(MessageManager.formatMessage( - "label.settings_for_param", new String[] - { type })); + "label.settings_for_param", new String[] { type })); JMenuItem scr = new JMenuItem( MessageManager.getString("label.sort_by_score")); men.add(scr); @@ -287,10 +288,11 @@ public class FeatureSettings extends JPanel implements scr.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { - me.af.avc.sortAlignmentByFeatureScore(new String[] - { type }); + me.af.avc.sortAlignmentByFeatureScore(Arrays + .asList(new String[] { type })); } }); @@ -299,10 +301,11 @@ public class FeatureSettings extends JPanel implements dens.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { - me.af.avc.sortAlignmentByFeatureDensity(new String[] - { type }); + me.af.avc.sortAlignmentByFeatureDensity(Arrays + .asList(new String[] { type })); } }); @@ -337,6 +340,7 @@ public class FeatureSettings extends JPanel implements { JColorChooser colorChooser; + @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == mxcol) @@ -507,6 +511,7 @@ public class FeatureSettings extends JPanel implements check.setFont(new Font("Serif", Font.BOLD, 12)); check.addItemListener(new ItemListener() { + @Override public void itemStateChanged(ItemEvent evt) { fr.setGroupVisibility(check.getText(), check.isSelected()); @@ -516,8 +521,7 @@ public class FeatureSettings extends JPanel implements af.alignPanel.overviewPanel.updateOverviewImage(); } - resetTable(new String[] - { grp }); + resetTable(new String[] { grp }); } }); groupPanel.add(check); @@ -705,11 +709,13 @@ public class FeatureSettings extends JPanel implements void load() { JalviewFileChooser chooser = new JalviewFileChooser( - jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[] - { "fc" }, new String[] - { "Sequence Feature Colours" }, "Sequence Feature Colours"); + jalview.bin.Cache.getProperty("LAST_DIRECTORY"), + new String[] { "fc" }, + new String[] { "Sequence Feature Colours" }, + "Sequence Feature Colours"); chooser.setFileView(new jalview.io.JalviewFileView()); - chooser.setDialogTitle(MessageManager.getString("label.load_feature_colours")); + chooser.setDialogTitle(MessageManager + .getString("label.load_feature_colours")); chooser.setToolTipText(MessageManager.getString("action.load")); int value = chooser.showOpenDialog(this); @@ -724,8 +730,7 @@ public class FeatureSettings extends JPanel implements file), "UTF-8"); jalview.schemabinding.version2.JalviewUserColours jucs = new jalview.schemabinding.version2.JalviewUserColours(); - jucs = jucs - .unmarshal(in); + jucs = jucs.unmarshal(in); for (int i = jucs.getColourCount() - 1; i >= 0; i--) { @@ -803,11 +808,13 @@ public class FeatureSettings extends JPanel implements void save() { JalviewFileChooser chooser = new JalviewFileChooser( - jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[] - { "fc" }, new String[] - { "Sequence Feature Colours" }, "Sequence Feature Colours"); + jalview.bin.Cache.getProperty("LAST_DIRECTORY"), + new String[] { "fc" }, + new String[] { "Sequence Feature Colours" }, + "Sequence Feature Colours"); chooser.setFileView(new jalview.io.JalviewFileView()); - chooser.setDialogTitle(MessageManager.getString("label.save_feature_colours")); + chooser.setDialogTitle(MessageManager + .getString("label.save_feature_colours")); chooser.setToolTipText(MessageManager.getString("action.save")); int value = chooser.showSaveDialog(this); @@ -942,9 +949,9 @@ public class FeatureSettings extends JPanel implements } } if (sort) - { + { jalview.util.QuickSort.sort(width, data); - // update global priority order + // update global priority order } updateFeatureRenderer(data, false); @@ -967,10 +974,19 @@ public class FeatureSettings extends JPanel implements updateFeatureRenderer(data, true); } + /** + * Update the priority order of features; only repaint if this changed the + * order of visible features + * + * @param data + * @param visibleNew + */ private void updateFeatureRenderer(Object[][] data, boolean visibleNew) { - fr.setFeaturePriority(data, visibleNew); - af.alignPanel.paintAlignment(true); + if (fr.setFeaturePriority(data, visibleNew)) + { + af.alignPanel.paintAlignment(true); + } } int selectedRow = -1; @@ -1027,6 +1043,7 @@ public class FeatureSettings extends JPanel implements invert.setText(MessageManager.getString("label.invert_selection")); invert.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { invertSelection(); @@ -1036,6 +1053,7 @@ public class FeatureSettings extends JPanel implements optimizeOrder.setText(MessageManager.getString("label.optimise_order")); optimizeOrder.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { orderByAvWidth(); @@ -1046,6 +1064,7 @@ public class FeatureSettings extends JPanel implements .setText(MessageManager.getString("label.seq_sort_by_score")); sortByScore.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { af.avc.sortAlignmentByFeatureScore(null); @@ -1056,6 +1075,7 @@ public class FeatureSettings extends JPanel implements .getString("label.sequence_sort_by_density")); sortByDens.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { af.avc.sortAlignmentByFeatureDensity(null); @@ -1065,6 +1085,7 @@ public class FeatureSettings extends JPanel implements help.setText(MessageManager.getString("action.help")); help.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { try @@ -1080,6 +1101,7 @@ public class FeatureSettings extends JPanel implements help.setText(MessageManager.getString("action.help")); help.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { try @@ -1095,6 +1117,7 @@ public class FeatureSettings extends JPanel implements cancel.setText(MessageManager.getString("action.cancel")); cancel.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { fr.setTransparency(originalTransparency); @@ -1106,6 +1129,7 @@ public class FeatureSettings extends JPanel implements ok.setText(MessageManager.getString("action.ok")); ok.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { close(); @@ -1115,6 +1139,7 @@ public class FeatureSettings extends JPanel implements loadColours.setText(MessageManager.getString("label.load_colours")); loadColours.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { load(); @@ -1124,6 +1149,7 @@ public class FeatureSettings extends JPanel implements saveColours.setText(MessageManager.getString("label.save_colours")); saveColours.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { save(); @@ -1131,6 +1157,7 @@ public class FeatureSettings extends JPanel implements }); transparency.addChangeListener(new ChangeListener() { + @Override public void stateChanged(ChangeEvent evt) { fr.setTransparency((100 - transparency.getValue()) / 100f); @@ -1144,6 +1171,7 @@ public class FeatureSettings extends JPanel implements fetchDAS.setText(MessageManager.getString("label.fetch_das_features")); fetchDAS.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { fetchDAS_actionPerformed(e); @@ -1152,6 +1180,7 @@ public class FeatureSettings extends JPanel implements saveDAS.setText(MessageManager.getString("action.save_as_default")); saveDAS.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { saveDAS_actionPerformed(e); @@ -1163,14 +1192,17 @@ public class FeatureSettings extends JPanel implements cancelDAS.setText(MessageManager.getString("action.cancel_fetch")); cancelDAS.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { cancelDAS_actionPerformed(e); } }); this.add(tabbedPane, java.awt.BorderLayout.CENTER); - tabbedPane.addTab(MessageManager.getString("label.feature_settings"), settingsPane); - tabbedPane.addTab(MessageManager.getString("label.das_settings"), dasSettingsPane); + tabbedPane.addTab(MessageManager.getString("label.feature_settings"), + settingsPane); + tabbedPane.addTab(MessageManager.getString("label.das_settings"), + dasSettingsPane); bigPanel.add(transPanel, java.awt.BorderLayout.SOUTH); transbuttons.add(optimizeOrder); transbuttons.add(invert); @@ -1300,6 +1332,7 @@ public class FeatureSettings extends JPanel implements Runnable fetcher = new Runnable() { + @Override public void run() { doDasFeatureFetch(dassources, true, false); @@ -1364,8 +1397,10 @@ public class FeatureSettings extends JPanel implements this.data = data; } - private String[] columnNames = - { MessageManager.getString("label.feature_type"), MessageManager.getString("action.colour"), MessageManager.getString("label.display") }; + private String[] columnNames = { + MessageManager.getString("label.feature_type"), + MessageManager.getString("action.colour"), + MessageManager.getString("label.display") }; private Object[][] data; @@ -1379,6 +1414,7 @@ public class FeatureSettings extends JPanel implements this.data = data; } + @Override public int getColumnCount() { return columnNames.length; @@ -1389,31 +1425,37 @@ public class FeatureSettings extends JPanel implements return data[row]; } + @Override public int getRowCount() { return data.length; } + @Override public String getColumnName(int col) { return columnNames[col]; } + @Override public Object getValueAt(int row, int col) { return data[row][col]; } + @Override public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); } + @Override public boolean isCellEditable(int row, int col) { return col == 0 ? false : true; } + @Override public void setValueAt(Object value, int row, int col) { data[row][col] = value; @@ -1438,6 +1480,7 @@ public class FeatureSettings extends JPanel implements setVerticalTextPosition(SwingConstants.CENTER); } + @Override public Component getTableCellRendererComponent(JTable table, Object color, boolean isSelected, boolean hasFocus, int row, int column) @@ -1603,16 +1646,19 @@ class FeatureIcon implements Icon } } + @Override public int getIconWidth() { return width; } + @Override public int getIconHeight() { return height; } + @Override public void paintIcon(Component c, Graphics g, int x, int y) { @@ -1693,6 +1739,7 @@ class ColorEditor extends AbstractCellEditor implements TableCellEditor, /** * Handles events from the editor button and from the dialog's OK button. */ + @Override public void actionPerformed(ActionEvent e) { @@ -1738,6 +1785,7 @@ class ColorEditor extends AbstractCellEditor implements TableCellEditor, } // Implement the one CellEditor method that AbstractCellEditor doesn't. + @Override public Object getCellEditorValue() { if (currentColor == null) @@ -1748,6 +1796,7 @@ class ColorEditor extends AbstractCellEditor implements TableCellEditor, } // Implement the one method defined by TableCellEditor. + @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {