From 4186860f561d00d8841a2699898ff3381d2b5db1 Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Thu, 26 Feb 2026 00:13:44 +0100 Subject: [PATCH 1/9] move sxxx into supplement category --- .../pt1/sxxx/SxxxDescriptionService.java | 5 ++- .../pt1/sxxx/SxxxTransformationService.java | 2 +- .../AbstractSupplementTableDesciption.java | 32 +++++++++++++++++++ .../set/swtbot/table/TestWorknotesTable.java | 2 +- .../set/utils/viewgroups/SetViewGroups.java | 1 - 5 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/AbstractSupplementTableDesciption.java diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxDescriptionService.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxDescriptionService.java index 8b308d5c0..108538c5b 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxDescriptionService.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxDescriptionService.java @@ -11,7 +11,7 @@ package org.eclipse.set.feature.table.pt1.sxxx; import org.eclipse.set.core.services.part.PartDescriptionService; -import org.eclipse.set.feature.table.AbstractESTWSupplementTableDesciption; +import org.eclipse.set.feature.table.AbstractSupplementTableDesciption; import org.eclipse.set.feature.table.pt1.messages.Messages; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; @@ -20,8 +20,7 @@ * */ @Component(service = PartDescriptionService.class) -public class SxxxDescriptionService - extends AbstractESTWSupplementTableDesciption { +public class SxxxDescriptionService extends AbstractSupplementTableDesciption { @Reference Messages messages; diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformationService.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformationService.java index 949a54b10..fcb9248cd 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformationService.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformationService.java @@ -38,7 +38,7 @@ */ @Component(service = { PlanPro2TableTransformationService.class }, immediate = true, property = { - "table.category=supplement-estw", "table.shortcut=sxxx" }) + "table.category=supplement", "table.shortcut=sxxx" }) public class SxxxTransformationService extends AbstractPlanPro2TableTransformationService { @Reference diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/AbstractSupplementTableDesciption.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/AbstractSupplementTableDesciption.java new file mode 100644 index 000000000..fb36e0667 --- /dev/null +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/AbstractSupplementTableDesciption.java @@ -0,0 +1,32 @@ +/** + * Copyright (c) 2026 DB InfraGO AG and others + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v2.0 which is available at + * https://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + * + */ +package org.eclipse.set.feature.table; + +import org.eclipse.set.basis.viewgroups.ToolboxViewGroup; +import org.eclipse.set.utils.table.TableInfo.Pt1TableCategory; +import org.eclipse.set.utils.viewgroups.SetViewGroups; + +/** + * + */ +public abstract class AbstractSupplementTableDesciption + extends AbstractTableDescription { + + @Override + public ToolboxViewGroup getToolboxViewGroup() { + return SetViewGroups.getTable_Supplement(); + } + + @Override + protected String getTableIdPrefix() { + return Pt1TableCategory.SUPPLEMENT.getId(); + } +} diff --git a/java/bundles/org.eclipse.set.swtbot/src/org/eclipse/set/swtbot/table/TestWorknotesTable.java b/java/bundles/org.eclipse.set.swtbot/src/org/eclipse/set/swtbot/table/TestWorknotesTable.java index f71c2544f..efd3015bf 100644 --- a/java/bundles/org.eclipse.set.swtbot/src/org/eclipse/set/swtbot/table/TestWorknotesTable.java +++ b/java/bundles/org.eclipse.set.swtbot/src/org/eclipse/set/swtbot/table/TestWorknotesTable.java @@ -67,7 +67,7 @@ protected void whenExistReferenceCSV() { void givenWorknotesTable() { worknotesTable = new PtTable("Sxxx", "Sxxx – Tabelle weiterer Bearbeitungsvermerke", - "supplement-estw", List.of(0)); + "supplement", List.of(0)); } void givenWorknotesTableReferenceOpenAfter() throws Exception { diff --git a/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/viewgroups/SetViewGroups.java b/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/viewgroups/SetViewGroups.java index 9db9ba8cf..6421529c6 100644 --- a/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/viewgroups/SetViewGroups.java +++ b/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/viewgroups/SetViewGroups.java @@ -85,7 +85,6 @@ public class SetViewGroups { .withText(Messages.SetViewGroups_Table_Supplement) .withIcon(SetImages.IC_GRID_ON_BLACK_18DP_1X) .withOrderPriority(170) - .setDevelopment(true) .build(); } From d7d626fb27a9cd81157ed6bbeac2d6bf4c73198b Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Thu, 26 Feb 2026 00:39:02 +0100 Subject: [PATCH 2/9] rename table --- .../OSGI-INF/l10n/bundle.properties | 8 ++++---- .../eclipse/set/feature/table/pt1/messages/Messages.java | 8 ++++---- .../org/eclipse/set/swtbot/table/TestWorknotesTable.java | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/OSGI-INF/l10n/bundle.properties b/java/bundles/org.eclipse.set.feature.table.pt1/OSGI-INF/l10n/bundle.properties index 053f3021c..99394c99a 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/OSGI-INF/l10n/bundle.properties +++ b/java/bundles/org.eclipse.set.feature.table.pt1/OSGI-INF/l10n/bundle.properties @@ -184,10 +184,10 @@ ToolboxTableNameSslsShort=Ssls ToolboxTableNameSslsLong=Signalisierungstabelle ToolboxTableNameSslsPlanningNumber=?? -SxxxDescriptionService_ViewName=Sxxx – Tabelle weiterer Bearbeitungsvermerke -SxxxDescriptionService_ViewTooltip=Tabelle weiterer Bearbeitungsvermerke -SxxxTableView_Heading=Tabelle weiterer Bearbeitungsvermerke – Sxxx +SxxxDescriptionService_ViewName=Sxxx – Tabelle der Bearbeitungsvermerke +SxxxDescriptionService_ViewTooltip=Tabelle der Bearbeitungsvermerke +SxxxTableView_Heading=Tabelle der Bearbeitungsvermerke – Sxxx ToolboxTableNameSxxxShort=Sxxx -ToolboxTableNameSxxxLong=Tabelle weiterer Bearbeitungsvermerke +ToolboxTableNameSxxxLong=Tabelle der Bearbeitungsvermerke ToolboxTableNameSxxxPlanningNumber=?? diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/messages/Messages.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/messages/Messages.java index 3436e413c..57fb988a8 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/messages/Messages.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/messages/Messages.java @@ -799,12 +799,12 @@ private void bindBundleLocalization( public String ToolboxTableNameSxxxShort; /** - * Tabelle weiterer Bearbeitungsvermerke – Sxxx + * Tabelle der Bearbeitungsvermerke – Sxxx */ public String SxxxTableView_Heading; /** - * Tabelle weiterer Bearbeitungsvermerke + * Tabelle der Bearbeitungsvermerke */ public String ToolboxTableNameSxxxLong; @@ -814,12 +814,12 @@ private void bindBundleLocalization( public String ToolboxTableNameSxxxPlanningNumber; /** - * Sxxx – Tabelle weiterer Bearbeitungsvermerke + * Sxxx – Tabelle der Bearbeitungsvermerke */ public String SxxxDescriptionService_ViewName; /** - * Tabelle weiterer Bearbeitungsvermerke + * Tabelle der Bearbeitungsvermerke */ public String SxxxDescriptionService_ViewTooltip; diff --git a/java/bundles/org.eclipse.set.swtbot/src/org/eclipse/set/swtbot/table/TestWorknotesTable.java b/java/bundles/org.eclipse.set.swtbot/src/org/eclipse/set/swtbot/table/TestWorknotesTable.java index efd3015bf..caac171c0 100644 --- a/java/bundles/org.eclipse.set.swtbot/src/org/eclipse/set/swtbot/table/TestWorknotesTable.java +++ b/java/bundles/org.eclipse.set.swtbot/src/org/eclipse/set/swtbot/table/TestWorknotesTable.java @@ -66,7 +66,7 @@ protected void whenExistReferenceCSV() { @SuppressWarnings("boxing") void givenWorknotesTable() { worknotesTable = new PtTable("Sxxx", - "Sxxx – Tabelle weiterer Bearbeitungsvermerke", + "Sxxx – Tabelle der Bearbeitungsvermerke", "supplement", List.of(0)); } From a9232d92754263f4ec55c3c2781429b55a6e00d2 Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Thu, 26 Feb 2026 02:07:08 +0100 Subject: [PATCH 3/9] make sxxx table rows filterable --- .../pt1/sxxx/SxxxTransformationService.java | 5 ++ .../PlanPro2TableTransformationService.java | 9 +++ .../set/feature/table/ToolboxTableView.java | 36 ++++++++++- .../table/internal/TableServiceImpl.java | 5 ++ .../set/services/table/TableService.java | 8 +++ .../TableModelInstanceBodyDataProvider.java | 59 ++++++++++++++++++- 6 files changed, 118 insertions(+), 4 deletions(-) diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformationService.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformationService.java index fcb9248cd..96b1ebd27 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformationService.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformationService.java @@ -101,4 +101,9 @@ public ColumnDescriptor fillHeaderDescriptions( return cd; } + @Override + public boolean enableFiltering() { + return true; + } + } diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/PlanPro2TableTransformationService.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/PlanPro2TableTransformationService.java index 654cf748f..de0cffc18 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/PlanPro2TableTransformationService.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/PlanPro2TableTransformationService.java @@ -29,4 +29,13 @@ public abstract class PlanPro2TableTransformationService extends * @return position of fixed columns */ public abstract Set getFixedColumnsPos(); + + /** + * @return whether filtering shall be enabled for the table or not + */ + @SuppressWarnings("static-method") + public boolean enableFiltering() { + // by default we disable filtering + return false; + } } diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/ToolboxTableView.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/ToolboxTableView.java index 1d8c16e7c..79d203327 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/ToolboxTableView.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/ToolboxTableView.java @@ -33,7 +33,10 @@ import org.eclipse.emf.common.util.ECollections; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.nebula.widgets.nattable.NatTable; +import org.eclipse.nebula.widgets.nattable.config.ConfigRegistry; import org.eclipse.nebula.widgets.nattable.data.IDataProvider; +import org.eclipse.nebula.widgets.nattable.filterrow.FilterRowHeaderComposite; +import org.eclipse.nebula.widgets.nattable.filterrow.IFilterStrategy; import org.eclipse.nebula.widgets.nattable.grid.data.DefaultColumnHeaderDataProvider; import org.eclipse.nebula.widgets.nattable.grid.data.DefaultCornerDataProvider; import org.eclipse.nebula.widgets.nattable.grid.data.DefaultRowHeaderDataProvider; @@ -490,7 +493,7 @@ protected void createView(final Composite parent) { // IMPROVE: The table header level should be determined automatically, // and the corresponding header layers should be created accordingly. At // present, only tables with 1, 2, or 4 levels are supported. - final ILayer headerLayer = anyMatch + ILayer headerLayer = anyMatch ? createGroupHeaderLayer(columnHeaderLayer, rootColumnDescriptor) : createHeaderLayer(columnHeaderLayer, rootColumnDescriptor); @@ -502,6 +505,13 @@ protected void createView(final Composite parent) { rowHeaderDataLayer, bodyLayerStack, bodyLayerStack.getSelectionLayer()); + if (tableService.enableFiltering(tableInfo)) { + final ConfigRegistry configRegistry = new ConfigRegistry(); + headerLayer = new FilterRowHeaderComposite<>( + new FilterStrategy<>(bodyDataProvider), headerLayer, + columnHeaderDataLayer.getDataProvider(), configRegistry); + } + // Corner Layer stack final DefaultCornerDataProvider cornerDataProvider = new DefaultCornerDataProvider( columnHeaderDataProvider, rowHeaderDataProvider); @@ -590,6 +600,23 @@ public void selected(final SelectionEvent e) { updateButtons(); } + class FilterStrategy implements IFilterStrategy { + private final TableModelInstanceBodyDataProvider tableDataProvider; + + public FilterStrategy( + final TableModelInstanceBodyDataProvider tableDataProvider) { + this.tableDataProvider = tableDataProvider; + } + + @Override + public void applyFilter( + final Map filterIndexToObjectMap) { + tableDataProvider.applyFilter(filterIndexToObjectMap); + natTable.refresh(); + } + + } + private IConfigLabelAccumulator addTableCellLabelConfig() { return (final LabelStack configLabels, final int columnPosition, final int rowPosition) -> { @@ -832,7 +859,9 @@ void updateModel(final MPart part) { tableInstances.clear(); tableInstances.addAll(TableExtensions.getTableRows(table)); - + if (bodyDataProvider != null) { + bodyDataProvider.refresh(); + } } private void addMenuItems() { @@ -938,6 +967,9 @@ private void subcribeTriggerResortEvent() { tableInstances.clear(); tableInstances.addAll( TableExtensions.getTableRows(table)); + if (bodyDataProvider != null) { + bodyDataProvider.refresh(); + } natTable.refresh(); } })); diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java index ce63644ec..0a4157175 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java @@ -257,6 +257,11 @@ public Set getFixedColumns(final TableInfo tableInfo) { return getModelService(tableInfo).getFixedColumnsPos(); } + @Override + public boolean enableFiltering(final TableInfo tableInfo) { + return getModelService(tableInfo).enableFiltering(); + } + @Override public Map> getTableErrors( final IModelSession modelSession, final Set controlAreaIds, diff --git a/java/bundles/org.eclipse.set.services/src/org/eclipse/set/services/table/TableService.java b/java/bundles/org.eclipse.set.services/src/org/eclipse/set/services/table/TableService.java index fc8d2845b..ce034c6fc 100644 --- a/java/bundles/org.eclipse.set.services/src/org/eclipse/set/services/table/TableService.java +++ b/java/bundles/org.eclipse.set.services/src/org/eclipse/set/services/table/TableService.java @@ -165,6 +165,14 @@ void updateTable(BasePart part, List tableCategories, */ Set getFixedColumns(final TableInfo tableInfo); + /** + * + * @param tableInfo + * {@link TableInfo} + * @return whether filtering should be enabled for the table or not + */ + boolean enableFiltering(final TableInfo tableInfo); + /** * Check the running threads, if exists thread name start with table short * cut diff --git a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableModelInstanceBodyDataProvider.java b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableModelInstanceBodyDataProvider.java index 797b3bb4d..9ed8ed4e3 100644 --- a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableModelInstanceBodyDataProvider.java +++ b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableModelInstanceBodyDataProvider.java @@ -11,7 +11,9 @@ import static org.eclipse.set.model.tablemodel.extensions.CellContentExtensions.HOURGLASS_ICON; import static org.eclipse.set.model.tablemodel.extensions.CellContentExtensions.getStringValueIterable; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Map.Entry; import java.util.Optional; import java.util.Set; @@ -54,11 +56,14 @@ public class TableModelInstanceBodyDataProvider .getLogger(TableModelInstanceBodyDataProvider.class); private static final String NULL_VALUE = ""; //$NON-NLS-1$ + private static final String EXCULDE_FILTER_SIGN = "-"; //$NON-NLS-1$ private final List instances; + private List filteredInstances; private final int propertyCount; private final TableSpanUtils spanUtils; private final SessionService sessionService; + private Map filters = new HashMap<>(); /** * @param propertyCount @@ -75,6 +80,7 @@ public TableModelInstanceBodyDataProvider(final int propertyCount, this.propertyCount = propertyCount; this.spanUtils = new TableSpanUtils(instances); this.sessionService = sessionService; + this.refresh(); } @Override @@ -85,7 +91,7 @@ public int getColumnCount() { @Override public Object getDataValue(final int columnIndex, final int rowIndex) { final String value = TableRowExtensions - .getRichTextValue(instances.get(rowIndex), columnIndex); + .getRichTextValue(filteredInstances.get(rowIndex), columnIndex); if (value == null) { logger.debug("column={} row={} is empty", //$NON-NLS-1$ Integer.valueOf(columnIndex), Integer.valueOf(rowIndex)); @@ -96,7 +102,7 @@ public Object getDataValue(final int columnIndex, final int rowIndex) { @Override public int getRowCount() { - return instances.size(); + return filteredInstances.size(); } @Override @@ -121,6 +127,53 @@ public DataCell getCellByPosition(final int column, final int row) { return new DataCell(column, startRow, 1, spanSize); } + /** + * Applies a set of filters to the table + * + * @param filterIndexToObjectMap + * A map of filters to apply + */ + public void applyFilter(final Map filterIndexToObjectMap) { + this.filters = filterIndexToObjectMap; + this.refresh(); + } + + /** + * Refreshes the internal state e.g. when the instances changed. + */ + public void refresh() { + this.filteredInstances = this.instances.stream() + .filter(this::filterMatch) + .toList(); + } + + private boolean filterMatch(final TableRow row) { + final List contents = row.getCells() + .stream() + .map(cell -> cell.getContent()) + .toList(); + for (int i = 0; i < this.getColumnCount(); i++) { + if (filters.containsKey(Integer.valueOf(i))) { + final String content = CellContentExtensions + .getPlainStringValue(contents.get(i)) + .toLowerCase(); + String filterValue = filters.get(Integer.valueOf(i)) + .toString() + .toLowerCase(); + final boolean isExcludeFilter = filterValue.substring(0, 1) + .equals(EXCULDE_FILTER_SIGN); + filterValue = isExcludeFilter ? filterValue.substring(1) + : filterValue; + + // Equivalence logic + if (isExcludeFilter == content.contains(filterValue)) { + return false; + } + } + } + return true; + } + /** * Update table value * @@ -143,6 +196,7 @@ public void updateContent(final TableType tableType, TableRowExtensions.set(first.get(), properties.getChangeDataColumn(), properties.getNewValues(), properties.getSeparator()); + this.refresh(); } return; } @@ -171,6 +225,7 @@ public void updateContent(final TableType tableType, properties); cell.setContent(newContent); }); + this.refresh(); } private CellContent getNewContent(final CellContent oldContent, From ddc056bc1c217d0e0b08ab24dfb65db1fe0cb629 Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Thu, 26 Feb 2026 09:06:25 +0100 Subject: [PATCH 4/9] make sxxx independent of control area selection --- .../eclipse/set/feature/table/internal/TableServiceUtils.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceUtils.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceUtils.java index 77e7df576..2f17c555f 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceUtils.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceUtils.java @@ -128,7 +128,9 @@ protected static Table filterRequestValue(final Table table, final IModelSession modelsession, final Set controlAreaIds) { final Table result = filterTableByState(table, tableType); - if (tableInfo.category() == Pt1TableCategory.ETCS) { + if (tableInfo.category() == Pt1TableCategory.ETCS || tableInfo + .shortcut() + .equalsIgnoreCase(ToolboxConstants.WORKNOTES_TABLE_SHORTCUT)) { return result; } if (tableType == TableType.DIFF) { From 29c8bfce854d596c9a3a4ecbbd0561df246a5d03 Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Thu, 26 Feb 2026 13:18:36 +0100 Subject: [PATCH 5/9] hide bearbeitungsvermerke linked to enum sonstige --- .../SonstigeRequiresBearbeitungsvermerk.java | 43 +--------- .../table/pt1/sxxx/SxxxTransformator.java | 22 ++++- .../set/utils/EnumeratorExtensions.java | 81 +++++++++++++++++++ .../set/utils/EnumeratorExtensions.xtend | 30 ------- 4 files changed, 106 insertions(+), 70 deletions(-) create mode 100644 java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/EnumeratorExtensions.java delete mode 100644 java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/EnumeratorExtensions.xtend diff --git a/java/bundles/org.eclipse.set.feature.plazmodel/src/org/eclipse/set/feature/plazmodel/check/SonstigeRequiresBearbeitungsvermerk.java b/java/bundles/org.eclipse.set.feature.plazmodel/src/org/eclipse/set/feature/plazmodel/check/SonstigeRequiresBearbeitungsvermerk.java index 438ebc04f..b605237fa 100644 --- a/java/bundles/org.eclipse.set.feature.plazmodel/src/org/eclipse/set/feature/plazmodel/check/SonstigeRequiresBearbeitungsvermerk.java +++ b/java/bundles/org.eclipse.set.feature.plazmodel/src/org/eclipse/set/feature/plazmodel/check/SonstigeRequiresBearbeitungsvermerk.java @@ -14,22 +14,17 @@ import java.util.List; import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.Enumerator; import org.eclipse.emf.common.util.TreeIterator; import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.set.basis.IModelSession; import org.eclipse.set.model.planpro.BasisTypen.BasisAttribut_AttributeGroup; import org.eclipse.set.model.planpro.BasisTypen.ID_Bearbeitungsvermerk_TypeClass; -import org.eclipse.set.model.planpro.Basisobjekte.Anhang; -import org.eclipse.set.model.planpro.Basisobjekte.Anhang_Allg_AttributeGroup; -import org.eclipse.set.model.planpro.Basisobjekte.Anhang_Art_TypeClass; import org.eclipse.set.model.planpro.Basisobjekte.Ur_Objekt; -import org.eclipse.set.model.planpro.PlanPro.PlanProPackage; import org.eclipse.set.model.plazmodel.PlazError; import org.eclipse.set.model.plazmodel.PlazFactory; import org.eclipse.set.model.validationreport.ValidationSeverity; +import org.eclipse.set.utils.EnumeratorExtensions; import org.osgi.service.component.annotations.Component; import com.google.common.collect.Iterators; @@ -43,8 +38,6 @@ */ @Component public class SonstigeRequiresBearbeitungsvermerk implements PlazCheck { - private static final String SONSTIGE_ENUM_WERT = "sonstige"; //$NON-NLS-1$ - private static final String ENUM_WERT_FEATURE_NAME = "wert"; //$NON-NLS-1$ private static final String BEARBEITUNGSVERMERK_FEATURE_NAME = "iDBearbeitungsvermerk"; //$NON-NLS-1$ @Override @@ -57,7 +50,7 @@ public List run(final IModelSession modelSession) { .filter(contents, BasisAttribut_AttributeGroup.class); final Iterator attributesWithSonstige = Iterators - .filter(attributes, this::isSonstigeEnumWert); + .filter(attributes, EnumeratorExtensions::isSonstigeEnumWert); final Iterator attributesWithMissingBearbeitungsvermerk = Iterators .filter(attributesWithSonstige, this::hasNoBearbeitungsVermerk); @@ -68,34 +61,6 @@ public List run(final IModelSession modelSession) { return Lists.newArrayList(errors); } - private boolean isSonstigeEnumWert( - final BasisAttribut_AttributeGroup attribute) { - try { - final EStructuralFeature feature = attribute.eClass() - .getEStructuralFeature(ENUM_WERT_FEATURE_NAME); - final Object value = attribute.eGet(feature); - return value instanceof final Enumerator enumValue - && enumValue.getLiteral().equals(SONSTIGE_ENUM_WERT) - && !isPlanungBueroAnhangArt(attribute); - } catch (final Exception e) { - return false; - } - } - - private static boolean isPlanungBueroAnhangArt( - final BasisAttribut_AttributeGroup attribute) { - if (attribute instanceof final Anhang_Art_TypeClass anhangArt - && anhangArt - .eContainer() instanceof final Anhang_Allg_AttributeGroup allgGroup - && allgGroup.eContainer() instanceof final Anhang anhang) { - final EReference planungbueroLogoRef = PlanProPackage.eINSTANCE - .getPlanung_G_Schriftfeld_AttributeGroup_PlanungsbueroLogo(); - return anhang.eContainingFeature().equals(planungbueroLogoRef); - } - - return false; - } - private boolean hasNoBearbeitungsVermerk(final EObject obj) { final EStructuralFeature feature = obj.eClass() .getEStructuralFeature(BEARBEITUNGSVERMERK_FEATURE_NAME); @@ -132,12 +97,12 @@ public String checkType() { public String getDescription() { return String.format( "Alles mit Referenz '%s' hat einen Bearbeitungsvermerk.", //$NON-NLS-1$ - SONSTIGE_ENUM_WERT); + EnumeratorExtensions.SONSTIGE_ENUM_WERT); } @Override public String getGeneralErrMsg() { return String.format("Fehlender Bearbeitungsvermerk bei Wert '%s'.", //$NON-NLS-1$ - SONSTIGE_ENUM_WERT); + EnumeratorExtensions.SONSTIGE_ENUM_WERT); } } diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformator.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformator.java index cd57e08fe..a3a24e962 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformator.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformator.java @@ -20,6 +20,7 @@ import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator; import org.eclipse.set.model.planpro.Ansteuerung_Element.Aussenelementansteuerung; import org.eclipse.set.model.planpro.Ansteuerung_Element.ESTW_Zentraleinheit; +import org.eclipse.set.model.planpro.BasisTypen.BasisAttribut_AttributeGroup; import org.eclipse.set.model.planpro.BasisTypen.ID_Bearbeitungsvermerk_TypeClass; import org.eclipse.set.model.planpro.Basisobjekte.Bearbeitungsvermerk; import org.eclipse.set.model.planpro.Bedienung.Bedien_Einrichtung_Oertlich; @@ -34,6 +35,7 @@ import org.eclipse.set.ppmodel.extensions.EObjectExtensions; import org.eclipse.set.ppmodel.extensions.UrObjectExtensions; import org.eclipse.set.ppmodel.extensions.container.MultiContainer_AttributeGroup; +import org.eclipse.set.utils.EnumeratorExtensions; import org.eclipse.set.utils.table.RowFactory; import org.eclipse.set.utils.table.TMFactory; import org.osgi.service.event.EventAdmin; @@ -46,7 +48,6 @@ * @author truong */ public class SxxxTransformator extends AbstractPlanPro2TableModelTransformator { - /** * @param cols * the columns descriptor @@ -79,6 +80,20 @@ public Table transformTableContent( .filter(ref -> ref.getValue().equals(bv)) .map(EObject::eContainer) .toList(); + + final List sonstigeEnumReferee = referencedByList.stream() + .filter(obj -> obj instanceof final BasisAttribut_AttributeGroup basisAttribut + && EnumeratorExtensions + .isSonstigeEnumWert(basisAttribut)) + .toList(); + + if (sonstigeEnumReferee.size() > 0 + && referencedByList.size() == sonstigeEnumReferee.size()) { + // bearbeitungsvermerke that are only used at sonstige enum + // values shall not be displayed at all + continue; + } + if (referencedByList.isEmpty()) { final TableRow row = rowGroup.newTableRow(); // A: Bearbeitungsvermerke inhalt @@ -95,6 +110,11 @@ public Table transformTableContent( if (Thread.currentThread().isInterrupted()) { return null; } + if (sonstigeEnumReferee.contains(referencedBy)) { + // ignore those referees that are connected to a sonstige + // enum value + continue; + } final TableRow row = rowGroup.newTableRow(); row.setRowObject(referencedBy); diff --git a/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/EnumeratorExtensions.java b/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/EnumeratorExtensions.java new file mode 100644 index 000000000..a3f1ea349 --- /dev/null +++ b/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/EnumeratorExtensions.java @@ -0,0 +1,81 @@ +/** + * Copyright (c) 2017 DB Netz AG and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v20.html + */ +package org.eclipse.set.utils; + +import java.util.regex.Pattern; + +import org.eclipse.emf.common.util.Enumerator; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.set.model.planpro.BasisTypen.BasisAttribut_AttributeGroup; +import org.eclipse.set.model.planpro.Basisobjekte.Anhang; +import org.eclipse.set.model.planpro.Basisobjekte.Anhang_Allg_AttributeGroup; +import org.eclipse.set.model.planpro.Basisobjekte.Anhang_Art_TypeClass; +import org.eclipse.set.model.planpro.PlanPro.PlanProPackage; + +/** + * Extensions for {@link Enumerator}. + * + * @author Schaefer + */ +public class EnumeratorExtensions { + /** + * the generic value for enums with an item sonstige + */ + public static final String SONSTIGE_ENUM_WERT = "sonstige"; //$NON-NLS-1$ + private static final String ENUM_WERT_FEATURE_NAME = "wert"; //$NON-NLS-1$ + + /** + * @param enumerator + * this enumerator + * @param regex + * the regular expression + * + * @return whether the enumerator literal matches the given expression + */ + public static boolean matches(final Enumerator enumerator, + final String regex) { + return Pattern.matches(regex, enumerator.getLiteral()); + } + + private static boolean isPlanungBueroAnhangArt( + final BasisAttribut_AttributeGroup attribute) { + if (attribute instanceof final Anhang_Art_TypeClass anhangArt + && anhangArt + .eContainer() instanceof final Anhang_Allg_AttributeGroup allgGroup + && allgGroup.eContainer() instanceof final Anhang anhang) { + final EReference planungbueroLogoRef = PlanProPackage.eINSTANCE + .getPlanung_G_Schriftfeld_AttributeGroup_PlanungsbueroLogo(); + return anhang.eContainingFeature().equals(planungbueroLogoRef); + } + + return false; + } + + /** + * Determines if a BasisAttribut is an enum with the value "sonstige" + * + * @param attribute + * the attribute to check for + * @return true if it is an enum with the value "sonstige" otherwise false + */ + public static boolean isSonstigeEnumWert( + final BasisAttribut_AttributeGroup attribute) { + try { + final EStructuralFeature feature = attribute.eClass() + .getEStructuralFeature(ENUM_WERT_FEATURE_NAME); + final Object value = attribute.eGet(feature); + return value instanceof final Enumerator enumValue + && enumValue.getLiteral().equals(SONSTIGE_ENUM_WERT) + && !isPlanungBueroAnhangArt(attribute); + } catch (final Exception e) { + return false; + } + } +} diff --git a/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/EnumeratorExtensions.xtend b/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/EnumeratorExtensions.xtend deleted file mode 100644 index 080d03adb..000000000 --- a/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/EnumeratorExtensions.xtend +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright (c) 2017 DB Netz AG and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v2.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v20.html - */ -package org.eclipse.set.utils - -import org.eclipse.emf.common.util.Enumerator -import java.util.regex.Pattern - -/** - * Extensions for {@link Enumerator}. - * - * @author Schaefer - */ -class EnumeratorExtensions { - - /** - * @param enumerator this enumerator - * @param regex the regular expression - * - * @return whether the enumerator literal matches the given expression - */ - static def boolean matches(Enumerator enumerator, String regex) { - return Pattern.matches(regex, enumerator.literal) - } -} From 95c15524d0a9907b42c539d6e3a595bc432f0509 Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Fri, 27 Feb 2026 12:17:46 +0100 Subject: [PATCH 6/9] properly fill empty column c cells in sxxx --- .../table/internal/TableServiceImpl.java | 30 ++++++++----- .../extensions/FootnoteExtensions.java | 42 +++++++++++++------ 2 files changed, 48 insertions(+), 24 deletions(-) diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java index b11f28fdb..6a9979509 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java @@ -127,7 +127,7 @@ public final class TableServiceImpl implements TableService { private final Map modelServiceMap = new ConcurrentHashMap<>(); private final Map diffServiceMap = new ConcurrentHashMap<>(); - private final Map> workNotesPerTable = new ConcurrentHashMap<>(); + private final Map> workNotesPerTable = new ConcurrentHashMap<>(); private static final Queue> transformTableThreads = new LinkedList<>(); private static final Set nonTransformableTables = new HashSet<>(); @@ -242,6 +242,10 @@ public TableNameInfo getTableNameInfo(final TableInfo tableInfo) { return getModelService(tableInfo).getTableNameInfo(); } + private TableNameInfo getTableNameInfo(final String shortcut) { + return getModelService(getTableInfo(shortcut)).getTableNameInfo(); + } + @Override public Collection getAvailableTables() { return modelServiceMap.keySet() @@ -421,21 +425,25 @@ private void storageWorknotes(final TableInfo tableInfo, // Filter worknotes, which already in another tables visualation if (tableInfo.shortcut() .equalsIgnoreCase(ToolboxConstants.WORKNOTES_TABLE_SHORTCUT)) { - // Special handle for fill Column C of Sxxx table - workNotesPerTable.forEach((table, notes) -> { - if (notes.isEmpty()) { - return; - } - final TableNameInfo tableNameInfo = getTableNameInfo(table); - FootnoteExtensions.fillSxxxTableColumnC(resultTable, notes, - tableNameInfo.getShortName()); - }); + final List missingTables = getAvailableTables().stream() + .filter(table -> { + return !table.shortcut() + .equalsIgnoreCase( + ToolboxConstants.WORKNOTES_TABLE_SHORTCUT) + && !workNotesPerTable.containsKey( + getTableNameInfo(table.shortcut()) + .getShortName()); + }) + .toList(); + FootnoteExtensions.fillSxxxTableColumnC(resultTable, + workNotesPerTable, missingTables.isEmpty()); return; } final Set tableNotes = FootnoteExtensions .getNotesInTable(resultTable); - workNotesPerTable.put(tableInfo, tableNotes); + final TableNameInfo tableNameInfo = getTableNameInfo(tableInfo); + workNotesPerTable.put(tableNameInfo.getShortName(), tableNotes); // Reload Sxxx table only when all tables was transformed if (transformTableThreads.isEmpty()) { broker.send(Events.RELOAD_WORKNOTES_TABLE, null); diff --git a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/FootnoteExtensions.java b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/FootnoteExtensions.java index de881558a..d9cf3fd1e 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/FootnoteExtensions.java +++ b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/FootnoteExtensions.java @@ -10,7 +10,10 @@ */ package org.eclipse.set.model.tablemodel.extensions; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -147,23 +150,36 @@ public static Set getNotesInTable(final Table table) { * * @param sxxxTable * the Sxxx table - * @param workNotesInAnotherTable - * the {@link Footnote} in another table - * @param tableName - * the table name of table, which worknote belong to + * @param footnotesPerTable + * all the tables with their {@link Footnote} + * @param allTablesGenerated + * information if all tables have generated its footnotes yet */ public static void fillSxxxTableColumnC(final Table sxxxTable, - final Set workNotesInAnotherTable, - final String tableName) { + final Map> footnotesPerTable, + final boolean allTablesGenerated) { + final Map> tablesPerOwnerObject = new HashMap<>(); + footnotesPerTable.forEach((table, footnotes) -> { + footnotes.forEach(footnote -> tablesPerOwnerObject + .compute(footnote.getOwnerObject(), (key, value) -> { + Set set = value; + if (set == null) { + set = new HashSet<>(); + } + set.add(table); + return set; + })); + }); final List tableRows = TableExtensions .getTableRows(sxxxTable); - workNotesInAnotherTable.forEach(workNote -> { - final List ownerTableRows = tableRows.stream() - .filter(r -> r.getRowObject() != null) - .filter(r -> r.getRowObject() - .equals(workNote.getOwnerObject())) - .toList(); - ownerTableRows.forEach(r -> fillValue(r, tableName)); + tableRows.forEach(tableRow -> { + final Set tables = tablesPerOwnerObject + .get(tableRow.getRowObject()); + if (tables != null && tables.size() > 0) { + tables.forEach(table -> fillValue(tableRow, table)); + } else { + fillValue(tableRow, allTablesGenerated ? "--" : "??"); + } }); } From 428be38ed175e31a3e5061318801130f885dea37 Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Fri, 27 Feb 2026 12:57:34 +0100 Subject: [PATCH 7/9] rename variables with worknotes to footnotes --- .../internal/TableServiceContextFunction.java | 5 +++-- .../table/internal/TableServiceImpl.java | 20 +++++++++---------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceContextFunction.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceContextFunction.java index 54808b375..0cd821f79 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceContextFunction.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceContextFunction.java @@ -199,8 +199,9 @@ public void handleEvent(final Event event) { .getCacheService() .getCache(schnitstelle, ToolboxConstants.CacheId.DIRECTED_EDGE_TO_SUBPATH)); - if (event.getTopic().equals(Events.MODEL_CHANGED)) { - tableService.cleanWorkNotesProTable(); + if (event.getTopic().equals(Events.MODEL_CHANGED) + && tableService != null) { + tableService.cleanFootnotesProTable(); } } diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java index 6a9979509..7c61622ee 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java @@ -127,7 +127,7 @@ public final class TableServiceImpl implements TableService { private final Map modelServiceMap = new ConcurrentHashMap<>(); private final Map diffServiceMap = new ConcurrentHashMap<>(); - private final Map> workNotesPerTable = new ConcurrentHashMap<>(); + private final Map> footnotesPerTable = new ConcurrentHashMap<>(); private static final Queue> transformTableThreads = new LinkedList<>(); private static final Set nonTransformableTables = new HashSet<>(); @@ -175,8 +175,8 @@ void removeDiffService(final TableCompareType compareType) { } } - void cleanWorkNotesProTable() { - workNotesPerTable.clear(); + void cleanFootnotesProTable() { + footnotesPerTable.clear(); } private Table createDiffStateTable(final TableInfo tableInfo, @@ -417,12 +417,12 @@ public Table transformToTable(final TableInfo tableInfo, return resultTable; } - private void storageWorknotes(final TableInfo tableInfo, + private void storageFootnotes(final TableInfo tableInfo, final Table resultTable) { if (resultTable == null || resultTable.getTablecontent() == null) { return; } - // Filter worknotes, which already in another tables visualation + // Filter footnotes, which already in another tables visualization if (tableInfo.shortcut() .equalsIgnoreCase(ToolboxConstants.WORKNOTES_TABLE_SHORTCUT)) { final List missingTables = getAvailableTables().stream() @@ -430,20 +430,20 @@ private void storageWorknotes(final TableInfo tableInfo, return !table.shortcut() .equalsIgnoreCase( ToolboxConstants.WORKNOTES_TABLE_SHORTCUT) - && !workNotesPerTable.containsKey( + && !footnotesPerTable.containsKey( getTableNameInfo(table.shortcut()) .getShortName()); }) .toList(); FootnoteExtensions.fillSxxxTableColumnC(resultTable, - workNotesPerTable, missingTables.isEmpty()); + footnotesPerTable, missingTables.isEmpty()); return; } final Set tableNotes = FootnoteExtensions .getNotesInTable(resultTable); final TableNameInfo tableNameInfo = getTableNameInfo(tableInfo); - workNotesPerTable.put(tableNameInfo.getShortName(), tableNotes); + footnotesPerTable.put(tableNameInfo.getShortName(), tableNotes); // Reload Sxxx table only when all tables was transformed if (transformTableThreads.isEmpty()) { broker.send(Events.RELOAD_WORKNOTES_TABLE, null); @@ -621,7 +621,7 @@ public Table createDiffTable(final TableInfo tableInfo, controlAreaIds); if (sessionService.getLoadedSession( ToolboxFileRole.COMPARE_PLANNING) == null) { - storageWorknotes(tableInfo, mainSessionTable); + storageFootnotes(tableInfo, mainSessionTable); return mainSessionTable; } // Waiting table compare transform, then create compare table @@ -648,7 +648,7 @@ public Table createDiffTable(final TableInfo tableInfo, .get(TableCompareType.PROJECT) .createDiffTable(mainSessionTable, compareSessionTable); sortTable(compareTable, tableInfo); - storageWorknotes(tableInfo, compareSessionTable); + storageFootnotes(tableInfo, compareSessionTable); return compareTable; } catch (final Exception e) { dialogService.error(Display.getCurrent().getActiveShell(), From 21b148ce98f7ab2d111d99c14c5525d678ce2fcc Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Fri, 27 Feb 2026 15:16:26 +0100 Subject: [PATCH 8/9] update table reference --- .../pphn_1_10_0_3/sxxx_after_reference.csv | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/java/bundles/org.eclipse.set.swtbot/test_res/table_reference/pphn_1_10_0_3/sxxx_after_reference.csv b/java/bundles/org.eclipse.set.swtbot/test_res/table_reference/pphn_1_10_0_3/sxxx_after_reference.csv index 755ba72c4..4cc491a84 100644 --- a/java/bundles/org.eclipse.set.swtbot/test_res/table_reference/pphn_1_10_0_3/sxxx_after_reference.csv +++ b/java/bundles/org.eclipse.set.swtbot/test_res/table_reference/pphn_1_10_0_3/sxxx_after_reference.csv @@ -1,10 +1,11 @@ Row;A;B;C -;"Inhalt +;"Inhalt Bearbeitungsvermerk";Referenziert von Objekt​;Ausgabe in Plan​​ ;;; -1;"

Automatische ​Konvertierung ​von ​PlanPro ​1.9.0.2 ​nach ​1.10

";"

";"

" +;;; +1;"

Automatische ​Konvertierung ​von ​PlanPro ​1.9.0.2 ​nach ​1.10

";"

";"

-​-​

" 2;"

Für ​den ​angegebenen ​Strang ​existiert ​kein ​Element, ​welches ​sonst ​Flankenschutz ​bieten ​könnte.

";"

Fla_​Schutz

";"

Sslf

" 3;"

Für ​den ​angegebenen ​Strang ​existiert ​kein ​Element, ​welches ​sonst ​Flankenschutz ​bieten ​könnte.

";"

Fla_​Schutz

";"

Sslf

" -4;"

Stellbereich ​Bf ​Lorenztal

";"

";"

" -5;"

Stellbereich ​Bf ​Rechtsheim

";"

";"

" -6;"

Stellbereich ​Bf ​Treumgart

";"

";"

" +4;"

Stellbereich ​Bf ​Lorenztal

";"

";"

-​-​

" +5;"

Stellbereich ​Bf ​Rechtsheim

";"

";"

-​-​

" +6;"

Stellbereich ​Bf ​Treumgart

";"

";"

-​-​

" From fea762bc4aee7342216bbfddbc959939192dbe6e Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Fri, 27 Feb 2026 15:16:49 +0100 Subject: [PATCH 9/9] fix sxxx worknotes before test case --- .../eclipse/set/swtbot/table/TestWorknotesTable.java | 5 ++--- .../pphn_1_10_0_3/sxxx_before_reference.csv | 11 ++++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/java/bundles/org.eclipse.set.swtbot/src/org/eclipse/set/swtbot/table/TestWorknotesTable.java b/java/bundles/org.eclipse.set.swtbot/src/org/eclipse/set/swtbot/table/TestWorknotesTable.java index caac171c0..be9ef5f03 100644 --- a/java/bundles/org.eclipse.set.swtbot/src/org/eclipse/set/swtbot/table/TestWorknotesTable.java +++ b/java/bundles/org.eclipse.set.swtbot/src/org/eclipse/set/swtbot/table/TestWorknotesTable.java @@ -54,7 +54,6 @@ protected void testWorknotesTableOpenBeforeAnotherTable() throws Exception { whenOpenWorkNotesTable(); givenWorknotesTableReferenceOpenBefore(); whenExistReferenceCSV(); - whenOpenAnotherTable(); thenExpectTableDataEqualReferenceCSV(); } @@ -66,8 +65,8 @@ protected void whenExistReferenceCSV() { @SuppressWarnings("boxing") void givenWorknotesTable() { worknotesTable = new PtTable("Sxxx", - "Sxxx – Tabelle der Bearbeitungsvermerke", - "supplement", List.of(0)); + "Sxxx – Tabelle der Bearbeitungsvermerke", "supplement", + List.of(0)); } void givenWorknotesTableReferenceOpenAfter() throws Exception { diff --git a/java/bundles/org.eclipse.set.swtbot/test_res/table_reference/pphn_1_10_0_3/sxxx_before_reference.csv b/java/bundles/org.eclipse.set.swtbot/test_res/table_reference/pphn_1_10_0_3/sxxx_before_reference.csv index f06f90aaa..bff4aaf0f 100644 --- a/java/bundles/org.eclipse.set.swtbot/test_res/table_reference/pphn_1_10_0_3/sxxx_before_reference.csv +++ b/java/bundles/org.eclipse.set.swtbot/test_res/table_reference/pphn_1_10_0_3/sxxx_before_reference.csv @@ -1,6 +1,11 @@ Row;A;B;C -;"Inhalt +;"Inhalt Bearbeitungsvermerk";Referenziert von Objekt​;Ausgabe in Plan​​ ;;; -1;"

Flankenschutzverzicht ​60W4L

";"

Fla_​Schutz

";"

" -2;"

Flankenschutzverzicht ​60W52R

";"

Fla_​Schutz

";"

" +;;; +1;"

Automatische ​Konvertierung ​von ​PlanPro ​1.9.0.2 ​nach ​1.10

";"

";"

??

" +2;"

Für ​den ​angegebenen ​Strang ​existiert ​kein ​Element, ​welches ​sonst ​Flankenschutz ​bieten ​könnte.

";"

Fla_​Schutz

";"

??

" +3;"

Für ​den ​angegebenen ​Strang ​existiert ​kein ​Element, ​welches ​sonst ​Flankenschutz ​bieten ​könnte.

";"

Fla_​Schutz

";"

??

" +4;"

Stellbereich ​Bf ​Lorenztal

";"

";"

??

" +5;"

Stellbereich ​Bf ​Rechtsheim

";"

";"

??

" +6;"

Stellbereich ​Bf ​Treumgart

";"

";"

??

"