From 5bb07439db9076acb64e8a720417ca2834f2633d Mon Sep 17 00:00:00 2001 From: "Rushan R. Gilmullin" Date: Wed, 9 Jan 2013 10:57:24 +0400 Subject: [PATCH] close opened editors when remove media --- .../handlers/medialib/EditSelectedMedia.java | 2 +- .../RemoveSelectedEntryFromLibrary.java | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/org.semanticsoft.vaaclipsedemo.mediaplayer/src/org/semanticsoft/vaaclipsedemo/mediaplayer/handlers/medialib/EditSelectedMedia.java b/org.semanticsoft.vaaclipsedemo.mediaplayer/src/org/semanticsoft/vaaclipsedemo/mediaplayer/handlers/medialib/EditSelectedMedia.java index 59a97bdb..7a1682ce 100644 --- a/org.semanticsoft.vaaclipsedemo.mediaplayer/src/org/semanticsoft/vaaclipsedemo/mediaplayer/handlers/medialib/EditSelectedMedia.java +++ b/org.semanticsoft.vaaclipsedemo.mediaplayer/src/org/semanticsoft/vaaclipsedemo/mediaplayer/handlers/medialib/EditSelectedMedia.java @@ -23,7 +23,7 @@ public boolean canExecute(MediaLibrary medialib) } @Execute - public void play(MediaLibrary medialib, EPartServiceExt partServiceExt) + public void edit(MediaLibrary medialib, EPartServiceExt partServiceExt) { if (medialib.getSelectedMediaEntry() instanceof Media) { diff --git a/org.semanticsoft.vaaclipsedemo.mediaplayer/src/org/semanticsoft/vaaclipsedemo/mediaplayer/handlers/medialib/RemoveSelectedEntryFromLibrary.java b/org.semanticsoft.vaaclipsedemo.mediaplayer/src/org/semanticsoft/vaaclipsedemo/mediaplayer/handlers/medialib/RemoveSelectedEntryFromLibrary.java index e4946c9e..89aabed4 100644 --- a/org.semanticsoft.vaaclipsedemo.mediaplayer/src/org/semanticsoft/vaaclipsedemo/mediaplayer/handlers/medialib/RemoveSelectedEntryFromLibrary.java +++ b/org.semanticsoft.vaaclipsedemo.mediaplayer/src/org/semanticsoft/vaaclipsedemo/mediaplayer/handlers/medialib/RemoveSelectedEntryFromLibrary.java @@ -3,14 +3,18 @@ */ package org.semanticsoft.vaaclipsedemo.mediaplayer.handlers.medialib; +import javax.inject.Inject; + import org.eclipse.e4.core.di.annotations.CanExecute; import org.eclipse.e4.core.di.annotations.Execute; import org.eclipse.e4.core.services.events.IEventBroker; +import org.semanticsoft.e4extension.service.EPartServiceExt; import org.semanticsoft.vaaclipsedemo.mediaplayer.constants.MediaConstants; import org.semanticsoft.vaaclipsedemo.mediaplayer.model.Media; import org.semanticsoft.vaaclipsedemo.mediaplayer.model.MediaCategory; import org.semanticsoft.vaaclipsedemo.mediaplayer.model.MediaEntry; import org.semanticsoft.vaaclipsedemo.mediaplayer.model.MediaLibrary; +import org.semanticsoft.vaaclipsedemo.mediaplayer.service.MediaService; /** * @author rushan @@ -18,6 +22,9 @@ */ public class RemoveSelectedEntryFromLibrary { + @Inject + EPartServiceExt partServiceExt; + @CanExecute public boolean canExecute(MediaLibrary medialib) { @@ -25,11 +32,23 @@ public boolean canExecute(MediaLibrary medialib) } @Execute - public void play(MediaLibrary medialib, IEventBroker eventBroker) + public void remove(MediaLibrary medialib, MediaService mediaService, IEventBroker eventBroker) { MediaEntry selectedMediaEntry = medialib.getSelectedMediaEntry(); if (selectedMediaEntry != null) { + if (selectedMediaEntry instanceof Media) + {//if media close editor in editor area if opened + partServiceExt.closeUri(((Media) selectedMediaEntry).getUri(), false); + } + else + {//if category close editor in editor area for child media + for (Media m : mediaService.getAllInnerMedia((MediaCategory) selectedMediaEntry)) + { + partServiceExt.closeUri(m.getUri(), false); + } + } + MediaCategory parent = selectedMediaEntry.getParent(); parent.removeMediaEntry(selectedMediaEntry);