clear selection after trash or delete
[pithos] / src / gr / ebs / gss / client / FileTable.java
1 /*
2  * Copyright 2010 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;
20
21 import com.google.gwt.user.client.DOM;
22 import com.google.gwt.user.client.Element;
23 import com.google.gwt.user.client.Event;
24 import com.google.gwt.user.client.ui.Grid;
25 import com.google.gwt.user.client.ui.HTML;
26 import com.google.gwt.user.client.ui.Widget;
27
28
29 /**
30  * @author kman
31  *
32  */
33 public class FileTable extends Grid{
34
35         /**
36          *
37          */
38         public FileTable() {
39                 super();
40                 // TODO Auto-generated constructor stub
41         }
42
43         /**
44          * @param rows
45          * @param columns
46          */
47         public FileTable(int rows, int columns) {
48                 super(rows, columns);
49                 // TODO Auto-generated constructor stub
50         }
51
52         public int getRowForEvent2(Event event) {
53             Element td = getEventTargetCell(event);
54             if (td == null)
55                         return -1;
56
57             Element tr = DOM.getParent(td);
58             Element body = DOM.getParent(tr);
59             int row = DOM.getChildIndex(body, tr);
60             return row;
61           }
62         
63         public static void copyRow(FileTable sourceTable, FileTable targetTable, int sourceRow, int targetRow) {
64                 targetTable.insertRow(targetRow);
65                 for (int col = 0; col < sourceTable.getCellCount(sourceRow); col++) {
66                         HTML html = new HTML(sourceTable.getHTML(sourceRow, col));
67                         targetTable.setWidget(targetRow, col, html);
68                 }
69                 copyRowStyle(sourceTable, targetTable, sourceRow, targetRow);
70         }
71
72         private static void copyRowStyle(FileTable sourceTable, FileTable targetTable, int sourceRow, int targetRow) {
73                 String rowStyle = sourceTable.getRowFormatter().getStyleName(sourceRow);
74                 targetTable.getRowFormatter().setStyleName(targetRow, rowStyle);
75         }
76
77         public static int getWidgetRow(Widget widget, FileTable table) {
78             for (int row = 0; row < table.getRowCount(); row++)
79                         for (int col = 0; col < table.getCellCount(row); col++) {
80                             Widget w = table.getWidget(row, col);
81                             if (w == widget)
82                                         return row;
83                           }
84             throw new RuntimeException("Unable to determine widget row");
85           }
86
87 }