X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAnnotationColumnChooser.java;h=96299e7ce9a405bac8d704cdfa89ab7fd1c76da0;hb=e4fe46502d641a228ee4877d2a5a8443eb75f189;hp=e87be356f2f82a429a13fd87edf462b768472d8a;hpb=5d44cd39caf9a34e9b934b2e2e04fd664d24bfd6;p=jalview.git diff --git a/src/jalview/gui/AnnotationColumnChooser.java b/src/jalview/gui/AnnotationColumnChooser.java index e87be35..96299e7 100644 --- a/src/jalview/gui/AnnotationColumnChooser.java +++ b/src/jalview/gui/AnnotationColumnChooser.java @@ -21,8 +21,7 @@ package jalview.gui; -import jalview.datamodel.AlignmentAnnotation; -import jalview.datamodel.ColumnSelection; +import jalview.datamodel.HiddenColumns; import jalview.schemes.AnnotationColourGradient; import jalview.util.MessageManager; import jalview.viewmodel.annotationfilter.AnnotationFilterParameter; @@ -55,27 +54,10 @@ import net.miginfocom.swing.MigLayout; public class AnnotationColumnChooser extends AnnotationRowFilter implements ItemListener { - - private JComboBox annotations; - - private JPanel actionPanel = new JPanel(); - - private JPanel thresholdPanel = new JPanel(); - private JPanel switchableViewsPanel = new JPanel(new CardLayout()); - private CardLayout switchableViewsLayout = (CardLayout) (switchableViewsPanel - .getLayout()); - private JPanel noGraphFilterView = new JPanel(); - - private JPanel graphFilterView = new JPanel(); - private JPanel annotationComboBoxPanel = new JPanel(); - private BorderLayout borderLayout1 = new BorderLayout(); - - private JComboBox threshold = new JComboBox(); - private StructureFilterPanel gStructureFilterPanel; private StructureFilterPanel ngStructureFilterPanel; @@ -104,18 +86,11 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements private int actionOption = ACTION_OPTION_SELECT; - private ColumnSelection oldColumnSelection; + private HiddenColumns oldHiddenColumns; - public AnnotationColumnChooser() - { - try - { - jbInit(); - } catch (Exception ex) - { - ex.printStackTrace(); - } - } + protected int MIN_WIDTH = 420; + + protected int MIN_HEIGHT = 430; public AnnotationColumnChooser(AlignViewport av, final AlignmentPanel ap) { @@ -126,6 +101,7 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements Desktop.addInternalFrame(frame, MessageManager.getString("label.select_by_annotation"), 520, 215); + frame.setMinimumSize(new Dimension(MIN_WIDTH, MIN_HEIGHT)); addSliderChangeListener(); addSliderMouseListeners(); @@ -134,25 +110,28 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements { return; } - setOldColumnSelection(av.getColumnSelection()); + setOldHiddenColumns(av.getAlignment().getHiddenColumns()); adjusting = true; setAnnotations(new JComboBox(getAnnotationItems(false))); populateThresholdComboBox(threshold); - + AnnotationColumnChooser lastChooser = av + .getAnnotationColumnSelectionState(); // restore Object state from the previous session if one exists - if (av.getAnnotationColumnSelectionState() != null) + if (lastChooser != null) { - currentSearchPanel = av.getAnnotationColumnSelectionState() + currentSearchPanel = lastChooser .getCurrentSearchPanel(); - currentStructureFilterPanel = av.getAnnotationColumnSelectionState() + currentStructureFilterPanel = lastChooser .getCurrentStructureFilterPanel(); - annotations.setSelectedIndex(av.getAnnotationColumnSelectionState() + annotations.setSelectedIndex(lastChooser .getAnnotations().getSelectedIndex()); - threshold.setSelectedIndex(av.getAnnotationColumnSelectionState() + threshold.setSelectedIndex(lastChooser .getThreshold().getSelectedIndex()); - actionOption = av.getAnnotationColumnSelectionState() + actionOption = lastChooser .getActionOption(); + percentThreshold.setSelected(lastChooser.percentThreshold + .isSelected()); } try @@ -168,72 +147,30 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements frame.pack(); } - private void jbInit() throws Exception + @Override + protected void jbInit() { - ok.setOpaque(false); - ok.setText(MessageManager.getString("action.ok")); - ok.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - ok_actionPerformed(e); - } - }); - - cancel.setOpaque(false); - cancel.setText(MessageManager.getString("action.cancel")); - cancel.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - cancel_actionPerformed(e); - } - }); - - annotations.addItemListener(this); - annotations.setToolTipText(MessageManager - .getString("info.select_annotation_row")); - threshold.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - threshold_actionPerformed(e); - } - }); - - thresholdValue.setEnabled(false); - thresholdValue.setColumns(7); - thresholdValue.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - thresholdValue_actionPerformed(e); - } - }); - - slider.setPaintLabels(false); - slider.setPaintTicks(true); - slider.setBackground(Color.white); - slider.setEnabled(false); - slider.setOpaque(false); - slider.setPreferredSize(new Dimension(100, 32)); + super.jbInit(); + JPanel thresholdPanel = new JPanel(); thresholdPanel.setBorder(new TitledBorder(MessageManager .getString("label.threshold_filter"))); thresholdPanel.setBackground(Color.white); thresholdPanel.setFont(JvSwingUtils.getLabelFont()); thresholdPanel.setLayout(new MigLayout("", "[left][right]", "[][]")); + percentThreshold.setBackground(Color.white); + percentThreshold.setFont(JvSwingUtils.getLabelFont()); + + JPanel actionPanel = new JPanel(); actionPanel.setBackground(Color.white); actionPanel.setFont(JvSwingUtils.getLabelFont()); + JPanel graphFilterView = new JPanel(); graphFilterView.setLayout(new MigLayout("", "[left][right]", "[][]")); graphFilterView.setBackground(Color.white); + JPanel noGraphFilterView = new JPanel(); noGraphFilterView.setLayout(new MigLayout("", "[left][right]", "[][]")); noGraphFilterView.setBackground(Color.white); @@ -248,8 +185,9 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements ngStructureFilterPanel = new StructureFilterPanel(this); thresholdPanel.add(getThreshold()); - thresholdPanel.add(thresholdValue, "wrap"); - thresholdPanel.add(slider, "grow, span, wrap"); + thresholdPanel.add(percentThreshold, "wrap"); + thresholdPanel.add(slider, "grow"); + thresholdPanel.add(thresholdValue, "span, wrap"); actionPanel.add(ok); actionPanel.add(cancel); @@ -269,7 +207,7 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements switchableViewsPanel.add(graphFilterView, AnnotationColumnChooser.GRAPH_VIEW); - this.setLayout(borderLayout1); + this.setLayout(new BorderLayout()); this.add(annotationComboBoxPanel, java.awt.BorderLayout.PAGE_START); this.add(switchableViewsPanel, java.awt.BorderLayout.CENTER); this.add(actionPanel, java.awt.BorderLayout.SOUTH); @@ -279,7 +217,7 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements this.validate(); } - public void updateThresholdPanelToolTip() + protected void updateThresholdPanelToolTip() { thresholdValue.setToolTipText(""); slider.setToolTipText(""); @@ -287,41 +225,44 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements String defaultTtip = MessageManager .getString("info.change_threshold_mode_to_enable"); - String threshold = getThreshold().getSelectedItem().toString(); - if (threshold.equalsIgnoreCase("No Threshold")) + String thresh = getThreshold().getSelectedItem().toString(); + if (thresh.equalsIgnoreCase("No Threshold")) { thresholdValue.setToolTipText(defaultTtip); slider.setToolTipText(defaultTtip); } } - public void reset() + + @Override + protected void reset() { - if (this.getOldColumnSelection() != null) + if (this.getOldHiddenColumns() != null) { av.getColumnSelection().clear(); if (av.getAnnotationColumnSelectionState() != null) { - ColumnSelection oldSelection = av + HiddenColumns oldHidden = av .getAnnotationColumnSelectionState() - .getOldColumnSelection(); - if (oldSelection != null && oldSelection.getHiddenColumns() != null - && !oldSelection.getHiddenColumns().isEmpty()) + .getOldHiddenColumns(); + if (oldHidden != null && oldHidden.getHiddenRegions() != null + && !oldHidden.getHiddenRegions().isEmpty()) { - for (Iterator itr = oldSelection.getHiddenColumns() + for (Iterator itr = oldHidden.getHiddenRegions() .iterator(); itr.hasNext();) { int positions[] = itr.next(); av.hideColumns(positions[0], positions[1]); } } - av.setColumnSelection(oldSelection); + av.getAlignment().setHiddenColumns(oldHidden); } ap.paintAlignment(true); } } + @Override public void valueChanged(boolean updateAllAnnotation) { if (slider.isEnabled()) @@ -334,26 +275,6 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements } } - public JComboBox getThreshold() - { - return threshold; - } - - public void setThreshold(JComboBox threshold) - { - this.threshold = threshold; - } - - public JComboBox getAnnotations() - { - return annotations; - } - - public void setAnnotations(JComboBox annotations) - { - this.annotations = annotations; - } - @Override public void updateView() { @@ -373,12 +294,14 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements slider.setEnabled(true); thresholdValue.setEnabled(true); + percentThreshold.setEnabled(true); if (selectedThresholdItem == AnnotationColourGradient.NO_THRESHOLD) { slider.setEnabled(false); thresholdValue.setEnabled(false); thresholdValue.setText(""); + percentThreshold.setEnabled(false); // build filter params } else if (selectedThresholdItem != AnnotationColourGradient.NO_THRESHOLD) @@ -399,7 +322,9 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements slider.setMinimum((int) (getCurrentAnnotation().graphMin * 1000)); slider.setMaximum((int) (getCurrentAnnotation().graphMax * 1000)); slider.setValue((int) (getCurrentAnnotation().threshold.value * 1000)); - thresholdValue.setText(getCurrentAnnotation().threshold.value + ""); + + setThresholdValueText(); + slider.setMajorTickSpacing((int) (range / 10f)); slider.setEnabled(true); thresholdValue.setEnabled(true); @@ -408,7 +333,7 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements // build filter params filterParams .setThresholdType(AnnotationFilterParameter.ThresholdType.NO_THRESHOLD); - if (getCurrentAnnotation().graph != AlignmentAnnotation.NO_GRAPH) + if (getCurrentAnnotation().isQuantitative()) { filterParams .setThresholdValue(getCurrentAnnotation().threshold.value); @@ -483,16 +408,16 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements ap.paintAlignment(true); } - public ColumnSelection getOldColumnSelection() + public HiddenColumns getOldHiddenColumns() { - return oldColumnSelection; + return oldHiddenColumns; } - public void setOldColumnSelection(ColumnSelection currentColumnSelection) + public void setOldHiddenColumns(HiddenColumns currentHiddenColumns) { - if (currentColumnSelection != null) + if (currentHiddenColumns != null) { - this.oldColumnSelection = new ColumnSelection(currentColumnSelection); + this.oldHiddenColumns = new HiddenColumns(currentHiddenColumns); } } @@ -564,11 +489,13 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements selectedAnnotationChanged(); } + @Override public void selectedAnnotationChanged() { String currentView = AnnotationColumnChooser.NO_GRAPH_VIEW; - if (av.getAlignment().getAlignmentAnnotation()[annmap[getAnnotations() - .getSelectedIndex()]].graph != AlignmentAnnotation.NO_GRAPH) + if (av.getAlignment() + .getAlignmentAnnotation()[annmap[getAnnotations() + .getSelectedIndex()]].isQuantitative()) { currentView = AnnotationColumnChooser.GRAPH_VIEW; } @@ -581,11 +508,12 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements ngFurtherActionPanel.syncState(); ngStructureFilterPanel.syncState(); + CardLayout switchableViewsLayout = (CardLayout) switchableViewsPanel + .getLayout(); switchableViewsLayout.show(switchableViewsPanel, currentView); updateView(); } - public class FurtherActionPanel extends JPanel { private AnnotationColumnChooser aColChooser; @@ -646,8 +574,7 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements { if (aColChooser.getActionOption() == AnnotationColumnChooser.ACTION_OPTION_HIDE) { - this.optionsGroup.setSelected(this.hideOption.getModel(), - true); + this.optionsGroup.setSelected(this.hideOption.getModel(), true); } else { @@ -816,27 +743,26 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements JvSwingUtils.jvInitComponent(searchBox); searchBox.setToolTipText(MessageManager .getString("info.enter_search_text_here")); - searchBox.getDocument().addDocumentListener( - new DocumentListener() - { - @Override - public void insertUpdate(DocumentEvent e) - { - searchStringAction(); - } - - @Override - public void removeUpdate(DocumentEvent e) - { - searchStringAction(); - } - - @Override - public void changedUpdate(DocumentEvent e) - { - searchStringAction(); - } - }); + searchBox.getDocument().addDocumentListener(new DocumentListener() + { + @Override + public void insertUpdate(DocumentEvent e) + { + searchStringAction(); + } + + @Override + public void removeUpdate(DocumentEvent e) + { + searchStringAction(); + } + + @Override + public void changedUpdate(DocumentEvent e) + { + searchStringAction(); + } + }); JvSwingUtils.jvInitComponent(displayName, "label.label"); displayName.setEnabled(false); @@ -905,15 +831,14 @@ public class AnnotationColumnChooser extends AnnotationRowFilter implements { String defaultTtip = MessageManager .getString("info.enter_search_text_to_enable"); - String labelTtip = MessageManager -.formatMessage( + String labelTtip = MessageManager.formatMessage( "info.search_in_annotation_label", annotations .getSelectedItem().toString()); - String descTtip = MessageManager -.formatMessage( + String descTtip = MessageManager.formatMessage( "info.search_in_annotation_description", annotations .getSelectedItem().toString()); - displayName.setToolTipText(displayName.isEnabled() ? labelTtip : defaultTtip); + displayName.setToolTipText(displayName.isEnabled() ? labelTtip + : defaultTtip); description.setToolTipText(description.isEnabled() ? descTtip : defaultTtip); }