Package hermes.browser.tasks

Source Code of hermes.browser.tasks.EditDestinationPropertiesTask

/*
* 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.browser.tasks;

import hermes.Domain;
import hermes.Hermes;
import hermes.browser.HermesBrowser;
import hermes.browser.IconCache;
import hermes.browser.dialog.DestinationConfigDialog;
import hermes.config.DestinationConfig;

import javax.jms.Destination;
import javax.jms.JMSException;
import javax.swing.SwingUtilities;

import org.apache.log4j.Logger;

import com.jidesoft.swing.JideSwingUtilities;

/**
* @author colincrist@hermesjms.com
*/
public class EditDestinationPropertiesTask extends TaskSupport
{
   private static final Logger log = Logger.getLogger(EditDestinationPropertiesTask.class);
   private Hermes hermes;
   private Destination destination;
   private DestinationConfig config ;
   private Runnable onOK ;

   /**
    * @param icon
    */
   public EditDestinationPropertiesTask(Hermes hermes, DestinationConfig config)
   {
      super(IconCache.getIcon("jms.unknown"));
      this.hermes = hermes;
      this.config = config;
   }
  
   public EditDestinationPropertiesTask(Hermes hermes, DestinationConfig config, Runnable onOK)
   {
      this(hermes, config) ;
      this.onOK = onOK  ;
   }
  

   /*
    * (non-Javadoc)
    *
    * @see hermes.browser.tasks.Task#invoke()
    */
   public void invoke() throws Exception
   {
      //
      // We may not have a destination name yet if we're adding a new
      // destination manually.

      if (config.getName() != null)
      {
         Hermes.ui.getDefaultMessageSink().add("Getting properties for " + config.getName() + "...");

         try
         {
            destination = hermes.getDestination(config.getName(), Domain.getDomain(config.getDomain()));
         }
         catch (JMSException ex)
         {
            Hermes.ui.getDefaultMessageSink().add("Unable to create a session to get destination bean properties. " + ex.getMessage());
         }
      }

      if (destination != null)
      {
         Hermes.ui.getDefaultMessageSink().add("Getting properties for " + config.getName() + "... done.");

         try
         {
            hermes.close();
         }
         catch (JMSException ex)
         {
            // Swallow it

            log.error(ex.getMessage(), ex);
         }
      }

      SwingUtilities.invokeAndWait(new Runnable()
      {
         public void run()
         {
            final DestinationConfigDialog dialog = new DestinationConfigDialog(HermesBrowser.getBrowser(), hermes.getId(), destination, config);

            dialog.pack();
            JideSwingUtilities.centerWindow(dialog);
            dialog.show();
           
            if (onOK != null)
            {
               onOK.run() ;
            }
         }
      });
   }
}
TOP

Related Classes of hermes.browser.tasks.EditDestinationPropertiesTask

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.