Skip to content

Commit f9536cd

Browse files
committed
[UI] Bug fix to make table next/last buttons work the first time
1 parent cac88c8 commit f9536cd

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

sensorhub-webui-core/src/main/java/org/sensorhub/ui/DatabaseStreamPanel.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ int getBinSize(long duration)
490490
protected void updateTable()
491491
{
492492
obsDataContainer.updateTimeRange(zoomTimeRange);
493-
table.setContainerDataSource(obsDataContainer);
493+
//table.setContainerDataSource(obsDataContainer);
494494
table.setCurrentPage(1);
495495

496496
var cols = new ArrayList<Object>(table.getContainerPropertyIds());
@@ -506,9 +506,10 @@ protected Component buildTable()
506506
tableLayout.setMargin(false);
507507
tableLayout.setSpacing(true);
508508

509+
var pageSize = 10;
509510
table = new PagedTable();
510511
table.setWidth(100, Unit.PERCENTAGE);
511-
table.setPageLength(10);
512+
table.setPageLength(pageSize);
512513
table.addStyleName(UIConstants.STYLE_SMALL);
513514
tableLayout.addComponent(table);
514515

@@ -524,7 +525,7 @@ protected Component buildTable()
524525
// add custom container for lazy loading from DB
525526
List<ScalarIndexer> indexers = new ArrayList<>();
526527
var foiIdEncoder = ((AdminUI)UI.getCurrent()).getParentHub().getIdEncoders().getFoiIdEncoder();
527-
obsDataContainer = new LazyLoadingObsContainer(db, foiIdEncoder, dataStreamID, foiIDs, indexers);
528+
obsDataContainer = new LazyLoadingObsContainer(db, foiIdEncoder, dataStreamID, foiIDs, indexers, pageSize);
528529
obsDataContainer.updateTimeRange(zoomTimeRange);
529530
table.setContainerDataSource(obsDataContainer);
530531
table.addListener(new PageChangeListener() {

sensorhub-webui-core/src/main/java/org/sensorhub/ui/table/LazyLoadingObsContainer.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,20 @@ public class LazyLoadingObsContainer extends IndexedContainer
3434
final BigId dataStreamID;
3535
final Set<BigId> foiIDs;
3636
final List<ScalarIndexer> indexers;
37+
final int pageSize;
3738
int startIndexCache = -1;
3839
int size = -1;
3940
TimeExtent timeRange;
41+
4042

41-
42-
public LazyLoadingObsContainer(IObsSystemDatabase db, IdEncoder foiIdEncoder, BigId dataStreamID, Set<BigId> foiIDs, List<ScalarIndexer> indexers)
43+
public LazyLoadingObsContainer(IObsSystemDatabase db, IdEncoder foiIdEncoder, BigId dataStreamID, Set<BigId> foiIDs, List<ScalarIndexer> indexers, int pageSize)
4344
{
4445
this.db = db;
4546
this.foiIdEncoder = foiIdEncoder;
4647
this.dataStreamID = dataStreamID;
4748
this.foiIDs = foiIDs;
4849
this.indexers = indexers;
50+
this.pageSize = pageSize;
4951
}
5052

5153

@@ -60,7 +62,6 @@ public void updateTimeRange(TimeExtent timeRange)
6062
public void onPageChanged()
6163
{
6264
this.startIndexCache = -1;
63-
removeAllItems();
6465
}
6566

6667

@@ -79,10 +80,13 @@ public List<Object> getItemIds(int startIndex, int numberOfIds)
7980
filter.withFois(foiIDs);
8081

8182
// prefetch range from DB
83+
removeAllItems();
8284
AtomicInteger count = new AtomicInteger(startIndex);
8385
db.getObservationStore().select(filter.build())
8486
.skip(startIndex)
87+
.limit(10)
8588
.forEach(obs -> {
89+
//System.out.println(obs.getResultTime());
8690
var dataBlk = obs.getResult();
8791
Item item = addItem(count.getAndIncrement());
8892
if (item != null)

sensorhub-webui-core/src/main/java/org/sensorhub/ui/table/PagedTable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public Container getContainer() {
115115
setColumnWidth(columnId, -1);
116116
}
117117
}
118-
firePagedChangedEvent();
118+
//firePagedChangedEvent(); // already called in containerItemSetChange
119119
}
120120
}
121121

0 commit comments

Comments
 (0)