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 @@ -37,6 +37,7 @@
import java.util.stream.StreamSupport;

import org.eclipse.e4.core.services.events.IEventBroker;
import org.eclipse.set.basis.IModelSession;
import org.eclipse.set.basis.Pair;
import org.eclipse.set.basis.constants.ContainerType;
import org.eclipse.set.basis.constants.Events;
Expand Down Expand Up @@ -181,7 +182,9 @@ public GeoKanteGeometryServiceImpl() {
public void handleEvent(final Event event) {
final String topic = event.getTopic();
if (topic.equals(Events.TOPMODEL_CHANGED) && event.getProperty(
IEventBroker.DATA) instanceof final PlanPro_Schnittstelle schnitstelle) {
IEventBroker.DATA) instanceof final IModelSession modelSession) {
final PlanPro_Schnittstelle schnitstelle = modelSession
.getPlanProSchnittstelle();
// Only clear geometry data when main session change
final GeoKanteGeometrySessionData sessionData = getSessionData(
schnitstelle);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import java.util.stream.Collectors;

import org.eclipse.e4.core.services.events.IEventBroker;
import org.eclipse.set.basis.IModelSession;
import org.eclipse.set.basis.constants.ContainerType;
import org.eclipse.set.basis.constants.Events;
import org.eclipse.set.basis.constants.ToolboxConstants;
Expand Down Expand Up @@ -107,9 +108,10 @@ public Map<Ueberhoehungslinie, Optional<BankingInformation>> getBankingInformati
@Override
public void handleEvent(final Event event) {
final String topic = event.getTopic();
if (topic.equals(Events.TOPMODEL_CHANGED)) {
final PlanPro_Schnittstelle planProSchnittstelle = (PlanPro_Schnittstelle) event
.getProperty(IEventBroker.DATA);
if (topic.equals(Events.TOPMODEL_CHANGED) && event.getProperty(
IEventBroker.DATA) instanceof final IModelSession modelSession) {
final PlanPro_Schnittstelle planProSchnittstelle = modelSession
.getPlanProSchnittstelle();
final BankingInformationSession collection = getBankingSession(
planProSchnittstelle);
collection.getBankingInformations().clear();
Expand Down Expand Up @@ -138,6 +140,7 @@ public void run() {
final HashMap<String, Object> properties = new HashMap<>();
properties.put(EventConstants.EVENT_TOPIC,
Events.BANKING_PROCESS_DONE);
properties.put(IEventBroker.DATA, modelSession);
eventAdmin.sendEvent(new Event(
Events.BANKING_PROCESS_DONE, properties));
} catch (final InterruptedException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ public void handleEvent(final Event event) {

// Notify that the top model changed
final Map<String, Object> properties = new HashMap<>();
properties.put("org.eclipse.e4.data", planProSchnittstelle); //$NON-NLS-1$
properties.put(IEventBroker.DATA, modelsession);
eventAdmin.sendEvent(new Event(Events.TOPMODEL_CHANGED, properties));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
package org.eclipse.set.feature.plazmodel;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import org.eclipse.e4.core.services.events.IEventBroker;
Expand Down Expand Up @@ -44,8 +45,6 @@
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;

import jakarta.annotation.PostConstruct;
import jakarta.inject.Inject;
Expand Down Expand Up @@ -83,40 +82,39 @@ public class PlazModelPart extends AbstractEmfFormsPart {
@SuppressWarnings("unchecked")
@PostConstruct
private void postConstruct() {
getBroker().subscribe(Events.DO_PLAZ_CHECK, new EventHandler() {

@Override
public void handleEvent(final Event event) {
final Object property = event.getProperty(IEventBroker.DATA);
if (property instanceof final Class<?> clazz
&& PlazCheck.class.isAssignableFrom(clazz)) {
final PlazReport newReport = plazModelService.runPlazModel(
getModelSession(),
(Class<? extends PlazCheck>) clazz);
if (plazReport == null
|| plazReport.getEntries().isEmpty()) {
tableView.updateView(newReport);
return;
}

final List<String> objectArts = newReport.getEntries()
.stream()
.map(ValidationProblem::getObjectArt)
.distinct()
.toList();
final List<ValidationProblem> oldReports = plazReport
.getEntries()
.stream()
.filter(entry -> objectArts
.contains(entry.getObjectArt()))
.toList();
plazReport.getEntries().removeAll(oldReports);
plazReport.getEntries().addAll(newReport.getEntries());
PlazModelService
.sortAndIndexedProblems(plazReport.getEntries());
tableView.updateView(plazReport);
getBroker().subscribe(Events.DO_PLAZ_CHECK, event -> {
final Object property = event.getProperty(IEventBroker.DATA);
if (property instanceof final Class<?> clazz
&& PlazCheck.class.isAssignableFrom(clazz)) {
final PlazReport newReport = plazModelService.runPlazModel(
getModelSession(), (Class<? extends PlazCheck>) clazz);
if (plazReport == null || plazReport.getEntries().isEmpty()) {
tableView.updateView(newReport);
return;
}

// The PlazReport#Entries is a unique EList, therefore by sorted
// later is will be throw Exception
final LinkedList<ValidationProblem> entriesClone = new LinkedList<>(
plazReport.getEntries());
plazReport.getEntries().clear();
final List<String> objectArts = newReport.getEntries()
.stream()
.map(ValidationProblem::getObjectArt)
.distinct()
.toList();

final List<ValidationProblem> oldReports = plazReport
.getEntries()
.stream()
.filter(entry -> objectArts
.contains(entry.getObjectArt()))
.toList();
entriesClone.removeAll(oldReports);
entriesClone.addAll(newReport.getEntries());

PlazModelService.sortAndIndexedProblems(entriesClone);
plazReport.getEntries().addAll(entriesClone);
tableView.updateView(plazReport);
}
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ import org.osgi.service.event.Event
import org.osgi.service.event.EventAdmin
import org.osgi.service.event.EventConstants
import org.osgi.service.event.EventHandler
import org.eclipse.e4.core.services.events.IEventBroker
import org.eclipse.set.basis.IModelSession
import org.eclipse.set.basis.files.ToolboxFileRole

/**
* Validates that there's a valid top path for each bank line
Expand Down Expand Up @@ -144,9 +147,18 @@ class BankValues extends AbstractPlazContainerCheck implements PlazCheck, EventH
}

override handleEvent(Event event) {
val properties = newHashMap;
properties.put("org.eclipse.e4.data", this.class); // $NON-NLS-1$
eventAdmin.sendEvent(new Event(Events.DO_PLAZ_CHECK, properties));
if (event.getProperty(IEventBroker.DATA) instanceof IModelSession) {
val role = (event.getProperty(IEventBroker.DATA) as IModelSession).
toolboxFile.role
// Only do PlazCheck by main session
if (role === ToolboxFileRole.SESSION) {
val properties = newHashMap;
properties.put(IEventBroker.DATA, this.class); // $NON-NLS-1$
eventAdmin.sendEvent(
new Event(Events.DO_PLAZ_CHECK, properties));
}
}

}

}
Loading