Example #1
0
  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;
  }