Skip to main content
10-Marble
November 28, 2024
Question

How to Create Multivalued Picker for an IBA Using Datautlity

  • November 28, 2024
  • 1 reply
  • 715 views

Version: Windchill 12.0

 

Use Case: I have a requirement to create a Mutlivalued picker for a IBA in part creation page. When user clicks on the picker it should open the custom JSP page in which user enters some data , this data should get populated in the picker textbox and and need to get persists when user clicks finish .


Description:

I have created Picker using PickerInputComponent and MultiValuedInputComponent using datautility and returning the MultiValuedInputComponent from getDataValue  method. 

SVG_10111100101_0-1732772877082.png

 

I have encountered two problems with this approach . 

1.  Data is not getting persisted in the DB .

2. when I clicked on Plus button it is rendering one more Plus button instead of minus button as show below.

SVG_10111100101_1-1732772977672.png

Please help me how to get the value persist in DB and and to get the Minus button.

 

Below is the code I used :

 

 

 HashMap<Object, Object> pickerConfigMap = new HashMap<>();
ArrayList<AttributeInputComponent> listOfInputComponent = new ArrayList();
final int columnSize = 60;
 pickerConfigMap.put("objectType", "customPicker");
 pickerConfigMap.put("componentId", "customPicker");
 pickerConfigMap.put("readOnlyPickerTextBox", "false");
 pickerConfigMap.put("pickerId", componentId);
 pickerConfigMap.put("width", "32");
 pickerConfigMap.put("maxLength", "200");
 pickerConfigMap.put("pickerCallback", "customPickerCallBack");

 PickerInputComponent pickerInputComponent = new PickerInputComponent(attributeLabelName, value,
 PickerRenderConfigs.getPickerConfigs(pickerConfigMap), "customPickerWizard", "customPickerSearch", columnSize);

 listOfInputComponent.add(pickerInputComponent);
 MultiValuedInputComponent multiValuedInputComponent = new MultiValuedInputComponent(listOfInputComponent,
 pickerInputComponent);
 String id = attrInputComp.getValueInputComponent().getId();
 // multiValuedInputComponent.setId(id);

 String str1 = pickerInputComponent.getColumnName();
 // multiValuedInputComponent.setColumnName(str1);
 String str = AttributeDataUtilityHelper.getColumnName(componentId, paramObject, modelContext);
 // multiValuedInputComponent.setName(str1);
 multiValuedInputComponent.setColumnName(str);
 multiValuedInputComponent.setMultiValued(true);
 multiValuedInputComponent.setApplyPrePopulate(true);
 multiValuedInputComponent.setVisibleElements(1);
 multiValuedInputComponent.setRenderer(new MultiValuedInputComponentRenderer());
 
 return multiValuedInputComponent;

 

 

 

1 reply

Community Moderator
December 2, 2024

Hi @SVG_10111100101,

Thank you for your question. 

Your post appears well documented but has not yet received any response. I am replying to raise awareness. Hopefully, another community member will be able to help.

Also, feel free to add any additional information you think might be relevant.

 

Regards,

Vivek N
Community Moderation Team.