/** * */ package org.hyperdata.scute.demos.temp; import java.awt.Font; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import javax.swing.JEditorPane; import javax.swing.JScrollPane; import javax.swing.SwingUtilities; import org.hyperdata.scute.filemanager.FileReference; /** * @author danny * */ public class SourceEditor extends JEditorPane implements FileReference { JScrollPane scrollPane; public SourceEditor() { super(); setFont(new Font("Monospaced", Font.PLAIN, 12)); scrollPane = new JScrollPane(this); } /* * (non-Javadoc) * * @see * org.hyperdata.scute.filemanager.FileReference#setCurrentFile(java.io. * File) */ @Override public void setCurrentFile(final File file) { // System.out.println("setting file "+file); // final String url = "file:///" + file.getAbsolutePath(); // URL newURL = null; // try { // newURL = new URL(url); // } catch (MalformedURLException exception) { // exception.printStackTrace(); // } // URL loadedURL = getPage(); // if (loadedURL != null && loadedURL.sameFile(newURL)) { // return; // } // // maybe display "Loading..." // jsyntaxpane.DefaultSyntaxKit.initKit(); // setContentType("text/sparql"); // change according to file type // setPage(url); // SETPAGE BUGGERS UP SYNTAX HIGHLIGHTING String text; try { jsyntaxpane.DefaultSyntaxKit.initKit(); text = readFileAsString(file); setText(text); setContentType(Mime.getType(file.getName())); } catch (IOException exception) { // TODO Auto-generated catch block exception.printStackTrace(); } // System.out.println("trying URL"); // // jsyntaxpane.DefaultSyntaxKit.initKit(); // // final String url = "file:///" + file.getAbsolutePath(); // URL newURL = null; // try { // newURL = new URL(url); // } catch (MalformedURLException exception) { // exception.printStackTrace(); // } // URL loadedURL = getPage(); // if (loadedURL != null && loadedURL.sameFile(newURL)) { // return; // } // try { // // jsyntaxpane.DefaultSyntaxKit.initKit(); // setContentType(Mime.getType(file.getName())); // setPage(newURL); // //System.out.println("SETTING type "+Mime.getType(file.getName())); // } catch (IOException exception) { // // TODO Auto-generated catch block // exception.printStackTrace(); // } // validate(); // } catch (IOException exception) { // exception.printStackTrace(); // } } private static String readFileAsString(File file) throws java.io.IOException{ StringBuffer fileData = new StringBuffer(1000); BufferedReader reader = new BufferedReader( new FileReader(file)); char[] buf = new char[1024]; int numRead=0; while((numRead=reader.read(buf)) != -1){ String readData = String.valueOf(buf, 0, numRead); fileData.append(readData); buf = new char[1024]; } reader.close(); return fileData.toString(); } /* * (non-Javadoc) * * @see org.hyperdata.scute.filemanager.FileReference#getCurrentFile() */ @Override public File getCurrentFile() { return new File(getPage().getFile()); } /** * @return the scrollPane */ public JScrollPane getScrollPane() { return this.scrollPane; } }