Skip to content

Commit e380adc

Browse files
committed
fix: use the same cell reference constructor in order to ensure consistency
1 parent 1bacff7 commit e380adc

File tree

9 files changed

+77
-39
lines changed

9 files changed

+77
-39
lines changed

vaadin-spreadsheet-flow-parent/vaadin-spreadsheet-flow-integration-tests/src/main/java/com/vaadin/flow/component/spreadsheet/tests/fixtures/PopupButtonFixture.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ public void loadFixture(final Spreadsheet spreadsheet) {
3535
}
3636
List<String> values = new ArrayList<>(VALUES);
3737
CellReference ref = event.getSelectedCellReference();
38-
CellReference newRef = new CellReference(ref.getRow(),
39-
ref.getCol());
38+
CellReference newRef = new CellReference(
39+
spreadsheet.getActiveSheet().getSheetName(), ref.getRow(),
40+
ref.getCol(), false, false);
4041
DataValidationButton popupButton = new DataValidationButton(
4142
spreadsheet, values);
4243
popupButton.setUp();

vaadin-spreadsheet-flow-parent/vaadin-spreadsheet-flow/src/main/java/com/vaadin/flow/component/spreadsheet/CellSelectionManager.java

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,9 @@ public SelectionChangeEvent getLatestSelectionEvent() {
117117
}
118118

