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;
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;
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)
{
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();
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());
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);
av.getAlignment().setHiddenColumns(oldHidden);
}
av.sendSelection();
- ap.paintAlignment(true);
+ ap.paintAlignment(true, true);
}
}
updateView();
propagateSeqAssociatedThreshold(updateAllAnnotation,
getCurrentAnnotation());
- ap.paintAlignment(false);
+ ap.paintAlignment(false, false);
}
}
av.getColumnSelection().filterAnnotations(
getCurrentAnnotation().annotations, filterParams);
- if (getActionOption() == ACTION_OPTION_HIDE)
+ boolean hideCols = getActionOption() == ACTION_OPTION_HIDE;
+ if (hideCols)
{
av.hideSelectedColumns();
}
filterParams = null;
av.setAnnotationColumnSelectionState(this);
- ap.paintAlignment(true);
+ // only update overview and structures if columns were hidden
+ ap.paintAlignment(hideCols, hideCols);
}
public HiddenColumns getOldHiddenColumns()
CardLayout switchableViewsLayout = (CardLayout) switchableViewsPanel
.getLayout();
- switchableViewsLayout.show(switchableViewsPanel, currentView);
+ switchableViewsLayout.show(switchableViewsPanel, currentView);
updateView();
}
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)
}
}
});
+ searchBox.addFocusListener(new FocusAdapter()
+ {
+ @Override
+ public void focusLost(FocusEvent e)
+ {
+ searchStringAction();
+ }
+ });
JvSwingUtils.jvInitComponent(displayName, "label.label");
displayName.addActionListener(new ActionListener()
@Override
public void actionPerformed(ActionEvent actionEvent)
{
- discriptionCheckboxAction();
+ descriptionCheckboxAction();
}
});
syncState();
- this.add(searchBox);
+ this.add(searchBox.getComponent());
this.add(displayName);
this.add(description);
}
aColChooser.updateView();
}
- public void discriptionCheckboxAction()
+ public void descriptionCheckboxAction()
{
aColChooser.setCurrentSearchPanel(this);
aColChooser.updateView();