|
From: <eki...@us...> - 2006-11-05 13:15:07
|
Revision: 94
http://svn.sourceforge.net/jtreemap/?rev=94&view=rev
Author: ekingulen
Date: 2006-11-05 05:14:46 -0800 (Sun, 05 Nov 2006)
Log Message:
-----------
Modified Paths:
--------------
trunk/JTreeMap/src/main/java/net/sf/jtreemap/swing/example/BuilderTM3.java
trunk/JTreeMap/src/main/java/net/sf/jtreemap/swing/example/BuilderXML.java
trunk/JTreeMap/src/main/java/net/sf/jtreemap/swing/example/JTreeMapAppletExample.java
Added Paths:
-----------
trunk/JTreeMap/src/main/java/TreeMap.dtd
Added: trunk/JTreeMap/src/main/java/TreeMap.dtd
===================================================================
--- trunk/JTreeMap/src/main/java/TreeMap.dtd (rev 0)
+++ trunk/JTreeMap/src/main/java/TreeMap.dtd 2006-11-05 13:14:46 UTC (rev 94)
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!ELEMENT root (label,(branch |leaf)*)>
+<!ELEMENT branch (label,(branch|leaf)*)>
+<!ELEMENT leaf (label,weight,value) >
+<!ELEMENT label (#PCDATA) >
+<!ELEMENT weight (#PCDATA) >
+<!ELEMENT value (#PCDATA) >
\ No newline at end of file
Modified: trunk/JTreeMap/src/main/java/net/sf/jtreemap/swing/example/BuilderTM3.java
===================================================================
--- trunk/JTreeMap/src/main/java/net/sf/jtreemap/swing/example/BuilderTM3.java 2006-11-04 18:07:39 UTC (rev 93)
+++ trunk/JTreeMap/src/main/java/net/sf/jtreemap/swing/example/BuilderTM3.java 2006-11-05 13:14:46 UTC (rev 94)
@@ -102,10 +102,22 @@
*/
public BuilderTM3(final File tm3File) throws IOException {
this.builder = new TreeMapNodeBuilder();
- parse(tm3File);
+ parse(new BufferedReader(new FileReader(tm3File)));
}
/**
+ * Constructor
+ *
+ * @param reader
+ * reader associated with tm3 file
+ * @throws IOException
+ */
+ public BuilderTM3(final BufferedReader reader) throws IOException {
+ this.builder = new TreeMapNodeBuilder();
+ parse(reader);
+ }
+
+ /**
* @return the number fields (ie INTEGER and FLOAT)
*/
public String[] getNumberFields() {
@@ -222,17 +234,14 @@
}
/**
- * @param tm3File
- * TM3 file
+ * @param reader The <code>BufferedReader</code>.
* @throws IOException
*/
- private void parse(final File tm3File) throws IOException {
-
- final BufferedReader in = new BufferedReader(new FileReader(tm3File));
+ private void parse(final BufferedReader reader) throws IOException {
try {
String line = "";
// read the field names
- line = in.readLine();
+ line = reader.readLine();
StringTokenizer st = new StringTokenizer(line, "\t");
FIELD_NAMES.clear();
while (st.hasMoreTokens()) {
@@ -240,7 +249,7 @@
}
// read the field types
- line = in.readLine();
+ line = reader.readLine();
st = new StringTokenizer(line, "\t");
FIELD_TYPES.clear();
while (st.hasMoreTokens()) {
@@ -249,7 +258,7 @@
// read the VALUES
VALUES.clear();
- while ((line = in.readLine()) != null) {
+ while ((line = reader.readLine()) != null) {
st = new StringTokenizer(line, "\t");
final HashMap<String, Object> mapNodeValues = new HashMap<String, Object>();
// the VALUES are formated
@@ -281,8 +290,8 @@
createNodes(st, mapNodeValues);
}
} finally {
- if (in != null) {
- in.close();
+ if (reader != null) {
+ reader.close();
}
}
}
Modified: trunk/JTreeMap/src/main/java/net/sf/jtreemap/swing/example/BuilderXML.java
===================================================================
--- trunk/JTreeMap/src/main/java/net/sf/jtreemap/swing/example/BuilderXML.java 2006-11-04 18:07:39 UTC (rev 93)
+++ trunk/JTreeMap/src/main/java/net/sf/jtreemap/swing/example/BuilderXML.java 2006-11-05 13:14:46 UTC (rev 94)
@@ -34,6 +34,7 @@
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
import java.text.ParseException;
import javax.xml.parsers.DocumentBuilder;
@@ -99,6 +100,19 @@
}
/**
+ * Constructor
+ *
+ * @param stream
+ * <code>InputStream </code> representing XML file object
+ * @throws ParseException
+ * if the file don't correspond to the TreeMap.dtd
+ */
+ public BuilderXML(final InputStream stream) throws ParseException {
+ this.builder = new TreeMapNodeBuilder();
+ parse(stream);
+ }
+
+ /**
* get the build root
*
* @return the build root
@@ -160,6 +174,26 @@
throw new ParseException("The file don't correspond to the TreeMap.dtd (" + e.getMessage() + ")", 0);
}
}
+
+ private void parse(final InputStream stream) throws ParseException {
+ try {
+ final DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
+
+ final DocumentBuilder constructeur = fabrique.newDocumentBuilder();
+ this.document = constructeur.parse(stream);
+
+ final Element root = this.document.getDocumentElement();
+
+ build(root, null);
+ } catch (final ParserConfigurationException e) {
+ throw new ParseException("The file don't correspond to the TreeMap.dtd (" + e.getMessage() + ")", 0);
+ } catch (final SAXException e) {
+ throw new ParseException("The file don't correspond to the TreeMap.dtd (" + e.getMessage() + ")", 0);
+ } catch (final IOException e) {
+ e.printStackTrace();
+ throw new ParseException("The file don't correspond to the TreeMap.dtd (" + e.getMessage() + ")", 0);
+ }
+ }
}
/*
* ObjectLab is supporing JTreeMap
Modified: trunk/JTreeMap/src/main/java/net/sf/jtreemap/swing/example/JTreeMapAppletExample.java
===================================================================
--- trunk/JTreeMap/src/main/java/net/sf/jtreemap/swing/example/JTreeMapAppletExample.java 2006-11-04 18:07:39 UTC (rev 93)
+++ trunk/JTreeMap/src/main/java/net/sf/jtreemap/swing/example/JTreeMapAppletExample.java 2006-11-05 13:14:46 UTC (rev 94)
@@ -38,10 +38,12 @@
import java.awt.GridBagConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.io.File;
+import java.io.BufferedReader;
import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
+import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
import java.text.ParseException;
import javax.swing.JApplet;
@@ -119,7 +121,7 @@
TreeMapNode root = null;
if(TM3.equalsIgnoreCase(dataFileType)) {
try {
- builderTM3 = new BuilderTM3(new File(new URI(getCodeBase() + dataFile)));
+ builderTM3 = new BuilderTM3(createReader(dataFile));
root = builderTM3.getRoot();
if (showTM3CTonf) {
setTM3Fields();
@@ -127,18 +129,20 @@
}
} catch (final IOException e) {
root = handleException(e);
- } catch (URISyntaxException e) {
- root = handleException(e);
- }
+ }
} else if(XML.equalsIgnoreCase(dataFileType)) {
try {
- final BuilderXML bXml = new BuilderXML(new File(new URI(getCodeBase() + dataFile)));
+ URL url = new URL(getCodeBase() + dataFile);
+ URLConnection connection = url.openConnection();
+ final BuilderXML bXml = new BuilderXML(connection.getInputStream());
root = bXml.getRoot();
} catch (final ParseException e) {
root = handleException(e);
- } catch (URISyntaxException e) {
+ } catch (MalformedURLException e) {
root = handleException(e);
- }
+ } catch (IOException e) {
+ root = handleException(e);
+ }
} else {
root = DemoUtil.buildDemoRoot();
@@ -154,6 +158,20 @@
getJContentPane().add(this.jTreeMap, BorderLayout.CENTER);
}
+ /**
+ * @param dataFile
+ * @return
+ * @throws MalformedURLException
+ * @throws IOException
+ */
+ private BufferedReader createReader(String dataFile) throws MalformedURLException, IOException {
+ URL url = new URL(getCodeBase() + dataFile);
+ URLConnection connection = url.openConnection();
+ BufferedReader reader = new BufferedReader(
+ new InputStreamReader(connection.getInputStream()));
+ return reader;
+ }
+
private TreeMapNode handleException(final Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(this, e.getMessage(), "File error", JOptionPane.ERROR_MESSAGE);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|