fixed bug 440, reintroduced splash screen
[org.ibex.core.git] / src / org / ibex / Template.java
index 154de72..c7a9acb 100644 (file)
@@ -81,6 +81,7 @@ public class Template {
 
         PerInstantiationScope pis = new PerInstantiationScope(b, ibex, parentPis, staticScope);
         for(int i=0; i<urikeys.length; i++) {
+            if (urikeys[i] == null) continue;
             pis.declare(urikeys[i]);
             pis.put(urikeys[i], ibex.resolveString(urivals[i], true));
         }
@@ -182,11 +183,14 @@ public class Template {
                     if (c.getAttrLen() != 0)
                         throw new XML.Exn("root element must not have attributes", XML.Exn.SCHEMA, getLine(), getCol());
                     if (c.getUri("ui") == null || "".equals(c.getUri("ui"))) c.addUri("ui", "ibex://ui");
+                    if (c.getUri("meta") == null || "".equals(c.getUri("meta"))) c.addUri("meta", "ibex://meta");
                     if (c.getUri("") == null || "".equals(c.getUri(""))) c.addUri("", initial_uri);
                     state = STATE_IN_ROOT_NODE;
                     return;
                 case STATE_IN_ROOT_NODE:
-                    if ("ibex://meta".equals(c.getUri())) { state = STATE_IN_META_NODE; meta = 0; return; }
+                    if ("ibex://meta".equals(c.getUri())) {
+                        state = STATE_IN_META_NODE; meta = 0; return;
+                    }
                     state = STATE_IN_TEMPLATE_NODE;
                     t = (t == null) ? new Template(ibex) : new Template(t, getLine());
                     break;
@@ -207,14 +211,15 @@ public class Template {
             }
                 
             Hash urimap = c.getUriMap();
-            t.urikeys = new String[urimap.size() - (urimap.get("ui") == null ? 0 : 1)];
-            t.urivals = new String[urimap.size() - (urimap.get("ui") == null ? 0 : 1)];
+            t.urikeys = new String[urimap.size()];
+            t.urivals = new String[urimap.size()];
             Enumeration uriEnumeration = urimap.keys();
             int ii = 0;
             while(uriEnumeration.hasMoreElements()) {
                 String key = (String)uriEnumeration.nextElement();
-                if (key.equals("ui")) continue;
                 String val = (String)urimap.get(key);
+                if (val.equals("ibex://ui")) continue;
+                if (val.equals("ibex://meta")) continue;
                 t.urikeys[ii] = key;
                 if (val.length() > 0 && val.charAt(0) == '.') val = val.substring(1);
                 t.urivals[ii] = val;