Author: solomax
Date: Thu Dec 22 15:57:57 2016
New Revision: 1775682

URL: http://svn.apache.org/viewvc?rev=1775682&view=rev
Log:
[OPENMEETINGS-1526] Multiselect using Shift/Ctrl seems to be implemented

Modified:
    
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx
    
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
    
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/tabbar/baseChooseIconView.lzx
    
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx?rev=1775682&r1=1775681&r2=1775682&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx
 Thu Dec 22 15:57:57 2016
@@ -8,15 +8,15 @@
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at
   
-         http://www.apache.org/licenses/LICENSE-2.0
-                 
+      http://www.apache.org/licenses/LICENSE-2.0
+  
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
-  
+
 -->
 <library>
 
@@ -34,7 +34,7 @@
        <attribute name="alreadySent" value="false" type="boolean" />
        <attribute name="fileId" value="0" type="number" />
        <attribute name="moveToHome" value="false" type="boolean" />
-       
+
        <handler name="oninit">
                
lz.Track.activate(canvas.currentImagesListdraw.currentTrackGroupName);
                canvas.currentImagesListdraw.currentDragItem = this;
@@ -42,33 +42,52 @@
                lz.ModeManager.globalLockMouseEvents();
                this.dragger.apply();
        </handler>
-       
+
        <method name="sendOverItem" args="itemRef">
