blob: 6af866c8217544923bf87653f539ea81e507f3c1 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2012 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.bpel.ui.figures;
/**
* This is a hack to get the vertical connection lines perfectly
* straight. Relies on assumption
* that vertical lines are sometimes crooked by 1 pixel depending
* on the magnification.
*/
public class ConnectionCoordHistory {
private static ConnectionCoordHistory instance;
// x-coord of 1st anchor in aligned vertical parts
private static int firstX = 0;
// y-coord of 1st anchor in aligned horizontal parts
private static int firstY = 0;
private ConnectionCoordHistory(){}
public static ConnectionCoordHistory getInstance() {
if (instance == null) instance = new ConnectionCoordHistory();
return instance;
}
public int adjustX(int x){
if (firstX ==0 ){
firstX = x;
return x;
}else if (Math.abs(firstX - x) > 2){
/* assume any anchor point outside 2px of firstX means
* that the anchor is at the start of a new container
*/
firstX = x;
return x;
}
return firstX;
}
public int adjustY(int y){
if (firstY ==0 ){
firstY = y;
return y;
}else if (Math.abs(firstY - y) > 2){
/* assume any anchor point outside 2px of firstY means
* that the anchor is at the start of a new container
*/
firstY = y;
return y;
}
return firstY;
}
}