Updated ListStringFld behavior

This commit is contained in:
Giancarlo Panichi 2022-11-15 15:40:29 +01:00
parent ce3cdf503f
commit aacee12d33
1 changed files with 38 additions and 8 deletions

View File

@ -37,8 +37,7 @@ public class ListStringFld extends AbstractFld {
/**
*
* @param parameter
* parameter
* @param parameter parameter
*/
public ListStringFld(Parameter parameter) {
super(parameter);
@ -77,14 +76,45 @@ public class ListStringFld extends AbstractFld {
protected void addField(StringItem upperItem) {
ObjectParameter objPar = new ObjectParameter(listParameter.getName(), listParameter.getDescription(),
listParameter.getType(), null);
if (upperItem == null) {
StringItem item = new StringItem(this, objPar, true);
items.add(item);
vp.add(item);
if (listParameter.getDefaultValue() == null || listParameter.getDefaultValue().isEmpty()) {
ObjectParameter objPar = new ObjectParameter(listParameter.getName(), listParameter.getDescription(),
listParameter.getType(), listParameter.getDefaultValue());
StringItem item = new StringItem(this, objPar, true);
items.add(item);
vp.add(item);
} else {
String tmpDefault=listParameter.getDefaultValue();
int firstSharp=tmpDefault.indexOf("#");
if(firstSharp>-1) {
String[] defaultValues=tmpDefault.split("#");
int pos=0;
for(String dv:defaultValues) {
ObjectParameter objPar = new ObjectParameter(listParameter.getName(), listParameter.getDescription(),
listParameter.getType(), dv);
StringItem item=null;
if(pos==0) {
item = new StringItem(this, objPar, true);
} else {
item = new StringItem(this, objPar, false);
}
items.add(pos,item);
vp.insert(item,pos);
pos+=1;
item.showCancelButton();
item.forceLayout();
}
} else {
ObjectParameter objPar = new ObjectParameter(listParameter.getName(), listParameter.getDescription(),
listParameter.getType(), listParameter.getDefaultValue());
StringItem item = new StringItem(this, objPar, true);
items.add(item);
vp.add(item);
}
}
} else {
ObjectParameter objPar = new ObjectParameter(listParameter.getName(), listParameter.getDescription(),
listParameter.getType(), null);
// search the position of the upper item
int pos = items.indexOf(upperItem);
if (pos > -1) {