package net.ms.designer.editors.componentdetail.editparts;
import java.beans.PropertyChangeListener;
import net.ms.designer.core.MsContext;
import net.ms.designer.core.MsEditorInput;
import net.ms.designer.core.MsProject;
import net.ms.designer.editors.component.editparts.NodeCellEditorLocator;
import net.ms.designer.editors.component.editparts.NodeDirectEditManager;
import net.ms.designer.editors.component.models.WorkFlow;
import net.ms.designer.editors.componentdetail.core.ITableContentProvider;
import net.ms.designer.editors.componentdetail.figures.NodeFigure;
import net.ms.designer.editors.componentdetail.models.Container;
import net.ms.designer.editors.componentdetail.models.FlowField;
import net.ms.designer.editors.componentdetail.policies.FlowGraphicalNodeEditPolicy;
import net.ms.designer.editors.componentdetail.ui.CompDetailEditor;
import net.ms.designer.editors.packages.ui.PackageEditor;
import net.ms.designer.editors.workflow.WorkflowImages;
import net.ms.designer.editors.workflow.figures.FigureFactory;
import net.ms.designer.editors.workflow.figures.WorkflowActivityFigure;
import net.ms.designer.editors.workflow.models.WorkflowBaseActivity;
import net.ms.designer.editors.workflow.ui.WorkflowEditor;
import net.ms.designer.ui.view.MsTreeView;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.AccessibleEditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.GraphicalEditPart;
import org.eclipse.gef.NodeEditPart;
import org.eclipse.gef.Request;
import org.eclipse.gef.RequestConstants;
import org.eclipse.gef.tools.DirectEditManager;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.internal.UIPlugin;
public class FlowEditPart extends BaseEditPart implements PropertyChangeListener,NodeEditPart{
MsProject project;
protected DirectEditManager manager;
IWorkbenchPage page = null;
Container container;
private PackageEditor editor;
public void performRequest(Request req)
{
if(req.getType().equals(RequestConstants.REQ_OPEN))
{
editor = (PackageEditor)UIPlugin.getDefault()
.getWorkbench().getActiveWorkbenchWindow()
.getActivePage().getActiveEditor();
MsContext context;
if(editor.getContext() != null)
context = editor.getContext();
else
{
context = new MsContext();
editor.setContext(context);
}
context.change(this , "componentdetail");
}
}
protected AccessibleEditPart createAccessible() {
return null;
}
protected IFigure createFigure() {
//return new NodeFigure();
return new WorkflowActivityFigure("������", WorkflowImages
.getImage(WorkflowImages.SUBFLOW));
}
protected void createEditPolicies() {
super.createEditPolicies();
installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
new FlowGraphicalNodeEditPolicy());
}
public void activate() {
if (isActive()) {
return;
}
super.activate();
((FlowField) getModel()).addPropertyChangeListener(this);
}
protected void refreshVisuals() {
//System.out.println("com.example.parts.NodePart.refreshVisuals()");
FlowField node = (FlowField) getModel();
Point loc = node.getLocation();
Dimension size = new Dimension(60, 60);
Rectangle rectangle = new Rectangle(loc, size);
((WorkflowActivityFigure) this.getFigure()).setName(((FlowField) this.getModel()).getName());
((GraphicalEditPart) getParent()).setLayoutConstraint(this, getFigure(), rectangle);
}
}