-               <![CDATA[
-                       if (this.refObj != itemRef) {
-                               
-                               if (this.refObj.type == 'Folder') {
-                                       if (!itemRef.isTrashCan && itemRef.type 
!= 'Folder') {
-                                               //No Folders to the whiteboard 
please
-                                               return;
-                                       }
+       <![CDATA[
+               if (this.refObj != itemRef) {
+                       if (this.refObj.type == 'Folder') {
+                               if (!itemRef.isTrashCan && itemRef.type != 
'Folder') {
+                                       //No Folders to the whiteboard please
+                                       return;
                                }
-                               
-                               this.overItem = itemRef;
-                               this._dragIcon.setAttribute("frame",2);
                        }
-               ]]>
+                       this.overItem = itemRef;
+                       this._dragIcon.setAttribute("frame", 2);
+               }
+       ]]>
        </method>
-       
+
        <method name="sendOutItem" args="itemRef">
                this.overItem = null;
-               this._dragIcon.setAttribute("frame",1);
+               this._dragIcon.setAttribute("frame", 1);
        </method>
-       
+
        <handler name="onmouseup" reference="lz.GlobalMouse" args="who">
                this.close();
        </handler>
-       
+
+       <method name="dropToWb" args="item">
+       <![CDATA[
+               switch (item.type) {
+                       case 'Video':
+                               item.playVideo();
+                               break;
+                       case 'WmlFile':
+                               item.loadWmlFile();
+                               break;
+                       case 'Presentation':
+                               item.loadDocumentToWhiteboard();
+                               break;
+                       case 'Image':
+                               item.loadImageToWhiteboard();
+                               break;
+                       default:
+                               if ($debug) Debug.warn("Should never happen 
dragItemFileExplorer unhandled case");
+               }
+       ]]>
+       </method>
+
        <method name="close">
        <![CDATA[
                //This can happen when the confirmation pops up
@@ -82,65 +101,57 @@
                lz.ModeManager.globalUnlockMouseEvents();
                canvas.currentImagesListdraw.currentDragItem = null;
                this.dragger.remove();
-               
+
                if (this.overItem != null) {
-                       
                        if ($debug) Debug.write("this.overItem ",this.overItem);
-                       
+
                        if (this.overItem["isTrashCan"] && 
this.overItem.isTrashCan) {
                                if ($debug) Debug.write("SEND TO GARBAGE");
                                this.fileId = this.refObj.fileId;
                                new lz.confirmationSingle(canvas,{
-                                                  refObj:this,
-                                                  labelid:710,
-                                                  labeliderror:713,
-                                                  showCheckBox:false,
-                                                  
refReturnMethod:"sendConfirmation"
+                                               refObj:this,
+                                               labelid:710,
+                                               labeliderror:713,
+                                               showCheckBox:false,
+                                               
refReturnMethod:"sendConfirmation"
                                                });
                        } else if (this.overItem["type"] && this.overItem.type 
== 'Folder'){
                                if ($debug) Debug.write("MOVE 
ITEM",this.refObj.fileId);
                                if ($debug) Debug.write("MOVE TO 
PARENT",this.overItem.fileId);
                                this.fileId = this.refObj.fileId;
-                               
+
                                //check if this is a home folder or not
                                var checkForOwer = 
this.overItem.checkForIsOwner();
                                if ($debug) Debug.write("checkForOwer 
::",checkForOwer);
                                this.moveToHome = checkForOwer;
-                               
+
                                //check that the file is not moved inside itself
                                if 
(this.overItem.checkForIsChild(this.refObj.fileId)) {
                                        new 
lz.labelerrorPopup(canvas,{errorlabelid:922});
                                        this.destroy();
                                        return;
                                }
-                               
+
                                this.moveFile();
                        } else {
                                if ($debug) Debug.warn("Drag to whiteboard !!! 
");
-                               switch (this.refObj.type) {
-                                       case 'Video':
-                                               this.refObj.playVideo();
-                                               break;
-                                       case 'WmlFile':
-                                               this.refObj.loadWmlFile();
-                                               break;
-                                       case 'Presentation':
-                                               
this.refObj.loadDocumentToWhiteboard();
-                                               break;
-                                       case 'Image':
-                                               
this.refObj.loadImageToWhiteboard();
-                                               break;
-                                       default:
-                                               if ($debug) Debug.warn("Should 
never happen dragItemFileExplorer unhandled case");
+                               var l = 
canvas.currentFileExplorer._selectedList;
+                               if (l.length > 0) {
+                                       for (var i = 0; i < l.length; ++i) {
+                                               dropToWb(l[i]);
+                                       }
+                               } else {
+                                       dropToWb(this.refObj);
                                }
+                               canvas.currentFileExplorer.deselectAll();
                                this.destroy();
                        }
                } else {
                        this.destroy();
                }
-       ]]>     
+       ]]>
        </method>
-       
+
        <method name="sendConfirmation" args="bool,askAgain">
                if (bool) {
                        this.deleteFileOrFolder();
@@ -148,11 +159,11 @@
                        this.destroy();
                }
        </method>
-       
-       <method name="deleteFileOrFolder">
+
+       <method name="_delete" args="_fileId">
        <![CDATA[
                var deleteLoader = new RestCall({
-                               url: canvas.getUrl() + 'services/file/' + 
this.fileId
+                               url: canvas.getUrl() + 'services/file/' + 
_fileId
                                , method: URLRequestMethod.POST
                                , hdrs: [new 
URLRequestHeader("X-HTTP-Method-Override", "DELETE")]
                                , errorCallback: deleteError
@@ -161,52 +172,86 @@
                deleteLoader.load('--dummy--');
        ]]>
        </method>
-       
+
+       <method name="deleteFileOrFolder">
+       <![CDATA[
+               var l = canvas.currentFileExplorer._selectedList;
+               if (l.length > 0) {
+                       for (var i = 0; i < l.length; ++i) {
+                               _delete(l[i].fileId);
+                       }
+               } else {
+                       _delete(this.fileId);
+               }
+       ]]>
+       </method>
+
        <method name="deleteComplete" args="event">
                var o = JSON.parse(event.target.data);
-               if ($debug) Debug.info("drag::deleteComplete ", o);
+               if ($debug) Debug.info("drag::deleteComplete ", 
o.serviceResult);
                //TODO check return code
+               var item = 
canvas.currentFileExplorer.deselect(o.serviceResult.code);
+               if (!!item) {
+                       item.parent.parent.doOpen();
+               }
                this.refObj.parent.parent.doOpen();
                this.destroy();
        </method>
-       
+
        <method name="deleteError" args="event">
                if ($debug) Debug.error("drag::deleteError ", event);
                this.destroy();
        </method>
-       
-       <method name="moveFile">
+
+       <method name="_move" args="_fileId">
        <![CDATA[
-               if ($debug) Debug.write("moveFile HTTP 1: ");
+               if ($debug) Debug.write("move HTTP 1: ");
                var moveLoader = new RestCall({
-                               url: canvas.getUrl() + 'services/file/move/' + 
hib.currentroomid + '/' + this.fileId + '/' + this.overItem.fileId
+                               url: canvas.getUrl() + 'services/file/move/' + 
hib.currentroomid + '/' + _fileId + '/' + this.overItem.fileId
                                , method: URLRequestMethod.POST
-                               , errorCallback: deleteError
-                               , successCallback: deleteComplete
+                               , errorCallback: moveError
+                               , successCallback: moveComplete
                                });
                moveLoader.load('--dummy--');
        ]]>
        </method>
-       
+
+       <method name="moveFile">
+       <![CDATA[
+               var l = canvas.currentFileExplorer._selectedList;
+               if (l.length > 0) {
+                       for (var i = 0; i < l.length; ++i) {
+                               _move(l[i].fileId);
+                       }
+               } else {
+                       _move(this.fileId);
+               }
+       ]]>
+       </method>
+
        <method name="moveComplete" args="event">
                var o = JSON.parse(event.target.data);
-               if ($debug) Debug.info("drag::moveComplete ", o);
+               if ($debug) Debug.info("drag::moveComplete ", 
o.fileExplorerItemDTO);
                //TODO check return code
+               var item = 
canvas.currentFileExplorer.deselect(o.fileExplorerItemDTO.id);
+               if ($debug) Debug.info("drag::moveComplete ", item);
+               if (!!item) {
+                       item.parent.parent.doOpen();
+               }
                this.overItem.doOpen();
                this.refObj.parent.parent.doOpen();
                this.destroy();
        </method>
-       
+
        <method name="moveError" args="event">
                if ($debug) Debug.error("drag::moveError ", event);
                this.destroy();
        </method>
-       
+
        <view name="_dragFileSymbol" x="10" y="10" resource="$once{ 
parent.dragItemResource }" />
-       
+
        <view name="_dragIcon" x="18" y="14" resource="drag_n_drop_rsc" 
frame="1" />
-       
+
        <dragstate name="dragger"/>
 </class>
-
 </library>

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx?rev=1775682&r1=1775681&r2=1775682&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
 Thu Dec 22 15:57:57 2016
@@ -32,6 +32,7 @@
                </when>
        </switch>
        <attribute name="_selected" value="null" />
+       <attribute name="_selectedList" value="$once{new Array()}" />
        <attribute name="rootFileLoader" />
        <attribute name="createFileLoader"/>
        <attribute name="createFileRefObj"/>
@@ -53,12 +54,95 @@
                }
        </handler>
 
+       <handler name="onkeydown" reference="lz.Keys" args="keyCode">
+       <![CDATA[
+               if (keyCode == 27) { //esc
+                       deselectAll();
+               }
+       ]]>
+       </handler>
+
+       <method name="deselectAll">
+       <![CDATA[
+               if (_selectedList.length > 0) {
+                       for (var i = 0; i < _selectedList.length; ++i) {
+                               _selectedList[i].deselectItem();
+                       }
+                       _selectedList.splice(0, _selectedList.length);
+                       _selected.selectItem(null);
+               }
+               if (!!_selected) {
+                       _selected.deselectItem();
+               }
+       ]]>
+       </method>
+
+       <method name="deselect" args="_fileId">
+       <![CDATA[
+               for (var i = 0; i < _selectedList.length; ++i) {
+                       var item = _selectedList[i];
+                       if (item.fileId == _fileId) {
+                               item.deselectItem();
+                               _selectedList.removeAt(i);
+                               return item;
+                       }
+               }
+               return null;
+       ]]>
+       </method>
+
        <method name="selectItem" args="itemRef">
-               if (this._selected != null) {
-                       this._selected.deselectItem();
+       <![CDATA[
+               var singleSel = true;
+               if (lz.Keys.isKeyDown("control")) {
+                       // deselect in case already selected
+                       singleSel = !deselect(itemRef.fileId);
+                       if (singleSel) {
+                               if (_selectedList.length == 0 && !!_selected) {
+                                       _selectedList.push(_selected);
+                               }
+                               _selectedList.push(itemRef);
+                       }
+               } else if (lz.Keys.isKeyDown("shift") && !!_selected && 
_selected.fileId != itemRef.fileId) {
+                       deselectAll();
+                       var _y1 = _selected.getGlobalY(), _y2 = 
itemRef.getGlobalY();
+                       var from = _y1 < _y2 ? _selected : itemRef
+                               , to = _y1 < _y2 ? itemRef : _selected;
+                       var d1 = from.depth(), d2 = to.depth();
+                       if (d1 == d2) {
+                               var p = null;
+                               if (d1 == 0) {
+                                       p = _filearea._contentarea.subviews;
+                               } else if (from.parent.parent.fileId == 
to.parent.parent.fileId) {
+                                       p = from.parent.subviews;
+                               }
+                               if (!!p) {
+                                       var sel = false;
+                                       for (var eg in p) {
+                                               var node = p[eg];
+                                               if (node.fileId == from.fileId) 
{
+                                                       sel = true;
+                                               }
+                                               if (sel) {
+                                                       
_selectedList.push(node);
+                                                       node.selectItem(null);
+                                               }
+                                               if (node.fileId == to.fileId) {
+                                                       break;
+                                               }
+                                       }
+                                       singleSel = false;
+                               }
+                       }
+               } else {
+                       deselectAll();
                }
-               this._selected = itemRef;
-               this._selected.selectItem(null);
+               if (singleSel) {
+                       _selected = itemRef;
+                       _selected.selectItem(null);
+               }
+               //if ($debug) Debug.write("fileExplorer::selectItem ", 
_selectedList);
+       ]]>
        </method>
 
        <method name="addFile">
@@ -146,7 +230,7 @@
 
        <method name="setSize" args="size, el">
                var sizem = Math.round((size / 1024 / 1024) * 100) / 100;
-               el.setAttribute("text","" + sizem + " MBytes");
+               el.setAttribute("text", "" + sizem + " MBytes");
        </method>
 
        <method name="createRootItems" args="roomObject">
@@ -240,7 +324,6 @@
        <!--
                Borders
         -->
-
        <view name="_border2" x="0" y="${ 33 + parent._documentsTabs.height }" 
width="$once{ parent.width }"
                        height="1" bgcolor="$once{ 
canvas.getThemeColor('secondBorderColor') }" />
 
@@ -253,7 +336,6 @@
        <!--
                File Tree Content Tabbar
         -->
-
        <view name="_fileBar" layout="axis:x" x="0" y="${ 14 + 
parent._documentsTabs.height }">
                <baseChooseIconView labelid="702" height="20" width="19" 
bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }"
                                resourceN="file_explorer_add_file_rsc">
@@ -282,11 +364,10 @@
        <!--
                File Tree Content Trashbar
         -->
-
        <view name="_trashBar" layout="axis:x" x="$once{ parent.width - 20 }"
-                 y="${ 14 + parent._documentsTabs.height }">
+                       y="${ 14 + parent._documentsTabs.height }">
                <baseChooseIconView name="_trashIcon" labelid="705" height="20" 
width="19"
-                                                
resourceN="file_explorer_trash_rsc" bgcolor="$once{ 
canvas.getThemeColor('secondBorderColor') }">
+                               resourceN="file_explorer_trash_rsc" 
bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }">
                        <attribute name="isTrashCan" value="true" 
type="boolean" />
                        <handler name="onclick">
                                if ($debug) Debug.write("Delete Folder and 
Files");
@@ -312,7 +393,6 @@
        <!--
                File Tree Content
         -->
-
        <view name="_filearea" x="1" y="${ 34 + parent._documentsTabs.height }" 
clip="true"
                        height="${ parent.height - 35 - 
parent._documentsTabs.height - parent._userSpace.height }"
                        width="$once{ parent.width }">

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/tabbar/baseChooseIconView.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/tabbar/baseChooseIconView.lzx?rev=1775682&r1=1775681&r2=1775682&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/tabbar/baseChooseIconView.lzx
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/tabbar/baseChooseIconView.lzx
 Thu Dec 22 15:57:57 2016
@@ -9,44 +9,44 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-         
+  
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
-  
+
 -->
 <library>
 
-<class name="baseChooseIconView" extends="view" width="24" height="24" 
-       bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }"  >
-    
-    <attribute name="resourceN" value="" type="string" />
-    <attribute name="isselected" value="false" type="boolean" />
-    <attribute name="labelid" value="0" type="number" />
-    
-    <handler name="oninit">
-        if (this.isselected){
-            this.onclick.sendEvent();
-        }
-    </handler> 
-    
-    <handler name="onmouseover">
-        
this._bg.setAttribute("bgcolor",canvas.getThemeColor('baseMousecolorizer'));
-    </handler>
-    
-    <handler name="onmouseout">
-        
this._bg.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
-    </handler>
-    
-    <view name="_bg" x="1" y="1" width="$once{ parent.width-1 }" 
-          height="$once{ parent.height-2 }" bgcolor="$once{ 
canvas.getThemeColor('mainBackgroundColor') }" />
-    
-    <view x="2" y="2" resource="$once{ parent.resourceN }" />
-             
-    <labelTooltip labelid="$once{ parent.labelid }" inittwice="true" />
+<class name="baseChooseIconView" extends="view" width="24" height="24"
+          bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }"  >
+
+       <attribute name="resourceN" value="" type="string" />
+       <attribute name="isselected" value="false" type="boolean" />
+       <attribute name="labelid" value="0" type="number" />
+
+       <handler name="oninit">
+               if (this.isselected){
+                       this.onclick.sendEvent();
+               }
+       </handler>
+
+       <handler name="onmouseover">
+               
this._bg.setAttribute("bgcolor",canvas.getThemeColor('baseMousecolorizer'));
+       </handler>
+
+       <handler name="onmouseout">
+               
this._bg.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+       </handler>
+
+       <view name="_bg" x="1" y="1" width="$once{ parent.width-1 }"
+                 height="$once{ parent.height-2 }" bgcolor="$once{ 
canvas.getThemeColor('mainBackgroundColor') }" />
+
+       <view x="2" y="2" resource="$once{ parent.resourceN }" />
+
+       <labelTooltip labelid="$once{ parent.labelid }" inittwice="true" />
 </class>
 
 </library>

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx?rev=1775682&r1=1775681&r2=1775682&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx
 Thu Dec 22 15:57:57 2016
