Package hermes.browser.actions

Source Code of hermes.browser.actions.BrowseContextAction

/*
* Copyright 2003,2004 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.actions;

import hermes.browser.HermesBrowser;
import hermes.browser.IconCache;
import hermes.browser.components.ContextTree;
import hermes.browser.model.tree.ContextTreeModel;
import hermes.browser.tasks.JNDIBrowseTask;
import hermes.browser.tasks.Task;
import hermes.config.NamingConfig;

import java.awt.BorderLayout;
import java.util.Date;

import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;

import org.apache.log4j.Logger;

import com.jidesoft.document.DocumentComponent;
import com.jidesoft.swing.JideScrollPane;

/**
* A document component that contains a tree of a JNDI InitialContext.
*
* @author colincrist@hermesjms.com last changed by: $Author: colincrist $
* @version $Id: BrowseContextAction.java,v 1.3 2004/11/17 17:22:54 colincrist
*          Exp $
*/
public class BrowseContextAction extends DocumentComponent
{
   private static final Logger log = Logger.getLogger(BrowseContextAction.class);
   private NamingConfig namingConfig;
   private volatile boolean keepRunning = true;
   private JPanel rootPanel;
   private boolean firstTime = true;
   private JideScrollPane treeSP = new JideScrollPane();
   private JLabel lastUpdate = new JLabel();
   private ContextTree contextTree = new ContextTree();

   /**
    * @param content
    * @param title
    * @param listener
    */
   public BrowseContextAction(NamingConfig namingConfig)
   {
      super(new JPanel(), "JNDI: " + namingConfig.getId());

      this.namingConfig = namingConfig;

      setIcon(IconCache.getIcon("jndi.context"));
      rootPanel = (JPanel) getComponent();

      update();
   }

   public void update()
   {
      Task task = new JNDIBrowseTask(namingConfig, this);

      task.start();
   }

   public ContextTree getContextTree()
   {
      return contextTree;
   }

   public synchronized void update(final ContextTreeModel model)
   {
      if (firstTime)
      {
         rootPanel.setLayout(new BorderLayout());

         // Header

         JPanel header = new JPanel();
         header.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
         header.setLayout(new BoxLayout(header, BoxLayout.X_AXIS));

         lastUpdate.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));

         header.add(lastUpdate);

         // Put it together

         rootPanel.add(header, BorderLayout.NORTH);
         rootPanel.add(treeSP, BorderLayout.CENTER);
      }

      try
      {
         lastUpdate.setText("Last update " + new Date());

         contextTree.setModel(model);
         treeSP.setViewportView(contextTree);

         if (firstTime)
         {
            HermesBrowser.getBrowser().addDocumentComponent(BrowseContextAction.this);
            firstTime = false;
         }
      }
      catch (Exception e)
      {
         log.error(e.getMessage(), e);
      }
   }

}
TOP

Related Classes of hermes.browser.actions.BrowseContextAction

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.