Search in sources :

Example 11 with PropertyChangeEvent

use of java.beans.PropertyChangeEvent in project ACS by ACS-Community.

the class BeanNode method getCustomizer.

/**
   * Returns the customizer component.
   * @return the component or <code>null</code> if there is no customizer
   */
public java.awt.Component getCustomizer() {
    Class clazz = _beanInfo.getBeanDescriptor().getCustomizerClass();
    if (clazz == null)
        return null;
    Object o;
    try {
        o = clazz.newInstance();
    } catch (InstantiationException e) {
        exception(e);
        return null;
    } catch (IllegalAccessException e) {
        exception(e);
        return null;
    }
    if (!(o instanceof Customizer))
        return null;
    Customizer cust = ((java.beans.Customizer) o);
    attachCustomizer(this, cust);
    // looking for the component
    java.awt.Component comp = null;
    if (o instanceof java.awt.Component) {
        comp = (java.awt.Component) o;
    } else {
        // create the dialog from descriptor
        comp = createDialog(o);
    }
    if (comp == null) {
        // no component provided
        return null;
    }
    cust.setObject(_bean);
    if (!_guiUpdater.hasRegisteredListenerInternal()) {
        cust.addPropertyChangeListener(new PropertyChangeListener() {

            public void propertyChange(PropertyChangeEvent e) {
                firePropertyChange(e.getPropertyName(), e.getOldValue(), e.getNewValue());
            }
        });
    }
    return comp;
}
Also used : PropertyChangeEvent(java.beans.PropertyChangeEvent) PropertyChangeListener(java.beans.PropertyChangeListener) Customizer(java.beans.Customizer)

Example 12 with PropertyChangeEvent

use of java.beans.PropertyChangeEvent in project EnrichmentMapApp by BaderLab.

the class PostAnalysisKnownSignaturePanel method createKnownSignatureGMTPanel.

/**
	 * @return Panel for choosing and loading GMT and SignatureGMT Geneset-Files
	 */
private JPanel createKnownSignatureGMTPanel() {
    knownSignatureGMTFileNameTextField = new JFormattedTextField();
    knownSignatureGMTFileNameTextField.setColumns(15);
    knownSignatureGMTFileNameTextField.setToolTipText(Messages.GMT_INSTRUCTION);
    final Color textFieldForeground = knownSignatureGMTFileNameTextField.getForeground();
    knownSignatureGMTFileNameTextField.addPropertyChangeListener("value", new PropertyChangeListener() {

        @Override
        public void propertyChange(PropertyChangeEvent e) {
            // if the text is red set it back to black as soon as the user starts typing
            knownSignatureGMTFileNameTextField.setForeground(textFieldForeground);
        }
    });
    JButton selectSigGMTFileButton = new JButton("Browse...");
    selectSigGMTFileButton.setToolTipText(Messages.GMT_INSTRUCTION);
    selectSigGMTFileButton.setActionCommand("Known Signature");
    selectSigGMTFileButton.addActionListener(e -> {
        parentPanel.chooseGMTFile(knownSignatureGMTFileNameTextField);
    });
    makeSmall(knownSignatureGMTFileNameTextField, selectSigGMTFileButton);
    JPanel panel = new JPanel();
    panel.setBorder(LookAndFeelUtil.createTitledBorder("SigGMT File (contains signature-genesets)"));
    final GroupLayout layout = new GroupLayout(panel);
    panel.setLayout(layout);
    layout.setAutoCreateContainerGaps(true);
    layout.setAutoCreateGaps(!LookAndFeelUtil.isAquaLAF());
    layout.setHorizontalGroup(layout.createSequentialGroup().addComponent(knownSignatureGMTFileNameTextField, DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE).addComponent(selectSigGMTFileButton, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE));
    layout.setVerticalGroup(layout.createParallelGroup(Alignment.CENTER, false).addComponent(knownSignatureGMTFileNameTextField, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE).addComponent(selectSigGMTFileButton));
    if (LookAndFeelUtil.isAquaLAF())
        panel.setOpaque(false);
    return panel;
}
Also used : JPanel(javax.swing.JPanel) PropertyChangeEvent(java.beans.PropertyChangeEvent) PropertyChangeListener(java.beans.PropertyChangeListener) Color(java.awt.Color) JFormattedTextField(javax.swing.JFormattedTextField) JButton(javax.swing.JButton) GroupLayout(javax.swing.GroupLayout)

Example 13 with PropertyChangeEvent

use of java.beans.PropertyChangeEvent in project EnrichmentMapApp by BaderLab.

the class PostAnalysisSignatureDiscoveryPanel method createSignatureDiscoveryGMTPanel.

/**
     * @return Panel for choosing and loading GMT and SignatureGMT Geneset-Files 
     */
