/* * Copyright 2003,2004,2005 Colin Crist * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package hermes.swing.actions; import hermes.Hermes; import hermes.browser.HermesBrowser; import hermes.browser.IconCache; import hermes.browser.dialog.EditNamingConfigDialog; import hermes.browser.dialog.PreferencesDialog; import hermes.browser.model.tree.DestinationConfigTreeNode; import hermes.browser.model.tree.HermesTreeNode; import hermes.browser.model.tree.MessageStoreURLTreeNode; import hermes.browser.model.tree.NamingConfigTreeNode; import hermes.browser.tasks.EditDestinationPropertiesTask; import java.awt.event.ActionEvent; import javax.swing.Action; import javax.swing.tree.TreePath; import org.apache.log4j.Logger; import com.jidesoft.swing.JideSwingUtilities; /** * Send jms2xml.xsd format file to currently selected queue or topic. * * @author colincrist@hermesjms.com * @version $Id: EditObjectAction.java,v 1.9 2005/12/14 08:11:24 colincrist Exp $ */ public class EditObjectAction extends ActionSupport { /** * */ private static final long serialVersionUID = 2245596929230905682L; private static final Logger log = Logger.getLogger(EditObjectAction.class); public EditObjectAction() { putValue(Action.NAME, "Edit..."); putValue(Action.SHORT_DESCRIPTION, "Edit queue, topic, session or context."); putValue(Action.SMALL_ICON, IconCache.getIcon("toolbarButtonGraphics/general/Edit16.gif")); setEnabled(false); if (!HermesBrowser.getBrowser().isRestricted()) { enableOnBrowserTreeSelection(new Class[] { MessageStoreURLTreeNode.class, DestinationConfigTreeNode.class, HermesTreeNode.class, NamingConfigTreeNode.class } , this, false) ; } } public void actionPerformed(ActionEvent arg0) { try { final TreePath treePath = HermesBrowser.getBrowser().getBrowserTree().getSelectionModel().getSelectionPath(); if (treePath != null) { Object component = treePath.getLastPathComponent(); if (component instanceof DestinationConfigTreeNode) { final DestinationConfigTreeNode node = (DestinationConfigTreeNode) component; final HermesTreeNode hermesNode = (HermesTreeNode) node.getHermesTreeNode(); Hermes.ui.getThreadPool().invokeLater(new EditDestinationPropertiesTask(hermesNode.getHermes(), node.getConfig(), new Runnable() { public void run() { int index = hermesNode.getIndex(node) ; hermesNode.remove(node) ; HermesBrowser.getBrowser().getBrowserTree().getBrowserModel().nodesWereRemoved(hermesNode, new int[] { index }, new Object[] { node} ) ; DestinationConfigTreeNode newNode = new DestinationConfigTreeNode(hermesNode, node.getConfig(), false) ; hermesNode.add(newNode) ; HermesBrowser.getBrowser().getBrowserTree().getBrowserModel().nodesWereInserted(hermesNode, new int[] { hermesNode.getIndex(newNode) } ) ; try { HermesBrowser.getBrowser().saveConfig() ; } catch (Exception ex) { HermesBrowser.getBrowser().showErrorDialog(ex) ; } } })); } else if (component instanceof HermesTreeNode) { final HermesTreeNode hermesNode = (HermesTreeNode) component; final PreferencesDialog dialog = new PreferencesDialog(HermesBrowser.getBrowser()); dialog.init(); dialog.refocus(hermesNode.getHermes().getId()); JideSwingUtilities.centerWindow(dialog); dialog.setVisible(true) ; } else if (component instanceof NamingConfigTreeNode) { final NamingConfigTreeNode namingNode = (NamingConfigTreeNode) component; final EditNamingConfigDialog dialog = new EditNamingConfigDialog(HermesBrowser.getBrowser(), namingNode.getId(), HermesBrowser.getBrowser() .getConfig().getNaming()); dialog.pack(); JideSwingUtilities.centerWindow(dialog); dialog.setVisible(true) ; } else if (component instanceof MessageStoreURLTreeNode) { MessageStoreURLTreeNode node = (MessageStoreURLTreeNode) component ; if (node.isConfigurable()) { ActionRegistry.getAction(CreateNewJDBCAction.class).actionPerformed(new ActionEvent(node.getConfig(), 0, null)) ; } else { HermesBrowser.getBrowser().showErrorDialog("You cannot edit the default message store") ; } } } } catch (Exception ex) { HermesBrowser.getBrowser().showErrorDialog("Cannot edit: ", ex); } } }