
ieg.prefuse.RangeModelTransformationDisplay Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ieg-prefuse Show documentation
Show all versions of ieg-prefuse Show documentation
Common Java classes to extend the InfoVis library prefuse
The newest version!
package ieg.prefuse;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import prefuse.Constants;
import prefuse.Display;
import prefuse.Visualization;
import prefuse.action.Action;
import prefuse.action.ActionList;
import prefuse.action.layout.AxisLayout;
import prefuse.activity.Activity;
import prefuse.util.ui.ValuedRangeModel;
/**
*
*
*
* Added: / TL
* Modifications:
*
*
* @author Tim Lammarsch
*
*/
public class RangeModelTransformationDisplay extends Display {
protected double[] scale = new double[Constants.AXIS_COUNT];
protected String[] relevantActionLists;
/**
*
*/
private static final long serialVersionUID = -3993382454989162781L;
/**
* @param vis
*/
public RangeModelTransformationDisplay(Visualization vis,String[] relevantActionLists) {
super(vis);
this.relevantActionLists = relevantActionLists;
for(int i=0; i allAxes = new ArrayList();
allAxes.add(Constants.X_AXIS);
allAxes.add(Constants.Y_AXIS);
baseZoom(p,scale,allAxes,absolute);
}
public synchronized void findRelevantParameters(ArrayList axes,ArrayList rangeModels,
ArrayList axisTypes,ArrayList minPositions,ArrayList maxPositions) {
for(String iKey : relevantActionLists) {
Activity iAc = m_vis.getAction(iKey);
if (iAc instanceof ActionList) {
for (int i=0; i<((ActionList)iAc).size(); i++) {
Action iAc2 = ((ActionList)iAc).get(i);
if(iAc2 instanceof AxisLayout && axes.contains(((AxisLayout)iAc2).getAxis())) {
if (!rangeModels.contains(((AxisLayout)iAc2).getRangeModel())) {
rangeModels.add(((AxisLayout)iAc2).getRangeModel());
axisTypes.add(((AxisLayout)iAc2).getAxis());
minPositions.add(((AxisLayout)iAc2).getAxis() == Constants.X_AXIS ? ((AxisLayout)iAc2).getLayoutBounds().getMinX() : ((AxisLayout)iAc2).getLayoutBounds().getMinY());
maxPositions.add(((AxisLayout)iAc2).getAxis() == Constants.X_AXIS ? ((AxisLayout)iAc2).getLayoutBounds().getMaxX() : ((AxisLayout)iAc2).getLayoutBounds().getMaxY());
}
} else if(iAc2 instanceof RangeModelTransformationProvider) {
for(int iAx : ((RangeModelTransformationProvider)iAc2).getAxes()) {
if (!rangeModels.contains(((RangeModelTransformationProvider)iAc2).getRangeModel(iAx))) {
rangeModels.add(((RangeModelTransformationProvider)iAc2).getRangeModel(iAx));
axisTypes.add(iAx);
minPositions.add(((RangeModelTransformationProvider)iAc2).getMinPosition(iAx));
maxPositions.add(((RangeModelTransformationProvider)iAc2).getMaxPosition(iAx));
}
}
}
}
}
}
}
public synchronized void baseZoom(final Point2D p, double scale,ArrayList axes,boolean absolute) {
ArrayList rangeModels = new ArrayList();
ArrayList axisTypes = new ArrayList();
ArrayList minPositions = new ArrayList();
ArrayList maxPositions = new ArrayList();
findRelevantParameters(axes,rangeModels,axisTypes,minPositions,maxPositions);
for(int i=0; i allAxes = new ArrayList();
allAxes.add(Constants.X_AXIS);
allAxes.add(Constants.Y_AXIS);
basePan(dx,dy,allAxes);
}
public synchronized void basePan(double dx, double dy,ArrayList axes) {
ArrayList rangeModels = new ArrayList();
ArrayList axisTypes = new ArrayList();
ArrayList minPositions = new ArrayList();
ArrayList maxPositions = new ArrayList();
findRelevantParameters(axes,rangeModels,axisTypes,minPositions,maxPositions);
for(int i=0; i
© 2015 - 2025 Weber Informatics LLC | Privacy Policy