Package org.xmlBlaster.jmxgui

Source Code of org.xmlBlaster.jmxgui.DataModel

/*------------------------------------------------------------------------------
Name:      DataModel.java
Project:   xmlBlaster.org
Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file
------------------------------------------------------------------------------*/
package org.xmlBlaster.jmxgui;

import java.util.Vector;

import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.ImageIcon;
import java.awt.Image;

import org.w3c.dom.Document;
import java.util.logging.Logger;
import java.util.logging.Level;
import org.xmlBlaster.util.Global;
import org.xmlBlaster.util.FileLocator;
import org.xmlBlaster.util.XmlBlasterException;

import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.NamedNodeMap;

import org.xmlBlaster.jmxgui.util.XmlUtil;
import org.xmlBlaster.client.jmx.ConnectorFactory;

/**
* Encapsulates the TreeModel for the TreeView from the GUI
*/
public class DataModel {

  private XmlUtil xmlUtil = null;
  private DefaultMutableTreeNode top = null;
  private DefaultMutableTreeNode parent = null;
  private Global glob = null;
   private static Logger log = Logger.getLogger(DataModel.class.getName());
  private final String ME = "DataModel";
  private Document config = null;
  private Vector vSubNodes;

  public DataModel(Global glob) throws Exception {
    xmlUtil = new XmlUtil();
    //get Globals and Log
//    if (glob == null) glob = Global.instance();
    this.glob = glob;

    log.info("building new tree...");
    addServerNodes();
    buildTree();
  }

  public DefaultMutableTreeNode getTree() {
    return this.top;
  }


  public void buildTree() {
    vSubNodes = new Vector();
    log.info("Trying to retrieve config from file");
    try {
      config = xmlUtil.loadConfig();
    }
    catch (Exception ex) {
      log.severe("Error when loading plugin config " + ex.toString());
      ex.printStackTrace();
    }

    NodeList nl = config.getElementsByTagName("component");
    for (int i=0; i<nl.getLength(); i++) {
       Node n = nl.item(i);
       NodeList nlParam = n.getChildNodes();
       for (int j =0; j<nlParam.getLength(); j++) {
         Node nParam = nlParam.item(j);
         NodeList nlParamChild = nParam.getChildNodes();
         for (int k =0; k<nlParamChild.getLength(); k++) {
           Node nodeName = nlParamChild.item(k);
           vSubNodes.addElement(nlParamChild.item(k).getNodeValue());
         }
       }
    }


    DefaultMutableTreeNode node = null;
    for (int i=0; i<vSubNodes.size(); i++) {
      BasicNode bNode = new BasicNode(null, (String) vSubNodes.elementAt(i));
//TODO      bNode.setClassName(nodes[i].getClassName());
      bNode.setExpandedIcon(loadIcon("question.gif"));
      bNode.setNormalIcon(loadIcon("question.gif"));
      node = new DefaultMutableTreeNode(bNode);
      parent.add(node);
    }
  }


  public DefaultMutableTreeNode addServerNodes() throws Exception {
      Object[] nodes = new Object[5];
      BasicNode rootNode = new BasicNode(null, "xmlBlaster");
      rootNode.setExpandedIcon(loadIcon("globe.gif"));
      rootNode.setNormalIcon(loadIcon("globe.gif"));
      top = new DefaultMutableTreeNode(rootNode);

      parent = top;
      nodes[0] = top;
      DefaultMutableTreeNode node = null;
     
      ConnectorFactory connectorFactory = ConnectorFactory.getInstance(this.glob);
      connectorFactory.getMBeanServer("127.0.0.1");
      String[] servers = connectorFactory.getMBeanServerList();
     
      if (servers == null) throw new Exception("could not connect to any host! ");
      for (int i=0; i<servers.length; i++) {
        BasicNode bNode = new BasicNode(null, servers[i]);
        bNode.setExpandedIcon(loadIcon("node.gif"));
        bNode.setNormalIcon(loadIcon("node.gif"));
        node = new DefaultMutableTreeNode(bNode);
        parent.add(node);
      }
      parent = node;
      nodes[1] = parent;

  return top;

}

public ImageIcon loadIcon(String filename){
  ImageIcon icon = null;
  java.net.URL oUrl;
  oUrl = this.getClass().getResource(filename);
  Image img;
  img = java.awt.Toolkit.getDefaultToolkit().getImage(oUrl);
  if(img != null)
  {
    icon = new ImageIcon(img);
  }
  else
  {
    log.warning(filename +" not found");
  }
  return icon;
}


}
TOP

Related Classes of org.xmlBlaster.jmxgui.DataModel

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.