- }
-
- @Override
- public void handleEvent(Event event) {
-
- // Specific UI related events
- SuiteUi ui = getRelatedUi(event);
- String currentLayerId = ui.getCurrentLayerId();
- SuiteLayer layer = layers.get(currentLayerId).get();
- if (isTopic(event, SuiteEvent.refreshPart)) {
- String nodeId = get(event, SuiteEvent.NODE_ID);
- String workspace = get(event, SuiteEvent.WORKSPACE);
- Node node = Jcr.getNodeById(ui.getSession(workspace), nodeId);
- CmsUiProvider uiProvider = findUiProvider(node);
- layer.view(uiProvider, ui.getCurrentWorkArea(), node);
- // ui.getTabbedArea().view(findUiProvider(DASHBOARD_PID), node);
-// ui.layout(true, true);
- } else if (isTopic(event, SuiteEvent.openNewPart)) {
- String nodeId = get(event, SuiteEvent.NODE_ID);
- String workspace = get(event, SuiteEvent.WORKSPACE);
- Node node = Jcr.getNodeById(ui.getSession(workspace), nodeId);
- CmsUiProvider uiProvider = findUiProvider(node);
- layer.open(uiProvider, ui.getCurrentWorkArea(), node);
-// ui.getTabbedArea().open(findUiProvider(DASHBOARD_PID), node);
-// ui.layout(true, true);
- } else if (isTopic(event, SuiteEvent.switchLayer)) {
- String layerId = get(event, SuiteEvent.LAYER);
- ui.switchToLayer(layerId, null);
+ if (properties.containsKey(EntityConstants.TYPE)) {
+ List<String> types = LangUtils.toStringList(properties.get(EntityConstants.TYPE));
+ for (String type : types) {
+ if (layersByType.containsKey(type)) {
+ if (layersByType.get(type).equals(new RankedObject<CmsUiProvider>(layer, properties))) {
+ layersByType.remove(type);
+ }
+ }
+ }