Draggable & Resizable items in Beta 2

  1. #1

    Draggable & Resizable items in Beta 2

    Hi,

    Updated with last Beta 2 version, it looks like a draggable and resizable item is not showing its corresponding size when the item is being resized.

    When throw a tree node to create a new item dynamically, if code related with make it draggable (makeDraggable), then it works as expected.

    Could this be a bug or it must be performed in some other way?

    Here is my sample code:

    <%@ Page Language="C#" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <!DOCTYPE html>
    <html>
    <head runat="server">
         <title>DragDrop from TreePanel to Div - Ext.NET Examples</title>
         <link href="/resources/css/examples.css" rel="stylesheet" type="text/css" />
         <style type="text/css">     
            .expand-icon {
                 background-image: url(../resources/images/expand-all.gif) !important;
             }
             .collapse-icon {
                 background-image: url(../resources/images/collapse-all.gif) !important;
             }               
            .dynamicDiv {
                width: 100px;
                height: 20px;
                border: 1px solid #a0a0a0;
                background-color : white;
                font-size: 11px;
                font-family: verdana;
                padding: 1px;
                position: absolute;
                cursor: move;
            }   
            .dynamicDiv-proxy 
            {
             font-size : 11px;
                opacity : 0.4;
                -moz-opacity : 0.4;
                filter : alpha(opacity=40);
            }       
         </style>
         <script type="text/javascript">
             var notifyDropHeader = function (dd, e, data) {
                 if (!data.records[0].get('leaf'))
                     return false;
                 createDiv(dd, e, data, Ext.get("drop-header"));
             };
             var globalIndex = 0;
             var createDiv = function (dd, e, data, parentDiv) {
                 var divTag = document.createElement("div");
                 divTag.id = data.records[0].id + "_" + globalIndex++;
                 divTag.className = "dynamicDiv";
                 divTag.innerHTML = data.records[0].get('text');
                 divTag.metadata = data.records[0].get('data');
                 parentDiv.appendChild(divTag);
                 Ext.get(divTag).setLeftTop(e.getPageX() - parentDiv.getX(), e.getPageY() - parentDiv.getY());
                 makeResizable(divTag.id);
                 makeDraggable(divTag.id);
             }
             var makeResizable = function (el) {
                 new Ext.Resizable(el, {
                     dynamic: true,
                     handles: "all",
                     group: "tree2div",
                     minHeight: 10,
                     minWidth: 10,
                     wrap: true
                 });
             };
             var makeDraggable = function (el) {
                 var dd = new Ext.dd.DDProxy(el, "tree2div");
                 dd.startDrag = startDrag;
                 dd.afterDrag = afterDrag;
             };
             var filterTree = function (tf, e) {
                 var tree = App.treeComponentes,
                     text = tf.getRawValue();
                 tree.clearFilter();
                 if (Ext.isEmpty(text, false)) {
                     return;
                 }
                 if (e.getKey() === Ext.EventObject.ESC) {
                     clearFilter();
                 } else {
                     var re = new RegExp(".*" + text + ".*", "i");
                     tree.filterBy(function (node) {
                         return re.test(node.data.text);
                     });
                 }
             };
             var clearFilter = function () {
                 var field = App.TriggerField1,
                     tree = App.treeComponentes;
                 field.setValue("");
                 tree.clearFilter(true);
                 tree.getView().focus();
             };
             var startDrag = function (x, y) {
                 var dragEl = Ext.get(this.getDragEl());
                 var el = Ext.get(this.getEl());
                 el.hide();
                 dragEl.applyStyles({ border: "solid gray 1px" });
                 dragEl.update(el.dom.innerHTML);
                 dragEl.addCls(el.dom.className + " dd-proxy");
             };
             var afterDrag = function () {
                 var el = Ext.get(this.getEl());
                 el.show();
                 if (App.DragArea)
                     App.DragArea.fireEvent("itemdrag", this);
             };
         </script>
    </head>
    <body>
         <ext:ResourceManager runat="server" />
             
         <ext:Viewport runat="server" Layout="Fit" AutoScroll="true">
             <Content>
                 <ext:DropTarget runat="server" Target="drop-header" Group="tree2div">
                     <notifyDrop Fn="notifyDropHeader" />
                 </ext:DropTarget>       
                <ext:DDProxy runat="server" Target="dd1-item1" Group="tree2div">        
                    <StartDrag Fn="startDrag" />
                    <AfterDrag Fn="afterDrag" />
                 </ext:DDProxy>  
                <ext:Resizer 
                    ID="CustomResizer" 
                    runat="server" 
                    Target="dd1-item1" 
                    Wrap="true"
                    MinWidth="50"
                    MinHeight="20"
                    Handles="All"
                    Dynamic="true"
                    />                                                            
            </Content>
             <Items>
                 <ext:Panel 
                    runat="server" 
                    Layout="Border">
                     <TopBar>
                         <ext:Toolbar runat="server">
                             <Items>
                                 <ext:ButtonGroup 
                                    runat="server" 
                                    Title="Clipboard" 
                                    HeaderPosition="Bottom"
                                     Columns="2">
                                     <Items>
                                         <ext:SplitButton runat="server" Text="Menu Button" IconCls="add16">
                                             <Menu>
                                                 <ext:Menu runat="server">
                                                     <Items>
                                                         <ext:MenuItem runat="server" Text="Menu Button 1" />
                                                     </Items>
                                                 </ext:Menu>
                                             </Menu>
                                         </ext:SplitButton>
                                         <ext:SplitButton runat="server" Text="Cut" IconCls="add16">
                                             <Menu>
                                                 <ext:Menu runat="server">
                                                     <Items>
                                                         <ext:MenuItem runat="server" Text="Cut Menu Item" />
                                                     </Items>
                                                 </ext:Menu>
                                             </Menu>
                                         </ext:SplitButton>
                                         <ext:Button runat="server" Text="Copy" IconCls="add16" />
                                         <ext:Button runat="server" Text="Paste" IconCls="add16">
                                             <Menu>
                                                 <ext:Menu runat="server">
                                                     <Items>
                                                         <ext:MenuItem runat="server" Text="Paste Menu Item" />
                                                     </Items>
                                                 </ext:Menu>
                                             </Menu>
                                         </ext:Button>
                                         <ext:Button runat="server" Text="Format" IconCls="add16" />
                                     </Items>
                                 </ext:ButtonGroup>
                                 <ext:ButtonGroup 
                                    runat="server" 
                                    Title="Other Actions" 
                                    HeaderPosition="Bottom" 
                                    Columns="2">
                                     <Items>
                                         <ext:SplitButton runat="server" Text="Menu Button" IconCls="add16">
                                             <Menu>
                                                 <ext:Menu runat="server">
                                                     <Items>
                                                         <ext:MenuItem runat="server" Text="Menu Button 1" />
                                                     </Items>
                                                 </ext:Menu>
                                             </Menu>
                                         </ext:SplitButton>
                                         <ext:SplitButton runat="server" Text="Cut" IconCls="add16">
                                             <Menu>
                                                 <ext:Menu runat="server">
                                                     <Items>
                                                         <ext:MenuItem runat="server" Text="Cut Menu Item" />
                                                     </Items>
                                                 </ext:Menu>
                                             </Menu>
                                         </ext:SplitButton>
                                         <ext:Button runat="server" Text="Copy" IconCls="add16" />
                                         <ext:Button runat="server" Text="Paste" IconCls="add16">
                                             <Menu>
                                                 <ext:Menu runat="server">
                                                     <Items>
                                                         <ext:MenuItem runat="server" Text="Paste Menu Item" />
                                                     </Items>
                                                 </ext:Menu>
                                             </Menu>
                                         </ext:Button>
                                         <ext:Button runat="server" Text="Format" IconCls="add16" />
                                     </Items>
                                 </ext:ButtonGroup>
                             </Items>
                         </ext:Toolbar>
                     </TopBar>
                     <Items>
                         <ext:TreePanel 
                            ID="treeComponentes" 
                            runat="server" 
                            Title="Controls" 
                            Icon="BrickGo" 
                            Collapsible="true" 
                            Split="true" 
                            Width="260" 
                            Region="West" 
                            Margins="0 0 0 2"
                            EnableDrag="true"                            
                            DDGroup="tree2div"
                            AutoScroll="true" 
                            RootVisible="false">
                             <TopBar>
                                 <ext:Toolbar runat="server">
                                     <Items>
                                         <ext:ToolbarTextItem runat="server" Text="Filter:" />
                                         <ext:ToolbarSpacer />
                                         <ext:TriggerField 
                                            ID="TriggerField1" 
                                            runat="server" 
                                            EnableKeyEvents="true">
                                             <Triggers>
                                                 <ext:FieldTrigger Icon="Clear" />
                                             </Triggers>
                                             <Listeners>
                                                 <KeyUp Fn="filterTree" Buffer="250" />
                                                 <TriggerClick Handler="clearFilter();" />
                                             </Listeners>
                                         </ext:TriggerField>
                                         <ext:ToolbarFill />
                                         <ext:Button runat="server" IconCls="expand-icon">
                                             <ToolTips>
                                                 <ext:ToolTip runat="server" Html="Expand All" />
                                             </ToolTips>
                                             <Listeners>
                                                 <Click Handler="#{treeComponentes}.expandAll();" />
                                             </Listeners>
                                         </ext:Button>
                                         <ext:Button runat="server" IconCls="collapse-icon">
                                             <ToolTips>
                                                 <ext:ToolTip runat="server" Html="Collapse All" />
                                             </ToolTips>
                                             <Listeners>
                                                 <Click Handler="#{treeComponentes}.collapseAll();" />
                                             </Listeners>
                                         </ext:Button>
                                     </Items>
                                 </ext:Toolbar>
                             </TopBar>
                             <Store>
                                 <ext:TreeStore runat="server">
                                     <Model>
                                         <ext:Model runat="server">
                                             <Fields>
                                                 <ext:ModelField Name="data" />
                                             </Fields>
                                         </ext:Model>
                                     </Model>
                                 </ext:TreeStore>
                             </Store>
                             <Root>
                                 <ext:Node Text="Root" Expanded="true">
                                     <Children>
                                         <ext:Node Text="Folder 1">
                                             <CustomAttributes>
                                                 <ext:ConfigItem Name="data" Value="Folder 1 data" Mode="Value" />
                                             </CustomAttributes>
                                             <Children>
                                                 <ext:Node Text="Child 1" Leaf="true">
                                                     <CustomAttributes>
                                                         <ext:ConfigItem Name="data" Value="Folder 1 Child 1 data" Mode="Value" />
                                                     </CustomAttributes>
                                                 </ext:Node>
                                             </Children>
                                         </ext:Node>
                                     
                                         <ext:Node Text="Folder 2">
                                             <CustomAttributes>
                                                 <ext:ConfigItem Name="data" Value="Folder 2 data" Mode="Value" />
                                             </CustomAttributes>
                                             <Children>
                                                 <ext:Node Text="Child 2" Leaf="true">
                                                     <CustomAttributes>
                                                         <ext:ConfigItem Name="data" Value="Folder 2 Child 2 data" Mode="Value" />
                                                     </CustomAttributes>
                                                 </ext:Node>
                                             </Children>
                                         </ext:Node>
                                     
                                         <ext:Node Text="Leaf 1" Leaf="true">
                                             <CustomAttributes>
                                                 <ext:ConfigItem Name="data" Value="Leaf 1 data" Mode="Value" />
                                             </CustomAttributes>
                                         </ext:Node>
                                     </Children>
                                 </ext:Node>
                             </Root>
            
                            <View>
                                 <ext:TreeView runat="server">
                                     <Plugins>
                                         <ext:TreeViewDragDrop runat="server" EnableDrop="false" DragGroup="tree2div" />
                                     </Plugins>
                                 </ext:TreeView>
                             </View>
                         </ext:TreePanel>
                 
                         <ext:Panel 
                            runat="server" 
                            Title="Designer"
                             Icon="Report"
                             Region="Center"
                             Margins="0">
                             <Content>
                                 <div id="drop-header" style="border:1px silver solid;margin:20px;padding:8px;height:140px">
                                     Drop Node Here
                                     <div class="dynamicDiv" id="dd1-item1">Item 1.1</div>
                                 </div>
                             </Content> 
                       </ext:Panel>
                     </Items>
                 </ext:Panel>         
            </Items>
         </ext:Viewport>        
    </body>
    </html>
    Thanks in advance,

    Dominik.
  2. #2
    Hi again,

    Any solution to this problem?

    Thanks.

Similar Threads

  1. Resizable & Draggable items
    By Dominik in forum 2.x Help
    Replies: 6
    Last Post: May 29, 2012, 9:39 AM
  2. [CLOSED] Draggable Sprite
    By paulc in forum 2.x Legacy Premium Help
    Replies: 1
    Last Post: May 14, 2012, 7:58 PM
  3. GMap Marker Draggable
    By bg101 in forum 1.x Help
    Replies: 5
    Last Post: Apr 09, 2012, 9:51 AM
  4. Replies: 7
    Last Post: Mar 21, 2012, 2:13 PM
  5. Draggable Fieldsets?
    By jlertle in forum 1.x Help
    Replies: 0
    Last Post: Jul 02, 2008, 11:18 PM

Posting Permissions