@@ -46,7 +46,6 @@
        <attribute name="mouseDownClickDelegate" value="null" />
        <attribute name="isTrashCan" value="false" type="boolean" />
        <attribute name="folderLoader" />
-       <attribute name="deleteLoader" />
 
        <handler name="oninit">
                this.singleClickDelegate = new LzDelegate(this, 
"doSingleClick");
@@ -140,58 +139,75 @@
                        this.deleteFileOrFolder();
                }
        </method>
-       
-       <method name="deleteFileOrFolder">
+
+       <method name="_delete" args="_fileId">
        <![CDATA[
-               if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
-                       new lz.labelerrorPopup(canvas, {errorlabelid: 1462});
-                       return;
-               }
-               
                if ($debug) Debug.write("deleteFileOrFolder HTTP 1: ");
-               if (!deleteLoader) {
-                       deleteLoader = new RestCall({
-                               url: canvas.getUrl() + 'services/file/' + 
this.fileId
+               var deleteLoader = new RestCall({
+                               url: canvas.getUrl() + 'services/file/' + 
_fileId
                                , method: URLRequestMethod.POST
                                , hdrs: [new 
URLRequestHeader("X-HTTP-Method-Override", "DELETE")]
                                , errorCallback: deleteError
                                , successCallback: deleteComplete
                                });
-               }
                deleteLoader.load('--dummy--');
        ]]>
        </method>
-       
+
+       <method name="deleteFileOrFolder">
+       <![CDATA[
+               if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+                       new lz.labelerrorPopup(canvas, {errorlabelid: 1462});
+                       return;
+               }
+               var l = canvas.currentFileExplorer._selectedList;
+               if (l.length > 0) {
+                       for (var i = 0; i < l.length; ++i) {
+                               _delete(l[i].fileId);
+                       }
+               } else {
+                       _delete(this.fileId);
+               }
+       ]]>
+       </method>
+
        <method name="deleteComplete" args="event">
                var o = JSON.parse(event.target.data);
