/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package net.neilcsmith.praxis.live.graph;
import java.awt.Point;
import org.netbeans.api.visual.action.ConnectProvider;
import org.netbeans.api.visual.action.ConnectorState;
import org.netbeans.api.visual.widget.Scene;
import org.netbeans.api.visual.widget.Widget;
/**
*
* @author Neil C Smith (http://neilcsmith.net)
*/
public abstract class PraxisConnectAdaptor implements ConnectProvider {
@Override
public boolean isSourceWidget(Widget sourceWidget) {
return sourceWidget instanceof PinWidget;
}
@Override
public ConnectorState isTargetWidget(Widget sourceWidget, Widget targetWidget) {
if (sourceWidget instanceof PinWidget && targetWidget instanceof PinWidget) {
if (canConnect((PinWidget) sourceWidget, (PinWidget) targetWidget)) {
return ConnectorState.ACCEPT;
}
}
return ConnectorState.REJECT;
}
public boolean canConnect(PinWidget source, PinWidget target) {
return true;
}
@Override
public boolean hasCustomTargetWidgetResolver(Scene scene) {
return false;
}
@Override
public Widget resolveTargetWidget(Scene scene, Point sceneLocation) {
return null;
}
@Override
public void createConnection(Widget sourceWidget, Widget targetWidget) {
createConnection((PinWidget) sourceWidget, (PinWidget) targetWidget);
}
public abstract void createConnection(PinWidget source, PinWidget target);
}