GT-2763 - Table Sorting - fixed bug that triggered filtering to take

place for individual add/remove operations; fixed bug that caused loss
of added/removed items
This commit is contained in:
dragonmacher 2019-05-07 18:56:51 -04:00
parent da5f009c71
commit 445c7ca03e
32 changed files with 720 additions and 143 deletions

View file

@ -243,6 +243,43 @@ public class VTMarkupItemsTableModel extends AddressBasedTableModel<VTMarkupItem
}
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + getEnclosingInstance().hashCode();
result = prime * result + ((appliedFilters == null) ? 0 : appliedFilters.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
MarkupTablePassthroughFilter other = (MarkupTablePassthroughFilter) obj;
if (!getEnclosingInstance().equals(other.getEnclosingInstance())) {
return false;
}
if (!Objects.equals(appliedFilters, other.appliedFilters)) {
return false;
}
return true;
}
private VTMarkupItemsTableModel getEnclosingInstance() {
return VTMarkupItemsTableModel.this;
}
}
// column for selecting/editing?
@ -478,7 +515,7 @@ public class VTMarkupItemsTableModel extends AddressBasedTableModel<VTMarkupItem
private static final String NO_SOURCE_TEXT = "None";
private GColumnRenderer<String> sourceCellRenderer = new AbstractGColumnRenderer<String>() {
private GColumnRenderer<String> sourceCellRenderer = new AbstractGColumnRenderer<>() {
@Override
public Component getTableCellRendererComponent(GTableCellRenderingData data) {
@ -543,30 +580,28 @@ public class VTMarkupItemsTableModel extends AddressBasedTableModel<VTMarkupItem
static class IsInDBTableColumn
extends AbstractProgramBasedDynamicTableColumn<VTMarkupItem, Boolean> {
private GColumnRenderer<Boolean> isInDBCellRenderer =
new AbstractGColumnRenderer<Boolean>() {
@Override
public Component getTableCellRendererComponent(GTableCellRenderingData data) {
private GColumnRenderer<Boolean> isInDBCellRenderer = new AbstractGColumnRenderer<>() {
@Override
public Component getTableCellRendererComponent(GTableCellRenderingData data) {
Object value = data.getValue();
Object value = data.getValue();
boolean isInDB = ((Boolean) value).booleanValue();
boolean isInDB = ((Boolean) value).booleanValue();
GTableCellRenderingData renderData =
data.copyWithNewValue(isInDB ? "yes" : null);
GTableCellRenderingData renderData = data.copyWithNewValue(isInDB ? "yes" : null);
JLabel renderer = (JLabel) super.getTableCellRendererComponent(renderData);
renderer.setOpaque(true);
JLabel renderer = (JLabel) super.getTableCellRendererComponent(renderData);
renderer.setOpaque(true);
return renderer;
}
return renderer;
}
@Override
public String getFilterString(Boolean t, Settings settings) {
boolean isInDB = t.booleanValue();
return isInDB ? "yes" : "";
}
};
@Override
public String getFilterString(Boolean t, Settings settings) {
boolean isInDB = t.booleanValue();
return isInDB ? "yes" : "";
}
};
@Override
public String getColumnName() {

View file

@ -203,6 +203,41 @@ public abstract class AbstractVTMatchTableModel extends AddressBasedTableModel<V
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + getEnclosingInstance().hashCode();
result = prime * result + ((appliedFilters == null) ? 0 : appliedFilters.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
MatchTablePassthroughFilter other = (MatchTablePassthroughFilter) obj;
if (!getEnclosingInstance().equals(other.getEnclosingInstance())) {
return false;
}
if (!Objects.equals(appliedFilters, other.appliedFilters)) {
return false;
}
return true;
}
private AbstractVTMatchTableModel getEnclosingInstance() {
return AbstractVTMatchTableModel.this;
}
}
static class MarkupStatusColumnComparator implements Comparator<VTMatch> {
@ -397,7 +432,7 @@ public abstract class AbstractVTMatchTableModel extends AddressBasedTableModel<V
return 55;
}
private GColumnRenderer<VTScore> renderer = new AbstractGColumnRenderer<VTScore>() {
private GColumnRenderer<VTScore> renderer = new AbstractGColumnRenderer<>() {
@Override
public Component getTableCellRendererComponent(GTableCellRenderingData data) {
@ -457,7 +492,7 @@ public abstract class AbstractVTMatchTableModel extends AddressBasedTableModel<V
return 55;
}
private GColumnRenderer<VTScore> renderer = new AbstractGColumnRenderer<VTScore>() {
private GColumnRenderer<VTScore> renderer = new AbstractGColumnRenderer<>() {
@Override
public Component getTableCellRendererComponent(GTableCellRenderingData data) {
@ -550,7 +585,7 @@ public abstract class AbstractVTMatchTableModel extends AddressBasedTableModel<V
}
private GColumnRenderer<DisplayableLabel> labelCellRenderer =
new AbstractGColumnRenderer<DisplayableLabel>() {
new AbstractGColumnRenderer<>() {
@Override
public Component getTableCellRendererComponent(GTableCellRenderingData data) {
@ -681,7 +716,7 @@ public abstract class AbstractVTMatchTableModel extends AddressBasedTableModel<V
}
private GColumnRenderer<DisplayableAddress> addressCellRenderer =
new AbstractGColumnRenderer<DisplayableAddress>() {
new AbstractGColumnRenderer<>() {
@Override
public Component getTableCellRendererComponent(GTableCellRenderingData data) {
@ -788,7 +823,7 @@ public abstract class AbstractVTMatchTableModel extends AddressBasedTableModel<V
}
private GColumnRenderer<DisplayableLabel> labelCellRenderer =
new AbstractGColumnRenderer<DisplayableLabel>() {
new AbstractGColumnRenderer<>() {
@Override
public Component getTableCellRendererComponent(GTableCellRenderingData data) {
@ -921,7 +956,7 @@ public abstract class AbstractVTMatchTableModel extends AddressBasedTableModel<V
}
private GColumnRenderer<DisplayableAddress> addressCellRenderer =
new AbstractGColumnRenderer<DisplayableAddress>() {
new AbstractGColumnRenderer<>() {
@Override
public Component getTableCellRendererComponent(GTableCellRenderingData data) {