119119
boolean isCellInsideSelection(int row, int column) {
120-
CellReference cellReference = new CellReference(row - 1, column - 1);
120+
CellReference cellReference = new CellReference(
121+
spreadsheet.getActiveSheet().getSheetName(), row - 1,
122+
column - 1, false, false);
121123
boolean inside = cellReference.equals(selectedCellReference)
122124
|| individualSelectedCells.contains(cellReference);
123125
if (!inside) {
@@ -174,7 +176,9 @@ protected void reloadCurrentSelection() {
174176
*/
175177
protected void onCellSelected(int row, int column,
176178
boolean discardOldRangeSelection) {
177-
CellReference cellReference = new CellReference(row - 1, column - 1);
179+
CellReference cellReference = new CellReference(
180+
spreadsheet.getActiveSheet().getSheetName(), row - 1,
181+
column - 1, false, false);
178182
CellReference previousCellReference = selectedCellReference;
179183
if (!cellReference.equals(previousCellReference)
180184
|| discardOldRangeSelection && (!cellRangeAddresses.isEmpty()
@@ -218,8 +222,9 @@ protected void onSheetAddressChanged(String value,
218222
region.col1 - 1, region.col2 - 1);
219223
}
220224
handleCellRangeSelection(cra);
221-
selectedCellReference = new CellReference(cra.getFirstRow(),
222-
cra.getFirstColumn());
225+
selectedCellReference = new CellReference(
226+
spreadsheet.getActiveSheet().getSheetName(),
227+
cra.getFirstRow(), cra.getFirstColumn(), false, false);
223228
paintedCellRange = cra;
224229
cellRangeAddresses.clear();
225230
cellRangeAddresses.add(cra);
@@ -235,8 +240,10 @@ protected void onSheetAddressChanged(String value,
235240
.createCorrectCellRangeAddress(region.row1,
236241
region.col1, region.row2, region.col2);
237242
handleCellRangeSelection(cra);
238-
selectedCellReference = new CellReference(cra.getFirstRow(),
239-
cra.getFirstColumn());
243+
selectedCellReference = new CellReference(
244+
spreadsheet.getActiveSheet().getSheetName(),
245+
cra.getFirstRow(), cra.getFirstColumn(), false,
246+
false);
240247
paintedCellRange = cra;
241248
cellRangeAddresses.clear();
242249
cellRangeAddresses.add(cra);
@@ -386,8 +393,9 @@ protected void handleCellRangeSelection(CellRangeAddress cra) {
386393

387394
protected void handleCellRangeSelection(String name, CellRangeAddress cra) {
388395

389-
final CellReference firstCell = new CellReference(cra.getFirstRow(),
390-
cra.getFirstColumn());
396+
final CellReference firstCell = new CellReference(
397+
spreadsheet.getActiveSheet().getSheetName(), cra.getFirstRow(),
398+
cra.getFirstColumn(), false, false);
391399

392400
handleCellRangeSelection(name, firstCell, cra, true);
393401
}
@@ -467,8 +475,9 @@ protected void onCellRangePainted(int selectedCellRow,
467475
cellRangeAddresses.clear();
468476
individualSelectedCells.clear();
469477

470-
selectedCellReference = new CellReference(selectedCellRow - 1,
471-
selectedCellColumn - 1);
478+
selectedCellReference = new CellReference(
479+
spreadsheet.getActiveSheet().getSheetName(),
480+
selectedCellRow - 1, selectedCellColumn - 1, false, false);
472481

473482
CellRangeAddress cra = spreadsheet.createCorrectCellRangeAddress(row1,
474483
col1, row2, col2);
@@ -511,7 +520,9 @@ protected void onCellAddToSelectionAndSelected(int row, int column) {
511520
individualSelectedCells.add(selectedCellReference);
512521
}
513522
handleCellSelection(row, column);
514-
selectedCellReference = new CellReference(row - 1, column - 1);
523+
selectedCellReference = new CellReference(
524+
spreadsheet.getActiveSheet().getSheetName(), row - 1,
525+
column - 1, false, false);
515526
spreadsheet.loadCustomEditorOnSelectedCell();
516527
if (individualSelectedCells.contains(selectedCellReference)) {
517528
individualSelectedCells.remove(
@@ -562,8 +573,9 @@ protected void onCellsAddedToRangeSelection(int row1, int col1, int row2,
562573
*/
563574
protected void onRowSelected(int row, int firstColumnIndex) {
564575
handleCellSelection(row, firstColumnIndex);
565-
selectedCellReference = new CellReference(row - 1,
566-
firstColumnIndex - 1);
576+
selectedCellReference = new CellReference(
577+
spreadsheet.getActiveSheet().getSheetName(), row - 1,
578+
firstColumnIndex - 1, false, false);
567579
spreadsheet.loadCustomEditorOnSelectedCell();
568580
cellRangeAddresses.clear();
569581
individualSelectedCells.clear();
@@ -596,8 +608,9 @@ protected void onRowAddedToRangeSelection(int row, int firstColumnIndex) {
596608
individualSelectedCells.add(selectedCellReference);
597609
}
598610
handleCellSelection(row, firstColumnIndex);
599-
selectedCellReference = new CellReference(row - 1,
600-
firstColumnIndex - 1);
611+
selectedCellReference = new CellReference(
612+
spreadsheet.getActiveSheet().getSheetName(), row - 1,
613+
firstColumnIndex - 1, false, false);
601614
spreadsheet.loadCustomEditorOnSelectedCell();
602615
cellRangeAddresses.add(spreadsheet.createCorrectCellRangeAddress(row, 1,
603616
row, spreadsheet.getColumns()));
@@ -616,8 +629,9 @@ protected void onRowAddedToRangeSelection(int row, int firstColumnIndex) {
616629
*/
617630
protected void onColumnSelected(int firstRowIndex, int column) {
618631
handleCellSelection(firstRowIndex, column);
619-
selectedCellReference = new CellReference(firstRowIndex - 1,
620-
column - 1);
632+
selectedCellReference = new CellReference(
633+
spreadsheet.getActiveSheet().getSheetName(), firstRowIndex - 1,
634+
column - 1, false, false);
621635
spreadsheet.loadCustomEditorOnSelectedCell();
622636
cellRangeAddresses.clear();
623637
individualSelectedCells.clear();
@@ -650,8 +664,9 @@ protected void onColumnAddedToSelection(int firstRowIndex, int column) {
650664
individualSelectedCells.add(selectedCellReference);
651665
}
652666
handleCellSelection(firstRowIndex, column);
653-
selectedCellReference = new CellReference(firstRowIndex - 1,
654-
column - 1);
667+
selectedCellReference = new CellReference(
668+
spreadsheet.getActiveSheet().getSheetName(), firstRowIndex - 1,
669+
column - 1, false, false);
655670
spreadsheet.loadCustomEditorOnSelectedCell();
656671
cellRangeAddresses.add(spreadsheet.createCorrectCellRangeAddress(1,
657672
column, spreadsheet.getRows(), column));
@@ -680,8 +695,10 @@ protected void mergedRegionAdded(CellRangeAddress region) {
680695
handleCellAddressChange(region.getFirstRow() + 1,
681696
region.getFirstColumn() + 1, false);
682697
}
683-
selectedCellReference = new CellReference(region.getFirstRow(),
684-
region.getFirstColumn());
698+
selectedCellReference = new CellReference(
699+
spreadsheet.getActiveSheet().getSheetName(),
700+
region.getFirstRow(), region.getFirstColumn(), false,
701+
false);
685702
fire = true;
686703
}
687704
for (Iterator<CellRangeAddress> i = cellRangeAddresses.iterator(); i

vaadin-spreadsheet-flow-parent/vaadin-spreadsheet-flow/src/main/java/com/vaadin/flow/component/spreadsheet/CellSelectionShifter.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,9 @@ private void fireCellValueChangeEvent(CellRangeAddress region) {
141141
for (int x = region.getFirstColumn(); x <= region
142142
.getLastColumn(); x++) {
143143
for (int y = region.getFirstRow(); y <= region.getLastRow(); y++) {
144-
cells.add(new CellReference(y, x));
144+
cells.add(new CellReference(
145+
spreadsheet.getActiveSheet().getSheetName(), y, x,
146+
false, false));
145147
}
146148
}
147149
spreadsheet.fireEvent(new CellValueChangeEvent(spreadsheet, cells));
@@ -399,8 +401,10 @@ public void onSelectionDecreasePainted(int r, int c) {
399401
if (!SpreadsheetUtil.isCellInRange(selectedCellReference,
400402
newPaintedCellRange)) {
401403
selectedCellReference = new CellReference(
404+
spreadsheet.getActiveSheet().getSheetName(),
402405
newPaintedCellRange.getFirstRow(),
403-
newPaintedCellRange.getFirstColumn());
406+
newPaintedCellRange.getFirstColumn(), false,
407+
false);
404408
}
405409
getCellSelectionManager().handleCellRangeSelection(
406410
selectedCellReference, newPaintedCellRange, false);

vaadin-spreadsheet-flow-parent/vaadin-spreadsheet-flow/src/main/java/com/vaadin/flow/component/spreadsheet/CellValueManager.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,9 @@ public void onCellValueChange(int col, int row, String value) {
602602

603603
// capture cell value to history
604604
CellValueCommand command = new CellValueCommand(spreadsheet);
605-
command.captureCellValues(new CellReference(row - 1, col - 1));
605+
command.captureCellValues(
606+
new CellReference(spreadsheet.getActiveSheet().getSheetName(),
607+
row - 1, col - 1, false, false));
606608
spreadsheet.getSpreadsheetHistoryManager().addCommand(command);
607609
boolean updateHyperlinks = false;
608610
boolean formulaChanged = false;

vaadin-spreadsheet-flow-parent/vaadin-spreadsheet-flow/src/main/java/com/vaadin/flow/component/spreadsheet/Spreadsheet.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -665,7 +665,8 @@ void setNamedRanges(List<String> namedRanges) {
665665
void onPopupButtonClick(int row, int column) {
666666
PopupButton popup = sheetPopupButtons
667667
.get(SpreadsheetUtil.relativeToAbsolute(this,
668-
new CellReference(row - 1, column - 1)));
668+
new CellReference(getActiveSheet().getSheetName(),
669+
row - 1, column - 1, false, false)));
669670
if (popup != null) {
670671
popup.openPopup();
671672
}
@@ -674,7 +675,8 @@ void onPopupButtonClick(int row, int column) {
674675
void onPopupClose(int row, int column) {
675676
PopupButton popup = sheetPopupButtons
676677
.get(SpreadsheetUtil.relativeToAbsolute(this,
677-
new CellReference(row - 1, column - 1)));
678+
new CellReference(getActiveSheet().getSheetName(),
679+
row - 1, column - 1, false, false)));
678680

679681
if (popup != null) {
680682
popup.closePopup();
@@ -2983,7 +2985,8 @@ private void rowsMoved(int first, int last, int n) {
29832985
} else if (numberOfRowsAboveWasChanged(row, last, first)) {
29842986
int newRow = cell.getRow() + n;
29852987
int col = cell.getCol();
2986-
CellReference newCell = new CellReference(newRow, col, true,
2988+
CellReference newCell = new CellReference(
2989+
getActiveSheet().getSheetName(), newRow, col, true,
29872990
true);
29882991
pbutton.setCellReference(newCell);
29892992
updated.put(newCell, pbutton);
@@ -4968,7 +4971,8 @@ public void setPopup(String cellAddress, PopupButton popupButton) {
49684971
* removes the pop-up button for the target cell.
49694972
*/
49704973
public void setPopup(int row, int col, PopupButton popupButton) {
4971-
setPopup(new CellReference(row, col), popupButton);
4974+
setPopup(new CellReference(getActiveSheet().getSheetName(), row, col,
4975+
false, false), popupButton);
49724976
}
49734977

49744978
/**
@@ -5392,7 +5396,9 @@ private static Set<CellReference> getAllSelectedCells(
53925396

53935397
for (int x = a.getFirstColumn(); x <= a.getLastColumn(); x++) {
53945398
for (int y = a.getFirstRow(); y <= a.getLastRow(); y++) {
5395-
cells.add(new CellReference(y, x));
5399+
cells.add(new CellReference(
5400+
selectedCellReference.getSheetName(), y, x,
5401+
false, false));
53965402
}
53975403
}
53985404
}

vaadin-spreadsheet-flow-parent/vaadin-spreadsheet-flow/src/main/java/com/vaadin/flow/component/spreadsheet/SpreadsheetHandlerImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,9 @@ private void fireCellValueChangeEvent(CellRangeAddress region) {
337337
for (int x = region.getFirstColumn(); x <= region
338338
.getLastColumn(); x++) {
339339
for (int y = region.getFirstRow(); y <= region.getLastRow(); y++) {
340-
cells.add(new CellReference(y, x));
340+
cells.add(new CellReference(
341+
spreadsheet.getActiveSheet().getSheetName(), y, x,
342+
false, false));
341343
}
342344
}
343345
fireCellValueChangeEvent(cells);

vaadin-spreadsheet-flow-parent/vaadin-spreadsheet-flow/src/main/java/com/vaadin/flow/component/spreadsheet/command/CellShiftValuesCommand.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,10 @@ public CellReference getSelectedCellReference() {
5252
.isCellInRange(selectedCellReference, paintedCellRange)) {
5353
return selectedCellReference;
5454
} else {
55-
return new CellReference(paintedCellRange.getFirstRow(),
56-
paintedCellRange.getFirstColumn());
55+
return new CellReference(
56+
spreadsheet.getActiveSheet().getSheetName(),
57+
paintedCellRange.getFirstRow(),
58+
paintedCellRange.getFirstColumn(), false, false);
5759
}
5860
}
5961

vaadin-spreadsheet-flow-parent/vaadin-spreadsheet-flow/src/main/java/com/vaadin/flow/component/spreadsheet/command/CellValueCommand.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,8 @@ public void captureCellRangeValues(CellRangeAddress... cellRanges) {
148148

149149
@Override
150150
public CellReference getSelectedCellReference() {
151-
return new CellReference(selectedCellRow, selectedcellCol);
151+
return new CellReference(spreadsheet.getActiveSheet().getSheetName(),
152+
selectedCellRow, selectedcellCol, false, false);
152153
}
153154

154155
@Override
@@ -339,13 +340,15 @@ public Set<CellReference> getChangedCells() {
339340
for (Object o : values) {
340341
if (o instanceof CellValue) {
341342
CellValue cellValue = (CellValue) o;
342-
changedCells
343-
.add(new CellReference(cellValue.row, cellValue.col));
343+
changedCells.add(new CellReference(
344+
spreadsheet.getActiveSheet().getSheetName(),
345+
cellValue.row, cellValue.col, false, false));
344346
} else {
345347
CellRangeValue cellRangeValue = (CellRangeValue) o;
346348
for (int r = cellRangeValue.row1; r <= cellRangeValue.row2; r++) {
347349
for (int c = cellRangeValue.col1; c <= cellRangeValue.col2; c++) {
348-
changedCells.add(new CellReference(r, c));
350+
changedCells.add(new CellReference(
351+
getSheet().getSheetName(), r, c, false, false));
349352
}
350353
}
351354
}

vaadin-spreadsheet-flow-parent/vaadin-spreadsheet-flow/src/main/java/com/vaadin/flow/component/spreadsheet/command/RowInsertOrDeleteCommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ public void execute() {
4444

4545
@Override
4646
public CellReference getSelectedCellReference() {
47-
return new CellReference(row, 0);
47+
return new CellReference(spreadsheet.getActiveSheet().getSheetName(),
48+
row, 0, false, false);
4849
}
4950

5051
@Override

0 commit comments

Comments
 (0)