Page Components JavaScript DHTML





  
  
  Different dimensions test
    
   
  
  
  
  
    
    function onEndCrop( coords, dimensions ) {
      $( 'x1' ).value = coords.x1;
      $( 'y1' ).value = coords.y1;
      $( 'x2' ).value = coords.x2;
      $( 'y2' ).value = coords.y2;
      $( 'width' ).value = dimensions.width;
      $( 'height' ).value = dimensions.height;
    }
    
    /*
    
    // example with minimum dimensions
    Event.observe( 
      window, 
      'load', 
      function() { 
        new Cropper.Img( 
          'testImage', 
          { 
            minWidth: 200, 
            minHeight: 120,
            maxWidth: 200,
            //maxHeight: 120,
            displayOnInit: true, 
            onEndCrop: onEndCrop 
          } 
        ) 
      } 
    );
    */
    
    Event.observe( window, 'load',
      function() {
        Event.observe( 'dimensionsForm', 'submit', CropManager.attachCropper.bindAsEventListener( CropManager ) );
        CropManager.attachCropper();
      }
    );
    
    /**
     * A little manager that allows us to reset the options dynamically
     */
    var CropManager = {
      /**
       * Holds the current Cropper.Img object
       * @var obj
       */
      curCrop: null,
      
      /**
       * Gets a min/max parameter from the form 
       * 
       * @access private
       * @param string Form element ID
       * @return int
       */
      getParam: function( name ) {
        var val = $F( name );
        console.log( name + ' :: ' + val );
        return parseInt( val );
      },
                  
      /** 
       * Attaches/resets the image cropper
       *
       * @access private
       * @param obj Event object
       * @return void
       */
      attachCropper: function( e ) {
        if( this.curCrop == null ) {
          this.curCrop = new Cropper.Img( 
            'testImage', 
            { 
              minWidth: this.getParam( 'minWidth' ),
              minHeight: this.getParam( 'minHeight' ),
              maxWidth: this.getParam( 'maxWidth' ),
              maxHeight: this.getParam( 'maxHeight' ),
              onEndCrop: onEndCrop 
            } 
          );
        } else {
          this.removeCropper();
          this.curCrop.initialize( 
            'testImage', 
            { 
              minWidth: this.getParam( 'minWidth' ),
              minHeight: this.getParam( 'minHeight' ),
              maxWidth: this.getParam( 'maxWidth' ),
              maxHeight: this.getParam( 'maxHeight' ),
              onEndCrop: onEndCrop 
            } 
          );
        }
        if( e != null ) Event.stop( e );
      },
      
      /**
       * Removes the cropper
       *
       * @access public
       * @return void
       */
      removeCropper: function() {
        if( this.curCrop != null ) {
          this.curCrop.remove();
        }
      },
      
      /**
       * Resets the cropper, either re-setting or re-applying
       *
       * @access public
       * @return void
       */
      resetCropper: function() {
        this.attachCropper();
      }
    };    
    
    /*
    if( typeof(dump) != 'function' ) {
      Debug.init(true, '/');
      
      function dump( msg ) {
        // Debug.raise( msg );
      };
    } else dump( '---------------------------------------\n' );
    */
    
  
  
  
    label { 
      clear: left;
      margin-left: 50px;
      float: left;
      width: 5em;
    }
    
    #testWrap {
      margin: 20px 0 0 50px; /* Just while testing, to make sure we return the correct positions for the image & not the window */
    }
    
    #dimensionsForm {
      float: right;
      width: 350px;
    }
  

  
  

Multiple dimensions tests


  


    Test of applying different dimension restrictions to the cropper
  


  
  
    

      Set the cropper with the following dimension restrictions:
      


        Min Width
        
      

  
      


        Max Width
        
      

  
      


        Min Height
        
      

  
      


        Max Height
        
      

  
      
    

  
  
  
    
  

  
  
  


    x1:
    
  


  


    y1:
    
  


  


    x2:
    
  


  


    y2:
    
  


  


    width:
    
  


  


    height
    
  

  
  


           
       
jsCropperUI-1.2.0.zip( 189 k)