| /******************************************************************************* |
| * 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.fwk.mvp.ui;
|
|
|
| import java.util.ArrayList;
|
| import java.util.Collection;
|
| import java.util.Collections;
|
| import java.util.HashSet;
|
|
|
| import org.eclipse.swt.widgets.Composite;
|
|
|
| /**
|
| * Supports implementing an MVP-view if it is not possible to use one of the
|
| * base classes provided by MVP.
|
| *
|
| * * @see IView
|
| * @deprecated the old ui layer architecture is not being used any more rendering this class obsolete
|
| */
|
| @Deprecated
|
| public class ViewDelegate implements IView {
|
|
|
| /**
|
| * The registered {@link IViewListener}s.
|
| */
|
| protected Collection<IViewListener> viewListeners =
|
| Collections.synchronizedCollection(new HashSet<IViewListener>());
|
|
|
| private final IView view;
|
|
|
| /**
|
| * @param view
|
| * The MVP-view that delegates to this. Must not be null!
|
| */
|
| public ViewDelegate(final IView view) {
|
| if (view == null) {
|
| throw new IllegalArgumentException("The view must not be null"); //$NON-NLS-1$
|
| }
|
| this.view = view;
|
| }
|
|
|
| /**
|
| * @see org.eclipse.wst.sse.sieditor.fwk.mvp.ui.IView#addViewListener(org.eclipse.wst.sse.sieditor.fwk.mvp.ui.IViewListener)
|
| */
|
| public boolean addViewListener(final IViewListener viewListener) {
|
| return viewListeners.add(viewListener);
|
| }
|
|
|
| /**
|
| * @return The {@link IViewListener}s as unmodifiable.
|
| */
|
| public Collection<IViewListener> getViewListeners() {
|
| return Collections.unmodifiableCollection(viewListeners);
|
| }
|
|
|
| /**
|
| * Notifies the {@link IViewListener}s that a view was created.
|
| */
|
| public void notifyViewCreated() {
|
| // Make a copy to enable modifications of during iteration.
|
| final Collection<IViewListener> localViewListeners =
|
| new ArrayList<IViewListener>(viewListeners);
|
| for (final IViewListener viewListener : localViewListeners) {
|
| viewListener.viewCreated(view);
|
| }
|
| }
|
|
|
| /**
|
| * Notifies the {@link IViewListener}s that a view is about to be disposed.
|
| */
|
| public void notifyViewDispose() {
|
| // Make a copy to enable modifications of during iteration.
|
| final Collection<IViewListener> localViewListeners =
|
| new ArrayList<IViewListener>(viewListeners);
|
| for (final IViewListener viewListener : localViewListeners) {
|
| viewListener.viewDispose(view);
|
| }
|
| }
|
|
|
| /**
|
| * @see org.eclipse.wst.sse.sieditor.fwk.mvp.ui.IView#removeViewListener(org.eclipse.wst.sse.sieditor.fwk.mvp.ui.IViewListener)
|
| */
|
| public boolean removeViewListener(final IViewListener viewListener) {
|
| return viewListeners.remove(viewListener);
|
| }
|
|
|
| /**
|
| * this returns an SWT Composite and is used to create its children
|
| */
|
| public Composite getUIHost() {
|
| return view.getUIHost();
|
| }
|
|
|
|
|
| }
|