right click selection for folder tree
[pithos] / src / gr / ebs / gss / client / dnd / DnDFocusPanel.java
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.rest.resource.FileResource;
22
23 import java.util.List;
24
25 import com.google.gwt.dom.client.NativeEvent;
26 import com.google.gwt.user.client.DOM;
27 import com.google.gwt.user.client.Event;
28 import com.google.gwt.user.client.ui.FocusPanel;
29 import com.google.gwt.user.client.ui.HTML;
30 import com.google.gwt.user.client.ui.Widget;
31
32
33 /**
34  * @author kman
35  *
36  */
37 public class DnDFocusPanel extends FocusPanel {
38         private DnDTreeItem item;
39         private List<FileResource> files;
40
41         public DnDFocusPanel(Widget widget, DnDTreeItem anItem) {
42                 super(widget);
43                 sinkEvents(Event.ONMOUSEDOWN);
44                 item = anItem;
45         }
46
47         public DnDFocusPanel(Widget widget){
48                 super(widget);
49         }
50
51         /**
52          * Retrieve the item.
53          *
54          * @return the item
55          */
56         public DnDTreeItem getItem() {
57                 return item;
58         }
59
60         /**
61          * Retrieve the files.
62          *
63          * @return the files
64          */
65         public List<FileResource> getFiles() {
66                 return files;
67         }
68
69         /**
70          * Modify the files.
71          *
72          * @param newFiles the files to set
73          */
74         public void setFiles(List<FileResource> newFiles) {
75                 files = newFiles;
76         }
77
78         public HTML cloneHTML(){
79                 if(getWidget() instanceof HTML){
80                         HTML ht = (HTML)getWidget();
81                         HTML res = new HTML(ht.getHTML());
82                         return res;
83                 }
84                 return null;
85         }
86
87         @Override
88         public void onBrowserEvent(Event event) {
89                 switch (DOM.eventGetType(event)) {
90                         case Event.ONMOUSEDOWN:
91                                 if (DOM.eventGetButton(event) == NativeEvent.BUTTON_RIGHT || DOM.eventGetButton(event) == NativeEvent.BUTTON_LEFT)
92                                         getItem().tree.setSelectedItem(getItem());
93                                 break;
94                 }
95                 super.onBrowserEvent(event);
96
97         }
98 }