Package hermes.swing.actions

Source Code of hermes.swing.actions.BrowseDestinationOrContextAction

/*
* 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.actions.QueueBrowseAction;
import hermes.browser.model.tree.DestinationConfigTreeNode;
import hermes.browser.model.tree.HermesTreeNode;
import hermes.browser.model.tree.MessageStoreQueueTreeNode;
import hermes.browser.model.tree.MessageStoreTopicTreeNode;
import hermes.browser.model.tree.MessageStoreTreeNode;
import hermes.browser.model.tree.NamingConfigTreeNode;
import hermes.browser.model.tree.RepositoryTreeNode;

import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;

import javax.jms.Queue;
import javax.jms.Topic;
import javax.swing.Action;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.TreePath;

import org.apache.log4j.Logger;

/**
* Action to browse a queue, topic or JNDI context.
*
* @author colincrist@hermesjms.com
* @version $Id: BrowseDestinationOrContextAction.java,v 1.1 2005/05/14 22:53:48
*          colincrist Exp $
*/

public class BrowseDestinationOrContextAction extends ActionSupport {
  /**
   *
   */
  private static final long serialVersionUID = -2261691717762103310L;
  private static final Logger log = Logger.getLogger(BrowseDestinationOrContextAction.class);

  public BrowseDestinationOrContextAction() {
    putValue(Action.NAME, "Browse...");
    putValue(Action.SHORT_DESCRIPTION, "Browse the queue, topic or context");
    putValue(Action.SMALL_ICON, IconCache.getIcon("hermes.browse"));
    putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_B, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false));

    setEnabled(false);

    enableOnBrowserTreeSelection(new Class[] { MessageStoreQueueTreeNode.class, MessageStoreTopicTreeNode.class, MessageStoreTreeNode.class,
        DestinationConfigTreeNode.class, NamingConfigTreeNode.class }, this, true);
    enableOnBrowserTreeSelection(new Class[] { NamingConfigTreeNode.class }, this, new TreeSelectionListener() {
      public void valueChanged(TreeSelectionEvent e) {
        setEnabled(getBrowserTree().getLastSelectedHermesTreeNode() != null);
      }
    }, true);
  }

  public void actionPerformed(ActionEvent e) {
    actionPerformed(getBrowserTree().getSelectionModel().getSelectionPath());
  }

  public void actionPerformed(TreePath selectionPath) {

    if (selectionPath != null) {
      try {
        if (selectionPath.getLastPathComponent() instanceof NamingConfigTreeNode) {
          final NamingConfigTreeNode node = (NamingConfigTreeNode) selectionPath.getLastPathComponent();

          HermesBrowser.getBrowser().getActionFactory().createBrowseContextAction(node.getConfig());
         
        } else if (selectionPath.getLastPathComponent() instanceof DestinationConfigTreeNode) {
          final DestinationConfigTreeNode destinationNode = (DestinationConfigTreeNode) selectionPath.getLastPathComponent();
          final Hermes hermes = ((HermesTreeNode) destinationNode.getHermesTreeNode()).getHermes();
          final QueueBrowseAction qBrowser = HermesBrowser.getBrowser().getOpenQueueBrowser(destinationNode.getConfig()) ;
          if (qBrowser != null) {
            qBrowser.refresh() ;
          } else {
            HermesBrowser.getBrowser().getActionFactory().createQueueBrowseAction(hermes, destinationNode.getConfig());
          }
        } else if (selectionPath.getLastPathComponent() instanceof RepositoryTreeNode) {
          final RepositoryTreeNode repNode = (RepositoryTreeNode) selectionPath.getLastPathComponent();
          final Hermes hermes = HermesBrowser.getBrowser().getBrowserTree().getHermesAsMessageFactory();

          HermesBrowser.getBrowser().getActionFactory().createRepositoryBrowseAction(repNode.getRepository(), hermes);

        } else if (selectionPath.getLastPathComponent() instanceof MessageStoreTreeNode) {
          final MessageStoreTreeNode node = (MessageStoreTreeNode) selectionPath.getLastPathComponent();
          final Hermes hermes = HermesBrowser.getBrowser().getBrowserTree().getHermesAsMessageFactory();

          HermesBrowser.getBrowser().getActionFactory().createMessageStoreBrowseAction(node.getMessageStore(), hermes, null);

        } else if (selectionPath.getLastPathComponent() instanceof MessageStoreQueueTreeNode) {
          final MessageStoreQueueTreeNode queueNode = (MessageStoreQueueTreeNode) selectionPath.getLastPathComponent();

          if (queueNode.getParent() instanceof MessageStoreTreeNode) {
            final MessageStoreTreeNode storeNode = (MessageStoreTreeNode) queueNode.getParent();
            final Hermes hermes = HermesBrowser.getBrowser().getBrowserTree().getHermesAsMessageFactory();

            HermesBrowser.getBrowser().getActionFactory()
                .createMessageStoreBrowseAction(storeNode.getMessageStore(), hermes, (Queue) queueNode.getBean(), null);

          }
        } else if (selectionPath.getLastPathComponent() instanceof MessageStoreTopicTreeNode) {
          final MessageStoreTopicTreeNode topicNode = (MessageStoreTopicTreeNode) selectionPath.getLastPathComponent();

          if (topicNode.getParent() instanceof MessageStoreTreeNode) {
            final MessageStoreTreeNode storeNode = (MessageStoreTreeNode) topicNode.getParent();
            final Hermes hermes = HermesBrowser.getBrowser().getBrowserTree().getHermesAsMessageFactory();

            HermesBrowser.getBrowser().getActionFactory()
                .createMessageStoreBrowseAction(storeNode.getMessageStore(), hermes, (Topic) topicNode.getBean(), null);

          }
        }
      } catch (Exception ex) {
        log.error(ex.getMessage(), ex);

        JOptionPane.showMessageDialog(HermesBrowser.getBrowser(), "During browse/read: " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
      }
    }
  }
}
TOP

Related Classes of hermes.swing.actions.BrowseDestinationOrContextAction

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.