X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2FSpecialBoxProperty.java;h=00f43dbf553cb5b93198d8ba4bdd2dd3a3492c3b;hb=e6a665b309c7103a3a29c2cd96b1073409c13606;hp=b6d2cfcd11dc5bb37bbe1803c300570ba429bad6;hpb=a57407aeb8cf8bb0cdcd42c5dda2718197743d57;p=org.ibex.core.git diff --git a/src/org/xwt/SpecialBoxProperty.java b/src/org/xwt/SpecialBoxProperty.java index b6d2cfc..00f43db 100644 --- a/src/org/xwt/SpecialBoxProperty.java +++ b/src/org/xwt/SpecialBoxProperty.java @@ -1,11 +1,11 @@ // Copyright 2002 Adam Megacz, see the COPYING file for licensing [GPL] package org.xwt; -import org.mozilla.javascript.*; -import org.xwt.util.*; import java.util.*; import java.net.*; import java.text.*; +import org.xwt.js.*; +import org.xwt.util.*; /** * A helper class for properties of Box which require special @@ -81,10 +81,15 @@ class SpecialBoxProperty { String s = value == null ? null : value.toString(); if (value == null) newcolor = 0x00000000; else if (s.length() > 0 && s.charAt(0) == '#') - newcolor = 0xFF000000 | - (Integer.parseInt(s.substring(1, 3), 16) << 16) | - (Integer.parseInt(s.substring(3, 5), 16) << 8) | - Integer.parseInt(s.substring(5, 7), 16); + try { + newcolor = 0xFF000000 | + (Integer.parseInt(s.substring(1, 3), 16) << 16) | + (Integer.parseInt(s.substring(3, 5), 16) << 8) | + Integer.parseInt(s.substring(5, 7), 16); + } catch (NumberFormatException e) { + Log.log(this, "invalid color " + s); + return; + } else if (s.equals("black")) newcolor = black; else if (s.equals("blue")) newcolor = blue; else if (s.equals("green")) newcolor = green; @@ -101,8 +106,7 @@ class SpecialBoxProperty { else if (s.equals("pink")) newcolor = pink; else if (s.equals("yellow")) newcolor = yellow; else if (s.equals("white")) newcolor = white; - else if (Log.on) Log.log(this, "invalid color \"" + s + "\" at " + - Context.enter().interpreterSourceFile + ":" + Context.enter().interpreterLine); + else if (Log.on) Log.log(this, "invalid color \"" + s + "\" at " + JS.getCurrentFunctionSourceName()); if (newcolor == b.color) return; b.color = newcolor; b.dirty(); @@ -145,9 +149,7 @@ class SpecialBoxProperty { else if (s.equals("pink")) newtextcolor = pink; else if (s.equals("yellow")) newtextcolor = yellow; else if (s.equals("white")) newtextcolor = white; - else if (Log.on) Log.log(this, "invalid color \"" + s + "\" at " + - Context.enter().interpreterSourceFile + ":" + Context.enter().interpreterLine); - + else if (Log.on) Log.log(this, "invalid color \"" + s + "\" at " + JS.getCurrentFunctionSourceName()); if (newtextcolor == b.textcolor) return; b.textcolor = newtextcolor; b.dirty(); @@ -164,14 +166,11 @@ class SpecialBoxProperty { if (Log.on) Log.log(this, "ISO Control characters are not permitted in box text strings; offending character is ASCII " + ((int)t.charAt(i))); - /* FIXME: reinstate return; - */ } - // FIXME: don't know why this is needed + // FEATURE: try removing the following line; it appears to be redundant b.dirty(); - b.text = t; b.textupdate(); b.dirty(); @@ -220,7 +219,8 @@ class SpecialBoxProperty { specialBoxProperties.put("static", new SpecialBoxProperty() { public Object get(Box b) { - String cfsn = JSObject.getCurrentFunctionSourceName(); + JS.Function cf = JS.getCurrentFunction(); + String cfsn = cf.getSourceName(); for(int i=0; i