private JPanel createSignatureDiscoveryGMTPanel() {
    signatureDiscoveryGMTFileNameTextField = new JFormattedTextField();
    signatureDiscoveryGMTFileNameTextField.setColumns(15);
    signatureDiscoveryGMTFileNameTextField.setToolTipText(Messages.GMT_INSTRUCTION);
    final Color textFieldForeground = signatureDiscoveryGMTFileNameTextField.getForeground();
    signatureDiscoveryGMTFileNameTextField.addPropertyChangeListener("value", (PropertyChangeEvent e) -> {
        // if the text is red set it back to black as soon as the user starts typing
        signatureDiscoveryGMTFileNameTextField.setForeground(textFieldForeground);
    });
    JButton selectSigGMTFileButton = new JButton("Browse...");
    selectSigGMTFileButton.setToolTipText(Messages.GMT_INSTRUCTION);
    selectSigGMTFileButton.setActionCommand("Signature Discovery");
    selectSigGMTFileButton.addActionListener((ActionEvent evt) -> {
        parentPanel.chooseGMTFile(signatureDiscoveryGMTFileNameTextField);
    });
    JLabel filterLabel = new JLabel("Filter:");
    filterTextField = new JFormattedTextField();
    filterTextField.setColumns(4);
    filterTextField.setHorizontalAlignment(JTextField.RIGHT);
    filterTextField.addPropertyChangeListener("value", (PropertyChangeEvent e) -> {
        StringBuilder message = new StringBuilder("The value you have entered is invalid.\n");
        Number number = (Number) filterTextField.getValue();
        PostAnalysisFilterType filterType = getFilterType();
        Optional<Double> value = PostAnalysisInputPanel.validateAndGetFilterValue(number, filterType, message);
        savedFilterValues.put(filterType, value.orElse(filterType.defaultValue));
        if (!value.isPresent()) {
            filterTextField.setValue(filterType.defaultValue);
            JOptionPane.showMessageDialog(application.getJFrame(), message.toString(), "Parameter out of bounds", JOptionPane.WARNING_MESSAGE);
        }
    });
    // Types of filters:
    // 1. filter by percent, i.e. the overlap between the signature geneset and EM geneset
    //    has to be X percentage of the EM set it overlaps with for at least one geneset in the enrichment map.
    // 2. filter by number, i.e. the overlap between the signature geneset and EM geneset
    //    has to be X genes of the EM set it overlaps with for at least one geneset in the enrichment map.
    // 3. filter by specificity, i.e looking for the signature genesets that are more specific than other genesets
    //    for instance a drug A that targets only X and Y as opposed to drug B that targets X,y,L,M,N,O,P.
    filterTypeCombo = new JComboBox<>();
    // default
    filterTypeCombo.addItem(PostAnalysisFilterType.NO_FILTER);
    //		filterTypeCombo.addItem(PostAnalysisFilterType.MANN_WHIT_TWO_SIDED);
    //		filterTypeCombo.addItem(PostAnalysisFilterType.MANN_WHIT_GREATER);
    //		filterTypeCombo.addItem(PostAnalysisFilterType.MANN_WHIT_LESS);
    filterTypeCombo.addItem(PostAnalysisFilterType.HYPERGEOM);
    filterTypeCombo.addItem(PostAnalysisFilterType.NUMBER);
    filterTypeCombo.addItem(PostAnalysisFilterType.PERCENT);
    filterTypeCombo.addItem(PostAnalysisFilterType.SPECIFIC);
    filterTypeCombo.addActionListener(e -> {
        updateFilterTextField();
    });
    updateFilterTextField();
    //TODO: Maybe move loading SigGMT to File-selection Event add load button
    JButton loadButton = new JButton();
    loadButton.setText("Load Gene Sets");
    loadButton.addActionListener(e -> {
        String filePath = (String) signatureDiscoveryGMTFileNameTextField.getValue();
        if (filePath == null || PostAnalysisInputPanel.checkFile(filePath).equals(Color.RED)) {
            String message = "Signature GMT file name not valid.\n";
            signatureDiscoveryGMTFileNameTextField.setForeground(Color.RED);
            JOptionPane.showMessageDialog(application.getJFrame(), message, "Post Analysis Known Signature", JOptionPane.WARNING_MESSAGE);
            return;
        }
        if (!EnrichmentMapParameters.checkFile(filePath)) {
            String message = "Signature GMT does not exist.\n";
            signatureDiscoveryGMTFileNameTextField.setForeground(Color.RED);
            JOptionPane.showMessageDialog(application.getJFrame(), message, "Post Analysis Known Signature", JOptionPane.WARNING_MESSAGE);
            return;
        }
        FilterMetric filterMetric = createFilterMetric();
        LoadSignatureSetsActionListener action = loadSignatureSetsActionListenerFactory.create(new File(filePath), filterMetric, parentPanel.getEnrichmentMap());
        action.setGeneSetCallback(gs -> {
            this.signatureGenesets = gs;
        });
        action.setFilteredSignatureSetsCallback(selected -> {
            availSigSetsModel.clear();
            selectedSigSetsModel.clear();
            for (String name : selected) availSigSetsModel.addElement(name);
            update();
        });
        action.actionPerformed(null);
    });
    makeSmall(signatureDiscoveryGMTFileNameTextField, selectSigGMTFileButton);
    makeSmall(filterLabel, filterTypeCombo, filterTextField);
    makeSmall(loadButton);
    JPanel panel = new JPanel();
    panel.setBorder(LookAndFeelUtil.createTitledBorder("SigGMT File (contains signature-genesets)"));
    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().addComponent(signatureDiscoveryGMTFileNameTextField, DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE).addComponent(selectSigGMTFileButton, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)).addGroup(layout.createSequentialGroup().addComponent(filterLabel, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE).addComponent(filterTypeCombo, DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE).addComponent(filterTextField, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)).addComponent(loadButton, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE));
    layout.setVerticalGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(Alignment.CENTER, false).addComponent(signatureDiscoveryGMTFileNameTextField, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE).addComponent(selectSigGMTFileButton)).addGroup(layout.createParallelGroup(Alignment.CENTER, false).addComponent(filterLabel, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE).addComponent(filterTypeCombo, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE).addComponent(filterTextField, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)).addComponent(loadButton, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE));
    if (LookAndFeelUtil.isAquaLAF())
        panel.setOpaque(false);
    return panel;
}
Also used : JPanel(javax.swing.JPanel) PropertyChangeEvent(java.beans.PropertyChangeEvent) PostAnalysisFilterType(org.baderlab.csplugins.enrichmentmap.model.PostAnalysisFilterType) ActionEvent(java.awt.event.ActionEvent) Color(java.awt.Color) JFormattedTextField(javax.swing.JFormattedTextField) JButton(javax.swing.JButton) JLabel(javax.swing.JLabel) FilterMetric(org.baderlab.csplugins.enrichmentmap.task.postanalysis.FilterMetric) LoadSignatureSetsActionListener(org.baderlab.csplugins.enrichmentmap.actions.LoadSignatureSetsActionListener) GroupLayout(javax.swing.GroupLayout) File(java.io.File)

