// field editor to return
final JComponent fieldEditor;
final PartInput inputPart = recordFieldSelectionGem.getInputPart();
final TypeExpr inputTypeExpr;
TypeExpr outputTypeExpr = TypeExpr.makeParametricType();
//determine the input type
if (inputPart.isConnected() ) {
inputTypeExpr = inputPart.inferType(tableTop.getTypeCheckInfo()) ;
if (recordFieldSelectionGem.getOutputPart().getConnection() != null) {
outputTypeExpr = recordFieldSelectionGem.getOutputPart().inferType(tableTop.getTypeCheckInfo());
}
} else if (inputPart.isBurnt() && recordFieldSelectionGem.getOutputPart().getConnection() != null) {
TypeExpr outputType = recordFieldSelectionGem.getOutputPart().inferType(tableTop.getTypeCheckInfo());
if (outputType.getArity() > 0) {
TypeExpr[] typePieces = outputType.getTypePieces(1);
inputTypeExpr = typePieces[0];
outputTypeExpr = typePieces[1];
} else {
inputTypeExpr = null;
}