-               if ($debug) Debug.info("base::deleteComplete ", o);
+               if ($debug) Debug.info("base::deleteComplete ", 
o.serviceResult);
                //TODO check return code
+               var item = 
canvas.currentFileExplorer.deselect(o.serviceResult.code);
+               if (!!item) {
+                       item.parent.parent.doOpen();
+               }
                this.parent.parent.doOpen();
                canvas.currentFileExplorer._selected = null;
        </method>
-       
+
        <method name="deleteError" args="event">
                if ($debug) Debug.error("base::deleteError ", event);
        </method>
-       
+
        <method name="doSingleClick" args="itemObj">
                this.singleClickStarted = false;
                //Cannot change name for Root Icons
                if (this.isRoot) {
                        return;
                }
+               if (lz.Keys.isKeyDown("control")) {
+                       return;
+               }
                this.addOrUpdateFolderName();
        </method>
-       
+
        <method name="doResetSingleClick" args="itmeObj">
                this.singleClickStarted = false;
        </method>
-       
+
        <method name="addFile">
                canvas.currentFileExplorer.selectItem(this);
                canvas.currentFileExplorer.addFile();
        </method>
-       
+
        <method name="addFolder">
        <![CDATA[
                if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
@@ -218,11 +234,11 @@
                }
        ]]>
        </method>
