this.argument = argument;
this.executionComponent = executionComponent;
argumentLabel.setText(argument.getName());
argumentLabel.setIcon(argument.getIcon());
DBDataType dataType = argument.getDataType();
argumentTypeLabel.setForeground(UIUtil.getInactiveTextColor());
if (dataType.isDeclared()) {
DBType declaredType = dataType.getDeclaredType();
argumentTypeLabel.setIcon(declaredType.getIcon());
argumentTypeLabel.setText(declaredType.getName());
typeAttributesPanel.setLayout(new BoxLayout(typeAttributesPanel, BoxLayout.Y_AXIS));
List<DBTypeAttribute> attributes = declaredType.getAttributes();
for (DBTypeAttribute attribute : attributes) {
addAttributePanel(attribute);
}
} else {
argumentTypeLabel.setText(dataType.getQualifiedName());
typeAttributesPanel.setVisible(false);
}
if (argument.isInput() && !dataType.isDeclared() && dataType.getNativeDataType() != null) {
DBNativeDataType nativeDataType = dataType.getNativeDataType();
DataTypeDefinition dataTypeDefinition = nativeDataType.getDataTypeDefinition();
GenericDataType genericDataType = dataTypeDefinition.getGenericDataType();
if (genericDataType == GenericDataType.DATE_TIME) {
TextFieldWithPopup inputField = new TextFieldWithPopup(argument.getProject());