Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@
import org.eclipse.set.utils.exception.ExceptionHandler;
import org.eclipse.set.utils.table.BodyLayerStack;
import org.eclipse.set.utils.table.Pt1TableChangeProperties;
import org.eclipse.set.utils.table.TableInfo;
import org.eclipse.set.utils.table.TableInfo.Pt1TableCategory;
import org.eclipse.set.utils.table.TableModelInstanceBodyDataProvider;
import org.eclipse.set.utils.table.menu.TableMenuService;
Expand Down Expand Up @@ -201,6 +202,8 @@ public final class ToolboxTableView extends BasePart {

private EventHandler secondaryPlanningLoadedHanlder;

private TableInfo tableInfo;

/**
* constructor
*/
Expand Down Expand Up @@ -228,11 +231,11 @@ private Path getAttachmentPath(final String guid) {
}
}

private Titlebox getTitlebox(final String shortcut) {
private Titlebox getTitlebox() {
final PlanProToTitleboxTransformation planProToTitlebox = new PlanProToTitleboxTransformation(
getSessionService());
return planProToTitlebox.transform(
tableService.getTableNameInfo(shortcut),
tableService.getTableNameInfo(tableInfo),
this::getAttachmentPath);
}

Expand Down Expand Up @@ -280,7 +283,7 @@ public void accept(final TableDataChangeEvent t) {
};
ToolboxEvents.subscribe(getBroker(), TableDataChangeEvent.class,
tableDataChangeHandler,
TableDataChangeEvent.getTopic(getTableShortcut())
TableDataChangeEvent.getTopic(tableInfo.shortcut())
.toLowerCase());

selectionControlAreaHandler = new DefaultToolboxEventHandler<>() {
Expand Down Expand Up @@ -326,11 +329,7 @@ private void preDestroy() {
ToolboxEvents.unsubscribe(getBroker(), tableDataChangeHandler);
ToolboxEvents.unsubscribe(getBroker(), selectionControlAreaHandler);
getBroker().unsubscribe(secondaryPlanningLoadedHanlder);
getBroker().send(Events.CLOSE_PART, getTableShortcut().toLowerCase());
}

private String getTableShortcut() {
return tableService.extractShortcut(getToolboxPart().getElementId());
getBroker().send(Events.CLOSE_PART, tableInfo.shortcut());
}

private void tableSelectRowHandler(final JumpToTableEvent event) {
Expand All @@ -357,8 +356,8 @@ private void tableSelectRowHandler(final JumpToTableEvent event) {
*
* @return the table view model
*/
private Table transformToTableModel(final String elementId) {
return tableService.createDiffTable(elementId, tableType,
private Table transformToTableModel() {
return tableService.createDiffTable(tableInfo, tableType,
controlAreaIds);
}

Expand Down Expand Up @@ -407,7 +406,7 @@ private void updateFootnotes() {

@Override
protected void createView(final Composite parent) {

tableInfo = tableService.getTableInfo(this);
// initialize table type
tableType = getModelSession().getTableType();
controlAreaIds = getModelSession().getSelectedControlAreas()
Expand Down Expand Up @@ -455,8 +454,7 @@ protected void createView(final Composite parent) {

bodyLayerStack = new BodyLayerStack(bodyDataLayer);

bodyLayerStack.freezeColumns(
tableService.getFixedColumns(getToolboxPart().getElementId()));
bodyLayerStack.freezeColumns(tableService.getFixedColumns(tableInfo));

final SelectionLayer selectionLayer = bodyLayerStack
.getSelectionLayer();
Expand Down Expand Up @@ -756,18 +754,17 @@ protected void updateViewContainerDataChanged(
}

void export() {
final String shortcut = getTableShortcut();
final List<Thread> transformatorThreads = ThreadUtils.getAllThreads()
.stream()
.filter(t -> t != null
&& t.getName().startsWith(shortcut.toLowerCase())
&& t.getName().startsWith(tableInfo.shortcut())
&& t.isAlive())
.toList();
if (!transformatorThreads.isEmpty() && !getDialogService()
.confirmExportNotCompleteTable(getToolboxShell())) {
return;
}
final Map<TableType, Table> tables = compileService.compile(shortcut,
final Map<TableType, Table> tables = compileService.compile(tableInfo,
getModelSession(), controlAreaIds);
final Optional<String> optionalOutputDir = getDialogService()
.selectDirectory(getToolboxShell(),
Expand All @@ -778,10 +775,9 @@ void export() {
monitor.beginTask(messages.ToolboxTableView_ExportTable,
IProgressMonitor.UNKNOWN);
exportService.exportPdf(tables,
ExportType.PLANNING_RECORDS,
getTitlebox(shortcut), getFreeFieldInfo(),
shortcut, outputDir,
getModelSession().getToolboxPaths(),
ExportType.PLANNING_RECORDS, getTitlebox(),
getFreeFieldInfo(), tableInfo.shortcut(),
outputDir, getModelSession().getToolboxPaths(),
getModelSession().getTableType(),
OverwriteHandling
.forUserConfirmation(path -> Boolean
Expand Down Expand Up @@ -811,7 +807,7 @@ void updateModel(final MPart part) {
// update banderole
getBanderole().setTableType(tableType);

table = transformToTableModel(part.getElementId());
table = transformToTableModel();
// flag creation
MApplicationElementExtensions.setViewState(part,
ToolboxViewState.CREATED);
Expand Down Expand Up @@ -892,7 +888,7 @@ private String getRowReferenceObjectGuid(final int rowPosition) {
*/
private void subcribeTriggerResortEvent() {
final Comparator<RowGroup> comparator = tableService
.getRowGroupComparator(getTableShortcut());
.getRowGroupComparator(tableInfo);
if (comparator instanceof final TableRowGroupComparator rowGroupComparator) {
// This is new instance of Comparator, therefore need call sort here
// to determine the waiting on another service criterion
Expand All @@ -919,8 +915,7 @@ private void subcribeTriggerResortEvent() {
.size()
&& triggeredEvents
.containsAll(triggerComparisonEvent)) {
tableService.sortTable(table, tableType,
getTableShortcut());
tableService.sortTable(table, tableType, tableInfo);
tableInstances.clear();
tableInstances.addAll(
TableExtensions.getTableRows(table));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.eclipse.set.ppmodel.extensions.PlanProSchnittstelleExtensions;
import org.eclipse.set.services.export.TableCompileService;
import org.eclipse.set.services.table.TableService;
import org.eclipse.set.utils.table.TableInfo;

import jakarta.inject.Inject;

Expand All @@ -33,7 +34,7 @@ public class TableCompileServiceImpl implements TableCompileService {
TableService tableService;

@Override
public Map<TableType, Table> compile(final String shortcut,
public Map<TableType, Table> compile(final TableInfo tableInfo,
final IModelSession modelSession,
final Set<String> controlAreaIds) {
final Map<TableType, Table> result = new EnumMap<>(TableType.class);
Expand All @@ -43,11 +44,11 @@ public Map<TableType, Table> compile(final String shortcut,
.filter(type -> type != TableType.SINGLE)
.forEach(type -> {
final Table table = tableService.createDiffTable(
shortcut, type, controlAreaIds);
tableInfo, type, controlAreaIds);
result.put(type, table);
});
} else {
final Table single = tableService.createDiffTable(shortcut,
final Table single = tableService.createDiffTable(tableInfo,
TableType.SINGLE, controlAreaIds);
result.put(TableType.SINGLE, single);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ protected CheckboxTreeModel createTreeModelData() {

availableTables.forEach(tableInfo -> {
final TableNameInfo nameInfo = tableService
.getTableNameInfo(tableInfo.shortcut());
.getTableNameInfo(tableInfo);
CheckBoxTreeElement parentElement = elements.stream()
.filter(ele -> ele.getId()
.equals(tableInfo.category().getId()))
Expand Down Expand Up @@ -250,17 +250,25 @@ protected void export(final CheckboxModelElement element,
additionalExportService.createAdditionalExport(id, modelSession,
monitor, getSelectedDirectory(), getExportType(),
overwriteHandling);
} else {
final Map<TableType, Table> tables = compileService.compile(id,
modelSession,
} else if (element instanceof final CheckBoxTreeElement treeElement
&& getTreeDataModel() instanceof TableCheckboxTreeModel) {
final TableInfo tableInfo = ((TableCheckboxTreeModel) getTreeDataModel())
.getTableInfo(treeElement)
.orElse(null);
if (tableInfo == null) {
return;
}
final Map<TableType, Table> tables = compileService.compile(
tableInfo, modelSession,
modelSession.getSelectedControlAreas()
.stream()
.map(Pair::getSecond)
.collect(Collectors.toSet()));
final PlanProToTitleboxTransformation planProToTitlebox = new PlanProToTitleboxTransformation(
getSessionService());
final Titlebox titlebox = planProToTitlebox.transform(
tableService.getTableNameInfo(id), this::getAttachmentPath);
tableService.getTableNameInfo(tableInfo),
this::getAttachmentPath);
updateTitlebox(titlebox);
final PlanProToFreeFieldTransformation planProToFreeField = PlanProToFreeFieldTransformation
.create();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
package org.eclipse.set.feature.table.export;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;

import org.eclipse.set.basis.export.CheckBoxTreeElement;
Expand All @@ -29,6 +31,8 @@
public class TableCheckboxTreeModel extends CheckboxTreeModel {
TableService tableService;

Map<TableInfo, CheckBoxTreeElement> tableInfoTreeElementMap;

/**
* Constructor
*
Expand All @@ -41,6 +45,7 @@ public TableCheckboxTreeModel(final List<CheckBoxTreeElement> elements,
final TableService tableService) {
super(elements);
this.tableService = tableService;
this.tableInfoTreeElementMap = new HashMap<>();
}

/**
Expand All @@ -61,11 +66,11 @@ public CheckBoxTreeElement addElement(final TableInfo info) {
category.toString());
addElement(parent);
}
final TableNameInfo nameInfo = tableService
.getTableNameInfo(info.shortcut());
final TableNameInfo nameInfo = tableService.getTableNameInfo(info);
final CheckBoxTreeElement newElement = new CheckBoxTreeElement(
nameInfo.getShortName().toLowerCase(),
nameInfo.getFullDisplayName());
tableInfoTreeElementMap.put(info, newElement);
addElement(parent, newElement);
return newElement;
}
Expand All @@ -78,9 +83,25 @@ public CheckBoxTreeElement addElement(final TableInfo info) {
* @return the optional of the table element
*/
public Optional<CheckBoxTreeElement> getElement(final TableInfo info) {
final TableNameInfo tableNameInfo = tableService
.getTableNameInfo(info.shortcut());
return getElement(info.category().getId(),
tableNameInfo.getShortName().toLowerCase());
final Optional<CheckBoxTreeElement> ele = getElement(
info.category().getId(), info.shortcut());
if (ele.isPresent()) {
tableInfoTreeElementMap.putIfAbsent(info, ele.get());
}
return ele;
}

/**
* @param treeElement
* the tree element
* @return the {@link TableInfo} of this tree element
*/
public Optional<TableInfo> getTableInfo(
final CheckBoxTreeElement treeElement) {
return tableInfoTreeElementMap.entrySet()
.stream()
.filter(ele -> ele.getValue().equals(treeElement))
.map(Map.Entry::getKey)
.findFirst();
}
}
Loading
Loading