-       
+
        <method name="refresh">
                this.doOpen();
        </method>
-       
+
        <method name="playVideo">
        <![CDATA[
                if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
@@ -232,7 +248,7 @@
                canvas.currentFileExplorer.playVideo(this);
        ]]>
        </method>
-       
+
        <method name="editFolderName">
        <![CDATA[
                if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
@@ -242,7 +258,7 @@
                this.addOrUpdateFolderName();
        ]]>
        </method>
-       
+
        <method name="loadDocument">
        <![CDATA[
                if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
@@ -252,7 +268,7 @@
                canvas.currentFileExplorer.loadDocument(this);
        ]]>
        </method>
-       
+
        <method name="loadWmlFile">
        <![CDATA[
                if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
@@ -272,7 +288,7 @@
                canvas.currentFileExplorer.loadChart(this);
        ]]>
        </method>
-       
+
        <method name="addOrUpdateFolderName">
        <![CDATA[
                if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
@@ -306,7 +322,7 @@
                        lz.Timer.addTimer(this.resetClickDelegate, 300);
                }
        </method>
-       
+
        <method name="toggleOpen" args="setSelection">
        <![CDATA[
                if (this.mouseDownClickUsed) {
@@ -345,6 +361,7 @@
                                        if (setSelection) {
                                                doSetSelection()
                                        } else {
+                                               
canvas.currentFileExplorer.deselectAll();
                                                this.doClose();
                                        }
                                } else {
@@ -359,12 +376,12 @@
                if (setSelection) canvas.currentFileExplorer.selectItem(this);
        ]]>
        </method>
-       
+
        <method name="selectItem" args="none">
                this.selected = true;
-               
this._fileName.setAttribute("bgcolor",canvas.getThemeColor('baseMousecolorizer'));
+               this._fileName.setAttribute("bgcolor", 
canvas.getThemeColor('baseMousecolorizer'));
        </method>
-       
+
        <method name="deselectItem">
                this.selected = false;
                if (this["_fileName"]) {
@@ -373,15 +390,17 @@
                        if ($debug) Debug.warn("deselectItem:: _fileName is 
NULL ",this);
                }
        </method>
-       
+
        <method name="clearContent">
        <![CDATA[
-               while (this.content.subviews.length > 0) {
-                       this.content.subviews[0].destroy();
+               if (!!this.content) {
+                       while (this.content.subviews.length > 0) {
+                               this.content.subviews[0].destroy();
+                       }
                }
        ]]>
        </method>
-       
+
        <method name="loadFiles">
        <![CDATA[
                if (!folderLoader) {
@@ -401,7 +420,7 @@
                if ($debug) Debug.info("base::loadFilesComplete ", o);
                setNodes(o.fileExplorerItemDTO);
        </method>
-       
+
        <method name="loadFilesError" args="event">
                if ($debug) Debug.error("base::loadFilesError ", event);
        </method>
@@ -547,5 +566,37 @@
                }
        ]]>
        </method>
+
+       <method name="getGlobalY">
+               return getAttributeRelative("y", 
canvas.currentFileExplorer._filearea._contentarea);
+       </method>
+
+       <method name="selectBetween" args="y1, y2">
+       <![CDATA[
+               var y = getGlobalY();
+               if (y > y2) {
+                       return;
+               }
+               if (y >= y1) {
+                       canvas.currentFileExplorer._selectedList.push(this);
+                       this.selectItem(null);
+               }
+               if (type == 'Folder' && open) {
+                       for (var eg in this.content.subviews) {
+                               this.content.subviews[eg].selectBetween(y1, y2);
+                       }
+               }
+       ]]>
+       </method>
+
+       <method name="depth">
+               var d = 0;
+               var c = this;
+               while (!c.isRoot) {
+                       c = c.parent.parent;
+                       d++;
+               }
+               return d;
+       </method>
 </class>
 </library>


Reply via email to