public mxTemporaryCellStates(mxGraphView view,double scale,Object[] cells){
  this.view=view;
  oldBounds=view.getGraphBounds();
  oldStates=view.getStates();
  oldScale=view.getScale();
  view.setStates(new Hashtable<Object,mxCellState>());
  view.setScale(scale);
  if (cells != null) {
    mxCellState state=view.createState(new mxCell());
    for (int i=0; i < cells.length; i++) {
      view.validateBounds(state,cells[i]);
    }
    double minX=0;
    double minY=0;
    double maxX=0;
    double maxY=0;
    for (int i=0; i < cells.length; i++) {
      mxRectangle bounds=view.validatePoints(state,cells[i]);
      minX=Math.min(minX,bounds.getX());
      minY=Math.min(minY,bounds.getY());
      maxX=Math.max(maxX,bounds.getX() + bounds.getWidth());
      maxY=Math.max(maxY,bounds.getY() + bounds.getHeight());
    }
    view.setGraphBounds(new mxRectangle(minX,minY,maxX - minX,maxY - minY));
  }
}

public mxTemporaryCellStates ( mxGraphView view , double scale , Object [ ] cells ) { this . view = view ; oldBounds = view . getGraphBounds ( ) ; oldStates = view . getStates ( ) ; oldScale = view . getScale ( ) ; view . setStates ( new Hashtable < Object , mxCellState > ( ) ) ; view . setScale ( scale ) ; if ( cells != null ) { mxCellState state = view . createState ( new mxCell ( ) ) ; for ( int i = 0 ; i < cells . length ; i ++ ) { view . validateBounds ( state , cells [ i ] ) ; } double minX = 0 ; double minY = 0 ; double maxX = 0 ; double maxY = 0 ; for ( int i = 0 ; i < cells . length ; i ++ ) { mxRectangle bounds = view . validatePoints ( state , cells [ i ] ) ; minX = Math . min ( minX , bounds . getX ( ) ) ; minY = Math . min ( minY , bounds . getY ( ) ) ; maxX = Math . max ( maxX , bounds . getX ( ) + bounds . getWidth ( ) ) ; maxY = Math . max ( maxY , bounds . getY ( ) + bounds . getHeight ( ) ) ; } view . setGraphBounds ( new mxRectangle ( minX , minY , maxX - minX , maxY - minY ) ) ; } }
constructs a new temporary cell states instance .
