ETable columns recreated incorrectly
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 78/100
Rechercherichtung
Beginnen Sie in ETableTest mit den mitgelieferten Reproduktionstests und führen Sie sie aus, um die Fehler bei Reihenfolge und Sortierung zu bestätigen. Untersuchen Sie anschließend ETable.createDefaultColumnsFromModel und die zugehörige Handhabung von ETableColumnModel, einschließlich ausgeblendeter Spalten. Die Aufgabe ist erledigt, wenn rekonstruierte Spalten nach dem Verschieben oder Ändern des Modells Reihenfolge, Sortierstatus, ausgeblendete Spalten und Breite beibehalten.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Apache NetBeans version
Apache NetBeans 32 latest daily build
What happened
When recreating columns from the model in ETable, column ordering, sort order, and (sometimes) width revert to their defaults. Add these unit tests to ETableTest and you'll see they both fail.
public void testRecreatingColumnsShouldMaintainOrder() {
ETable t = createTestingTable(false);
t.moveColumn(1, 0);
t.createDefaultColumnsFromModel();
assertEquals("BB", t.getColumnModel().getColumn(0).getIdentifier());
assertEquals("AA", t.getColumnModel().getColumn(1).getIdentifier());
}
public void testRecreatingColumnsShouldMaintainSortAfterMoving() {
ETable t = createTestingTable(false);
t.setColumnSorted(0, true, 1);
t.moveColumn(1, 0);
t.createDefaultColumnsFromModel();
var etc = (ETableColumn) t.getColumnModel().getColumn(1);
assertTrue(etc.isAscending());
assertEquals(1, etc.getSortRank());
}
There seems to be some mixup between model index and view index. I tried some simple changes to store the values in sortedColumnIndexes using the view index and setting the new columns' model index from the previous table column, but this messed up the hidden columns. The following unit test passes with the existing code, but failed with my updates so it may be worth adding as well to ensure no regression.
public void testHiddenColumnsCorrectAfterRecreatingColumns() {
ETable t = createTestingTable(false);
var etcm = (ETableColumnModel) t.getColumnModel();
etcm.setColumnHidden(etcm.getColumn(0), true);
t.createDefaultColumnsFromModel();
assertEquals("BB", etcm.getColumn(0).getIdentifier());
}
Finally, although I haven't been able to reproduce a failure of the width, I have seen it periodically in the UI when using the OutlineView. As such, a test similar to the following may be worth adding as well.
public void testRecreatingColumnsShouldMaintainSizeAfterMoving() {
ETable t = createTestingTable(false);
final int width = 500;
t.getColumnModel().getColumn(0).setWidth(width);
t.moveColumn(1, 0);
t.createDefaultColumnsFromModel();
assertEquals(width, t.getColumnModel().getColumn(1).getWidth());
}
Language / Project Type / NetBeans Component
No response
How to reproduce
- Create an
OutlineViewinstance - Sort, reorder, and resize columns in the UI
- Trigger column recreation, typically by triggering a "tableChanged" as the result of adding or removing a node to/from the view
Did this work correctly in an earlier version?
No / Don't know
Operating System
All
JDK
Eclipse Adoptium 25.0.2
Apache NetBeans packaging
Apache NetBeans platform
Anything else
No response
Are you willing to submit a pull request?
No
- Vorherrschende Sprache
- Java
- Sterne
- 3.1k
- Forks
- 945
- Ø Merge
- 3 T. 9 Std.
- Gemergte PRs (30 T.)
- 44
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus apache/netbeans
-
Contribution welcome kind:feature Platform
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
apache/netbeans#9614 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
kind:bug LSP needs:triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
apache/netbeans#9548 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Editor Java kind:feature needs:triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Maintainer antworten meist innerhalb von 1 Tag
-
The main Options dialog window has buttons with OK on the left instead of on the right on LinuxOffenkind:bug needs:triage os:linux os:macos Platform UI
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
kind:bug needs:triage
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in apache/netbeans
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
liberation-data/drivine4j#547 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
BindingServiceProperties.bindings regressed to a non-thread-safe TreeMap in GH-3158: concurrent first use of binding names corrupts itEvtl. vergeben @AkashB23 hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
spring-cloud/spring-cloud-stream#3321 ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Bug] 资源包列表 与 模组/数据包/世界 列表排列顺序不一致Evtl. vergeben @fishdry1000 hat das vor 4 Tagen übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
Maintainer antworten meist innerhalb von 1 Tag
-
ai-driven-fuzzing bug claude Minor
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
linagora/twake-calendar-side-service#1333 ·
Maintainer antworten meist innerhalb von 1 Tag