IDEMPIERE-4216 Some text columns are wrongly edited as with length 32767

This commit is contained in:
Carlos Ruiz 2020-03-21 16:35:29 +01:00
parent de41df7752
commit 8cd7b0661b
1 changed files with 11 additions and 6 deletions

View File

@ -58,6 +58,7 @@ import org.adempiere.webui.component.Panel;
import org.adempiere.webui.component.Row; import org.adempiere.webui.component.Row;
import org.adempiere.webui.component.Rows; import org.adempiere.webui.component.Rows;
import org.adempiere.webui.component.Tabpanel; import org.adempiere.webui.component.Tabpanel;
import org.adempiere.webui.component.Textbox;
import org.adempiere.webui.component.ToolBar; import org.adempiere.webui.component.ToolBar;
import org.adempiere.webui.component.ToolBarButton; import org.adempiere.webui.component.ToolBarButton;
import org.adempiere.webui.component.Window; import org.adempiere.webui.component.Window;
@ -716,11 +717,6 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
GridField mField = m_findFields[i]; GridField mField = m_findFields[i];
boolean isDisplayed = mField.isDisplayed(); boolean isDisplayed = mField.isDisplayed();
if (DisplayType.isText(mField.getVO().displayType)) {
// for string fields allow searching long strings - useful for like and similar to searches
mField.getVO().FieldLength = 32767; // a conservative max literal string - like oracle extended
mField.getVO().DisplayLength = mField.getVO().FieldLength;
}
if (mField.getVO().displayType == DisplayType.YesNo || mField.isEncrypted() || mField.isEncryptedColumn()) { if (mField.getVO().displayType == DisplayType.YesNo || mField.isEncrypted() || mField.isEncryptedColumn()) {
// Make Yes-No searchable as list // Make Yes-No searchable as list
GridFieldVO vo = mField.getVO(); GridFieldVO vo = mField.getVO();
@ -1191,7 +1187,8 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
editor.addValueChangeListener(this); editor.addValueChangeListener(this);
Label label = editor.getLabel(); Label label = editor.getLabel();
Component fieldEditor = editor.getComponent(); Component fieldEditor = editor.getComponent();
//Fix miss lable of checkbox setLengthStringField(mField, fieldEditor);
//Fix miss label of checkbox
label.setValue(mField.getHeader()); label.setValue(mField.getHeader());
// //
if (displayLength > 0) // set it back if (displayLength > 0) // set it back
@ -1256,6 +1253,13 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
return true; return true;
} // addSelectionColumn } // addSelectionColumn
private void setLengthStringField(GridField field, Component fieldEditor) {
if (DisplayType.isText(field.getVO().displayType) && fieldEditor instanceof Textbox) {
// for string fields allow searching long strings - useful for like and similar to searches
((Textbox) fieldEditor).setMaxlength(32767); // a conservative max literal string - like oracle extended
}
}
public void onEvent(Event event) throws Exception public void onEvent(Event event) throws Exception
{ {
m_createNew = false; m_createNew = false;
@ -2191,6 +2195,7 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
editor = new WStringEditor(findField); editor = new WStringEditor(findField);
findField.addPropertyChangeListener(editor); findField.addPropertyChangeListener(editor);
} }
setLengthStringField(findField, editor.getComponent());
editor.addValueChangeListener(this); editor.addValueChangeListener(this);
editor.setValue(null); editor.setValue(null);