All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ieg.prefuse.RangeModelTransformationDisplay Maven / Gradle / Ivy

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