package org.eclipse.wazaabi.engine.swt.commons.viewers;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.swt.widgets.Control;
import org.eclipse.wazaabi.engine.core.gef.EditPart;
import org.eclipse.wazaabi.engine.core.gef.RootEditPart;
import org.eclipse.wazaabi.engine.swt.commons.editparts.SWTRootEditPart;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
*
* @author Olivier Moises
*
*/
public abstract class AbstractSWTControlViewer extends AbstractSWTViewer {
final static Logger logger = LoggerFactory
.getLogger(AbstractSWTControlViewer.class);
// PROPOSAL : not sure to keep it
protected static org.eclipse.wazaabi.mm.core.widgets.AbstractComponent getModelComponent(
String uri) {
Resource resource = new ResourceSetImpl().getResource(
URI.createURI(uri), true);
if (resource.getEObject("/") instanceof org.eclipse.wazaabi.mm.core.widgets.AbstractComponent)
return (org.eclipse.wazaabi.mm.core.widgets.AbstractComponent) resource
.getEObject("/");
return null;
}
public AbstractSWTControlViewer(org.eclipse.swt.widgets.Composite parent,
SWTRootEditPart rootEditPart) {
super(parent);
setRootEditPart(rootEditPart);
}
public AbstractSWTControlViewer(org.eclipse.swt.widgets.Composite parent) {
this(parent, new SWTRootEditPart());
}
public Control getControl() {
return (Control) getWidget();
}
public EditPart getContents() {
if (getRootEditPart() == null)
return null;
return getRootEditPart().getContents();
}
public void setRootEditPart(RootEditPart editpart) {
assert editpart == null || editpart instanceof SWTRootEditPart;
super.setRootEditPart(editpart);
if (!getRootEditPart().isActive())
getRootEditPart().activate();
}
}