All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fcrepo.client.ObjectFormatDialog Maven / Gradle / Ivy

There is a newer version: 3.8.1
Show newest version
/* The contents of this file are subject to the license and copyright terms
 * detailed in the license directory at the root of the source tree (also
 * available online at http://fedora-commons.org/license/).
 */
package org.fcrepo.client;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.AbstractAction;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.WindowConstants;

import org.fcrepo.common.Constants;


/**
 * Launch a dialog for selecting which XML format to ingest. Valid options are
 * FOXML1_1.uri, FOXML1_0.uri and METS_EXT1_1.uri, METS_EXT1_0.uri, ATOM1_1.uri,
 * and ATOM_ZIP1_1.uri.
 *
 * @author Sandy Payette
 */
public class ObjectFormatDialog
        extends JDialog
        implements ActionListener, Constants {

    private static final long serialVersionUID = 1L;

    private final JRadioButton foxml11Button;

    private final JRadioButton foxml10Button;

    private final JRadioButton mets11Button;

    private final JRadioButton mets10Button;

    private final JRadioButton atomButton;

    private final JRadioButton atomZipButton;

    private final ButtonGroup fmt_buttonGroup = new ButtonGroup();

    private final JLabel warningLabel;

    protected String fmt_chosen;

    public ObjectFormatDialog(String title) {
        super(JOptionPane.getFrameForComponent(Administrator.getDesktop()),
              title,
              true);
        setModal(true);
        setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent we) {
                fmt_chosen = null;
                dispose();
            }
        });

        JPanel textPane = new JPanel();
        textPane.setBorder(BorderFactory.createEmptyBorder(12, 12, 0, 12));
        String warningText =
            ""
             + "Select the XML format of files to be ingested.
" + "Files not in FOXML 1.1 format will be updated
" + "to FOXML 1.1 on ingest. This conversion process
" + "may not retain all information available in the
" + "original format." + ""; warningLabel = new JLabel(warningText); warningLabel.setHorizontalTextPosition(JLabel.CENTER); textPane.add(warningLabel); JPanel inputPane = new JPanel(); inputPane.setBorder( BorderFactory.createCompoundBorder( BorderFactory.createCompoundBorder( BorderFactory.createEmptyBorder(12, 12, 12, 12), BorderFactory.createEtchedBorder()), BorderFactory.createEmptyBorder(12, 12, 12, 12))); inputPane.setLayout(new GridLayout(0, 1)); foxml11Button = new JRadioButton("FOXML (Fedora Object XML) version 1.1", true); foxml11Button.setActionCommand(FOXML1_1.uri); foxml11Button.addActionListener(this); foxml10Button = new JRadioButton("FOXML (Fedora Object XML) version 1.0", true); foxml10Button.setActionCommand(FOXML1_0.uri); foxml10Button.addActionListener(this); mets11Button = new JRadioButton("METS (Fedora METS Extension) version 1.1", false); mets11Button.setActionCommand(METS_EXT1_1.uri); mets11Button.addActionListener(this); mets10Button = new JRadioButton("METS (Fedora METS Extension) version 1.0", false); mets10Button.setActionCommand(METS_EXT1_0.uri); mets10Button.addActionListener(this); atomButton = new JRadioButton("Atom (Fedora Atom)", false); atomButton.setActionCommand(ATOM1_1.uri); atomButton.addActionListener(this); atomZipButton = new JRadioButton("Atom Zip", false); atomZipButton.setActionCommand(ATOM_ZIP1_1.uri); atomZipButton.addActionListener(this); fmt_buttonGroup.add(foxml11Button); fmt_buttonGroup.add(foxml10Button); fmt_buttonGroup.add(mets11Button); fmt_buttonGroup.add(mets10Button); fmt_buttonGroup.add(atomButton); fmt_buttonGroup.add(atomZipButton); fmt_chosen = FOXML1_1.uri; inputPane.add(foxml11Button); inputPane.add(foxml10Button); inputPane.add(mets11Button); inputPane.add(mets10Button); inputPane.add(atomButton); inputPane.add(atomZipButton); JButton okButton = new JButton(new AbstractAction() { private static final long serialVersionUID = 1L; public void actionPerformed(ActionEvent evt) { dispose(); } }); okButton.setText("OK"); JButton cancelButton = new JButton(new AbstractAction() { private static final long serialVersionUID = 1L; public void actionPerformed(ActionEvent evt) { fmt_chosen = null; dispose(); } }); cancelButton.setText("Cancel"); JPanel buttonPane = new JPanel(); buttonPane.add(okButton); buttonPane.add(cancelButton); Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout()); contentPane.add(textPane, BorderLayout.NORTH); contentPane.add(inputPane, BorderLayout.CENTER); contentPane.add(buttonPane, BorderLayout.SOUTH); pack(); setLocation(Administrator.INSTANCE.getCenteredPos(getWidth(), getHeight())); setVisible(true); } // null means nothing selected or selection canceled public String getSelection() { return fmt_chosen; } /** Listens to the radio buttons. */ public void actionPerformed(ActionEvent e) { if (foxml11Button.isSelected()) { fmt_chosen = FOXML1_1.uri; } else if (foxml10Button.isSelected()) { fmt_chosen = FOXML1_0.uri; } else if (mets11Button.isSelected()) { fmt_chosen = METS_EXT1_1.uri; } else if (mets10Button.isSelected()) { fmt_chosen = METS_EXT1_0.uri; } else if (atomButton.isSelected()) { fmt_chosen = ATOM1_1.uri; } else if (atomZipButton.isSelected()) { fmt_chosen = ATOM_ZIP1_1.uri; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy