Package org.geoforge.worldwind.builder.editor

Source Code of org.geoforge.worldwind.builder.editor.GfrEditorObjPnt

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.geoforge.worldwind.builder.editor;

import gov.nasa.worldwind.awt.WorldWindowGLCanvas;
import gov.nasa.worldwind.event.SelectEvent;
import gov.nasa.worldwind.event.SelectListener;
import gov.nasa.worldwind.layers.Layer;
import gov.nasa.worldwind.layers.RenderableLayer;
import gov.nasa.worldwind.pick.PickedObject;
import gov.nasa.worldwind.util.BasicDragger;
import java.util.ArrayList;
import org.geoforge.lang.handler.IGfrHandlerLifeCycleObject;
import org.geoforge.worldwind.animation.ViewController;

/**
*
* @author robert
*
* TBRL with ExtentVisibilitySupport, always returning nil in ie
* Iterable<? extends ScreenExtent> screenExtents = this.getScreenExtents();
        if (screenExtents != null)
*/
public class GfrEditorObjPnt implements
        IGfrHandlerLifeCycleObject
{  
   // ---
  
   private Iterable<?> _itrObjsToTrack_;
   private ViewController _vcrViewController_;
   private WorldWindowGLCanvas _glcWwd_ = null;
   private RenderableLayer _lyrPointNew_ = null;
  
  
   public GfrEditorObjPnt(
           WorldWindowGLCanvas glcWwd,
           RenderableLayer rlr)
   {
      super();
     
      this._glcWwd_ = glcWwd;
      this._lyrPointNew_ = rlr;
     
     
      // Create an iterable of the objects we want to keep in view.
      this._itrObjsToTrack_ = new ArrayList<Object>();

     
      // Set up a view controller to keep the objects in view.
      this._vcrViewController_ = new ViewController(this._glcWwd_);
      this._vcrViewController_.setObjectsToTrack(this._itrObjsToTrack_);
      // Set up a layer to render the objects we're tracking.
     
      // Set up a SelectListener to drag the spheres.
      this._glcWwd_.addSelectListener(new SelectListener()
      {
            protected BasicDragger dragger = new BasicDragger(_glcWwd_);

         @Override
            public void selected(SelectEvent evtSelect)
            {
               java.util.List<PickedObject> lstPickedObjects = evtSelect.getAllTopPickedObjects();
           
               if (lstPickedObjects!=null && !lstPickedObjects.isEmpty())
               {
                  for (PickedObject potCur:lstPickedObjects )
                  {
                     Layer lyrCur = potCur.getParentLayer();
                    
                     if (lyrCur != null)
                     {
                       if (lyrCur != _lyrPointNew_)
                          return;
                     }
                  }
               }
              
               // Delegate dragging computations to a dragger.
               this.dragger.selected(evtSelect);

               if (evtSelect.getEventAction().equals(SelectEvent.DRAG))
               {
                  _vcrViewController_.sceneChanged();
               }
            }
      });
   }
  
 
   @Override
   public void destroy()
   {
      // todo
   }
  
   @Override
   public boolean init()
   {
      return true;
   }
  
}
TOP

Related Classes of org.geoforge.worldwind.builder.editor.GfrEditorObjPnt

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.