Revision: 20455
          http://sourceforge.net/p/jmol/code/20455
Author:   hansonr
Date:     2015-04-23 00:05:33 +0000 (Thu, 23 Apr 2015)
Log Message:
-----------
Jmol.___JmolVersion="14.3.13_2015.04.22"

bug fix: loading mmCIF data in-line loses multi-character chain IDs

bug fix: with set picking dragSelected with allowMoveAtoms FALSE and 
allowRotateSelected TRUE
         rotating the atoms with ALT-left ignores setting of allowMoveAtoms
          
    // see footnotes below for ^, $, #, and *
    //
    // settings:^    set picking dragSelected             set dragSelected 
    //
    // move:#                 drag                          alt-shift-drag
    // rotate:#*          alt-drag                                alt-drag
    // z-shift:#        shift-drag                                  (n/a)
    // 
    // double-click:$  (starts measurement)       (sets selected if set picking 
SELECT)
    //
    // ^ set picking dragSelected overrules set dragSelected
    // # all actions involve whole molecules unless   set allowMoveAtoms TRUE
    // * rotate requires   set allowRotateSelected TRUE
    // $ set dragSelected allows quick setting of a new molecule using 
double-click
    // $ set picking dragSelected allows measurements with double-click, as 
usual

  
code: introduce use of (int... ) syntax in ActionManager simplifies logic

Modified Paths:
--------------
    trunk/Jmol/src/org/jmol/viewer/ActionManager.java
    trunk/Jmol/src/org/jmol/viewer/Jmol.properties

Modified: trunk/Jmol/src/org/jmol/viewer/ActionManager.java
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/ActionManager.java   2015-04-22 22:52:35 UTC 
(rev 20454)
+++ trunk/Jmol/src/org/jmol/viewer/ActionManager.java   2015-04-23 00:05:33 UTC 
(rev 20455)
@@ -1062,16 +1062,7 @@
     if (dragAtomIndex >= 0) {
       switch (apm) {
       case PICKING_DRAG_SELECTED:
-        setMotion(GenericPlatform.CURSOR_MOVE, true);
-        if (bnd(dragWheelAction, ACTION_rotateSelected)
-            && vwr.getBoolean(T.allowrotateselected)) {
-          vwr.rotateSelected(getDegrees(deltaX, true), getDegrees(deltaY, 
false),
-              null);
-        } else {
-          vwr.moveSelected(deltaX, deltaY, (bnd(dragWheelAction,
-              ACTION_dragZ) ? -deltaY : Integer.MIN_VALUE), Integer.MIN_VALUE,
-              Integer.MIN_VALUE, null, true, false);
-        }
+        dragSelected(dragWheelAction, deltaX, deltaY, true);
         return;
       case PICKING_DRAG_LIGAND:
       case PICKING_DRAG_MOLECULE:
@@ -1138,6 +1129,8 @@
     if (dragSelectedMode
         && haveSelection
         && bnd(dragWheelAction, ACTION_dragSelected, ACTION_rotateSelected)) {
+      // we will drag atoms and either rotate or translate them
+      // possibly just the atoms or possibly their molecule (decided in Viewer)
       int iatom = vwr.bsA().nextSetBit(0);
       if (iatom < 0)
         return;
@@ -1146,14 +1139,7 @@
       else
         vwr.moveSelected(Integer.MAX_VALUE, 0, Integer.MIN_VALUE,
             Integer.MIN_VALUE, Integer.MIN_VALUE, null, false, false);
-      setMotion(GenericPlatform.CURSOR_MOVE, true);
-      if (bnd(dragWheelAction, ACTION_rotateSelected)
-          && vwr.getBoolean(T.allowrotateselected))
-        vwr.rotateSelected(getDegrees(deltaX, true), getDegrees(deltaY, false),
-            null);
-      else
-        vwr.moveSelected(deltaX, deltaY, Integer.MIN_VALUE,
-            Integer.MIN_VALUE, Integer.MIN_VALUE, null, true, false);
+      dragSelected(dragWheelAction, deltaX, deltaY, false);
       return;
     }
 
@@ -1214,6 +1200,53 @@
     }
   }
 
