Statistics
| Branch: | Tag: | Revision:

root / src / org / gss_project / gss / web / client / FileTable.java @ ab3fae7b

History | View | Annotate | Download (2.5 kB)

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 org.gss_project.gss.web.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
}