// ============================================================================
//
// 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.connections;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.Label;
import org.eclipse.draw2d.PolylineConnection;
import org.eclipse.gef.Request;
import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.talend.core.model.process.Element;
/**
* DOC YeXiaowei class global comment. Detailled comment
*/
public class MonitorConnectionLabelPart extends AbstractGraphicalEditPart implements PropertyChangeListener {
/*
* (non-Javadoc)
*
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#activate()
*/
@Override
public void activate() {
if (!isActive()) {
super.activate();
((Element) getModel()).addPropertyChangeListener(this);
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#deactivate()
*/
@Override
public void deactivate() {
if (isActive()) {
super.deactivate();
((Element) getModel()).removePropertyChangeListener(this);
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
*/
@Override
public IFigure createFigure() {
String text = ((MonitorConnectionLabel) getModel()).getLabelText();
Label label = new Label();
label.setText(text);
return label;
}
/*
* (non-Javadoc)
*
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
public void propertyChange(PropertyChangeEvent evt) {
refreshVisuals();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.gef.editparts.AbstractEditPart#refreshVisuals()
*/
@Override
protected void refreshVisuals() {
String text = ((MonitorConnectionLabel) getModel()).getLabelText();
Label figure = (Label) getFigure();
// figure.setIcon(null); //TODO add icon to it
figure.setText(text);
figure.setForegroundColor(Display.getDefault().getSystemColor(SWT.COLOR_BLUE));
ConnectionPart parent = (ConnectionPart) getParent();
PolylineConnection connFigure = (PolylineConnection) parent.getFigure();
MonitorConnectionLabelConstraint constraint = new MonitorConnectionLabelConstraint(text, "center", null, connFigure); //$NON-NLS-1$
parent.setLayoutConstraint(this, getFigure(), constraint);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.gef.editparts.AbstractEditPart#performRequest(org.eclipse.gef.Request)
*/
@Override
public void performRequest(Request request) {
// do nothing
}
/*
* (non-Javadoc)
*
* @see org.eclipse.gef.editparts.AbstractEditPart#setSelected(int)
*/
@Override
public void setSelected(int value) {
super.setSelected(value);
if (this.getParent().getSelected() != value) {
this.getParent().setSelected(value);
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
*/
@Override
protected void createEditPolicies() {
}
}