X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAnnotationColumnChooser.java;h=a1c082c0c9bb29a46c3b6c3738baf16d42f403bd;hb=a83adb45bdf9554e270921b4baad94defd314b36;hp=84b2c6f096fd8b6cda6f3edb7bb5b81e3861a6c5;hpb=f4766a7bbcfae845fc95923b01fa14ff83d589ff;p=jalview.git diff --git a/src/jalview/gui/AnnotationColumnChooser.java b/src/jalview/gui/AnnotationColumnChooser.java index 84b2c6f..a1c082c 100644 --- a/src/jalview/gui/AnnotationColumnChooser.java +++ b/src/jalview/gui/AnnotationColumnChooser.java @@ -25,6 +25,7 @@ import jalview.datamodel.HiddenColumns; import jalview.io.cache.JvCacheableInputBox; import jalview.schemes.AnnotationColourGradient; import jalview.util.MessageManager; +import jalview.util.Platform; import jalview.viewmodel.annotationfilter.AnnotationFilterParameter; import java.awt.BorderLayout; @@ -33,10 +34,11 @@ import java.awt.Color; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; -import java.util.ArrayList; import javax.swing.ButtonGroup; import javax.swing.JCheckBox; @@ -77,19 +79,18 @@ public class AnnotationColumnChooser extends AnnotationRowFilter public static final int ACTION_OPTION_SELECT = 1; - public static int ACTION_OPTION_HIDE = 2; + public static final int ACTION_OPTION_HIDE = 2; - public static String NO_GRAPH_VIEW = "0"; + public static final String NO_GRAPH_VIEW = "0"; - public static String GRAPH_VIEW = "1"; + public static final String GRAPH_VIEW = "1"; private int actionOption = ACTION_OPTION_SELECT; private HiddenColumns oldHiddenColumns; - protected int MIN_WIDTH = 420; - - protected int MIN_HEIGHT = 430; + protected static int MIN_WIDTH = (Platform.isJS() ? 370 : 420); + protected static int MIN_HEIGHT = (Platform.isJS() ? 370 : 430); public AnnotationColumnChooser(AlignViewport av, final AlignmentPanel ap) { @@ -98,8 +99,10 @@ public class AnnotationColumnChooser extends AnnotationRowFilter frame.setContentPane(this); frame.setLayer(JLayeredPane.PALETTE_LAYER); Desktop.addInternalFrame(frame, - MessageManager.getString("label.select_by_annotation"), 520, - 215); + MessageManager.getString("label.select_by_annotation"), 0, + 0); + // BH note: MIGLayout ignores this completely, + // possibly creating a frame smaller than specified: frame.setMinimumSize(new Dimension(MIN_WIDTH, MIN_HEIGHT)); addSliderChangeListener(); @@ -154,7 +157,7 @@ public class AnnotationColumnChooser extends AnnotationRowFilter MessageManager.getString("label.threshold_filter"))); thresholdPanel.setBackground(Color.white); thresholdPanel.setFont(JvSwingUtils.getLabelFont()); - thresholdPanel.setLayout(new MigLayout("", "[left][right]", "[][]")); + thresholdPanel.setLayout(new MigLayout("", "[left][right]", "[][]") ); percentThreshold.setBackground(Color.white); percentThreshold.setFont(JvSwingUtils.getLabelFont()); @@ -203,7 +206,6 @@ public class AnnotationColumnChooser extends AnnotationRowFilter AnnotationColumnChooser.NO_GRAPH_VIEW); switchableViewsPanel.add(graphFilterView, AnnotationColumnChooser.GRAPH_VIEW); - this.setLayout(new BorderLayout()); this.add(annotationComboBoxPanel, java.awt.BorderLayout.PAGE_START); this.add(switchableViewsPanel, java.awt.BorderLayout.CENTER); @@ -241,20 +243,10 @@ public class AnnotationColumnChooser extends AnnotationRowFilter { HiddenColumns oldHidden = av.getAnnotationColumnSelectionState() .getOldHiddenColumns(); - if (oldHidden != null) - { - ArrayList regions = oldHidden.getHiddenColumnsCopy(); - for (int[] positions : regions) - { - av.hideColumns(positions[0], positions[1]); - } - } - // TODO not clear why we need to hide all the columns (above) if we are - // going to copy the hidden columns over wholesale anyway av.getAlignment().setHiddenColumns(oldHidden); } av.sendSelection(); - ap.paintAlignment(true); + ap.paintAlignment(true, true); } } @@ -267,7 +259,7 @@ public class AnnotationColumnChooser extends AnnotationRowFilter updateView(); propagateSeqAssociatedThreshold(updateAllAnnotation, getCurrentAnnotation()); - ap.paintAlignment(false); + ap.paintAlignment(false, false); } } @@ -391,7 +383,8 @@ public class AnnotationColumnChooser extends AnnotationRowFilter av.getColumnSelection().filterAnnotations( getCurrentAnnotation().annotations, filterParams); - if (getActionOption() == ACTION_OPTION_HIDE) + boolean hideCols = getActionOption() == ACTION_OPTION_HIDE; + if (hideCols) { av.hideSelectedColumns(); } @@ -399,7 +392,8 @@ public class AnnotationColumnChooser extends AnnotationRowFilter filterParams = null; av.setAnnotationColumnSelectionState(this); - ap.paintAlignment(true); + // only update overview and structures if columns were hidden + ap.paintAlignment(hideCols, hideCols); } public HiddenColumns getOldHiddenColumns() @@ -503,7 +497,7 @@ public class AnnotationColumnChooser extends AnnotationRowFilter CardLayout switchableViewsLayout = (CardLayout) switchableViewsPanel .getLayout(); - switchableViewsLayout.show(switchableViewsPanel, currentView); + switchableViewsLayout.show(switchableViewsPanel, currentView); updateView(); } @@ -738,10 +732,9 @@ public class AnnotationColumnChooser extends AnnotationRowFilter MessageManager.getString("label.search_filter"))); searchBox.setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXXXXX"); - searchBox.setToolTipText( + searchBox.getComponent().setToolTipText( MessageManager.getString("info.enter_search_text_here")); - searchBox.getEditor().getEditorComponent() - .addKeyListener(new java.awt.event.KeyAdapter() + searchBox.addKeyListener(new java.awt.event.KeyAdapter() { @Override public void keyPressed(KeyEvent e) @@ -753,6 +746,14 @@ public class AnnotationColumnChooser extends AnnotationRowFilter } } }); + searchBox.addFocusListener(new FocusAdapter() + { + @Override + public void focusLost(FocusEvent e) + { + searchStringAction(); + } + }); JvSwingUtils.jvInitComponent(displayName, "label.label"); displayName.addActionListener(new ActionListener() @@ -770,12 +771,12 @@ public class AnnotationColumnChooser extends AnnotationRowFilter @Override public void actionPerformed(ActionEvent actionEvent) { - discriptionCheckboxAction(); + descriptionCheckboxAction(); } }); syncState(); - this.add(searchBox); + this.add(searchBox.getComponent()); this.add(displayName); this.add(description); } @@ -786,7 +787,7 @@ public class AnnotationColumnChooser extends AnnotationRowFilter aColChooser.updateView(); } - public void discriptionCheckboxAction() + public void descriptionCheckboxAction() { aColChooser.setCurrentSearchPanel(this); aColChooser.updateView();