X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.diagram.connection%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fconnection%2Frendering%2FBasicConnectionStyle.java;fp=bundles%2Forg.simantics.diagram.connection%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fconnection%2Frendering%2FBasicConnectionStyle.java;h=a8661d324755eb2d99e374088aabe69cd6ec8727;hp=514eeb92ae3430ce9bd2357b695a8cf0517d70ee;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.diagram.connection/src/org/simantics/diagram/connection/rendering/BasicConnectionStyle.java b/bundles/org.simantics.diagram.connection/src/org/simantics/diagram/connection/rendering/BasicConnectionStyle.java index 514eeb92a..a8661d324 100644 --- a/bundles/org.simantics.diagram.connection/src/org/simantics/diagram/connection/rendering/BasicConnectionStyle.java +++ b/bundles/org.simantics.diagram.connection/src/org/simantics/diagram/connection/rendering/BasicConnectionStyle.java @@ -1,173 +1,173 @@ -/******************************************************************************* - * Copyright (c) 2011 Association for Decentralized Information Management in - * Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.diagram.connection.rendering; - -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.Stroke; -import java.awt.geom.Ellipse2D; -import java.awt.geom.Line2D; -import java.awt.geom.Path2D; -import java.io.Serializable; - -/** - * @author Tuukka Lehtonen - */ -public class BasicConnectionStyle implements ConnectionStyle, Serializable { - - private static final long serialVersionUID = -5799681720482456895L; - - // line thickness in millimeters. - final Color lineColor; - final Color branchPointColor; - final double branchPointRadius; - final Stroke lineStroke; - final Stroke routeLineStroke; - final double degenerateLineLength; - - transient Line2D line = new Line2D.Double(); - transient Ellipse2D ellipse = new Ellipse2D.Double(); - - public BasicConnectionStyle(Color lineColor, Color branchPointColor, double branchPointRadius, Stroke lineStroke, Stroke routeLineStroke, double degenerateLineLength) { - this.lineColor = lineColor; - this.branchPointColor = branchPointColor; - this.branchPointRadius = branchPointRadius; - this.lineStroke = lineStroke; - this.routeLineStroke = routeLineStroke; - this.degenerateLineLength = degenerateLineLength; - } - - public Color getLineColor() { - return lineColor; - } - - public Color getBranchPointColor() { - return branchPointColor; - } - - public double getBranchPointRadius() { - return branchPointRadius; - } - - public Stroke getLineStroke() { - return lineStroke; - } - - public Stroke getRouteLineStroke() { - return routeLineStroke; - } - - @Override - public void drawLine(Graphics2D g, double x1, double y1, double x2, - double y2, boolean isTransient) { - if (lineColor != null) - g.setColor(lineColor); - if(isTransient) { - g.setStroke(lineStroke); - line.setLine(x1, y1, x2, y2); - g.draw(line); - } else { - g.setStroke(routeLineStroke); - line.setLine(x1, y1, x2, y2); - g.draw(line); - } - } - - @Override - public void drawPath(Graphics2D g, Path2D path, boolean isTransient) { - if (lineColor != null) - g.setColor(lineColor); - if (lineStroke != null) - g.setStroke(lineStroke); - g.draw(path); - } - - @Override - public void drawBranchPoint(Graphics2D g, double x, double y) { - g.setColor(branchPointColor); - double r = branchPointRadius; - double d = 2*r; - ellipse.setFrame(x-r, y-r, d, d); - g.fill(ellipse); - } - - @Override - public void drawDegeneratedLine(Graphics2D g, double x, double y, - boolean isHorizontal, boolean isTransient) { - double d = getDegeneratedLineLength()*0.5; - if(isHorizontal) { - line.setLine(x-d, y, x+d, y); - g.draw(line); - } else { - line.setLine(x, y-d, x, y+d); - g.draw(line); - } - } - - @Override - public double getDegeneratedLineLength() { - return degenerateLineLength; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((branchPointColor == null) ? 0 : branchPointColor.hashCode()); - long temp; - temp = Double.doubleToLongBits(branchPointRadius); - result = prime * result + (int) (temp ^ (temp >>> 32)); - temp = Double.doubleToLongBits(degenerateLineLength); - result = prime * result + (int) (temp ^ (temp >>> 32)); - result = prime * result + ((lineColor == null) ? 0 : lineColor.hashCode()); - result = prime * result + ((lineStroke == null) ? 0 : lineStroke.hashCode()); - result = prime * result + ((routeLineStroke == null) ? 0 : routeLineStroke.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BasicConnectionStyle other = (BasicConnectionStyle) obj; - if (branchPointColor == null) { - if (other.branchPointColor != null) - return false; - } else if (!branchPointColor.equals(other.branchPointColor)) - return false; - if (Double.doubleToLongBits(branchPointRadius) != Double.doubleToLongBits(other.branchPointRadius)) - return false; - if (Double.doubleToLongBits(degenerateLineLength) != Double.doubleToLongBits(other.degenerateLineLength)) - return false; - if (lineColor == null) { - if (other.lineColor != null) - return false; - } else if (!lineColor.equals(other.lineColor)) - return false; - if (lineStroke == null) { - if (other.lineStroke != null) - return false; - } else if (!lineStroke.equals(other.lineStroke)) - return false; - if (routeLineStroke == null) { - if (other.routeLineStroke != null) - return false; - } else if (!routeLineStroke.equals(other.routeLineStroke)) - return false; - return true; - } - -} +/******************************************************************************* + * Copyright (c) 2011 Association for Decentralized Information Management in + * Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.diagram.connection.rendering; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.Stroke; +import java.awt.geom.Ellipse2D; +import java.awt.geom.Line2D; +import java.awt.geom.Path2D; +import java.io.Serializable; + +/** + * @author Tuukka Lehtonen + */ +public class BasicConnectionStyle implements ConnectionStyle, Serializable { + + private static final long serialVersionUID = -5799681720482456895L; + + // line thickness in millimeters. + final Color lineColor; + final Color branchPointColor; + final double branchPointRadius; + final Stroke lineStroke; + final Stroke routeLineStroke; + final double degenerateLineLength; + + transient Line2D line = new Line2D.Double(); + transient Ellipse2D ellipse = new Ellipse2D.Double(); + + public BasicConnectionStyle(Color lineColor, Color branchPointColor, double branchPointRadius, Stroke lineStroke, Stroke routeLineStroke, double degenerateLineLength) { + this.lineColor = lineColor; + this.branchPointColor = branchPointColor; + this.branchPointRadius = branchPointRadius; + this.lineStroke = lineStroke; + this.routeLineStroke = routeLineStroke; + this.degenerateLineLength = degenerateLineLength; + } + + public Color getLineColor() { + return lineColor; + } + + public Color getBranchPointColor() { + return branchPointColor; + } + + public double getBranchPointRadius() { + return branchPointRadius; + } + + public Stroke getLineStroke() { + return lineStroke; + } + + public Stroke getRouteLineStroke() { + return routeLineStroke; + } + + @Override + public void drawLine(Graphics2D g, double x1, double y1, double x2, + double y2, boolean isTransient) { + if (lineColor != null) + g.setColor(lineColor); + if(isTransient) { + g.setStroke(lineStroke); + line.setLine(x1, y1, x2, y2); + g.draw(line); + } else { + g.setStroke(routeLineStroke); + line.setLine(x1, y1, x2, y2); + g.draw(line); + } + } + + @Override + public void drawPath(Graphics2D g, Path2D path, boolean isTransient) { + if (lineColor != null) + g.setColor(lineColor); + if (lineStroke != null) + g.setStroke(lineStroke); + g.draw(path); + } + + @Override + public void drawBranchPoint(Graphics2D g, double x, double y) { + g.setColor(branchPointColor); + double r = branchPointRadius; + double d = 2*r; + ellipse.setFrame(x-r, y-r, d, d); + g.fill(ellipse); + } + + @Override + public void drawDegeneratedLine(Graphics2D g, double x, double y, + boolean isHorizontal, boolean isTransient) { + double d = getDegeneratedLineLength()*0.5; + if(isHorizontal) { + line.setLine(x-d, y, x+d, y); + g.draw(line); + } else { + line.setLine(x, y-d, x, y+d); + g.draw(line); + } + } + + @Override + public double getDegeneratedLineLength() { + return degenerateLineLength; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((branchPointColor == null) ? 0 : branchPointColor.hashCode()); + long temp; + temp = Double.doubleToLongBits(branchPointRadius); + result = prime * result + (int) (temp ^ (temp >>> 32)); + temp = Double.doubleToLongBits(degenerateLineLength); + result = prime * result + (int) (temp ^ (temp >>> 32)); + result = prime * result + ((lineColor == null) ? 0 : lineColor.hashCode()); + result = prime * result + ((lineStroke == null) ? 0 : lineStroke.hashCode()); + result = prime * result + ((routeLineStroke == null) ? 0 : routeLineStroke.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + BasicConnectionStyle other = (BasicConnectionStyle) obj; + if (branchPointColor == null) { + if (other.branchPointColor != null) + return false; + } else if (!branchPointColor.equals(other.branchPointColor)) + return false; + if (Double.doubleToLongBits(branchPointRadius) != Double.doubleToLongBits(other.branchPointRadius)) + return false; + if (Double.doubleToLongBits(degenerateLineLength) != Double.doubleToLongBits(other.degenerateLineLength)) + return false; + if (lineColor == null) { + if (other.lineColor != null) + return false; + } else if (!lineColor.equals(other.lineColor)) + return false; + if (lineStroke == null) { + if (other.lineStroke != null) + return false; + } else if (!lineStroke.equals(other.lineStroke)) + return false; + if (routeLineStroke == null) { + if (other.routeLineStroke != null) + return false; + } else if (!routeLineStroke.equals(other.routeLineStroke)) + return false; + return true; + } + +}