Statistics
| Branch: | Tag: | Revision:

root / src / gr / ebs / gss / client / dnd / DnDDropController.java @ ce98bfc6

History | View | Annotate | Download (3.5 kB)

1
/*
2
 * Copyright 2008, 2009 Electronic Business Systems Ltd.
3
 *
4
 * This file is part of GSS.
5
 *
6
 * GSS is free software: you can redistribute it and/or modify
7
 * it under the terms of the GNU General Public License as published by
8
 * the Free Software Foundation, either version 3 of the License, or
9
 * (at your option) any later version.
10
 *
11
 * GSS is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with GSS.  If not, see <http://www.gnu.org/licenses/>.
18
 */
19
package gr.ebs.gss.client.dnd;
20

    
21
import gr.ebs.gss.client.GSS;
22
import gr.ebs.gss.client.rest.resource.FileResource;
23
import gr.ebs.gss.client.rest.resource.FolderResource;
24

    
25
import java.util.List;
26

    
27
import com.allen_sauer.gwt.dnd.client.DragContext;
28
import com.allen_sauer.gwt.dnd.client.drop.SimpleDropController;
29

    
30
/**
31
 * @author kman
32
 */
33
public class DnDDropController extends SimpleDropController {
34

    
35
        DnDFocusPanel nodeHolder;
36

    
37
        public DnDDropController(DnDFocusPanel widget) {
38
                super(widget);
39
                nodeHolder = widget;
40
        }
41

    
42
        @Override
43
        public void onDrop(DragContext context) {
44
                super.onDrop(context);
45
                if(context.draggable instanceof DnDFocusPanel){
46
                        DnDFocusPanel toDrop = (DnDFocusPanel) context.draggable;
47
                        if (toDrop.getItem() != null)
48
                                if (toDrop.getItem().getUserObject() != null && toDrop.getItem().getUserObject() instanceof FolderResource) {
49
                                        FolderResource folderToDrop = (FolderResource) toDrop.getItem().getUserObject();
50
                                        FolderResource initialFolder = null;
51
                                        if (nodeHolder.getItem().getUserObject() instanceof FolderResource)
52
                                                initialFolder = (FolderResource) nodeHolder.getItem().getUserObject();
53
                                        if (GSS.get().getFolders().isOthersSharedItem(nodeHolder.getItem())) {
54
                                        }
55
                                        DnDFolderPopupMenu popup = new DnDFolderPopupMenu(GSS.get().getFolders().getImages(), initialFolder, folderToDrop);
56
                                        int left = nodeHolder.getItem().getAbsoluteLeft() + 40;
57
                                        int top = nodeHolder.getItem().getAbsoluteTop() + 20;
58
                                        popup.setPopupPosition(left, top);
59
                                        popup.show();
60
                                }
61
                }
62
                else if(context.draggable instanceof DnDSimpleFocusPanel){
63
                        DnDSimpleFocusPanel toDrop = (DnDSimpleFocusPanel) context.draggable;
64
                        if (toDrop.getFiles() != null) {
65
                                List<FileResource> folderToDrop = toDrop.getFiles();
66
                                FolderResource initialFolder = null;
67
                                if (GSS.get().getFolders().isTrash(nodeHolder.getItem())) {
68
                                } else if (nodeHolder.getItem().getUserObject() instanceof FolderResource)
69
                                        initialFolder = (FolderResource) nodeHolder.getItem().getUserObject();
70
                                if (GSS.get().getFolders().isOthersSharedItem(nodeHolder.getItem())) {
71
                                }
72
                                DnDFolderPopupMenu popup = new DnDFolderPopupMenu(GSS.get().getFolders().getImages(), initialFolder, folderToDrop);
73
                                int left = nodeHolder.getItem().getAbsoluteLeft() + 40;
74
                                int top = nodeHolder.getItem().getAbsoluteTop() + 20;
75
                                popup.setPopupPosition(left, top);
76
                                popup.show();
77
                        }
78
                }
79
        }
80

    
81
        @Override
82
        public void onEnter(DragContext context) {
83
                super.onEnter(context);
84
                nodeHolder.getItem().getWidget().addStyleName("gss-SelectedRow");
85
                nodeHolder.getItem().setState(true);
86
                GSS.get().getDragController().resetCache();
87
        }
88

    
89
        @Override
90
        public void onLeave(DragContext context) {
91
                if(!nodeHolder.getItem().equals(GSS.get().getFolders().getCurrent()))
92
                        nodeHolder.getItem().getWidget().removeStyleName("gss-SelectedRow");
93
                super.onLeave(context);
94
        }
95

    
96
}