reading source files from web server in applet mode

This commit is contained in:
fros4943 2008-04-03 14:03:30 +00:00
parent 3da6608fe3
commit 42d685a819

View file

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: MspCodeWatcher.java,v 1.7 2008/03/31 15:19:27 fros4943 Exp $
* $Id: MspCodeWatcher.java,v 1.8 2008/04/03 14:03:30 fros4943 Exp $
*/
package se.sics.cooja.mspmote.plugins;
@ -37,6 +37,11 @@ import java.awt.event.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.*;
import javax.swing.*;
import javax.swing.plaf.basic.BasicComboBoxRenderer;
@ -656,9 +661,14 @@ public class MspCodeWatcher extends VisPlugin {
}
File file = new File(sourceFile);
if (!file.exists() || !file.isFile()) {
logger.warn("Can't locate source file, skipping: " + file.getPath());
if (!GUI.isVisualizedInApplet()) {
if (!file.exists() || !file.isFile()) {
logger.warn("Can't locate source file, skipping: " + file.getPath());
} else {
files.add(file);
}
} else {
/* Accept all files without existence check */
files.add(file);
}
}
@ -708,6 +718,27 @@ public class MspCodeWatcher extends VisPlugin {
return fileToLineHash;
}
/**
* Tries to open and read given text file.
*
* @param textFile File
* @return Line-by-line text in file
*/
public static Vector<String> readTextFile(URL textFile) throws IOException {
URLConnection urlConnection = textFile.openConnection();
urlConnection.setDoInput(true);
urlConnection.setUseCaches(false);
Vector<String> data = new Vector<String>();
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
data.add(line);
}
return data;
}
/**
* Tries to open and read given text file.
*
@ -715,6 +746,32 @@ public class MspCodeWatcher extends VisPlugin {
* @return Line-by-line text in file
*/
public static Vector<String> readTextFile(File textFile) {
if (GUI.isVisualizedInApplet()) {
/* Download from web server instead */
String path = textFile.getPath();
/* Extract Contiki build path */
String contikiBuildPath = GUI.getExternalToolsSetting("PATH_CONTIKI_BUILD");
String contikiWebPath = GUI.getExternalToolsSetting("PATH_CONTIKI_WEB");
if (!path.startsWith(contikiBuildPath)) {
return null;
}
try {
/* Replace Contiki parent path with web server code base */
path = contikiWebPath + '/' + path.substring(contikiBuildPath.length());
URL url = new URL(GUI.getAppletCodeBase(), path);
return readTextFile(url);
} catch (MalformedURLException e) {
logger.warn("Failure to read source code: " + e);
return null;
} catch (IOException e) {
logger.warn("Failure to read source code: " + e);
return null;
}
}
try {
BufferedReader in =
new BufferedReader(