diff options
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/adapter/AdapterElement.java')
-rw-r--r-- | plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/adapter/AdapterElement.java | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/adapter/AdapterElement.java b/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/adapter/AdapterElement.java deleted file mode 100644 index faf03dad6..000000000 --- a/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/adapter/AdapterElement.java +++ /dev/null @@ -1,199 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2003, 2005 IBM Corporation 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: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -package org.eclipse.jst.j2ee.internal.webservice.adapter; - -import java.util.Iterator; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.impl.AdapterImpl; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EFactory; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.jst.j2ee.internal.webservice.command.CommandAddElement; -import org.eclipse.jst.j2ee.internal.webservice.command.CommandRemoveElement; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.widgets.Text; -import org.eclipse.wst.common.componentcore.ArtifactEdit; - - -public class AdapterElement extends AdapterImpl implements ModifyListener { - private ArtifactEdit artifactEdit; - private EObject parent_; - private EClass childEClass_; - private EStructuralFeature childFeature_; - private boolean childNillable_; - private EStructuralFeature[] features_; - private boolean[] featuresNillable_; - private Text[] featuresTexts_; - private AdapterText[] featuresAdapters_; - - public AdapterElement(ArtifactEdit anArtifactEdit, EClass childEClass, EStructuralFeature childFeature, boolean childNillable, EStructuralFeature[] features, boolean[] featuresNillable, Text[] featuresTexts) { - super(); - artifactEdit = anArtifactEdit; - parent_ = null; - childEClass_ = childEClass; - childFeature_ = childFeature; - childNillable_ = childNillable; - features_ = features; - featuresNillable_ = featuresNillable; - featuresTexts_ = featuresTexts; - addModifyListener(); - featuresAdapters_ = new AdapterText[features_.length]; - newAdapters(null); - } - - public AdapterElement(ArtifactEdit anArtifactEdit, EObject parent, EClass childEClass, EStructuralFeature childFeature, boolean childNillable, EStructuralFeature[] features, boolean[] featuresNillable, Text[] featuresTexts) { - this(anArtifactEdit, childEClass, childFeature, childNillable, features, featuresNillable, featuresTexts); - adapt(parent); - } - - private void newAdapters(EObject eObject) { - if (eObject == null) - for (int i = 0; i < featuresAdapters_.length; i++) - featuresAdapters_[i] = new AdapterText(artifactEdit, features_[i], featuresTexts_[i], featuresNillable_[i]); - else - for (int i = 0; i < featuresAdapters_.length; i++) - featuresAdapters_[i] = new AdapterText(artifactEdit, eObject, features_[i], featuresTexts_[i], featuresNillable_[i]); - } - - private void addModifyListener() { - for (int i = 0; i < featuresTexts_.length; i++) - featuresTexts_[i].addModifyListener(this); - } - - public void notifyChanged(Notification msg) { - int type = msg.getEventType(); - if ((type == Notification.SET || type == Notification.UNSET) && msg.getFeature() == childFeature_) { - EObject child = (EObject) parent_.eGet(childFeature_); - if (child == null && !childNillable_) - child = setChild(); - for (int i = 0; i < featuresAdapters_.length; i++) - featuresAdapters_[i].adapt(child); - } - } - - public void modifyText(ModifyEvent e) { - boolean isTextsNull = isTextsNull(); - EObject child = (EObject) parent_.eGet(childFeature_); - boolean childCanBeRemoved = true; - if (child != null) { - Iterator allfeatures = childEClass_.getEAllStructuralFeatures().iterator(); - while (allfeatures.hasNext()) { - EStructuralFeature thisFeature = (EStructuralFeature) allfeatures.next(); - if (!adaptingFeature(thisFeature) && child.eIsSet(thisFeature)) { - childCanBeRemoved = false; - break; - } - } - } - if (isTextsNull && child != null && childNillable_ && childCanBeRemoved) { - disposeAdapters(); - parent_.eAdapters().remove(this); - CommandRemoveElement command = new CommandRemoveElement(null, null, parent_, childFeature_); - artifactEdit.getContentModelRoot().eResource().setModified(true); - artifactEdit.getCommandStack().execute(command); - parent_.eAdapters().add(this); - newAdapters(null); - } else if (!isTextsNull && child == null) { - disposeAdapters(); - parent_.eAdapters().remove(this); - child = createChild(); - for (int i = 0; i < features_.length; i++) { - String text = featuresTexts_[i].getText(); - if (text != null && text.length() > 0) - child.eSet(features_[i], text); - } - CommandAddElement command = new CommandAddElement(null, null, parent_, childFeature_, child); - artifactEdit.getContentModelRoot().eResource().setModified(true); - artifactEdit.getCommandStack().execute(command); - parent_.eAdapters().add(this); - newAdapters(child); - } - } - - private boolean isTextsNull() { - for (int i = 0; i < featuresTexts_.length; i++) { - String text = featuresTexts_[i].getText(); - if (text != null && text.length() > 0) - return false; - } - return true; - } - - public void adapt(EObject eObject) { - if (parent_ != null) - parent_.eAdapters().remove(this); - parent_ = eObject; - EObject child = null; - if (parent_ != null) { - parent_.eAdapters().add(this); - child = (EObject) parent_.eGet(childFeature_); - if (child == null && !childNillable_) - child = setChild(); - } - removeModifyListener(); - for (int i = 0; i < featuresAdapters_.length; i++) - featuresAdapters_[i].adapt(child); - addModifyListener(); - } - - private EObject setChild() { - EObject child = createChild(); - parent_.eAdapters().remove(this); - parent_.eSet(childFeature_, child); - parent_.eAdapters().add(this); - return child; - } - - private EObject createChild() { - EFactory childFactory = childEClass_.getEPackage().getEFactoryInstance(); - EObject child = childFactory.create(childEClass_); - for (int i = 0; i < features_.length; i++) { - if (!featuresNillable_[i]) - child.eSet(features_[i], ""); //$NON-NLS-1$ - } - return child; - } - - public void dispose() { - if (parent_ != null) - parent_.eAdapters().remove(this); - disposeAdapters(); - removeModifyListener(); - } - - private void disposeAdapters() { - for (int i = 0; i < featuresAdapters_.length; i++) - featuresAdapters_[i].dispose(); - } - - private void removeModifyListener() { - for (int i = 0; i < featuresTexts_.length; i++) - if (featuresTexts_[i] != null && !featuresTexts_[i].isDisposed()) - featuresTexts_[i].removeModifyListener(this); - } - - private boolean adaptingFeature(EStructuralFeature feature) { - if (features_ == null) - return false; - - for (int i = 0; i < features_.length; i++) { - if (feature == features_[i]) { - return true; - } - } - - return false; - } -} |