details: /erp/devel/pi/rev/4504c56b5d6e
changeset: 10690:4504c56b5d6e
user: Martin Taal <martin.taal <at> openbravo.com>
date: Wed Feb 16 07:30:37 2011 +0100
summary: Let the filter editor type in selector popup grids be determined by
the UIDefinition
details: /erp/devel/pi/rev/78e9be3238df
changeset: 10691:78e9be3238df
user: Martin Taal <martin.taal <at> openbravo.com>
date: Wed Feb 16 07:31:11 2011 +0100
summary: Added checks for undefined
diffstat:
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
| 10 +++++-
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
| 14 ++++++---
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
| 6 +++-
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java
| 13 +++++----
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector.ftl
| 1 +
5 files changed, 30 insertions(+), 14 deletions(-)
diffs (145 lines):
diff -r 78434f6b08ee -r 78e9be3238df
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
---
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
Wed Feb 16 06:44:17 2011 +0100
+++
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js
Wed Feb 16 07:31:11 2011 +0100
@@ -269,8 +269,10 @@
this.setDisabled(true);
+ // get the editRow before doing the call
+ var editRow = me.view.viewGrid.getEditRow();
OB.RemoteCallManager.call('org.openbravo.client.application.window.FormInitializationComponent',
allProperties, requestParams, function(response, data, request){
- var editValues, editRow = me.view.viewGrid.getEditRow();
+ var editValues;
if (editRow || editRow === 0) {
editValues = me.view.viewGrid.getEditValues(editRow);
}
@@ -382,7 +384,7 @@
delete this.callSaveAfterFICReturn;
this.saveRow(true);
}
- if (editValues.actionAfterFicReturn) {
+ if (editValues && editValues.actionAfterFicReturn) {
OB.Utilities.callAction(editValues.actionAfterFicReturn);
delete editValues.actionAfterFicReturn;
}
@@ -496,6 +498,10 @@
},
setColumnValuesInEditValues: function(columnName, columnValue, editValues){
+ // no editvalues even anymore, go away
+ if (!editValues) {
+ return;
+ }
var id, identifier, field = this.getFieldFromColumnName(columnName), i,
valueMap = {},
entries = columnValue.entries;
var prop = this.view.getPropertyFromDBColumnName(columnName);
diff -r 78434f6b08ee -r 78e9be3238df
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
---
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
Wed Feb 16 06:44:17 2011 +0100
+++
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js
Wed Feb 16 07:31:11 2011 +0100
@@ -48,7 +48,6 @@
// Controls if an edit link column is created in the grid, set to false to
// prevent this.
editGrid: true,
- updateEditorItemsInPlace: false,
// ** {{{ editLinkFieldProperties }}} **
// The properties of the ListGridField created for the edit links.
@@ -1219,13 +1218,18 @@
this.view.toolBar.updateButtonState();
}
},
-
-
+
// saveEdits: when saving, first check if a FIC call needs to be done to
update to the
// latest values. This can happen when the focus is in a field and the save
action is
// done, at that point first try to force a fic call (handleItemChange) and
if that
// indeed happens stop the saveEdit until the fic returns
saveEdits: function(editCompletionEvent, callback, rowNum, colNum,
validateOnly, ficCallDone){
+ if (!rowNum && rowNum !== 0) {
+ rowNum = this.getEditRow();
+ }
+ if (!colNum && colNum !== 0) {
+ colNum = this.getEditCol();
+ }
if (!validateOnly && !ficCallDone) {
var editForm = this.getEditForm(), focusItem = editForm.getFocusItem();
if (focusItem) {
@@ -1233,11 +1237,11 @@
editForm.handleItemChange(focusItem);
if (editForm.inFicCall) {
// use editValues object as the edit form will be re-used for a next
row
- var editValues = this.getEditValues(rowNum || this.getEditRow());
+ var editValues = this.getEditValues(rowNum);
editValues.actionAfterFicReturn = {
target: this,
method: this.saveEdits,
- parameters: [editCompletionEvent, callback, this.getEditRow(),
this.getEditCol(), validateOnly, true]
+ parameters: [editCompletionEvent, callback, rowNum, colNum,
validateOnly, true]
};
return;
}
diff -r 78434f6b08ee -r 78e9be3238df
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
---
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
Wed Feb 16 06:44:17 2011 +0100
+++
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java
Wed Feb 16 07:31:11 2011 +0100
@@ -252,8 +252,12 @@
}
/**
- * Returns the filterEditorProperties property set on the gridfield.
+ * Returns the filterEditorProperties property set on the gridfield. Note
for implementations in
+ * the subclass: field maybe null.
*
+ * @param field
+ * the field to generate the filter editor properties for, note it
is allowed to pass
+ * null, implementors should gracefully handle this.
* @return
*/
protected String getFilterEditorPropertiesProperty(Field field) {
diff -r 78434f6b08ee -r 78e9be3238df
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java
---
a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java
Wed Feb 16 06:44:17 2011 +0100
+++
b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java
Wed Feb 16 07:31:11 2011 +0100
@@ -678,6 +678,13 @@
this.displayField = displayField;
}
+ public String getFilterEditorProperties() {
+ if (getUIDefinition() != null) {
+ return getUIDefinition().getFilterEditorProperties(null);
+ }
+ return ", filterEditorType: 'OBTextItem'";
+ }
+
public List<LocalSelectorFieldProperty> getProperties() {
final List<LocalSelectorFieldProperty> result = new
ArrayList<LocalSelectorFieldProperty>();
result.add(createLocalSelectorFieldProperty("title", title));
@@ -688,18 +695,12 @@
if ((domainType instanceof PrimitiveDomainType)) {
final PrimitiveDomainType primitiveDomainType = (PrimitiveDomainType)
domainType;
if
(Date.class.isAssignableFrom(primitiveDomainType.getPrimitiveType())) {
-
result.add(createNonStringLocalSelectorFieldProperty("filterEditorType",
"OBDateItem"));
// TODO: hardcoded width for date
result.add(createLocalSelectorFieldProperty("width", 100));
- } else if
(Boolean.class.isAssignableFrom(primitiveDomainType.getPrimitiveType())) {
-
result.add(createNonStringLocalSelectorFieldProperty("filterEditorType",
"OBYesNoItem"));
-
result.add(createNonStringLocalSelectorFieldProperty("formatCellValue",
- " function(value) { return
OB.Utilities.getYesNoDisplayValue(value);}"));
}
}
if (domainType instanceof ForeignKeyDomainType) {
result.add(createLocalSelectorFieldProperty("displayField",
displayField));
-
result.add(createNonStringLocalSelectorFieldProperty("filterEditorType",
"OBTextItem"));
}
return result;
}
diff -r 78434f6b08ee -r 78e9be3238df
modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector.ftl
---
a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector.ftl
Wed Feb 16 06:44:17 2011 +0100
+++
b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/templates/selector.ftl
Wed Feb 16 07:31:11 2011 +0100
@@ -38,6 +38,7 @@
{<#list selectorGridField.properties as property>
${property.name}: ${property.value}<#if property_has_next>,</#if>
</#list>
+ ${selectorGridField.filterEditorProperties}
}<#if selectorGridField_has_next>,</#if>
</#list>
],
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits