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

org.fcrepo.client.actions.ViewObject 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.actions;

import java.awt.event.ActionEvent;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

import javax.swing.AbstractAction;
import javax.swing.JOptionPane;

import org.fcrepo.client.Administrator;
import org.fcrepo.client.objecteditor.ObjectEditorFrame;


/**
 * Launches an object viewer/editor window.
 * 
 * @author Chris Wilper
 */
public class ViewObject
        extends AbstractAction {

    private static final long serialVersionUID = 1L;

    private Set m_pids;

    private boolean m_prompt;

    public ViewObject() {
        super("Open Object...");
        m_prompt = true;
    }

    public ViewObject(String pid) {
        super("Open Object");
        m_pids = new HashSet();
        m_pids.add(pid);
    }

    public ViewObject(Set pids) {
        super("Open Objects");
        m_pids = pids;
    }

    public void actionPerformed(ActionEvent ae) {
        launch();
    }

    public void launch() {
        if (m_prompt) {
            String pid =
                    JOptionPane
                            .showInputDialog("Enter the PID of the object to open.");
            if (pid == null) {
                return;
            }
            m_pids = new HashSet();
            m_pids.add(pid);
        }
        Iterator pidIter = m_pids.iterator();
        while (pidIter.hasNext()) {
            String pid = (String) pidIter.next();
            try {
                ObjectEditorFrame editor = new ObjectEditorFrame(pid, 0);
                editor.setVisible(true);
                Administrator.getDesktop().add(editor);
                editor.setSelected(true);
            } catch (Exception e) {
                e.printStackTrace();
                Administrator.showErrorDialog(Administrator.getDesktop(),
                                              "Error Opening Object",
                                              e.getClass().getName() + ": "
                                                      + e.getMessage(),
                                              e);
            }
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy