diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslb/SslbTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslb/SslbTransformator.xtend index 7d07fad7ba..aa6aa75681 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslb/SslbTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslb/SslbTransformator.xtend @@ -39,7 +39,6 @@ import static extension org.eclipse.set.ppmodel.extensions.BlockAnlageExtensions import static extension org.eclipse.set.ppmodel.extensions.BlockElementExtensions.* import static extension org.eclipse.set.ppmodel.extensions.BlockStreckeExtensions.* import static extension org.eclipse.set.ppmodel.extensions.FmaAnlageExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* /** * Table transformation for a Inselgleistabelle (Sslb). 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 42f0100d01..4045534dd4 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 @@ -436,11 +436,16 @@ public Table transformToTable(final TableInfo tableInfo, area))) { return createEmptyTable(tableInfo); } - final Table resultTable = TableServiceUtils.filterRequestValue( - EcoreUtil.copy((Table) table), tableType, tableInfo, - modelSession, getModelService(tableInfo), controlAreaIds); + // Filter the table row, which belong to current table state + final Table stateTable = TableServiceUtils + .filterTableByState(EcoreUtil.copy((Table) table), tableType); + // Filter the table row, which belong to current control area + final Table resultTable = TableServiceUtils + .filterRowGroupBelongToControlArea(EcoreUtil.copy(stateTable), + tableType, tableInfo, modelSession, + getModelService(tableInfo), controlAreaIds); TableServiceUtils.clearEmptyRow(resultTable); - getModelService(tableInfo).addAdditionRow((Table) table, resultTable); + getModelService(tableInfo).addAdditionRow(stateTable, resultTable); sortTable(resultTable, tableInfo, tableType); return resultTable; } 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 a05f5a5f76..08374f8a9d 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 @@ -272,27 +272,26 @@ public static void calculateAllMissingTables( } } - protected static Table filterRequestValue(final Table table, + protected static Table filterRowGroupBelongToControlArea(final Table table, final TableType tableType, final TableInfo tableInfo, final IModelSession modelsession, final PlanPro2TableTransformationService transformationService, final Set controlAreaIds) { - final Table result = filterTableByState(table, tableType); // Worknotes table need only regard on table state if (tableInfo.shortcut() .equalsIgnoreCase(ToolboxConstants.WORKNOTES_TABLE_SHORTCUT)) { - return result; + return table; } if (tableType == TableType.DIFF) { - filterRowGroupBelongToControlAreaByDiffState(result, modelsession, + filterRowGroupBelongToControlAreaByDiffState(table, modelsession, transformationService, controlAreaIds); - result.getTablecontent() + table.getTablecontent() .getRowgroups() .removeIf(group -> !UrObjectExtensions .isPlanningObject(group.getLeadingObject())); - return result; + return table; } - result.getTablecontent().getRowgroups().removeIf(group -> { + table.getTablecontent().getRowgroups().removeIf(group -> { final UrObjektEachContainer objectEachContanier = UrObjektEachContainer .createInstance(group.getLeadingObject(), modelsession); final Ur_Objekt leadingObj = objectEachContanier @@ -308,10 +307,17 @@ protected static Table filterRequestValue(final Table table, .isObjectBelongToRendereArea(leadingObj, areas); }); - return result; + return table; } - private static Table filterTableByState(final Table table, + /** + * @param table + * the table + * @param tableType + * the table type + * @return the table with content, which belong to the table type + */ + public static Table filterTableByState(final Table table, final TableType tableType) { if (tableType == TableType.DIFF || tableType == TableType.SINGLE) { return table;