+  /**
+   * change actual coordinates of selected atoms from set dragSeleted TRUE or
+   * set PICKING DRAGSELECTED
+   * 
+   * Basically, set dragSelected adds new functionality to Jmol with alt-drag
+   * and alt-shift drag, and set picking dragSelected replaces the standard
+   * mouse drag with a move action and also adds rotate and z-shift options.
+   * 
+   * set dragSelected also allows other picking types, such as set picking 
SELECT,
+   * which uses double-click to start rotating/moving another molecule. 
+   * 
+   * @param a
+   * @param deltaX
+   * @param deltaY
+   * @param isPickingDrag
+   */
+  private void dragSelected(int a, int deltaX, int deltaY, boolean 
isPickingDrag) {
+
+    // see footnotes below for ^, $, #, and *
+    //
+    // settings:^    set picking dragSelected             set dragSelected 
+    //
+    // move:#                 drag                          alt-shift-drag
+    // rotate:#*          alt-drag                                alt-drag
+    // z-shift:#        shift-drag                                  (n/a)
+    // 
+    // double-click:$  (starts measurement)       (sets selected if set 
picking SELECT)
+    //
+    // # all actions involve whole molecules unless   set allowMoveAtoms TRUE
+    // ^ set picking dragSelected overrules set dragSelected
+    // * rotate requires   set allowRotateSelected TRUE
+    // $ set dragSelected allows quick setting of a new molecule using 
double-click
+    // $ set picking dragSelected allows measurements with double-click, as 
usual
+
+    setMotion(GenericPlatform.CURSOR_MOVE, true);
+    if (bnd(a, ACTION_rotateSelected) && vwr.getBoolean(T.allowrotateselected))
+      vwr.rotateSelected(getDegrees(deltaX, true), getDegrees(deltaY, false),
+          null);
+    else
+      vwr.moveSelected(
+          deltaX,
+          deltaY,
+          (isPickingDrag && bnd(a, ACTION_dragZ) ? -deltaY : 
Integer.MIN_VALUE),
+          Integer.MIN_VALUE, Integer.MIN_VALUE, null, true, false);
+  }
+
+
   private void checkReleaseAction(int x, int y, long time, boolean 
dragRelease) {
     if (Logger.debugging)
       Logger.debug(Binding.getMouseActionName(pressAction, false));
@@ -1251,8 +1284,7 @@
       vwr.checkObjectDragged(Integer.MAX_VALUE, 0, x, y, dragAction);
       return;
     }
-    if (dragSelectedMode && bnd(dragAction, ACTION_dragSelected)
-        && haveSelection)
+    if (haveSelection && dragSelectedMode && bnd(dragAction, 
ACTION_dragSelected))
       vwr.moveSelected(Integer.MAX_VALUE, 0, Integer.MIN_VALUE,
           Integer.MIN_VALUE, Integer.MIN_VALUE, null, false, false);
 

Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/Jmol.properties      2015-04-22 22:52:35 UTC 
(rev 20454)
+++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties      2015-04-23 00:05:33 UTC 
(rev 20455)
@@ -21,8 +21,22 @@
 bug fix: with set picking dragSelected with allowMoveAtoms FALSE and 
allowRotateSelected TRUE
          rotating the atoms with ALT-left ignores setting of allowMoveAtoms
           
-  set allowmoveatoms false; 
-  set allowrotateselected true; 
+    // see footnotes below for ^, $, #, and *
+    //
+    // settings:^    set picking dragSelected             set dragSelected 
+    //
+    // move:#                 drag                          alt-shift-drag
+    // rotate:#*          alt-drag                                alt-drag
+    // z-shift:#        shift-drag                                  (n/a)
+    // 
+    // double-click:$  (starts measurement)       (sets selected if set 
picking SELECT)
+    //
+    // ^ set picking dragSelected overrules set dragSelected
+    // # all actions involve whole molecules unless   set allowMoveAtoms TRUE
+    // * rotate requires   set allowRotateSelected TRUE
+    // $ set dragSelected allows quick setting of a new molecule using 
double-click
+    // $ set picking dragSelected allows measurements with double-click, as 
usual
+
   
 code: introduce use of (int... ) syntax in ActionManager simplifies logic
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
Jmol-commits mailing list
Jmol-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-commits

Reply via email to