com.mxgraph.swing.handler.mxElbowEdgeHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of AptSpringProcessor Show documentation
Show all versions of AptSpringProcessor Show documentation
This project contains the apt processor that implements all the checks enumerated in @Verify. It is a self contained, and
shaded jar.
The newest version!
/**
* Copyright (c) 2008, Gaudenz Alder
*/
package com.mxgraph.swing.handler;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.util.List;
import com.mxgraph.model.mxGeometry;
import com.mxgraph.swing.mxGraphComponent;
import com.mxgraph.util.mxConstants;
import com.mxgraph.util.mxPoint;
import com.mxgraph.util.mxResources;
import com.mxgraph.view.mxCellState;
import com.mxgraph.view.mxGraphView;
/**
* @author Administrator
*
*/
public class mxElbowEdgeHandler extends mxEdgeHandler
{
/**
*
* @param graphComponent
* @param state
*/
public mxElbowEdgeHandler(mxGraphComponent graphComponent, mxCellState state)
{
super(graphComponent, state);
}
/**
* Hook for subclassers to return tooltip texts for certain points on the
* handle.
*/
public String getToolTipText(MouseEvent e)
{
int index = getIndexAt(e.getX(), e.getY());
if (index == 1)
{
return mxResources.get("doubleClickOrientation");
}
return null;
}
/**
*
*/
protected boolean isFlipEvent(MouseEvent e)
{
return e.getClickCount() == 2 && index == 1;
}
/**
* Returns true if the given index is the index of the last handle.
*/
public boolean isLabel(int index)
{
return index == 3;
}
/**
*
*/
protected Rectangle[] createHandles()
{
p = createPoints(state);
Rectangle[] h = new Rectangle[4];
mxPoint p0 = state.getAbsolutePoint(0);
mxPoint pe = state.getAbsolutePoint(state.getAbsolutePointCount() - 1);
h[0] = createHandle(p0.getPoint());
h[2] = createHandle(pe.getPoint());
// Creates the middle green edge handle
mxGeometry geometry = graphComponent.getGraph().getModel().getGeometry(
state.getCell());
List points = geometry.getPoints();
Point pt = null;
if (points == null || points.isEmpty())
{
pt = new Point((int) (Math.round(p0.getX()) + Math
.round((pe.getX() - p0.getX()) / 2)), (int) (Math.round(p0
.getY()) + Math.round((pe.getY() - p0.getY()) / 2)));
}
else
{
mxGraphView view = graphComponent.getGraph().getView();
pt = view.transformControlPoint(state, points.get(0))
.getPoint();
}
// Create the green middle handle
h[1] = createHandle(pt);
// Creates the yellow label handle
h[3] = createHandle(state.getAbsoluteOffset().getPoint(),
mxConstants.LABEL_HANDLE_SIZE);
// Makes handle slightly bigger if the yellow label handle
// exists and intersects this green handle
if (isHandleVisible(3) && h[1].intersects(h[3]))
{
h[1] = createHandle(pt, mxConstants.HANDLE_SIZE + 3);
}
return h;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy