001/* 002 * Copyright (c) 2004-2010 The Regents of the University of California. 003 * All rights reserved. 004 * 005 * '$Author: berkley $' 006 * '$Date: 2010-04-28 00:12:36 +0000 (Wed, 28 Apr 2010) $' 007 * '$Revision: 24000 $' 008 * 009 * Permission is hereby granted, without written agreement and without 010 * license or royalty fees, to use, copy, modify, and distribute this 011 * software and its documentation for any purpose, provided that the above 012 * copyright notice and the following two paragraphs appear in all copies 013 * of this software. 014 * 015 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY 016 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 017 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF 018 * THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF 019 * SUCH DAMAGE. 020 * 021 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, 022 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 023 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE 024 * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF 025 * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, 026 * ENHANCEMENTS, OR MODIFICATIONS. 027 * 028 */ 029 030package org.kepler.gui.component; 031 032import java.awt.event.ActionEvent; 033import java.awt.event.ActionListener; 034 035import javax.swing.JMenuItem; 036import javax.swing.JOptionPane; 037 038import org.apache.commons.logging.Log; 039import org.apache.commons.logging.LogFactory; 040import org.kepler.gui.GUIUtil; 041import org.kepler.objectmanager.library.LibraryManager; 042import org.kepler.objectmanager.lsid.KeplerLSID; 043 044/** 045 * This action toggles the LSID of a Component Item in the Library. 046 */ 047public class ToggleLsidAction implements ActionListener { 048 049 private Integer _liid; 050 051 public void setLiid(Integer liid) { 052 _liid = liid; 053 } 054 055 public Integer getLiid() { 056 return _liid; 057 } 058 059 private final static Log log = LogFactory.getLog(ToggleLsidAction.class); 060 private static final boolean isDebugging = log.isDebugEnabled(); 061 062 /** 063 * Constructor 064 * 065 *@param parent 066 * the "frame" (derived from ptolemy.gui.Top) where the menu is 067 * being added. 068 */ 069 public ToggleLsidAction() {} 070 071 /** 072 * Invoked when an action occurs. 073 * 074 *@param e 075 * ActionEvent 076 */ 077 public void actionPerformed(ActionEvent e) { 078 079 try { 080 081 Object o = e.getSource(); 082 if (o instanceof JMenuItem) { 083 JMenuItem jmi = (JMenuItem)o; 084 String lsidStr = jmi.getText(); 085 if (isDebugging) log.debug( getLiid() + " " + lsidStr ); 086 LibraryManager lm = LibraryManager.getInstance(); 087 try { 088 KeplerLSID newDefaultLSID = new KeplerLSID(lsidStr); 089 lm.getIndex().updateDefaultLsid(getLiid(), newDefaultLSID); 090 } catch (Exception ex) { 091 JOptionPane.showMessageDialog(GUIUtil 092 .getParentWindow(jmi), ex 093 .getMessage()); 094 } 095 } 096 097 } catch (Exception exc) { 098 exc.printStackTrace(); 099 } 100 } 101}