// ============================================================================
//
// Copyright (C) 2006-2012 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.designer.core.ui.editor.outline;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
import org.eclipse.gef.editparts.AbstractTreeEditPart;
import org.talend.designer.core.ui.editor.process.Process;
/**
* This class gets all node to add them in the tree in the Outline It doesn't give any detail, it just adds the roots
* objects. <br/>
*
* $Id: ProcessTreeEditPart.java 77219 2012-01-24 01:14:15Z mhirt $
*
*/
public class ProcessTreeEditPart extends AbstractTreeEditPart implements PropertyChangeListener {
private NodeTransferDragSourceListener nodeTransferDragSourceListener = NodeTransferDragSourceListener.getInstance();
public ProcessTreeEditPart(Object model) {
super(model);
}
@Override
public void setSelected(int value) {
nodeTransferDragSourceListener.setEditPart(this);
super.setSelected(value);
}
// TransferDragSourceListener dragDropListener = new TransferDragSourceListener() {
//
// TextTransfer transfer;
//
// public Transfer getTransfer() {
// transfer = TextTransfer.getInstance();
// return transfer;
// }
//
// public void dragFinished(final DragSourceEvent event) {
// }
//
// public void dragSetData(final DragSourceEvent event) {
// INode node = (INode) currentEditPart.getParent().getModel();
// String value = ElementParameterParser.parse(node, ((INodeReturn) currentEditPart.getModel()).getVarName());
// event.data = value;
// }
//
// public void dragStart(final DragSourceEvent event) {
// event.doit = true;
// }
//
// };
/*
* (non-Javadoc)
*
* @see org.eclipse.gef.editparts.AbstractEditPart#activate()
*/
public void activate() {
super.activate();
((Process) getModel()).addPropertyChangeListener(this);
nodeTransferDragSourceListener.setEditPart(this);
getViewer().addDragSourceListener(nodeTransferDragSourceListener.getNodeTransferDragSourceListener());
}
/*
* (non-Javadoc)
*
* @see org.eclipse.gef.editparts.AbstractEditPart#deactivate()
*/
public void deactivate() {
((Process) getModel()).removePropertyChangeListener(this);
nodeTransferDragSourceListener.setEditPart(this);
getViewer().removeDragSourceListener(nodeTransferDragSourceListener.getNodeTransferDragSourceListener());
super.deactivate();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.gef.editparts.AbstractEditPart#getModelChildren()
*/
protected List getModelChildren() {
return ((Process) getModel()).getGraphicalNodes();
}
/*
* (non-Javadoc)
*
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
public void propertyChange(final PropertyChangeEvent change) {
refreshChildren();
}
}