Statistics
| Revision:

gvsig-raster / org.gvsig.raster / trunk / org.gvsig.raster / org.gvsig.raster.swing / org.gvsig.raster.swing.impl / src / main / java / org / gvsig / raster / swing / impl / pagedtable / PagedTableImpl.java @ 1672

History | View | Annotate | Download (4.44 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2012 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program 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 this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.raster.swing.impl.pagedtable;
25

    
26
import javax.swing.JComponent;
27
import javax.swing.table.DefaultTableModel;
28

    
29
import org.gvsig.raster.swing.pagedtable.ModelLoader;
30
import org.gvsig.raster.swing.pagedtable.PagedTable;
31
import org.gvsig.raster.swing.pagedtable.TableModel;
32

    
33

    
34
/**
35
 * Paged table
36
 * 
37
 * @author Nacho Brodin (nachobrodin@gmail.com)
38
 */
39
public class PagedTableImpl implements PagedTable {
40
        private static final long          serialVersionUID       = 1L;
41
        private ModelLoader                modelLoader            = null;
42
        private DefaultTableModel          model                  = null;
43
        private PagedTablePanel            panel                  = null;
44
        private PaginationBarPanel         paginationBar          = null;
45
        private TableEntryControllerPanel  tableEntryController   = null;
46
        private TableControllerListener    tableListener          = null;
47
        private MoveRowsPanel              moveRowsPanel          = null;
48
        private Pager                      pager                  = null;
49
        
50
        public PagedTableImpl(ModelLoader modelLoader) {
51
                this.modelLoader = modelLoader;
52
                this.model = (DefaultTableModel)modelLoader.getTableModel();
53
                tableListener = new TableControllerListener(this);
54
                getPager().addObserver(getTableEntryController());
55
                getPager().addObserver(getPaginationBar());
56
                getPager().addObserver(getPagedTablePanel());
57
        }
58
        
59
        public Pager getPager() {
60
                if(pager == null) {
61
                        pager = new Pager(0);
62
                }
63
                return pager;
64
        }
65
        
66
        public TableEntryControllerPanel getTableEntryController() {
67
                if(tableEntryController == null) {
68
                        tableEntryController = new TableEntryControllerPanel(tableListener);
69
                }
70
                return tableEntryController;
71
        }
72
        
73
        public PagedTablePanel getPagedTablePanel() {
74
                if(panel == null) {
75
                        panel = new PagedTablePanel(modelLoader, 
76
                                        getPager(), 
77
                                        getPaginationBar(), 
78
                                        getMoveRowsPanel(),
79
                                        getTableEntryController());
80
                }
81
                return panel;
82
        }
83
        
84
        public MoveRowsPanel getMoveRowsPanel() {
85
                if (moveRowsPanel == null) {
86
                        moveRowsPanel = new MoveRowsPanel(tableListener);
87
                        moveRowsPanel.setVisible(false);
88
                }
89
                return moveRowsPanel;
90
        }
91
        
92
        public PaginationBarPanel getPaginationBar() {
93
                if(paginationBar == null) {
94
                        paginationBar = new PaginationBarPanel(tableListener);
95
                }
96
                return paginationBar;
97
        }
98
        
99
        public void addRow(Object[] list) {
100
                pager.addEntry(list);
101
        }
102
        
103
        public void delRow(int i) {
104
                pager.removeEntry(i);
105
        }
106
        
107
        public void removeAllRows() {
108
                pager.removeAllEntries();
109
        }
110
        
111
        public int[] getSelectedRows() {
112
                return pager.getSelectedRows();
113
        }
114
        
115
        public void swapRow(int i, int j) {
116
                if ((i < 0) || (j < 0))
117
                        return;
118
                if ((i >= model.getRowCount()) || (j >= model.getRowCount()))
119
                        return;
120
                model.moveRow(i, i, j);
121
                pager.swapRow(i, j);
122
        }
123
        
124
        public void setSelectedRows(int[] rows) {
125
                pager.setSelectedRows(rows);
126
        }
127
        
128
        public void setSelectedRow(int row) {
129
                if(row == -1) {
130
                        pager.setSelectedRows(new int[]{pager.getEntriesCount() - 1});
131
                } else {
132
                        pager.setSelectedRows(new int[]{row});
133
                }
134
        }
135
        
136
        public void addSelectedRow(int row) {
137
                pager.addSelectedRow(row);
138
        }
139
        
140
        public void increaseSelectedRows() {
141
                pager.increaseSelectedRows();
142
        }
143
        
144
        public void decreaseSelectedRows() {
145
                pager.decreaseSelectedRows();
146
        }
147
        
148
        public void nextPage() {
149
                pager.increaseSelectedPage();
150
        }
151
        
152
        public void prevPage() {
153
                pager.decreaseSelectedPage();
154
        }
155
        
156
        public void setSelectedPage(int pageNumber) {
157
                pager.setSelectedPage(pageNumber);
158
        }
159
        
160
        public TableModel getTableModel() {
161
                return modelLoader.getTableModel();
162
        }
163
        
164
        public JComponent getComponent() {
165
                return panel;
166
        }
167
}