/*******************************************************************************
* Copyright (c) 2008 Olivier Moises
*
* 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:
* Olivier Moises- initial API and implementation
*******************************************************************************/
package org.eclipse.wazaabi.engine.swt.commons.viewers;
import org.eclipse.swt.widgets.Widget;
import org.eclipse.wazaabi.engine.core.editparts.AbstractWidgetEditPart;
import org.eclipse.wazaabi.engine.core.gef.EditPart;
import org.eclipse.wazaabi.engine.core.viewers.AbstractEditPartViewer;
import org.eclipse.wazaabi.engine.edp.Registry;
import org.eclipse.wazaabi.engine.swt.commons.impl.SWTRegistryImpl;
import org.eclipse.wazaabi.engine.swt.commons.views.DeferredUpdateManager;
import org.eclipse.wazaabi.engine.swt.commons.views.SWTWidgetView;
import org.eclipse.wazaabi.engine.swt.commons.views.UpdateManager;
public abstract class AbstractSWTViewer extends AbstractEditPartViewer {
private UpdateManager manager = new DeferredUpdateManager();
private final org.eclipse.swt.widgets.Composite parent;
public AbstractSWTViewer(org.eclipse.swt.widgets.Composite parent) {
this.parent = parent;
}
public UpdateManager getUpdateManager() {
return manager;
}
/**
* @see org.eclipse.wazaabi.engine.core.viewers.AbstractEditPartViewer#reveal(org.eclipse.wazaabi.engine.core.gef.EditPart)
*/
public void reveal(EditPart part) {
// DOES NOTHING AT THE MOMENT
}
public org.eclipse.swt.widgets.Composite getParent() {
return parent;
}
public abstract AbstractCompatibilityToolkit getAbstractCompatibilityToolkit();
@Override
protected void doSetContents(EditPart editpart) {
super.doSetContents(editpart);
}
protected Widget getWidget() {
if (!(getContents() instanceof AbstractWidgetEditPart))
return null;
if (((AbstractWidgetEditPart) getContents()).getWidgetView() instanceof SWTWidgetView) {
return ((SWTWidgetView) ((AbstractWidgetEditPart) getContents())
.getWidgetView()).getSWTWidget();
}
return null;
}
@Override
protected Registry createRegistry() {
return new SWTRegistryImpl();
}
}