Apply bugzilla patch - Bug 340150 - DTE: Copied type in source not shown on UI
diff --git a/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/all/UITestsSuite.java b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/all/UITestsSuite.java
index 40253e0..eca9f62 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/all/UITestsSuite.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/all/UITestsSuite.java
@@ -16,6 +16,7 @@
import org.eclipse.wst.sse.sieditor.test.core.common.TestDisposableInstances;
import org.eclipse.wst.sse.sieditor.test.model.commands.TestUndoRedoInSourceAndEMF;
+import org.eclipse.wst.sse.sieditor.test.ui.PageChangedListenersManagerTest;
import org.eclipse.wst.sse.sieditor.test.ui.TestAbstractDetailsPage;
import org.eclipse.wst.sse.sieditor.test.ui.TestServiceInterfaceEditor;
import org.eclipse.wst.sse.sieditor.test.ui.preferences.TestServiceInterfaceEditorPreferencePage;
@@ -266,18 +267,17 @@
ElementDetailsSectionRefreshFromRefToNonRefReLayoutTest.class,
TestSIEActionEnablementForSelectionManager.class,
TestServiceInterfaceEditor.class,
-
EditorTitleMessagesManagerTest.class,
TestIsSetEditValidatorWhenCreateModel.class,
TestDisposableInstances.class,
TestSetSelectionInSourceWithDataTypesEditor.class,
TestSetSelectionInSourceWithSIEditor.class,
-
ExtractNamespaceWizardTest.class,
ExtractSchemaTextFieldModifyListenerTest.class,
TestSetSelectionInDTPageFromSourcePageWithDTE.class,
TestSetSelectionInSIPageFromSourcePageWithSIE.class,
- TestTypePropertyEditorHyperLinkSelection.class
+ TestTypePropertyEditorHyperLinkSelection.class,
+ PageChangedListenersManagerTest.class
})
public class UITestsSuite {
diff --git a/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/PageChangedListenersManagerTest.java b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/PageChangedListenersManagerTest.java
new file mode 100644
index 0000000..7900cd0
--- /dev/null
+++ b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/PageChangedListenersManagerTest.java
@@ -0,0 +1,56 @@
+package org.eclipse.wst.sse.sieditor.test.ui;
+
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
+import java.util.List;
+
+import org.eclipse.wst.sse.sieditor.model.api.IModelRoot;
+import org.eclipse.wst.sse.sieditor.test.util.SIEditorBaseTest;
+import org.eclipse.wst.sse.sieditor.ui.ServiceInterfaceEditor;
+import org.eclipse.wst.sse.sieditor.ui.listeners.IPageChangedListener;
+import org.eclipse.wst.sse.sieditor.ui.listeners.PageChangedListenersManager;
+import org.eclipse.wst.sse.sieditor.ui.listeners.impl.ModelReconcilerPageChangedLister;
+import org.eclipse.wst.sse.sieditor.ui.listeners.impl.SelectionUpdaterPageChangedListener;
+import org.eclipse.wst.sse.sieditor.ui.listeners.impl.TreeRefresherPageChangedListener;
+import org.eclipse.wst.sse.sieditor.ui.view.impl.SISourceEditorPart;
+import org.junit.Test;
+
+public class PageChangedListenersManagerTest extends SIEditorBaseTest {
+
+ @Test
+ public void testCreatePageChangedListeners() {
+ SISourceEditorPart sourcePage = new SISourceEditorPart();
+ PageChangedListenersManager pageChangedListenersManager = new PageChangedListenersManager(sourcePage);
+
+ List<IPageChangedListener> listeners = pageChangedListenersManager.getListeners();
+ assertEquals(ModelReconcilerPageChangedLister.class, listeners.get(0).getClass());
+ assertEquals(SelectionUpdaterPageChangedListener.class, listeners.get(1).getClass());
+ assertEquals(TreeRefresherPageChangedListener.class, listeners.get(2).getClass());
+ }
+
+ @Test
+ public void testNotifyPageChangedListeners() throws Exception {
+ final int OLD_PAGE_INDEX = 1;
+ final int NEW_PAGE_INDEX = 0;
+
+ // open the editor in order to get an instance of it in the protected
+ // "editor" variable
+ IModelRoot modelRoot = getModelRoot("pub/csns/renameMultiReferredPart.wsdl", //$NON-NLS-1$
+ "renameMultiReferredPart.wsdl", ServiceInterfaceEditor.EDITOR_ID);
+
+ editor.pageChange(OLD_PAGE_INDEX);
+
+ IPageChangedListener mockPageChangedListener = createMock(IPageChangedListener.class);
+ mockPageChangedListener.pageChanged(NEW_PAGE_INDEX, OLD_PAGE_INDEX, editor.getPages(), modelRoot);
+ replay(mockPageChangedListener);
+
+ editor.getPageChangedListenersManager().addPageChangeListener(mockPageChangedListener);
+
+ editor.pageChange(NEW_PAGE_INDEX);
+
+ verify(mockPageChangedListener);
+ }
+
+}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/common/TestTypePropertyEditorHyperLinkSelection.java b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/common/TestTypePropertyEditorHyperLinkSelection.java
index e7b79ac..5cc3c42 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/common/TestTypePropertyEditorHyperLinkSelection.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/common/TestTypePropertyEditorHyperLinkSelection.java
@@ -18,19 +18,6 @@
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.wst.sse.sieditor.ui.v2.AbstractFormPageController;
-import org.eclipse.wst.sse.sieditor.ui.v2.dt.DataTypesEditorPage;
-import org.eclipse.wst.sse.sieditor.ui.v2.dt.ITypeDisplayer;
-import org.eclipse.wst.sse.sieditor.ui.v2.newtypedialog.ITypeDialogStrategy;
-import org.eclipse.wst.sse.sieditor.ui.v2.nodes.ITreeNode;
-import org.eclipse.wst.sse.sieditor.ui.v2.propertyeditor.TypePropertyEditor;
-import org.eclipse.wst.sse.sieditor.ui.v2.propertyeditor.typecommitters.ITypeCommitter;
-import org.eclipse.wst.sse.sieditor.test.util.ResourceUtils;
-import org.eclipse.wst.sse.sieditor.test.util.SIEditorBaseTest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
import org.eclipse.wst.sse.sieditor.model.api.IWsdlModelRoot;
import org.eclipse.wst.sse.sieditor.model.wsdl.api.IDescription;
import org.eclipse.wst.sse.sieditor.model.wsdl.api.IOperation;
@@ -39,8 +26,22 @@
import org.eclipse.wst.sse.sieditor.model.xsd.api.ISchema;
import org.eclipse.wst.sse.sieditor.model.xsd.api.IStructureType;
import org.eclipse.wst.sse.sieditor.model.xsd.api.IType;
+import org.eclipse.wst.sse.sieditor.test.util.ResourceUtils;
+import org.eclipse.wst.sse.sieditor.test.util.SIEditorBaseTest;
import org.eclipse.wst.sse.sieditor.ui.AbstractEditorPage;
import org.eclipse.wst.sse.sieditor.ui.ServiceInterfaceEditor;
+import org.eclipse.wst.sse.sieditor.ui.v2.AbstractFormPageController;
+import org.eclipse.wst.sse.sieditor.ui.v2.dt.DataTypesEditorPage;
+import org.eclipse.wst.sse.sieditor.ui.v2.dt.DataTypesFormPageController;
+import org.eclipse.wst.sse.sieditor.ui.v2.dt.ITypeDisplayer;
+import org.eclipse.wst.sse.sieditor.ui.v2.newtypedialog.ITypeDialogStrategy;
+import org.eclipse.wst.sse.sieditor.ui.v2.nodes.ITreeNode;
+import org.eclipse.wst.sse.sieditor.ui.v2.propertyeditor.TypePropertyEditor;
+import org.eclipse.wst.sse.sieditor.ui.v2.propertyeditor.typecommitters.ITypeCommitter;
+import org.eclipse.wst.sse.sieditor.ui.v2.wsdl.controller.SIFormPageController;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
@SuppressWarnings( { "nls", "deprecation" })
public class TestTypePropertyEditorHyperLinkSelection extends SIEditorBaseTest {
@@ -57,8 +58,8 @@
private TypePropertyEditorTest typePropEditor;
private DataTypesEditorPage dtPage;
private AbstractEditorPage serviceInterfaceEditorPage;
- private AbstractFormPageController siController;
- private AbstractFormPageController dtController;
+ private SIFormPageController siController;
+ private DataTypesFormPageController dtController;
private class TypePropertyEditorTest extends TypePropertyEditor {
@@ -164,8 +165,8 @@
typePropEditor.initTypeDisplayer(new DataTypeEditorPageTest(dtPage.getEditor()));
serviceInterfaceEditorPage = (AbstractEditorPage) editor.getPages().get(0);
- siController = serviceInterfaceEditorPage.getController();
- dtController = ((AbstractEditorPage) editor.getPages().get(1)).getController();
+ siController = (SIFormPageController)serviceInterfaceEditorPage.getController();
+ dtController = (DataTypesFormPageController)((AbstractEditorPage) editor.getPages().get(1)).getController();
}
@Test
@@ -227,7 +228,7 @@
@Test
public void testTypeHyperLinkWithImportedMessage() throws Exception {
- final IOperation operation = modelDescription.getInterface("ServiceInterface1").get(0) //$NON-NLS-1$
+ final IOperation operation = modelDescription.getInterface("ServiceInterface1").get(0) //$NON-NLS-1$
.getOperation("NewOperation1").get(0); //$NON-NLS-1$
final IParameter importedWsdlType1 = operation.getInputParameter("importedWsdlType1").get(0);
@@ -240,7 +241,7 @@
}
- private void handleLinkActivatedWhenSelectedTypeIsNotVisible(final IParameter importedWsdlType1,
+ private void handleLinkActivatedWhenSelectedTypeIsNotVisible(final IParameter importedWsdlType1,
final IParameter importedWsdlFromSchemaType) {
selectedTypeExistInVisibleSchemas[0] = true;
final ITreeNode treeNodeForInternalType1 = siController.getTreeNodeMapper().getTreeNode(importedWsdlType1);
diff --git a/plugins/org.eclipse.wst.sse.sieditor.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.sse.sieditor.ui/META-INF/MANIFEST.MF
index 99a7e05..45d562b 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.sse.sieditor.ui/META-INF/MANIFEST.MF
@@ -41,7 +41,8 @@
org.eclipse.swt.graphics,
org.osgi.framework",
org.eclipse.wst.sse.sieditor.ui.i18n;uses:="org.eclipse.osgi.util",
- org.eclipse.wst.sse.sieditor.ui.listeners;uses:="org.eclipse.wst.sse.sieditor.fwk.mvp.ui",
+ org.eclipse.wst.sse.sieditor.ui.listeners,
+ org.eclipse.wst.sse.sieditor.ui.listeners.impl,
org.eclipse.wst.sse.sieditor.ui.preedit,
org.eclipse.wst.sse.sieditor.ui.preferences,
org.eclipse.wst.sse.sieditor.ui.providers;
diff --git a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/AbstractEditorWithSourcePage.java b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/AbstractEditorWithSourcePage.java
index d7296a0..7be6a24 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/AbstractEditorWithSourcePage.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/AbstractEditorWithSourcePage.java
@@ -59,10 +59,6 @@
import org.eclipse.ui.texteditor.IDocumentProvider;
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.document.XMLModelNotifier;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Document;
-
import org.eclipse.wst.sse.sieditor.command.common.SaveCommand;
import org.eclipse.wst.sse.sieditor.core.common.IEnvironment;
import org.eclipse.wst.sse.sieditor.core.common.Logger;
@@ -83,10 +79,9 @@
import org.eclipse.wst.sse.sieditor.model.wsdl.api.IDescription;
import org.eclipse.wst.sse.sieditor.model.xsd.api.ISchema;
import org.eclipse.wst.sse.sieditor.ui.i18n.Messages;
+import org.eclipse.wst.sse.sieditor.ui.listeners.PageChangedListenersManager;
import org.eclipse.wst.sse.sieditor.ui.preedit.EditValidator;
import org.eclipse.wst.sse.sieditor.ui.providers.SurrogateSelectionProvider;
-import org.eclipse.wst.sse.sieditor.ui.v2.PageChangedReconcileManager;
-import org.eclipse.wst.sse.sieditor.ui.v2.PageChangedSelectionManager;
import org.eclipse.wst.sse.sieditor.ui.v2.UIConstants;
import org.eclipse.wst.sse.sieditor.ui.v2.common.ThreadUtils;
import org.eclipse.wst.sse.sieditor.ui.v2.common.ValidationListener;
@@ -94,6 +89,9 @@
import org.eclipse.wst.sse.sieditor.ui.v2.resources.ResourceChangeHandler;
import org.eclipse.wst.sse.sieditor.ui.v2.wsdl.formpage.ServiceIntefaceEditorPage;
import org.eclipse.wst.sse.sieditor.ui.view.impl.SISourceEditorPart;
+import org.eclipse.wst.xml.core.internal.document.XMLModelNotifier;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.w3c.dom.Document;
/**
* Base class to provide common infrastructure for the Service Interface editor
@@ -141,8 +139,7 @@
private IStructuredModel structuredModel;
- private PageChangedSelectionManager pageChangedSelectionManager;
- private PageChangedReconcileManager pageChangedReconcileManager;
+ private PageChangedListenersManager pageChangedListenersManager;
public AbstractEditorWithSourcePage() {
super();
@@ -366,8 +363,8 @@
try {
sourcePage = new SISourceEditorPart();
- pageChangedSelectionManager = new PageChangedSelectionManager(sourcePage);
- pageChangedReconcileManager = new PageChangedReconcileManager();
+
+ pageChangedListenersManager = new PageChangedListenersManager(sourcePage);
addPage(sourcePage, in);
sourcePage.initPart(in, this);
@@ -395,6 +392,7 @@
public void reloadModel(final IStorageEditorInput newEditorInput, final boolean syncExec) {
final Runnable reloadRunnable = new Runnable() {
+ @Override
public void run() {
// Clear undo/redo history
final int oldUndoLimit = operationHistory.getLimit(undoContext);
@@ -465,6 +463,7 @@
private void revertModelToSaved() {
final Runnable executeReload = new Runnable() {
+ @Override
public void run() {
// this command should not notify SIE Model
final AbstractEMFOperation reloadCommand = new AbstractEMFOperation(commonModel.getEnv().getEditingDomain(),
@@ -495,8 +494,8 @@
final IStatus status = reloadCommand.execute(null, null);
if (!StatusUtils.canContinue(status)) {
Logger.log(status);
- StatusUtils.showStatusDialog(Messages.AbstractEditorWithSourcePage_1, MessageFormat.format(
- Messages.AbstractEditorWithSourcePage_2, getPartName()), status);
+ StatusUtils.showStatusDialog(Messages.AbstractEditorWithSourcePage_1,
+ MessageFormat.format(Messages.AbstractEditorWithSourcePage_2, getPartName()), status);
}
} catch (final ExecutionException e) {
throw new RuntimeException(e);
@@ -510,6 +509,7 @@
protected abstract void validate();
+ @Override
public void gotoMarker(final IMarker marker) {
}
@@ -521,18 +521,14 @@
public void pageChange(final int newPageIndex) {
final int oldPageIndex = getCurrentPage();
super.pageChange(newPageIndex);
- if (pageChangedSelectionManager != null) {
- pageChangedSelectionManager.performSelection(newPageIndex, oldPageIndex, getPages(), getModelRoot());
- }
- if (pageChangedReconcileManager != null) {
- pageChangedReconcileManager.performReconcile(newPageIndex, oldPageIndex, getPages(), getModelRoot());
- }
+ getPageChangedListenersManager().notifyPageChanged(newPageIndex, oldPageIndex, getPages(), getModelRoot());
}
protected void validate(final Collection<? extends IModelObject> validatedEntitites) {
final Set<String> locationUris = new HashSet<String>();
final IWorkspaceRunnable vr = new IWorkspaceRunnable() {
+ @Override
public void run(final IProgressMonitor monitor) throws CoreException {
final Set<IModelObject> validatedObjects = new HashSet<IModelObject>();
@@ -677,4 +673,8 @@
public IStructuredModel getStructuredModel() {
return structuredModel;
}
+
+ public PageChangedListenersManager getPageChangedListenersManager() {
+ return pageChangedListenersManager;
+ }
}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/IPageChangedListener.java b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/IPageChangedListener.java
new file mode 100644
index 0000000..0a98e32
--- /dev/null
+++ b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/IPageChangedListener.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2010 SAP AG.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Stanislav Nichev - initial API and implementation.
+ * Dimitar Tenev - refactoring.
+ *******************************************************************************/
+package org.eclipse.wst.sse.sieditor.ui.listeners;
+
+import java.util.List;
+
+import org.eclipse.wst.sse.sieditor.model.api.IModelRoot;
+
+/**
+ *
+ * This listener is responsible for the handling of the SIE/DTE page changes
+ * events (for example page is changed from the source page to the data types
+ * page)
+ *
+ */
+public interface IPageChangedListener {
+
+ public void pageChanged(final int newPageIndex, final int oldPageIndex, final List pages, final IModelRoot modelRoot);
+
+}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/ISIFWizardListener.java b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/ISIFWizardListener.java
deleted file mode 100644
index cf13907..0000000
--- a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/ISIFWizardListener.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 SAP AG.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Emil Simeonov - initial API and implementation.
- * Dimitar Donchev - initial API and implementation.
- * Dimitar Tenev - initial API and implementation.
- * Nevena Manova - initial API and implementation.
- * Georgi Konstantinov - initial API and implementation.
- *******************************************************************************/
-package org.eclipse.wst.sse.sieditor.ui.listeners;
-
-public interface ISIFWizardListener {
-
- /**
- * Action to be taken when Finish id pressed on the wizard
- * @return - Returns true if File is created successfully
- * - Returns false if there are errors while creating the File
- */
- boolean performFinish();
-}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/ISIFWizardPageListener.java b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/ISIFWizardPageListener.java
deleted file mode 100644
index ee48f7e..0000000
--- a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/ISIFWizardPageListener.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 SAP AG.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Emil Simeonov - initial API and implementation.
- * Dimitar Donchev - initial API and implementation.
- * Dimitar Tenev - initial API and implementation.
- * Nevena Manova - initial API and implementation.
- * Georgi Konstantinov - initial API and implementation.
- *******************************************************************************/
-package org.eclipse.wst.sse.sieditor.ui.listeners;
-
-import org.eclipse.wst.sse.sieditor.fwk.mvp.ui.IViewListener;
-
-public interface ISIFWizardPageListener extends IViewListener {
-
- /**
- * Used to validate the ServiceInterface name
- */
- void validateInterfaceName();
-
- /**
- * Used to validate the Location where the WSDL would be created
- */
- void validateSavedLocation();
-
- /**
- * Used to validate the namspace of the WSDL
- */
- void validateWsdlNamespace();
-
- /**
- * Used to validate the namespace of a Schema
- */
- void validateSchemaNamespace();
-
- /**
- * Used to show the dialog for all projects, to select a save location
- */
- void showDiloag();
-
- /**
- *
- * @return - Returns true if all fields are filled and validated
- */
- boolean canFinish();
-
- /**
- * Validates if the page is complete and all entries are valid
- */
- void validatePage();
-}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/PageChangedListenersManager.java b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/PageChangedListenersManager.java
new file mode 100644
index 0000000..6b2282b
--- /dev/null
+++ b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/PageChangedListenersManager.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2010 SAP AG.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Emil Simeonov - initial API and implementation.
+ * Dimitar Donchev - initial API and implementation.
+ * Dimitar Tenev - initial API and implementation.
+ * Nevena Manova - initial API and implementation.
+ * Georgi Konstantinov - initial API and implementation.
+ *******************************************************************************/
+package org.eclipse.wst.sse.sieditor.ui.listeners;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.wst.sse.sieditor.model.api.IModelRoot;
+import org.eclipse.wst.sse.sieditor.ui.listeners.impl.ModelReconcilerPageChangedLister;
+import org.eclipse.wst.sse.sieditor.ui.listeners.impl.SelectionUpdaterPageChangedListener;
+import org.eclipse.wst.sse.sieditor.ui.listeners.impl.TreeRefresherPageChangedListener;
+import org.eclipse.wst.sse.sieditor.ui.view.impl.SISourceEditorPart;
+
+public class PageChangedListenersManager {
+
+ private List<IPageChangedListener> listeners;
+
+ private final SISourceEditorPart sourcePage;
+
+ public PageChangedListenersManager(SISourceEditorPart sourcePage) {
+ super();
+ this.sourcePage = sourcePage;
+ initializeDefaultPageChangedListeners();
+ }
+
+ private void initializeDefaultPageChangedListeners() {
+ listeners = new ArrayList<IPageChangedListener>();
+
+ listeners.add(new ModelReconcilerPageChangedLister());
+ listeners.add(new SelectionUpdaterPageChangedListener(sourcePage));
+ listeners.add(new TreeRefresherPageChangedListener());
+ }
+
+ public void notifyPageChanged(int newPageIndex, int oldPageIndex, List pages, IModelRoot modelRoot) {
+ for (IPageChangedListener listener : listeners) {
+ listener.pageChanged(newPageIndex, oldPageIndex, pages, modelRoot);
+ }
+ }
+
+ public List<IPageChangedListener> getListeners() {
+ return Collections.unmodifiableList(listeners);
+ }
+
+ public void addPageChangeListener(IPageChangedListener pageChangedListener) {
+ listeners.add(pageChangedListener);
+ }
+
+}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/v2/PageChangedReconcileManager.java b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/impl/ModelReconcilerPageChangedLister.java
similarity index 82%
rename from plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/v2/PageChangedReconcileManager.java
rename to plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/impl/ModelReconcilerPageChangedLister.java
index 1917c9c..8c34c1f 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/v2/PageChangedReconcileManager.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/impl/ModelReconcilerPageChangedLister.java
@@ -12,7 +12,7 @@
* Nevena Manova - initial API and implementation.
* Georgi Konstantinov - initial API and implementation.
*******************************************************************************/
-package org.eclipse.wst.sse.sieditor.ui.v2;
+package org.eclipse.wst.sse.sieditor.ui.listeners.impl;
import java.util.List;
@@ -20,11 +20,12 @@
import org.eclipse.wst.sse.sieditor.model.reconcile.IModelReconciler;
import org.eclipse.wst.sse.sieditor.model.reconcile.ModelReconciler;
import org.eclipse.wst.sse.sieditor.ui.AbstractEditorPage;
+import org.eclipse.wst.sse.sieditor.ui.listeners.IPageChangedListener;
import org.eclipse.wst.sse.sieditor.ui.view.impl.SISourceEditorPart;
-public class PageChangedReconcileManager {
+public class ModelReconcilerPageChangedLister implements IPageChangedListener {
- public void performReconcile(final int newPageIndex, final int oldPageIndex, final List pages, final IModelRoot modelRoot) {
+ public void pageChanged(final int newPageIndex, final int oldPageIndex, final List pages, final IModelRoot modelRoot) {
if (oldPageIndex == -1) {
return;
}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/v2/PageChangedSelectionManager.java b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/impl/SelectionUpdaterPageChangedListener.java
similarity index 95%
rename from plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/v2/PageChangedSelectionManager.java
rename to plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/impl/SelectionUpdaterPageChangedListener.java
index 3f79a5c..ee1a0c8 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/v2/PageChangedSelectionManager.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/impl/SelectionUpdaterPageChangedListener.java
@@ -12,7 +12,7 @@
* Nevena Manova - initial API and implementation.
* Georgi Konstantinov - initial API and implementation.
*******************************************************************************/
-package org.eclipse.wst.sse.sieditor.ui.v2;
+package org.eclipse.wst.sse.sieditor.ui.listeners.impl;
import java.util.ArrayList;
import java.util.Collection;
@@ -37,6 +37,7 @@
import org.eclipse.wst.sse.sieditor.model.wsdl.impl.Description;
import org.eclipse.wst.sse.sieditor.model.xsd.api.ISchema;
import org.eclipse.wst.sse.sieditor.ui.AbstractEditorPage;
+import org.eclipse.wst.sse.sieditor.ui.listeners.IPageChangedListener;
import org.eclipse.wst.sse.sieditor.ui.v2.dt.DataTypesEditorPage;
import org.eclipse.wst.sse.sieditor.ui.v2.dt.DataTypesFormPageController;
import org.eclipse.wst.sse.sieditor.ui.v2.nodes.ITreeNode;
@@ -44,10 +45,10 @@
import org.eclipse.wst.sse.sieditor.ui.v2.wsdl.formpage.ServiceIntefaceEditorPage;
import org.eclipse.wst.sse.sieditor.ui.view.impl.SISourceEditorPart;
-public class PageChangedSelectionManager {
+public class SelectionUpdaterPageChangedListener implements IPageChangedListener {
private final SISourceEditorPart sourcePage;
- public PageChangedSelectionManager(final SISourceEditorPart sourcePage) {
+ public SelectionUpdaterPageChangedListener(final SISourceEditorPart sourcePage) {
this.sourcePage = sourcePage;
}
@@ -55,7 +56,7 @@
return sourcePage;
}
- public void performSelection(final int newPageIndex, final int currentPageIndex, final List pages, final IModelRoot modelRoot) {
+ public void pageChanged(final int newPageIndex, final int currentPageIndex, final List pages, final IModelRoot modelRoot) {
if (currentPageIndex == -1) {
// e.g. there is no selected page already
return;
diff --git a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/impl/TreeRefresherPageChangedListener.java b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/impl/TreeRefresherPageChangedListener.java
new file mode 100644
index 0000000..ab1f67f
--- /dev/null
+++ b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/listeners/impl/TreeRefresherPageChangedListener.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2010 SAP AG.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Emil Simeonov - initial API and implementation.
+ * Dimitar Donchev - initial API and implementation.
+ * Dimitar Tenev - initial API and implementation.
+ * Nevena Manova - initial API and implementation.
+ * Georgi Konstantinov - initial API and implementation.
+ *******************************************************************************/
+package org.eclipse.wst.sse.sieditor.ui.listeners.impl;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.wst.sse.sieditor.model.api.IModelRoot;
+import org.eclipse.wst.sse.sieditor.ui.AbstractEditorPage;
+import org.eclipse.wst.sse.sieditor.ui.listeners.IPageChangedListener;
+
+public class TreeRefresherPageChangedListener implements IPageChangedListener {
+
+ @Override
+ public void pageChanged(final int newPageIndex, final int oldPageIndex, final List pages, final IModelRoot modelRoot) {
+ if (oldPageIndex == -1) {
+ return;
+ }
+ final Object newPage = pages.get(newPageIndex);
+
+ if (!(newPage instanceof AbstractEditorPage)) {
+ return;
+ }
+ final TreeViewer treeViewer = ((AbstractEditorPage)newPage).getTreeViewer();
+ final Object[] expandedElements = treeViewer.getExpandedElements();
+ treeViewer.refresh(true);
+ treeViewer.setExpandedElements(expandedElements);
+ }
+
+}