private Element writeXMLUnitElement(UnitElement unit, Element unitElement) { Element unitID = new Element("UnitID"); unitID.addContent(unit.getUnitID() + ""); unitElement.addContent(unitID); // unit description analog to the Unit-XML Element unitDescription = new Element("UnitDescription"); unitElement.addContent(unitDescription); Element general = new Element("General"); unitDescription.addContent(general); Element unitName = new Element("UnitName"); unitName.addContent(unit.getUnitName()); general.addContent(unitName); Element pathToIcon = new Element("PathToIcon"); pathToIcon.addContent(unit.getIconPath()); general.addContent(pathToIcon); Element imageJSyntax = new Element("ImageJSyntax"); imageJSyntax.addContent(((MacroElement) unit.getObject()).getImageJSyntax()); general.addContent(imageJSyntax); Element color = new Element("Color"); String colorHex = Integer.toHexString(unit.getColor().getRGB()); color.addContent("0x" + colorHex.substring(2)); general.addContent(color); Element iconSize = new Element("IconSize"); iconSize.addContent(unit.getCompontentSize().toString()); general.addContent(iconSize); Element helpStringU = new Element("HelpString"); helpStringU.addContent(unit.getHelpString()); general.addContent(helpStringU); Element doDisplayU = new Element("DoDisplay"); doDisplayU.addContent(unit.isDisplay() ? "true" : "false"); general.addContent(doDisplayU); // deal with all parameters Element parameters = new Element("Parameters"); unitDescription.addContent(parameters); for (Parameter parameter : unit.getParameters()) { Element parameterElement = new Element("Parameter"); parameters.addContent(parameterElement); Element name = new Element("Name"); name.addContent(parameter.getDisplayName()); parameterElement.addContent(name); Element dataType = new Element("DataType"); dataType.addContent(parameter.getParaType()); parameterElement.addContent(dataType); Element value = new Element("Value"); value.addContent(parameter.getValue() + ""); Element helpStringP = new Element("HelpString"); helpStringP.addContent(parameter.getHelpString()); parameterElement.addContent(helpStringP); // special parameters if (parameter instanceof ChoiceParameter) { value = new Element("Value"); ChoiceParameter choiceParameter = (ChoiceParameter) parameter; String choiceString = choiceParameter.getChoicesString(); value.addContent(choiceString); Element choiceNumber = new Element("ChoiceNumber"); choiceNumber.addContent(choiceParameter.getChoiceIndex() + ""); parameterElement.addContent(choiceNumber); } parameterElement.addContent(value); if (parameter instanceof BooleanParameter) { Element trueString = new Element("TrueString"); trueString.addContent(((BooleanParameter) parameter).getTrueString()); parameterElement.addContent(trueString); } } // deal with inputs Element inputs = new Element("Inputs"); unitDescription.addContent(inputs); for (Input input : unit.getInputs()) { writeXMLInput(inputs, input); } // deal with outputs Element outputs = new Element("Outputs"); unitDescription.addContent(outputs); for (Output output : unit.getOutputs()) { writeXMLOutput(outputs, output); } return unitDescription; }