blob: fcd60c405aec950bab491298f92d71431a98ff62 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 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.wst.xml.ui.internal;
import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
/**
* This is just an adapter that sits on a document node to allow clients
* limited access to the DOMObserver. Clients who handle their own content
* model document loading (as opposed to letting the DOMObserver do it) may
* use this class to stop the DOMObserver from loading and possibly
* interfering with the client's document loading.
*/
public class DOMObserverAdapter implements INodeAdapter {
private DOMObserver fObserver = null;
public boolean isAdapterForType(Object type) {
return type == DOMObserverAdapter.class;
}
public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
// do nothing
}
/**
* The DOMObserver is the one that adds the adapter to the document node,
* so it'll set itself up here as well.
*
* @param observer
*/
void setDOMObserver(DOMObserver observer) {
fObserver = observer;
}
/**
* Disable the DOMObserver to prevent it from future content model loading
* for this document.
*
* @param disable
* true if caller wants DOMObserver disabled. false if caller
* wants DOMObserver enabled.
* @param force
* if true, DOMObserver will forcibly be disabled (if the
* DOMObserver model loading job is scheduled, it will be
* cancelled)
* @return true if DOMObserver was successfully disabled. false if
* DOMObserver was already in the process of loading and was
* unable to stop
*/
public boolean disableObserver(boolean disable, boolean force) {
return fObserver.setDisabled(disable, force);
}
/**
* Returns whether or not DOMObserver is currently attempting to load the
* content model.
*
* @return true if DOMObserver is currently in the process of loading the
* content models. false otherwise.
*/
public boolean isObserverLoading() {
return fObserver.isLoading();
}
}