Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcdumoulin2012-02-16 16:43:23 +0000
committercdumoulin2012-02-16 16:43:23 +0000
commit0776f7c3d76905a5d558c3d91630c6bc82c155c7 (patch)
tree0d9be3d9ba2459d43f471f12034d9fed3a774432
parent8143d8e5f8d2538d5be5704f2e99b1072ecf4e0a (diff)
downloadorg.eclipse.papyrus-0776f7c3d76905a5d558c3d91630c6bc82c155c7.tar.gz
org.eclipse.papyrus-0776f7c3d76905a5d558c3d91630c6bc82c155c7.tar.xz
org.eclipse.papyrus-0776f7c3d76905a5d558c3d91630c6bc82c155c7.zip
310829: [Sash Editor] Need a way to be informed of diagram opening, closing, ...
https://bugs.eclipse.org/bugs/show_bug.cgi?id=310829 Add the following interface :IPageLifeCycleEventsListener. This interface replace the old SashContainerEventsListener
-rw-r--r--org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/IPageLifeCycleEventsListener.java (renamed from org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashContainerEventsListener.java)12
-rw-r--r--org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/ISashWindowsContainer.java5
-rw-r--r--org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/SashTabDecorationSynchronizer.java7
-rw-r--r--org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/SashWindowsEventsProvider.java19
-rw-r--r--org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashContainerEventsProvider.java20
-rw-r--r--org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashWindowsContainer.java5
6 files changed, 38 insertions, 30 deletions
diff --git a/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashContainerEventsListener.java b/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/IPageLifeCycleEventsListener.java
index 869a446b8a9..4460f01405e 100644
--- a/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashContainerEventsListener.java
+++ b/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/IPageLifeCycleEventsListener.java
@@ -1,20 +1,21 @@
/**
*
*/
-package org.eclipse.papyrus.infra.core.sasheditor.internal;
+package org.eclipse.papyrus.infra.core.sasheditor.editor;
import org.eclipse.papyrus.infra.core.sasheditor.editor.IPage;
import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener;
/**
- * Interface to be implemented by listeners on {@link SashWindowsContainer} life
- * cycle events.
+ * This Interface allows to listen on events thrown during the life
+ * cycle of an IPage.
+ *
*
* @author cedric dumoulin
*
*/
-public interface SashContainerEventsListener extends IPageChangedListener {
+public interface IPageLifeCycleEventsListener extends IPageChangedListener {
/**
*
@@ -40,6 +41,7 @@ public interface SashContainerEventsListener extends IPageChangedListener {
/**
* The specify page is deactivated.
+ * This event is never thrown actually.
*
* @param page
* The page firing the event.
@@ -54,7 +56,7 @@ public interface SashContainerEventsListener extends IPageChangedListener {
public void pageAboutToBeOpened(IPage page);
/**
- *
+ * This event is never thrown actually.
* @param page
* The page firing the event.
*/
diff --git a/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/ISashWindowsContainer.java b/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/ISashWindowsContainer.java
index 27857bfeb91..d6e986bc468 100644
--- a/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/ISashWindowsContainer.java
+++ b/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/ISashWindowsContainer.java
@@ -4,7 +4,6 @@ import java.util.List;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ISashWindowsContentProvider;
-import org.eclipse.papyrus.infra.core.sasheditor.internal.SashContainerEventsListener;
import org.eclipse.ui.IEditorPart;
public interface ISashWindowsContainer {
@@ -78,7 +77,7 @@ public interface ISashWindowsContainer {
* @param listener
*
*/
- public void addLifeCycleListener(SashContainerEventsListener listener);
+ public void addPageLifeCycleListener(IPageLifeCycleEventsListener listener);
/**
* Remove a listener on Page LifeCycle events.
@@ -87,7 +86,7 @@ public interface ISashWindowsContainer {
* @param listener
*
*/
- public void removeLifeCycleListener(SashContainerEventsListener listener);
+ public void removePageLifeCycleListener(IPageLifeCycleEventsListener listener);
/**
* Set a {@link MenuManager} used to manage a contextual menu that is shown on the tabs area of the folders.
* @param menuManager The {@link MenuManager} used to create the menu on the tab area.
diff --git a/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/SashTabDecorationSynchronizer.java b/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/SashTabDecorationSynchronizer.java
index 7a3863eed96..353052ade55 100644
--- a/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/SashTabDecorationSynchronizer.java
+++ b/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/SashTabDecorationSynchronizer.java
@@ -5,7 +5,6 @@ package org.eclipse.papyrus.infra.core.sasheditor.editor;
import java.util.logging.Logger;
-import org.eclipse.papyrus.infra.core.sasheditor.internal.SashContainerEventsListener;
import org.eclipse.papyrus.infra.core.sasheditor.internal.SashWindowsContainer;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IPropertyListener;
@@ -39,7 +38,7 @@ public class SashTabDecorationSynchronizer {
/**
* Listener on Container'pages life cycle.
*/
- SashContainerEventsListener pageLifeCycleListener = new SashContainerEventsListener() {
+ IPageLifeCycleEventsListener pageLifeCycleListener = new IPageLifeCycleEventsListener() {
public void pageChanged(IPage newPage) {
}
@@ -105,7 +104,7 @@ public class SashTabDecorationSynchronizer {
* Attach listeners requested by the class.
*/
protected void attachListeners() {
- container.addLifeCycleListener(pageLifeCycleListener);
+ container.addPageLifeCycleListener(pageLifeCycleListener);
}
/**
@@ -113,7 +112,7 @@ public class SashTabDecorationSynchronizer {
*/
protected void detachListeners() {
if( !container.isDisposed()) {
- container.removeLifeCycleListener(pageLifeCycleListener);
+ container.removePageLifeCycleListener(pageLifeCycleListener);
}
}
diff --git a/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/SashWindowsEventsProvider.java b/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/SashWindowsEventsProvider.java
index d43ecb505ad..3229c8ef3a9 100644
--- a/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/SashWindowsEventsProvider.java
+++ b/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/editor/SashWindowsEventsProvider.java
@@ -13,10 +13,15 @@ import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
/**
- * This class allows to listen on events from the {@link SashWindowsContainer}:
+ * This class allows to listen on events coming from all the active main Editors containing
+ * a {@link SashWindowsContainer}. It send events when the active editor change and it contains
+ * a {@link SashWindowsContainer}, and when the active page of one of the container has changed.
+ *
+ * <br>
+ * This class allow to listen on following events:
* <ul>
* <li>pageChanged - a page has changed in the current container</li>
- * <li>- containerChanged - the active editor has changed, and so the currently active container.</li>
+ * <li>containerChanged - the active editor has changed, and so the currently active container.</li>
* </ul>
*
* This class require the current Eclipse page in order to listen on active editor changed.
@@ -120,11 +125,11 @@ public class SashWindowsEventsProvider {
workbenchPage = page;
// Get the currently active container, if any.
- ISashWindowsContainer newContainer = null;
- IEditorPart editorPart = page.getActiveEditor();
- if(editorPart != null) {
- newContainer = (ISashWindowsContainer)editorPart.getAdapter(ISashWindowsContainer.class);
- }
+// ISashWindowsContainer newContainer = null;
+// IEditorPart editorPart = page.getActiveEditor();
+// if(editorPart != null) {
+// newContainer = (ISashWindowsContainer)editorPart.getAdapter(ISashWindowsContainer.class);
+// }
// // Set SashContainer and ActivePage
// currentContainer = newContainer;
diff --git a/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashContainerEventsProvider.java b/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashContainerEventsProvider.java
index 721f9d30c14..4dc1479f45b 100644
--- a/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashContainerEventsProvider.java
+++ b/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashContainerEventsProvider.java
@@ -6,6 +6,8 @@ package org.eclipse.papyrus.infra.core.sasheditor.internal;
import java.util.ArrayList;
import java.util.List;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageLifeCycleEventsListener;
+
/**
* A class managing events of the {@link SashWindowsContainer}.
@@ -18,14 +20,14 @@ import java.util.List;
public class SashContainerEventsProvider {
/** List of listeners */
- private List<SashContainerEventsListener> listeners = new ArrayList<SashContainerEventsListener>();
+ private List<IPageLifeCycleEventsListener> listeners = new ArrayList<IPageLifeCycleEventsListener>();
/**
* Add a listener on the activeEditorChange event.
*
* @param listener
*/
- public void addListener(SashContainerEventsListener listener) {
+ public void addListener(IPageLifeCycleEventsListener listener) {
// no duplicate
if(listeners.contains(listener))
return;
@@ -37,7 +39,7 @@ public class SashContainerEventsProvider {
*
* @param listener
*/
- public void removeListener(SashContainerEventsListener listener) {
+ public void removeListener(IPageLifeCycleEventsListener listener) {
listeners.remove(listener);
}
@@ -48,7 +50,7 @@ public class SashContainerEventsProvider {
*/
public void firePageOpenedEvent(PagePart page) {
// Fire events to internal listeners
- for(SashContainerEventsListener listener : listeners) {
+ for(IPageLifeCycleEventsListener listener : listeners) {
listener.pageOpened(page);
}
}
@@ -59,7 +61,7 @@ public class SashContainerEventsProvider {
*/
public void firePageClosedEvent(PagePart page) {
// Fire events to internal listeners
- for(SashContainerEventsListener listener : listeners) {
+ for(IPageLifeCycleEventsListener listener : listeners) {
listener.pageClosed(page);
}
}
@@ -70,7 +72,7 @@ public class SashContainerEventsProvider {
*/
public void firePageAboutToBeOpenedEvent(PagePart page) {
// Fire events to internal listeners
- for(SashContainerEventsListener listener : listeners) {
+ for(IPageLifeCycleEventsListener listener : listeners) {
listener.pageAboutToBeOpened(page);
}
}
@@ -81,7 +83,7 @@ public class SashContainerEventsProvider {
*/
public void firePageAboutToBeClosedEvent(PagePart page) {
// Fire events to internal listeners
- for(SashContainerEventsListener listener : listeners) {
+ for(IPageLifeCycleEventsListener listener : listeners) {
listener.pageAboutToBeClosed(page);
}
}
@@ -92,7 +94,7 @@ public class SashContainerEventsProvider {
*/
public void firePageActivatedEvent(PagePart page) {
// Fire events to internal listeners
- for(SashContainerEventsListener listener : listeners) {
+ for(IPageLifeCycleEventsListener listener : listeners) {
listener.pageActivated(page);
}
}
@@ -103,7 +105,7 @@ public class SashContainerEventsProvider {
*/
public void firePageDeactivatedEvent(PagePart page) {
// Fire events to internal listeners
- for(SashContainerEventsListener listener : listeners) {
+ for(IPageLifeCycleEventsListener listener : listeners) {
listener.pageDeactivated(page);
}
}
diff --git a/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashWindowsContainer.java b/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashWindowsContainer.java
index ac3742e1c9d..d81108b4557 100644
--- a/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashWindowsContainer.java
+++ b/org.eclipse.papyrus.infra.core.sasheditor/src/org/eclipse/papyrus/infra/core/sasheditor/internal/SashWindowsContainer.java
@@ -28,6 +28,7 @@ import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ISashWindowsCon
import org.eclipse.papyrus.infra.core.sasheditor.editor.IEditorPage;
import org.eclipse.papyrus.infra.core.sasheditor.editor.IPage;
import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageLifeCycleEventsListener;
import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageVisitor;
import org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer;
import org.eclipse.swt.SWT;
@@ -935,7 +936,7 @@ public class SashWindowsContainer implements ISashWindowsContainer {
* @param listener
*
*/
- public void addLifeCycleListener(SashContainerEventsListener listener) {
+ public void addPageLifeCycleListener(IPageLifeCycleEventsListener listener) {
lifeCycleEventProvider.addListener(listener);
}
@@ -946,7 +947,7 @@ public class SashWindowsContainer implements ISashWindowsContainer {
* @param listener
*
*/
- public void removeLifeCycleListener(SashContainerEventsListener listener) {
+ public void removePageLifeCycleListener(IPageLifeCycleEventsListener listener) {
lifeCycleEventProvider.removeListener(listener);
}

Back to the top