- int inputCount = pinNames.length;
- int oldInputCount = inputSupermodelPins.size();
- double height = Math.max(inputCount, outputSupermodelPins.size()) * pinDistance;
- setSize(width, height);
- if (oldInputCount > inputCount)
- while (inputSupermodelPins.size() > inputCount)
- {
- inputSubmodelPins.remove(inputCount);
- removeSubmodelInterface(inputSupermodelPins.remove(inputCount));
- }
- else if (oldInputCount < inputCount)
- for (int i = oldInputCount; i < inputCount; i++)
- {
- Pin submodelPin = addSubmodelInterface(pinNames[i], logicWidth, 0, pinDistance / 2 + i * pinDistance);
- inputSubmodelPins.add(submodelPin);
- inputSupermodelPins.add(getSupermodelPin(submodelPin));
- }
- for (int i = 0; i < Math.min(oldInputCount, inputCount); i++)
- {
- if (!inputSubmodelPins.get(i).name.equals(pinNames[i]))
- {
- removeSubmodelInterface(inputSupermodelPins.get(i));
- Pin submodelPin = addSubmodelInterface(pinNames[i], logicWidth, 0, pinDistance / 2 + i * pinDistance);
- inputSubmodelPins.set(i, submodelPin);
- inputSupermodelPins.set(i, getSupermodelPin(submodelPin));
- }
- }