Package eu.isas.peptideshaker.gui.pride.annotationdialogs

Source Code of eu.isas.peptideshaker.gui.pride.annotationdialogs.NewReferenceDialog

package eu.isas.peptideshaker.gui.pride.annotationdialogs;

import com.compomics.util.pride.prideobjects.Reference;
import java.awt.Color;

/**
* A dialog for adding new references or editing old ones.
*
* @author Harald Barsnes
*/
public class NewReferenceDialog extends javax.swing.JDialog {

    /**
     * Reference to the reference group gui.
     */
    private NewReferenceGroupDialog referenceGroupDialog;
    /**
     * The row index of the references being edited.
     */
    private int rowIndex = -1 ;
    /**
     * The last valid input for contact name
     */
    private String lastNameInput = "";

    /**
     * Creates a new NewReferenceDialog dialog.
     *
     * @param referenceGroupDialog
     * @param modal
     */
    public NewReferenceDialog(NewReferenceGroupDialog referenceGroupDialog, boolean modal) {
        super(referenceGroupDialog, modal);
        this.referenceGroupDialog = referenceGroupDialog;
        initComponents();
        setTitle("New Reference");
        setLocationRelativeTo(referenceGroupDialog);
        setVisible(true);
    }

    /**
     * Creates a new NewReferenceDialog dialog.
     *
     * @param referenceGroupDialog
     * @param modal
     * @param reference
     * @param rowIndex 
     */
    public NewReferenceDialog(NewReferenceGroupDialog referenceGroupDialog, boolean modal, Reference reference, int rowIndex) {
        super(referenceGroupDialog, modal);
        this.referenceGroupDialog = referenceGroupDialog;
        this.rowIndex = rowIndex;
        initComponents();

        setTitle("Edit Reference");
        referenceJTextArea.setText(reference.getReference());
        pmidIDJTextField.setText(reference.getPmid());
        doiJTextField.setText(reference.getDoi());
        validateInput();

        setLocationRelativeTo(referenceGroupDialog);
        setVisible(true);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        backgroundPanel = new javax.swing.JPanel();
        referenceDetailsPanel = new javax.swing.JPanel();
        referenceLabel = new javax.swing.JLabel();
        referenceScrollPane = new javax.swing.JScrollPane();
        referenceJTextArea = new javax.swing.JTextArea();
        pmidLabel = new javax.swing.JLabel();
        doiLabel = new javax.swing.JLabel();
        doiJTextField = new javax.swing.JTextField();
        pmidIDJTextField = new javax.swing.JTextField();
        okJButton = new javax.swing.JButton();
        cancelButton = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("New Reference");
        setResizable(false);

        backgroundPanel.setBackground(new java.awt.Color(230, 230, 230));

        referenceDetailsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Reference"));
        referenceDetailsPanel.setOpaque(false);

        referenceLabel.setForeground(new java.awt.Color(255, 0, 0));
        referenceLabel.setText("Reference*");

        referenceJTextArea.setColumns(20);
        referenceJTextArea.setFont(referenceJTextArea.getFont());
        referenceJTextArea.setLineWrap(true);
        referenceJTextArea.setRows(3);
        referenceJTextArea.setWrapStyleWord(true);
        referenceJTextArea.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                referenceJTextAreaKeyReleased(evt);
            }
        });
        referenceScrollPane.setViewportView(referenceJTextArea);

        pmidLabel.setText("PMID");
        pmidLabel.setToolTipText("PubMed ID");

        doiLabel.setText("DOI");
        doiLabel.setToolTipText("Digital Object Identifier");

        doiJTextField.setToolTipText("Digital Object Identifier");
        doiJTextField.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                doiJTextFieldKeyReleased(evt);
            }
        });

        pmidIDJTextField.setToolTipText("PubMed ID");
        pmidIDJTextField.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                pmidIDJTextFieldKeyReleased(evt);
            }
        });

        javax.swing.GroupLayout referenceDetailsPanelLayout = new javax.swing.GroupLayout(referenceDetailsPanel);
        referenceDetailsPanel.setLayout(referenceDetailsPanelLayout);
        referenceDetailsPanelLayout.setHorizontalGroup(
            referenceDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(referenceDetailsPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(referenceDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(referenceDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(referenceDetailsPanelLayout.createSequentialGroup()
                            .addComponent(pmidLabel)
                            .addGap(35, 35, 35))
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, referenceDetailsPanelLayout.createSequentialGroup()
                            .addComponent(referenceLabel)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)))
                    .addGroup(referenceDetailsPanelLayout.createSequentialGroup()
                        .addComponent(doiLabel)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
                .addGroup(referenceDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(referenceScrollPane, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 432, Short.MAX_VALUE)
                    .addComponent(pmidIDJTextField)
                    .addComponent(doiJTextField, javax.swing.GroupLayout.Alignment.LEADING))
                .addContainerGap())
        );
        referenceDetailsPanelLayout.setVerticalGroup(
            referenceDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(referenceDetailsPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(referenceDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(referenceLabel)
                    .addComponent(referenceScrollPane))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(referenceDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(pmidLabel)
                    .addComponent(pmidIDJTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(7, 7, 7)
                .addGroup(referenceDetailsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(doiJTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(doiLabel))
                .addContainerGap())
        );

        okJButton.setText("OK");
        okJButton.setEnabled(false);
        okJButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                okJButtonActionPerformed(evt);
            }
        });

        cancelButton.setText("Cancel");
        cancelButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cancelButtonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout backgroundPanelLayout = new javax.swing.GroupLayout(backgroundPanel);
        backgroundPanel.setLayout(backgroundPanelLayout);
        backgroundPanelLayout.setHorizontalGroup(
            backgroundPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(backgroundPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(backgroundPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(referenceDetailsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, backgroundPanelLayout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(okJButton)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(cancelButton)))
                .addContainerGap())
        );

        backgroundPanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {cancelButton, okJButton});

        backgroundPanelLayout.setVerticalGroup(
            backgroundPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(backgroundPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(referenceDetailsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(backgroundPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(okJButton)
                    .addComponent(cancelButton))
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(backgroundPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(backgroundPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    /**
     * Enables/disables the OK button.
     *
     * @param evt
     */
    private void referenceJTextAreaKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_referenceJTextAreaKeyReleased
        validateInput();
    }//GEN-LAST:event_referenceJTextAreaKeyReleased

    /**
     * Enables/disables the OK button.
     *
     * @param evt
     */
    private void doiJTextFieldKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_doiJTextFieldKeyReleased
        referenceJTextAreaKeyReleased(null);
    }//GEN-LAST:event_doiJTextFieldKeyReleased

    /**
     * Enables/disables the OK button.
     *
     * @param evt
     */
    private void pmidIDJTextFieldKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_pmidIDJTextFieldKeyReleased
        referenceJTextAreaKeyReleased(null);
    }//GEN-LAST:event_pmidIDJTextFieldKeyReleased

    /**
     * Adds/updates the reference.
     *
     * @param evt
     */
    private void okJButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okJButtonActionPerformed
       
        String tempPmid = null;
        String tempDoi = null;

        if (pmidIDJTextField.getText().length() > 0) {
            tempPmid = pmidIDJTextField.getText();
        }

        if (doiJTextField.getText().length() > 0) {
            tempDoi = doiJTextField.getText();
        }

        if (rowIndex != -1) {
            referenceGroupDialog.editReference(new Reference(referenceJTextArea.getText(), tempPmid, tempDoi), rowIndex);
        } else {
            referenceGroupDialog.insertReference(new Reference(referenceJTextArea.getText(), tempPmid, tempDoi));
        }

        dispose()
    }//GEN-LAST:event_okJButtonActionPerformed

     /**
     * Close the dialog without saving.
     *
     * @param evt
     */
    private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
        dispose();
    }//GEN-LAST:event_cancelButtonActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel backgroundPanel;
    private javax.swing.JButton cancelButton;
    private javax.swing.JTextField doiJTextField;
    private javax.swing.JLabel doiLabel;
    private javax.swing.JButton okJButton;
    private javax.swing.JTextField pmidIDJTextField;
    private javax.swing.JLabel pmidLabel;
    private javax.swing.JPanel referenceDetailsPanel;
    private javax.swing.JTextArea referenceJTextArea;
    private javax.swing.JLabel referenceLabel;
    private javax.swing.JScrollPane referenceScrollPane;
    // End of variables declaration//GEN-END:variables

    /**
     * Validate the input and enable/disable the OK button.
     */
    private void validateInput() {
       
//        String input = nameJTextField.getText();
//        for (String forbiddenCharacter : Util.forbiddenCharacters) {
//            if (input.contains(forbiddenCharacter)) {
//                JOptionPane.showMessageDialog(null, "'" + forbiddenCharacter + "' is not allowed in reference name.",
//                    "Forbidden Character", JOptionPane.WARNING_MESSAGE);
//                nameJTextField.setText(lastNameInput);
//                return;
//            }
//        }
//        lastNameInput = input;
       
        okJButton.setEnabled(referenceJTextArea.getText().length() > 0);
       
        if (referenceJTextArea.getText().length() > 0) {
            referenceLabel.setForeground(Color.BLACK);
        } else {
            referenceLabel.setForeground(Color.RED);
        }
    }
}
TOP

Related Classes of eu.isas.peptideshaker.gui.pride.annotationdialogs.NewReferenceDialog

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.