Example 14 with PropertyChangeEvent

use of java.beans.PropertyChangeEvent in project intellij-community by JetBrains.

the class PropertiesFilesManager method projectOpened.

@Override
public void projectOpened() {
    final PropertyChangeListener myListener = new PropertyChangeListener() {

        @Override
        public void propertyChange(final PropertyChangeEvent evt) {
            String propertyName = evt.getPropertyName();
            if (EncodingManager.PROP_NATIVE2ASCII_SWITCH.equals(propertyName) || EncodingManager.PROP_PROPERTIES_FILES_ENCODING.equals(propertyName)) {
                DumbService.getInstance(myProject).smartInvokeLater(() -> ApplicationManager.getApplication().runWriteAction(() -> {
                    Collection<VirtualFile> filesToRefresh = FileTypeIndex.getFiles(PropertiesFileType.INSTANCE, GlobalSearchScope.allScope(myProject));
                    VirtualFile[] virtualFiles = VfsUtilCore.toVirtualFileArray(filesToRefresh);
                    FileDocumentManager.getInstance().saveAllDocuments();
                    //force to re-detect encoding
                    for (VirtualFile virtualFile : virtualFiles) {
                        virtualFile.setCharset(null);
                    }
                    FileDocumentManager.getInstance().reloadFiles(virtualFiles);
                }));
            }
        }
    };
    EncodingManager.getInstance().addPropertyChangeListener(myListener, myProject);
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) PropertyChangeEvent(java.beans.PropertyChangeEvent) PropertyChangeListener(java.beans.PropertyChangeListener) Collection(java.util.Collection)

Example 15 with PropertyChangeEvent

use of java.beans.PropertyChangeEvent in project opennms by OpenNMS.

the class PollerFrontEndTest method anticipateFireConfigurationChangeEvent.

private void anticipateFireConfigurationChangeEvent() {
    PropertyChangeEvent e = new PropertyChangeEvent(m_frontEnd, "configuration", (oldConfig() == null ? null : oldConfig().getConfigurationTimestamp()), (pollConfig() == null ? null : pollConfig().getConfigurationTimestamp()));
    m_configChangeListener.configurationChanged(eq(e));
}
Also used : PropertyChangeEvent(java.beans.PropertyChangeEvent)

Aggregations

PropertyChangeEvent (java.beans.PropertyChangeEvent)574 PropertyChangeListener (java.beans.PropertyChangeListener)349 ActionEvent (java.awt.event.ActionEvent)42 JPanel (javax.swing.JPanel)36 ActionListener (java.awt.event.ActionListener)35 Test (org.junit.Test)33 ArrayList (java.util.ArrayList)31 PropertyVetoException (java.beans.PropertyVetoException)24 JLabel (javax.swing.JLabel)24 File (java.io.File)23 BorderLayout (java.awt.BorderLayout)22 List (java.util.List)21 IOException (java.io.IOException)19 Dimension (java.awt.Dimension)16 ChangeEvent (javax.swing.event.ChangeEvent)15 PropertyChangeSupport (java.beans.PropertyChangeSupport)13 ChangeListener (javax.swing.event.ChangeListener)13 UnprocessedChangeEvents (org.jvnet.hk2.config.UnprocessedChangeEvents)13 JScrollPane (javax.swing.JScrollPane)12 UnprocessedChangeEvent (org.jvnet.hk2.config.UnprocessedChangeEvent)12