richard: grünes Häckchen bei Debug Punkt (Borland JBuilder)

Beitrag lesen

Hallo!
Also auch auf die Gefahr hin, dass ich mich jetzt bodenlos blamiere (aber wie bereits in der Einleitung geschrieben erlerne ich ja gerade Java):
Meinst du mit Framework die verwendete GUI Componente?
Das wäre ein JTree aus Swing.
Oder verstehst Du darunter meine Model Implementierung?
Dann hab ich dich bis jetzt vollständig falsch verstanden.
Oder meinst du, wie der Aufbau des Programms ist?
Es handelt sich um ein Applet, auf dem wie bereits beschrieben ein Panel, darauf eine Scrollpane und darauf ein (modifizierter) JTree liegt.
Oder benötigst Du die komlette Source für eine nähere Angabe?
(Übrigens bin ich schon vor der Verwendung von Swing Komponenten in Applets gewarnt worden, da dies aber eine Anwendung für ein Intranet wird, und für die entsprechenden Rechner eine entsprechende Konfig erstellt wird, gibt da kein Problem.)

Jedenfalls folgt hier die Model Klasse:
Wichtig: Diese Klasse soll einfach rudimentär eine XML Datei als TreeTable darstellen.

import org.apache.xpath.domapi.XPathEvaluatorImpl;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.xpath.XPathEvaluator;
import org.w3c.dom.xpath.XPathNSResolver;
import org.w3c.dom.xpath.XPathResult;
import org.xml.sax.InputSource;
import java.io.FileNotFoundException;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
import org.xml.sax.SAXException;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import java.io.StringWriter;
import java.io.StringReader;
import java.lang.*;
import org.xml.sax.InputSource;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.NodeList;

/**
 * <p>Überschrift: Pruefling</p>
 * <p>Beschreibung: TableTree Applet</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * @author Richard Holderied
 * @version 1.0
 */

public class XMLTreeModel extends AbstractTreeTableModel
    implements TreeTableModel{

////////////////////////////////////////////////////////
//Konstruktor ordnet Root Element zu
////////////////////////////////////////////////////////
  private Node myRoot;
  private String auswertungsart;

public XMLTreeModel(Object node, String art) {
    //==> Aufruf: JTreeTable treeTable = new JTreeTable(new XMLTreeModel(*Rootobjekt*, z.b. new String("root"), ausInt));
    super(node);
    myRoot=(Node) node;//root gemerkt;
    auswertungsart=art;
    }

///////////////////////////////////////////////////////
//Hilfseinträge, überschriften, art der Tabellenspalten
///////////////////////////////////////////////////////
  // Names of the columns.
  static protected String[] cNames = {
      "Stepnr","Status","Lower Limit","Measurement","Upper Limit","Unit"};

// Types of the columns.
  static protected Class[] cTypes = {
      TreeTableModel.class, String.class, String.class, String.class, String.class, String.class};

/////////////////////////////////////////////////////////
//Wieviele TabellenSpalten, wie heissen Sie, was ist ihr Typ
/////////////////////////////////////////////////////////

public int getColumnCount() {
    return cNames.length;
  }

public String getColumnName(int column) {
    return cNames[column];
  }

public Class getColumnClass(int column) {
     return cTypes[column];
   }

///////////////////////////////////////////////////////////

// Wie ist der Eintrag für Spalte X der Tabelle bei übergebenem Objekt node
  public Object getValueAt(Object node, int column) {
  Node myNode=(Node) node;
   try {
     switch (column) {
       case 0:
         return myNode.getNodeName();
       case 1:
         return myNode.getNodeValue();
       case 2:
         return myNode.getNodeValue();
       case 3:
         return myNode.getNodeValue();
       case 4:
          return myNode.getNodeValue();
       case 5:
          return myNode.getNodeValue();
      }
   }
   catch (SecurityException se) {}
   return null;
 }

// Wieviele Kinder hat Object node
  public int getChildCount(Object node)
  {
    Node myNode=(Node) node;
    return myNode.getChildNodes().getLength();
  }

//gib mir Kind which des Objects node
  public Object getChild(Object node, int which)
  {
    Node myNode=(Node) node;
    NodeList childList=myNode.getChildNodes();
    return childList.item(which);
  }

//ist das Object node ein Blatt (oder hat es Kinder)
  public boolean isLeaf(Object node) {
    Node myNode=(Node) node;
    /*boolean flagLeaf = true;
    int how_long = myNode.getChildNodes().getLength();
    if (how_long==0)
         flagLeaf = false;
    return flagLeaf;*/
    return myNode.hasChildNodes();
  }
}

Fie anderen Klassen des Projekts finden sich unter:
http://java.sun.com/products/jfc/tsc/articles/treetable1/index.html
ersetzt wurde FileSystemModel.java

Mehr info kann ich erst mal gar nicht geben (da ich nicht weiss, was noch wichtig ist).

Nochmals Dank fürs Interesse,
Richard