提交 f3a0b135 编写于 作者: S Serge Rider

RSV filters dialog: do not refresh data if only attribute visibility was changed

上级 bcb097ec
......@@ -445,9 +445,15 @@ class FilterSettingsDialog extends HelpEnabledDialog {
} else {
dataFilter.setWhere(null);
}
boolean filtersChanged = true;
if (dataFilter.equalFilters(resultSetViewer.getModel().getDataFilter(), true)) {
// Only attribute visibility was changed
filtersChanged = false;
}
resultSetViewer.setDataFilter(
dataFilter,
true); // TODO: refresh data only if filter was changed
filtersChanged);
super.okPressed();
}
......
......@@ -1173,7 +1173,7 @@ public class ResultSetViewer extends Viewer
// Search in history
for (int i = 0; i < stateHistory.size(); i++) {
HistoryStateItem item = stateHistory.get(i);
if (item.dataContainer == dataContainer && item.filter != null && item.filter.equalFilters(dataFilter)) {
if (item.dataContainer == dataContainer && item.filter != null && item.filter.equalFilters(dataFilter, false)) {
item.filter = dataFilter; // Update data filter - it may contain some orderings
curState = item;
historyPosition = i;
......
......@@ -189,8 +189,14 @@ public class DBDAttributeConstraint {
this.visualPosition = originalVisualPosition;
}
public boolean equalFilters(DBDAttributeConstraint obj)
public boolean equalFilters(DBDAttributeConstraint obj, boolean compareOrders)
{
if (compareOrders) {
if (this.orderPosition != obj.orderPosition ||
this.orderDescending != obj.orderDescending) {
return false;
}
}
return
CommonUtils.equalObjects(this.attribute, obj.attribute) &&
CommonUtils.equalObjects(this.criteria, obj.criteria) &&
......
......@@ -251,7 +251,7 @@ public class DBDDataFilter {
* @param source object to compare to
* @return true if filters equals
*/
public boolean equalFilters(DBDDataFilter source)
public boolean equalFilters(DBDDataFilter source, boolean compareOrders)
{
if (anyConstraint != source.anyConstraint) {
return false;
......@@ -260,7 +260,7 @@ public class DBDDataFilter {
return false;
}
for (int i = 0; i < source.constraints.size(); i++) {
if (!constraints.get(i).equalFilters(source.constraints.get(i))) {
if (!constraints.get(i).equalFilters(source.constraints.get(i), compareOrders)) {
return false;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册