use of org.cytoscape.application.swing.CySwingApplication in project EnrichmentMapApp by BaderLab.
the class PostAnalysisWeightPanel method createHypergeomPanel.
private JPanel createHypergeomPanel() {
ActionListener universeSelectActionListener = e -> {
boolean enable = e.getActionCommand().equals("User Defined");
universeSelectionTextField.setEnabled(enable);
};
gmtRadioButton = new JRadioButton();
gmtRadioButton.setActionCommand("GMT");
gmtRadioButton.addActionListener(universeSelectActionListener);
gmtRadioButton.setSelected(true);
expressionSetRadioButton = new JRadioButton();
expressionSetRadioButton.setActionCommand("Expression Set");
expressionSetRadioButton.addActionListener(universeSelectActionListener);
intersectionRadioButton = new JRadioButton();
intersectionRadioButton.setActionCommand("Intersection");
intersectionRadioButton.addActionListener(universeSelectActionListener);
userDefinedRadioButton = new JRadioButton("User Defined:");
userDefinedRadioButton.setActionCommand("User Defined");
userDefinedRadioButton.addActionListener(universeSelectActionListener);
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(gmtRadioButton);
buttonGroup.add(expressionSetRadioButton);
buttonGroup.add(intersectionRadioButton);
buttonGroup.add(userDefinedRadioButton);
DecimalFormat intFormat = new DecimalFormat();
intFormat.setParseIntegerOnly(true);
universeSelectionTextField = new JFormattedTextField(intFormat);
universeSelectionTextField.addPropertyChangeListener("value", e -> {
Number val = (Number) universeSelectionTextField.getValue();
if (val == null || val.intValue() < 0) {
universeSelectionTextField.setValue(1);
CySwingApplication application = serviceRegistrar.getService(CySwingApplication.class);
JOptionPane.showMessageDialog(application.getJFrame(), "Universe value must be greater than zero", "Parameter out of bounds", JOptionPane.WARNING_MESSAGE);
}
});
universeSelectionTextField.setEnabled(false);
gmtRadioButton.setText("GMT");
expressionSetRadioButton.setText("Expression Set");
intersectionRadioButton.setText("Intersection");
universeSelectionTextField.setValue(0);
makeSmall(gmtRadioButton, expressionSetRadioButton, intersectionRadioButton, userDefinedRadioButton, universeSelectionTextField);
JPanel panel = new JPanel();
panel.setBorder(LookAndFeelUtil.createTitledBorder("Advanced Hypergeometric Universe"));
final GroupLayout layout = new GroupLayout(panel);
panel.setLayout(layout);
layout.setAutoCreateContainerGaps(true);
layout.setAutoCreateGaps(!LookAndFeelUtil.isAquaLAF());
layout.setHorizontalGroup(layout.createParallelGroup(Alignment.LEADING, true).addComponent(gmtRadioButton).addComponent(expressionSetRadioButton).addComponent(intersectionRadioButton).addGroup(layout.createSequentialGroup().addComponent(userDefinedRadioButton, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED).addComponent(universeSelectionTextField, DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE)));
layout.setVerticalGroup(layout.createSequentialGroup().addComponent(gmtRadioButton, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE).addComponent(expressionSetRadioButton, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE).addComponent(intersectionRadioButton, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE).addGroup(layout.createParallelGroup(Alignment.CENTER, false).addComponent(userDefinedRadioButton, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE).addComponent(universeSelectionTextField, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)));
if (LookAndFeelUtil.isAquaLAF())
panel.setOpaque(false);
return panel;
}
use of org.cytoscape.application.swing.CySwingApplication in project EnrichmentMapApp by BaderLab.
the class PostAnalysisWeightPanel method createRankTestSelectPanel.
@SuppressWarnings("unchecked")
private JPanel createRankTestSelectPanel() {
JLabel testLabel = new JLabel(LABEL_TEST);
JLabel cuttofLabel = new JLabel(LABEL_CUTOFF);
JLabel dataSetLabel = new JLabel("Data Set:");
DecimalFormat decFormat = new DecimalFormat();
decFormat.setParseIntegerOnly(false);
rankTestTextField = new JFormattedTextField(decFormat);
rankTestTextField.setColumns(6);
rankTestTextField.setHorizontalAlignment(JTextField.RIGHT);
rankTestTextField.addPropertyChangeListener("value", e -> {
StringBuilder message = new StringBuilder("The value you have entered is invalid.\n");
Number number = (Number) rankTestTextField.getValue();
PostAnalysisFilterType filterType = getFilterType();
Optional<Double> value = PostAnalysisInputPanel.validateAndGetFilterValue(number, filterType, message);
double def = filterType == PostAnalysisFilterType.HYPERGEOM ? HYPERGOM_DEFAULT : filterType.defaultValue;
savedFilterValues.put(filterType, value.orElse(def));
if (!value.isPresent()) {
rankTestTextField.setValue(def);
CySwingApplication application = serviceRegistrar.getService(CySwingApplication.class);
JOptionPane.showMessageDialog(application.getJFrame(), message.toString(), "Parameter out of bounds", JOptionPane.WARNING_MESSAGE);
}
});
rankingEnablementRenderer = new EnablementComboBoxRenderer<>();
rankTestCombo = new JComboBox<>();
rankTestCombo.setRenderer(rankingEnablementRenderer);
rankTestCombo.addItem(PostAnalysisFilterType.MANN_WHIT_TWO_SIDED);
rankTestCombo.addItem(PostAnalysisFilterType.MANN_WHIT_GREATER);
rankTestCombo.addItem(PostAnalysisFilterType.MANN_WHIT_LESS);
rankTestCombo.addItem(PostAnalysisFilterType.HYPERGEOM);
rankTestCombo.addItem(PostAnalysisFilterType.NUMBER);
rankTestCombo.addItem(PostAnalysisFilterType.PERCENT);
rankTestCombo.addItem(PostAnalysisFilterType.SPECIFIC);
rankTestCombo.addActionListener(e -> {
PostAnalysisFilterType filterType = (PostAnalysisFilterType) rankTestCombo.getSelectedItem();
rankTestTextField.setValue(savedFilterValues.get(filterType));
CardLayout cardLayout = (CardLayout) cardPanel.getLayout();
if (filterType.isMannWhitney() && map.getAllRanks().isEmpty())
cardLayout.show(cardPanel, "warn");
else
cardLayout.show(cardPanel, filterType.name());
});
datasetCombo = new JComboBox<>();
// Dataset model is already initialized
datasetModel = new DefaultComboBoxModel<>();
datasetCombo.setModel(datasetModel);
datasetCombo.addActionListener(e -> {
updateUniverseSize(getDataSet());
});
makeSmall(testLabel, cuttofLabel, rankTestCombo, rankTestTextField);
makeSmall(dataSetLabel, datasetCombo);
JPanel panel = new JPanel();
final GroupLayout layout = new GroupLayout(panel);
panel.setLayout(layout);
layout.setAutoCreateContainerGaps(true);
layout.setAutoCreateGaps(!LookAndFeelUtil.isAquaLAF());
layout.setHorizontalGroup(layout.createParallelGroup(Alignment.CENTER, true).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(Alignment.TRAILING, true).addComponent(testLabel).addComponent(cuttofLabel).addComponent(dataSetLabel)).addGroup(layout.createParallelGroup(Alignment.LEADING, true).addComponent(rankTestCombo, DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE).addComponent(rankTestTextField, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE).addComponent(datasetCombo, DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE))));
layout.setVerticalGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(Alignment.CENTER, false).addComponent(testLabel).addComponent(rankTestCombo, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)).addGroup(layout.createParallelGroup(Alignment.CENTER, false).addComponent(cuttofLabel).addComponent(rankTestTextField, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)).addPreferredGap(ComponentPlacement.UNRELATED).addGroup(layout.createParallelGroup(Alignment.CENTER, false).addComponent(dataSetLabel).addComponent(datasetCombo, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)));
if (LookAndFeelUtil.isAquaLAF())
panel.setOpaque(false);
return panel;
}
Aggregations