Package org.erlide.ui.editors.erl.outline

Source Code of org.erlide.ui.editors.erl.outline.ElementChangedListener

/*******************************************************************************
* Copyright (c) 2004 Vlad Dumitrescu 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:
*     Vlad Dumitrescu
*******************************************************************************/
package org.erlide.ui.editors.erl.outline;

import org.eclipse.swt.widgets.Display;
import org.erlide.engine.model.ElementChangedEvent;
import org.erlide.engine.model.IElementChangedListener;
import org.erlide.engine.model.root.IErlElementDelta;

class ElementChangedListener implements IElementChangedListener {

    /**
     *
     */
    private final ErlangOutlinePage page;

    /**
     * @param page
     */
    ElementChangedListener(final ErlangOutlinePage page) {
        this.page = page;
    }

    @Override
    public void elementChanged(final ElementChangedEvent e) {

        if (page.getControl() == null) {
            return;
        }

        final Display d = page.getControl().getDisplay();
        if (d != null) {
            d.asyncExec(new Runnable() {

                @Override
                public void run() {
                    // IErlModule cu = (IErlModule) fInput;
                    // IErlElement base = cu;
                    // base = getMainType(cu);
                    // if (base == null)
                    // {
                    // if (fOutlineViewer != null)
                    // fOutlineViewer.refresh(true);
                    // return;
                    // }
                    // IErlElementDelta delta = findElement(base,
                    // e.getDelta());
                    // if (delta != null && fOutlineViewer != null)
                    // {
                    // fOutlineViewer.reconcile(delta);
                    // }

                }
            });
        }
    }

    protected boolean isPossibleStructuralChange(final IErlElementDelta cuDelta) {
        if (cuDelta.getKind() != IErlElementDelta.CHANGED) {
            return true; // add or remove
        }
        final int flags = cuDelta.getFlags();
        if ((flags & IErlElementDelta.F_CHILDREN) != 0) {
            return true;
        }
        return (flags & (IErlElementDelta.F_CONTENT | IErlElementDelta.F_FINE_GRAINED)) == IErlElementDelta.F_CONTENT;
    }

}
TOP

Related Classes of org.erlide.ui.editors.erl.outline.ElementChangedListener

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.