/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.ui.editors; import java.util.EventObject; import org.eclipse.swt.widgets.Display; import org.teiid.core.designer.event.EventObjectListener; import org.teiid.designer.core.workspace.ModelResource; import org.teiid.designer.ui.event.ModelResourceEvent; /** * @since 8.0 */ public class ModelEditorEventObjectListener implements EventObjectListener { ModelEditor editor; /** * @since 4.2 */ public ModelEditorEventObjectListener( ModelEditor modelEditor ) { super(); this.editor = modelEditor; } /** * @see org.teiid.core.designer.event.EventObjectListener#processEvent(java.util.EventObject) * @since 4.2 */ @Override public void processEvent( EventObject obj ) { ModelResourceEvent event = (ModelResourceEvent)obj; // All the editor needs to do is take care of the object editor. If it's open, close it if the event // resource is same as editor's resource. if (event.getType() == ModelResourceEvent.RELOADED) { final ModelResource editorMR = editor.getModelResource(); final ModelResource evResource = event.getModelResource(); if (evResource != null && evResource.equals(editorMR)) { Display.getDefault().asyncExec(new Runnable() { @Override public void run() { editor.closeObjectEditor(); } }); } } } }