diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/FC2PFSynchronizer.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/FC2PFSynchronizer.java | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/FC2PFSynchronizer.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/FC2PFSynchronizer.java deleted file mode 100644 index 334b5b418..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/FC2PFSynchronizer.java +++ /dev/null @@ -1,268 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 Sybase, Inc. and others. - * - * 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: - * Sybase, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.jsf.facesconfig.ui.pageflow.synchronization; - -import org.eclipse.core.runtime.Assert; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.Notifier; -import org.eclipse.emf.common.notify.impl.AdapterImpl; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.jst.jsf.common.ui.internal.logging.Logger; -import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigPackage; -import org.eclipse.jst.jsf.facesconfig.emf.FromViewIdType; -import org.eclipse.jst.jsf.facesconfig.emf.NavigationCaseType; -import org.eclipse.jst.jsf.facesconfig.emf.NavigationRuleType; -import org.eclipse.jst.jsf.facesconfig.emf.ToViewIdType; -import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin; -import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage; - -/** - * The adapter that listens to modification of faces-config and updates pageflow - * as needed. - * - * @author hmeng - * - */ - -public class FC2PFSynchronizer extends AdapterImpl { - private final boolean DEBUG = false; - - FC2PFTransformer transformer; - - private static final Logger logger = EditorPlugin - .getLogger(FC2PFSynchronizer.class); - - public FC2PFSynchronizer(FC2PFTransformer transformer) { - this.transformer = transformer; - } - - public Notifier getTarget() { - // can't set target so return null - return null; - } - - public void setTarget(Notifier newTarget) { - // do nothing - } - - public boolean isAdapterForType(Object type) { - return type == FC2PFSynchronizer.class; - } - - public void notifyChanged(Notification notification) { - if (!isProcessorFor(notification)) { - return; - } - transformer.setInEvent(true); - try { - int type = notification.getEventType(); - switch (type) { - case Notification.ADD: { - processAdd(notification); - notifyPageflow(notification); - break; - } - case Notification.SET: { - processSet(notification); - notifyPageflow(notification); - break; - } - case Notification.REMOVE: - processRemove(notification); - notifyPageflow(notification); - break; - } - } catch (Exception e) { - logger.error(e); - } finally { - if (notification.getEventType() != Notification.REMOVING_ADAPTER) { - transformer.refreshFCAdapter((EObject) notification - .getNotifier()); - transformer.refreshPFAdapter(transformer.getPageflow()); - } - transformer.setInEvent(false); - } - } - - private boolean isProcessorFor(Notification notification) { - boolean result = false; - if (transformer.isListenToNotify() - && (notification.getNotifier() instanceof EObject)) { - if (notification.getNotifier() == transformer.getFacesConfig()) { - // For faces-config, only navigation rule's change is awared. - if (notification.getFeature() == FacesConfigPackage.eINSTANCE - .getFacesConfigType_NavigationRule()) { - result = true; - } - } else { - result = true; - } - } - return result; - } - - private void processAdd(Notification notification) { - Object feature = notification.getFeature(); - if (feature == FacesConfigPackage.eINSTANCE - .getNavigationRuleType_NavigationCase()) { - if (DEBUG) - System.out.println("New navigation case"); - NavigationCaseType newCase = (NavigationCaseType) notification - .getNewValue(); - transformer.updatePageflowElements(transformer.getPageflow(), - newCase); - } else if (feature == FacesConfigPackage.eINSTANCE - .getFacesConfigType_NavigationRule()) { - NavigationRuleType newRule = (NavigationRuleType) notification - .getNewValue(); - if (newRule.getNavigationCase().size() > 0) { - for (int i = 0; i < newRule.getNavigationCase().size(); i++) { - transformer.updatePageflowElements(transformer - .getPageflow(), (NavigationCaseType) newRule - .getNavigationCase().get(i)); - } - } - if (DEBUG) - System.out.println("New navigation rule"); - } else if (DEBUG) - System.out.println("Something is added"); - } - - /** - * Notify pageflow the changes. - * - * @param notification - */ - private void notifyPageflow(Notification notification) { - Assert.isTrue(notification.getNotifier() instanceof InternalEObject); - transformer.getPageflow().notifyModelChanged( - new ENotificationImpl((InternalEObject) notification - .getNotifier(), Notification.SET, - PageflowPackage.PAGEFLOW, null, null)); - } - - /** - * Deal with the case when some element is removed. - * - * @param notification - */ - private void processRemove(Notification notification) { - if (notification.getFeature() == FacesConfigPackage.eINSTANCE - .getNavigationRuleType_NavigationCase()) { - if (notification.getOldValue() instanceof NavigationCaseType) { - NavigationCaseType caseType = (NavigationCaseType) notification - .getOldValue(); - transformer.removeLink(caseType); - } - if (DEBUG) - System.out.println("Navigation case"); - } else if (notification.getFeature() == FacesConfigPackage.eINSTANCE - .getNavigationCaseType()) { - if (notification.getOldValue() instanceof NavigationRuleType) { - NavigationRuleType rule = (NavigationRuleType) notification - .getOldValue(); - for (int i = 0; i < rule.getNavigationCase().size(); i++) { - NavigationCaseType caseType = (NavigationCaseType) rule - .getNavigationCase().get(i); - transformer.refreshLink(caseType); - } - } - if (DEBUG) - System.out.println("navigation rule"); - } else if (notification.getFeature() == FacesConfigPackage.eINSTANCE - .getFacesConfigType_NavigationRule()) { - if (notification.getOldValue() instanceof NavigationRuleType) { - NavigationRuleType rule = (NavigationRuleType) notification - .getOldValue(); - for (int i = 0; i < rule.getNavigationCase().size(); i++) { - NavigationCaseType caseType = (NavigationCaseType) rule - .getNavigationCase().get(i); - transformer.refreshLink(caseType); - } - } - } - if (DEBUG) - System.out.println("Something is removed"); - } - - /** - * Deal with property change. - * - * @param notification - */ - private void processSet(Notification notification) { - Object feature = notification.getFeature(); - if (feature == FacesConfigPackage.eINSTANCE - .getFromViewIdType_TextContent() - || feature == FacesConfigPackage.eINSTANCE - .getNavigationRuleType_FromViewId()) { - fromViewIdChanged(notification); - } else if (feature == FacesConfigPackage.eINSTANCE - .getToViewIdType_TextContent() - || feature == FacesConfigPackage.eINSTANCE - .getNavigationCaseType_ToViewId()) { - toViewIdChanged(notification); - } - if (DEBUG) - System.out.println("Something is set"); - } - - private void fromViewIdChanged(Notification notification) { - // remove - Object feature = notification.getFeature(); - if (feature == FacesConfigPackage.eINSTANCE - .getNavigationRuleType_FromViewId() - && notification.getNewValue() == null - && notification.getOldValue() instanceof FromViewIdType) { - NavigationRuleType rule = (NavigationRuleType) notification - .getNotifier(); - for (int i = 0; i < rule.getNavigationCase().size(); i++) { - NavigationCaseType caseType = (NavigationCaseType) rule - .getNavigationCase().get(i); - transformer.refreshLink(caseType); - } - } - // add or change - else if (feature == FacesConfigPackage.eINSTANCE - .getFromViewIdType_TextContent()) { - NavigationRuleType rule = (NavigationRuleType) ((EObject) notification - .getNotifier()).eContainer(); - for (int i = 0; i < rule.getNavigationCase().size(); i++) { - NavigationCaseType caseType = (NavigationCaseType) rule - .getNavigationCase().get(i); - transformer.refreshLink(caseType); - } - } - } - - private void toViewIdChanged(Notification notification) { - // remove - Object feature = notification.getFeature(); - if (feature == FacesConfigPackage.eINSTANCE - .getNavigationCaseType_ToViewId() - && notification.getNewValue() == null - && notification.getOldValue() instanceof ToViewIdType) { - NavigationCaseType caseType = (NavigationCaseType) notification - .getNotifier(); - transformer.refreshLink(caseType); - } - // add or change - else if (feature == FacesConfigPackage.eINSTANCE - .getToViewIdType_TextContent()) { - NavigationCaseType caseType = (NavigationCaseType) ((EObject) notification - .getNotifier()).eContainer(); - transformer.refreshLink(caseType); - } - } -} |