Package org.eclipse.wst.xml.core.internal

Source Code of org.eclipse.wst.xml.core.internal.EveryNodeDebugAdapter$InternalStructuredDocumentListener

/*******************************************************************************
* Copyright (c) 2001, 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
*     Jens Lukowski/Innoopract - initial renaming/restructuring
*    
*******************************************************************************/
package org.eclipse.wst.xml.core.internal;

import org.eclipse.jface.text.DocumentEvent;
import org.eclipse.jface.text.IDocumentListener;
import org.eclipse.wst.sse.core.internal.provisional.IModelStateListener;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.sse.core.internal.provisional.events.AboutToBeChangedEvent;
import org.eclipse.wst.sse.core.internal.provisional.events.IModelAboutToBeChangedListener;
import org.eclipse.wst.sse.core.internal.provisional.events.IStructuredDocumentListener;
import org.eclipse.wst.sse.core.internal.provisional.events.NewDocumentEvent;
import org.eclipse.wst.sse.core.internal.provisional.events.NoChangeEvent;
import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
import org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent;
import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentRegionsReplacedEvent;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
import org.eclipse.wst.sse.core.internal.util.Debug;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;


/**
* Purely for use in debugging
*/
public class EveryNodeDebugAdapter implements IDebugAdapter {

  static class InternalDocumentListener implements IDocumentListener {

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
     */
    public void documentAboutToBeChanged(DocumentEvent event) {
      Debug.println("IdocumentAboutToBeChanged: " + event); //$NON-NLS-1$

    }

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)
     */
    public void documentChanged(DocumentEvent event) {
      Debug.println("IdocumentChanged: " + event); //$NON-NLS-1$

    }

  }

  static class InternalModelStateListener implements IModelStateListener {

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.wst.sse.core.IModelStateListener#modelAboutToBeChanged(org.eclipse.wst.sse.core.IStructuredModel)
     */
    public void modelAboutToBeChanged(IStructuredModel model) {
      Debug.println("modelAboutToBeChanged: " + model); //$NON-NLS-1$

    }

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.wst.sse.core.IModelStateListener#modelChanged(org.eclipse.wst.sse.core.IStructuredModel)
     */
    public void modelChanged(IStructuredModel model) {
      Debug.println("modelChanged: " + model); //$NON-NLS-1$
    }

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.wst.sse.core.IModelStateListener#modelDirtyStateChanged(org.eclipse.wst.sse.core.IStructuredModel,
     *      boolean)
     */
    public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty) {
      Debug.println("modelDirtyStateChanged: " + model); //$NON-NLS-1$

    }

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.wst.sse.core.IModelStateListener#modelResourceDeleted(org.eclipse.wst.sse.core.IStructuredModel)
     */
    public void modelResourceDeleted(IStructuredModel model) {
      Debug.println("modelResourceDeleted: " + model); //$NON-NLS-1$

    }

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.wst.sse.core.IModelStateListener#modelResourceMoved(org.eclipse.wst.sse.core.IStructuredModel,
     *      org.eclipse.wst.sse.core.IStructuredModel)
     */
    public void modelResourceMoved(IStructuredModel oldModel, IStructuredModel newModel) {
      Debug.println("modelResourceMoved: " + "oldModel: " + oldModel + "newModel: " + newModel); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    }

    public void modelAboutToBeReinitialized(IStructuredModel structuredModel) {
      Debug.println("modelAboutToBeReinitialized: " + "structuredModel: " + structuredModel); //$NON-NLS-1$ //$NON-NLS-2$

    }

    public void modelReinitialized(IStructuredModel structuredModel) {
      Debug.println("modelReinitialized: " + "structuredModel: " + structuredModel); //$NON-NLS-1$ //$NON-NLS-2$

    }

  }

  static class InternalStructuredDocumentAboutToChange implements IModelAboutToBeChangedListener {

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.wst.sse.core.events.IModelAboutToBeChangedListener#modelAboutToBeChanged(org.eclipse.wst.sse.core.events.AboutToBeChangedEvent)
     */
    public void modelAboutToBeChanged(AboutToBeChangedEvent structuredDocumentEvent) {
      Debug.println("structuredDocumentAboutToBeChanged: " + structuredDocumentEvent); //$NON-NLS-1$

    }

  }

  static class InternalStructuredDocumentListener implements IStructuredDocumentListener {

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#newModel(org.eclipse.wst.sse.core.events.NewDocumentContentEvent)
     */
    public void newModel(NewDocumentEvent structuredDocumentEvent) {
      Debug.println("structuredDocumentChanged - newModel: " + structuredDocumentEvent); //$NON-NLS-1$

    }

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#noChange(org.eclipse.wst.sse.core.events.NoChangeEvent)
     */
    public void noChange(NoChangeEvent structuredDocumentEvent) {
      Debug.println("structuredDocumentChanged - noChange: " + structuredDocumentEvent); //$NON-NLS-1$

    }

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#nodesReplaced(org.eclipse.wst.sse.core.events.StructuredDocumentRegionsReplacedEvent)
     */
    public void nodesReplaced(StructuredDocumentRegionsReplacedEvent structuredDocumentEvent) {
      Debug.println("structuredDocumentChanged - nodesReplaced: " + structuredDocumentEvent); //$NON-NLS-1$

    }

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#regionChanged(org.eclipse.wst.sse.core.events.RegionChangedEvent)
     */
    public void regionChanged(RegionChangedEvent structuredDocumentEvent) {
      Debug.println("structuredDocumentChanged - regionChanged: " + structuredDocumentEvent); //$NON-NLS-1$

    }

    /*
     * (non-Javadoc)
     *
     * @see org.eclipse.wst.sse.core.events.IStructuredDocumentListener#regionsReplaced(org.eclipse.wst.sse.core.events.RegionsReplacedEvent)
     */
    public void regionsReplaced(RegionsReplacedEvent structuredDocumentEvent) {
      Debug.println("structuredDocumentChanged - regionsReplaced: " + structuredDocumentEvent); //$NON-NLS-1$

    }

  }

  private static EveryNodeDebugAdapter singletonInstance;

  public static EveryNodeDebugAdapter getInstance() {
    if (singletonInstance == null) {
      singletonInstance = new EveryNodeDebugAdapter();
    }
    return singletonInstance;
  }

  InternalDocumentListener fInternalDocumentListener;
  InternalModelStateListener fInternalModelStateListener;
  InternalStructuredDocumentAboutToChange fInternalStructuredDocumentAboutToChange;
  InternalStructuredDocumentListener fInternalStructuredDocumentListener;
  IStructuredModel fModel;

  /**
   *
   */
  public EveryNodeDebugAdapter() {
    super();
    fInternalDocumentListener = new InternalDocumentListener();
    fInternalStructuredDocumentAboutToChange = new InternalStructuredDocumentAboutToChange();
    fInternalStructuredDocumentListener = new InternalStructuredDocumentListener();
    fInternalModelStateListener = new InternalModelStateListener();
  }

  /**
   * @param target
   */
  public EveryNodeDebugAdapter(INodeNotifier target) {
    this();
  }

  /*
   * (non-Javadoc)
   *
   * @see org.eclipse.wst.sse.core.INodeAdapter#isAdapterForType(java.lang.Object)
   */
  public boolean isAdapterForType(Object type) {
    return (type == IDebugAdapter.class);
  }

  /*
   * (non-Javadoc)
   *
   * @see org.eclipse.wst.sse.core.INodeAdapter#notifyChanged(org.eclipse.wst.sse.core.INodeNotifier,
   *      int, java.lang.Object, java.lang.Object, java.lang.Object, int)
   */
  public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
    if (notifier instanceof IDOMNode) {
      setModel(((IDOMNode) notifier).getModel());
    }
    Debug.println("notifier: " + notifier + " " + INodeNotifier.EVENT_TYPE_STRINGS[eventType] + " changedFeature: " + changedFeature + " oldValue: " + oldValue + " newValue: " + newValue + " pos: " + pos); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$

  }

  /*
   * (non-Javadoc)
   *
   * @see org.eclipse.wst.sse.core.internal.IDebugAdapter#setDocument(org.eclipse.wst.sse.core.text.IStructuredDocument)
   */
  private void setModel(IStructuredModel structuredModel) {
    if (fModel == structuredModel)
      return;

    if (fModel != null) {
      fModel.removeModelStateListener(fInternalModelStateListener);
      //
      IStructuredDocument structuredDocument = fModel.getStructuredDocument();
      if (structuredDocument != null) {
        structuredDocument.removeDocumentListener(fInternalDocumentListener);
        structuredDocument.removeDocumentAboutToChangeListener(fInternalStructuredDocumentAboutToChange);
        structuredDocument.removeDocumentChangedListener(fInternalStructuredDocumentListener);
      }
    }
    fModel = structuredModel;
    if (fModel != null) {

      fModel.addModelStateListener(fInternalModelStateListener);
      //
      IStructuredDocument structuredDocument = fModel.getStructuredDocument();
      if (structuredDocument != null) {
        structuredDocument.addDocumentListener(fInternalDocumentListener);
        structuredDocument.addDocumentAboutToChangeListener(fInternalStructuredDocumentAboutToChange);
        structuredDocument.addDocumentChangedListener(fInternalStructuredDocumentListener);
      }
    }


  }
}
TOP

Related Classes of org.eclipse.wst.xml.core.internal.EveryNodeDebugAdapter$InternalStructuredDocumentListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.