} catch (Exception e) {
e.printStackTrace();
}
} else if (attr.getNodeName().equals("model")) {
String modelString = XMLDirectoryUtilities.getPath(dirNode) + "/" + attr.getNodeValue();
Model part = null;
try {
part = (Model) Model.load(PersonBuilder.class.getResource(modelString), null);
part.vehicle.set(null);
} catch (java.io.IOException ioe) {
ioe.printStackTrace();
} catch (edu.cmu.cs.stage3.alice.core.UnresolvablePropertyReferencesException upre) {
upre.printStackTrace();
}
cmdInfo.model = part;
cmdInfo.modelFactory = part.createCopyFactory();
cmdInfo.modelString = modelString;
} else if (attr.getNodeName().equals("parent")) {
String parentString = attr.getNodeValue();
cmdInfo.parentString = parentString;
} else if (attr.getNodeName().equals("altModel")) {
String altModelName = XMLDirectoryUtilities.getPath(dirNode) + "/" + attr.getNodeValue();
Model altModel = null;
try {
altModel = (Model) Model.load(PersonBuilder.class.getResource(altModelName), null);
altModel.vehicle.set(null);
} catch (java.io.IOException ioe) {
ioe.printStackTrace();
} catch (edu.cmu.cs.stage3.alice.core.UnresolvablePropertyReferencesException upre) {
upre.printStackTrace();
}
cmdInfo.altModel = altModel;
cmdInfo.altModelFactory = altModel.createCopyFactory();
altModelCount++;
}
}
commandInfos.addElement(cmdInfo);
} else if (choiceNode.getNodeName().equals("addModelAndTexture")) {
CommandInfo cmdInfo = new CommandInfo();
cmdInfo.id = "addModelAndTexture";
NamedNodeMap attrs = choiceNode.getAttributes();
for (int j = 0; j < attrs.getLength(); j++) {
Node attr = attrs.item(j);
if (attr.getNodeName().equals("icon")) {
String imageFileName = XMLDirectoryUtilities.getPath(dirNode) + "/" + attr.getNodeValue();
ImageIcon icon = new ImageIcon(PersonBuilder.class.getResource(imageFileName), imageFileName);
cmdInfo.imageIcon = icon;
} else if (attr.getNodeName().equals("model")) {
String modelString = XMLDirectoryUtilities.getPath(dirNode) + "/" + attr.getNodeValue();
Model part = null;
try {
part = (Model) Model.load(PersonBuilder.class.getResource(modelString), null);
part.vehicle.set(null);
} catch (java.io.IOException ioe) {
ioe.printStackTrace();
} catch (edu.cmu.cs.stage3.alice.core.UnresolvablePropertyReferencesException upre) {
upre.printStackTrace();
}
cmdInfo.model = part;
cmdInfo.modelFactory = part.createCopyFactory();
cmdInfo.modelString = modelString;
} else if (attr.getNodeName().equals("parent")) {
String parentString = attr.getNodeValue();
cmdInfo.parentString = parentString;
} else if (attr.getNodeName().equals("texture")) {
String imageFileName = XMLDirectoryUtilities.getPath(dirNode) + "/" + attr.getNodeValue();
Image img = toolkit.createImage(PersonBuilder.class.getResource(imageFileName));
try {
java.awt.MediaTracker tracker = new java.awt.MediaTracker(this);
tracker.addImage(img, 0);
tracker.waitForID(0);
} catch (java.lang.InterruptedException ie) {
}
cmdInfo.texture = img;
} else if (attr.getNodeName().equals("layer")) {
String layerString = attr.getNodeValue();
int layer = Integer.parseInt(layerString);
cmdInfo.level = layer;
} else if (attr.getNodeName().equals("useAltModel")) {
String altModelName = attr.getNodeValue();
cmdInfo.altModelName = altModelName;
} else if (attr.getNodeName().equals("x")) {
cmdInfo.x = Double.parseDouble(attr.getNodeValue());
} else if (attr.getNodeName().equals("y")) {
cmdInfo.y = Double.parseDouble(attr.getNodeValue());
} else if (attr.getNodeName().equals("z")) {
cmdInfo.z = Double.parseDouble(attr.getNodeValue());
}
}
commandInfos.addElement(cmdInfo);
} else if (choiceNode.getNodeName().equals("setMultipleModelsAndTexture")) {
CommandInfo cmdInfo = new CommandInfo();
cmdInfo.id = "setMultipleModelsAndTexture";
NamedNodeMap attrs = choiceNode.getAttributes();
for (int j = 0; j < attrs.getLength(); j++) {
Node attr = attrs.item(j);
if (attr.getNodeName().equals("icon")) {
String imageFileName = XMLDirectoryUtilities.getPath(dirNode) + "/" + attr.getNodeValue();
ImageIcon icon = new ImageIcon(PersonBuilder.class.getResource(imageFileName), imageFileName);
cmdInfo.imageIcon = icon;
} else if (attr.getNodeName().equals("model1")) {
String modelString = XMLDirectoryUtilities.getPath(dirNode) + "/" + attr.getNodeValue();
Model part = null;
try {
part = (Model) Model.load(PersonBuilder.class.getResource(modelString), null);
part.vehicle.set(null);
} catch (java.io.IOException ioe) {
ioe.printStackTrace();
} catch (edu.cmu.cs.stage3.alice.core.UnresolvablePropertyReferencesException upre) {
upre.printStackTrace();
}
cmdInfo.model = part;
cmdInfo.modelFactory = part.createCopyFactory();
cmdInfo.modelString = modelString;
} else if (attr.getNodeName().equals("parent1")) {
String parentString = attr.getNodeValue();
cmdInfo.parentString = parentString;
} else if (attr.getNodeName().equals("model2")) {
String modelString = XMLDirectoryUtilities.getPath(dirNode) + "/" + attr.getNodeValue();
Model part = null;
try {
part = (Model) Model.load(PersonBuilder.class.getResource(modelString), null);
part.vehicle.set(null);
} catch (java.io.IOException ioe) {
ioe.printStackTrace();
} catch (edu.cmu.cs.stage3.alice.core.UnresolvablePropertyReferencesException upre) {
upre.printStackTrace();
}
cmdInfo.altModel = part;
cmdInfo.altModelFactory = part.createCopyFactory();
//cmdInfo.altModelName = modelString;
} else if (attr.getNodeName().equals("parent2")) {
String parentString = attr.getNodeValue();
cmdInfo.altParentString = parentString;
} else if (attr.getNodeName().equals("texture")) {