Revision 1556

View differences:

org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.main/pom.xml
13 13
    <properties>
14 14
        <build-dir>${basedir}/../../build</build-dir>
15 15
    </properties>
16
    <dependencyManagement>
17
    	<dependencies>
18
	        <dependency>
19
            	<groupId>org.gvsig</groupId>
20
            	<artifactId>org.gvsig.raster.gdal.io</artifactId>
21
            	<version>2.0.0-SNAPSHOT</version>
22
        	</dependency>
23
        	<dependency>
24
            	<groupId>org.gvsig</groupId>
25
            	<artifactId>org.gvsig.raster.ermapper.io</artifactId>
26
            	<version>2.0.0-SNAPSHOT</version>
27
        	</dependency>
28
        	<dependency>
29
            	<groupId>org.gvsig</groupId>
30
            	<artifactId>org.gvsig.raster.lizardtech.io</artifactId>
31
            	<version>2.0.0-SNAPSHOT</version>
32
	        </dependency>
33
		</dependencies>
34
	</dependencyManagement>
16 35
    <dependencies>
17 36
        <dependency>
18 37
            <groupId>org.gvsig</groupId>
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.swing/org.gvsig.raster.swing.impl/src/test/java/org/gvsig/raster/swing/impl/pagedtable/TestPagedBarPanel.java
17 17
		private PaginationBarPanel           desc     = null;
18 18

  
19 19
		public TestPagedBarPanel() {
20
			desc = new PaginationBarPanel();
20
			desc = new PaginationBarPanel(null);
21 21
			frame.getContentPane().add(desc);
22 22
			frame.setSize(w, h);
23 23
			frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
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/TableListener.java
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 java.awt.event.ActionEvent;
27
import java.awt.event.ActionListener;
28

  
29
import javax.swing.event.ListSelectionEvent;
30
import javax.swing.event.ListSelectionListener;
31

  
32
import org.gvsig.raster.swing.pagedtable.PagedTable;
33
import org.gvsig.raster.swing.pagedtable.TableModel;
34

  
35

  
36

  
37
/**
38
 * @author Nacho Brodin (nachobrodin@gmail.com)
39
 */
40
public class TableListener implements ActionListener, ListSelectionListener {
41
	public static boolean             comboEventEnable      = true;
42
	private PagedTable                pagedTable            = null;
43
	private TableEntryControllerPanel controlPanel          = null;
44
	private MoveRowsPanel             moveRowsPanel         = null;
45
	public boolean                    enableNewLineListener = true;
46

  
47
	/**
48
	 * Constructor
49
	 * @param tableContainer
50
	 */
51
	public TableListener(PagedTableImpl tableContainer){
52
		this.pagedTable = tableContainer;
53
	}
54

  
55
	public void setControlPanel(TableEntryControllerPanel control) {
56
		this.controlPanel = control;
57
	}
58
	
59
	public void setMoveRowsPanel(MoveRowsPanel moveRowsPanel) {
60
		this.moveRowsPanel = moveRowsPanel;
61
	}
62

  
63
	/**
64
	 * Captura y gestiona los eventos del control de la tabla para a?adir filas,
65
	 * eliminar filas y moverse por la tabla.
66
	 */
67
	public void actionPerformed(ActionEvent e) {		
68
		if(!comboEventEnable)
69
			return;
70
		
71
		comboEventEnable = false;
72
		
73
		/**
74
		 * Nueva entrada
75
		 */
76
		if (enableNewLineListener && e.getSource() == controlPanel.getBNew()) {
77
			if (pagedTable.getTableModel() instanceof TableModel)
78
				pagedTable.addRow(((TableModel) pagedTable.getTableModel()).getNewLine());
79
		}
80

  
81
		/**
82
		 * Eliminar todas las filas
83
		 */
84
		if (enableNewLineListener && e.getSource() == controlPanel.getBClear()) {
85
			pagedTable.removeAllRows();
86
		}
87

  
88
		/**
89
		 * Elimina una entrada concreta de la tabla
90
		 */
91
		if (enableNewLineListener && e.getSource() == controlPanel.getBDelPoint()) {
92
			int[] listSelection = pagedTable.getSelectedRows();
93
			for (int i = listSelection.length - 1; i >= 0; i--)
94
				pagedTable.delRow(listSelection[i]);
95
		}
96

  
97
		/**
98
		 * Subir un elemento
99
		 */
100
		if (e.getSource() == moveRowsPanel.getBUp()) {
101
			int[] lista = pagedTable.getSelectedRows();
102
			if (lista.length > 0) {
103
				for (int i = 0; i < lista.length; i++)
104
					pagedTable.swapRow(lista[i] - 1, lista[i]);
105
			}
106
		}
107

  
108
		/**
109
		 * Bajar un elemento
110
		 */
111
		if (e.getSource() == moveRowsPanel.getBDown()) {
112
			int[] lista = pagedTable.getSelectedRows();
113
			if (lista.length > 0) {
114
				for (int i = lista.length - 1; i >= 0; i--)
115
					pagedTable.swapRow(lista[i], lista[i] + 1);
116
			}
117
		}
118

  
119
		if (e.getSource() == controlPanel.getBFirst()) {
120
			pagedTable.setSelectedRow(0);
121
		}
122

  
123
		if (e.getSource() == controlPanel.getBLast()) {
124
			pagedTable.setSelectedRow(-1); //With -1 selects the last
125
		}
126

  
127
		if (e.getSource() == controlPanel.getBNext()) {
128
			pagedTable.increaseSelectedRows();
129
		}
130

  
131
		if (e.getSource() == controlPanel.getBPrev()) {
132
			pagedTable.decreaseSelectedRows();
133
		}
134

  
135
		if (e.getSource() == controlPanel.getCPoint()) {
136
			pagedTable.setSelectedRow(controlPanel.getCPoint().getSelectedIndex());
137
		}
138

  
139
		comboEventEnable = true;
140
	}
141

  
142
	/*
143
	 * (non-Javadoc)
144
	 * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)
145
	 */
146
	public void valueChanged(ListSelectionEvent e) {
147
	    //pagedTable.setSelectedIndex(pagedTable.getSelectedTableRow());
148
	}
149
}
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/MoveRowsPanel.java
51 51
	/**
52 52
	 * This is the default constructor
53 53
	 */
54
	public MoveRowsPanel(TableListener tableListener) {
54
	public MoveRowsPanel(TableControllerListener tableListener) {
55 55
		tableListener.setMoveRowsPanel(this);
56 56
		initialize(tableListener);
57 57
	}
58 58
	
59
	private void initialize(TableListener tableListener) {
59
	private void initialize(TableControllerListener tableListener) {
60 60
		statusComponent = new StatusComponent(this);
61 61

  
62 62
		setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 1, 0));
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/TableControllerListener.java
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 java.awt.event.ActionEvent;
27
import java.awt.event.ActionListener;
28

  
29
import javax.swing.event.ListSelectionEvent;
30
import javax.swing.event.ListSelectionListener;
31

  
32
import org.gvsig.raster.swing.pagedtable.PagedTable;
33
import org.gvsig.raster.swing.pagedtable.TableModel;
34

  
35

  
36

  
37
/**
38
 * @author Nacho Brodin (nachobrodin@gmail.com)
39
 */
40
public class TableControllerListener implements ActionListener, ListSelectionListener {
41
	public static boolean             comboEventEnable      = true;
42
	private PagedTable                pagedTable            = null;
43
	private TableEntryControllerPanel controlPanel          = null;
44
	private MoveRowsPanel             moveRowsPanel         = null;
45
	private PaginationBarPanel        paginationBarPanel    = null;         
46
	public boolean                    enableNewLineListener = true;
47

  
48
	/**
49
	 * Constructor
50
	 * @param tableContainer
51
	 */
52
	public TableControllerListener(PagedTableImpl tableContainer){
53
		this.pagedTable = tableContainer;
54
	}
55

  
56
	public void setControlPanel(TableEntryControllerPanel control) {
57
		this.controlPanel = control;
58
	}
59
	
60
	public void setMoveRowsPanel(MoveRowsPanel moveRowsPanel) {
61
		this.moveRowsPanel = moveRowsPanel;
62
	}
63
	
64
	public void setPaginationBarPanel(PaginationBarPanel paginationBarPanel) {
65
		this.paginationBarPanel = paginationBarPanel;
66
	}
67

  
68
	/**
69
	 * Captura y gestiona los eventos del control de la tabla para a?adir filas,
70
	 * eliminar filas y moverse por la tabla.
71
	 */
72
	public void actionPerformed(ActionEvent e) {		
73
		if(!comboEventEnable)
74
			return;
75
		
76
		comboEventEnable = false;
77
		
78
		/**
79
		 * Nueva entrada
80
		 */
81
		if (enableNewLineListener && e.getSource() == controlPanel.getBNew()) {
82
			if (pagedTable.getTableModel() instanceof TableModel)
83
				pagedTable.addRow(((TableModel) pagedTable.getTableModel()).getNewLine());
84
		}
85

  
86
		/**
87
		 * Eliminar todas las filas
88
		 */
89
		if (enableNewLineListener && e.getSource() == controlPanel.getBClear()) {
90
			pagedTable.removeAllRows();
91
		}
92

  
93
		/**
94
		 * Elimina una entrada concreta de la tabla
95
		 */
96
		if (enableNewLineListener && e.getSource() == controlPanel.getBDelPoint()) {
97
			int[] listSelection = pagedTable.getSelectedRows();
98
			for (int i = listSelection.length - 1; i >= 0; i--)
99
				pagedTable.delRow(listSelection[i]);
100
		}
101

  
102
		/**
103
		 * Subir un elemento
104
		 */
105
		if (e.getSource() == moveRowsPanel.getBUp()) {
106
			int[] lista = pagedTable.getSelectedRows();
107
			if (lista.length > 0) {
108
				for (int i = 0; i < lista.length; i++)
109
					pagedTable.swapRow(lista[i] - 1, lista[i]);
110
			}
111
		}
112

  
113
		/**
114
		 * Bajar un elemento
115
		 */
116
		if (e.getSource() == moveRowsPanel.getBDown()) {
117
			int[] lista = pagedTable.getSelectedRows();
118
			if (lista.length > 0) {
119
				for (int i = lista.length - 1; i >= 0; i--)
120
					pagedTable.swapRow(lista[i], lista[i] + 1);
121
			}
122
		}
123

  
124
		if (e.getSource() == controlPanel.getBFirst()) {
125
			pagedTable.setSelectedRow(0);
126
		}
127

  
128
		if (e.getSource() == controlPanel.getBLast()) {
129
			pagedTable.setSelectedRow(-1); //With -1 selects the last
130
		}
131

  
132
		if (e.getSource() == controlPanel.getBNext()) {
133
			pagedTable.increaseSelectedRows();
134
		}
135

  
136
		if (e.getSource() == controlPanel.getBPrev()) {
137
			pagedTable.decreaseSelectedRows();
138
		}
139

  
140
		if (e.getSource() == controlPanel.getCPoint()) {
141
			pagedTable.setSelectedRow(controlPanel.getCPoint().getSelectedIndex());
142
		}
143

  
144
		comboEventEnable = true;
145
	}
146

  
147
	/*
148
	 * (non-Javadoc)
149
	 * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)
150
	 */
151
	public void valueChanged(ListSelectionEvent e) {
152
	    //pagedTable.setSelectedIndex(pagedTable.getSelectedTableRow());
153
	}
154
}
0 155

  
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
54 54
	private DefaultTableModel          model                  = null;
55 55
	private PaginationBarPanel         paginationBar          = null;
56 56
	private TableEntryControllerPanel  tableEntryController   = null;
57
	private TableListener              tableListener          = null;
57
	private TableControllerListener    tableListener          = null;
58 58
	private MoveRowsPanel              moveRowsPanel          = null;
59 59
	private Pager                      pager                  = null;
60 60
	private int                        heightLine             = 16;
......
82 82
	public PagedTableImpl(ModelLoader modelLoader) {
83 83
		this.modelLoader = modelLoader;
84 84
		this.model = (DefaultTableModel)modelLoader.getTableModel();
85
		tableListener = new TableListener(this);
85
		tableListener = new TableControllerListener(this);
86 86
		init();
87 87
		getPager(0).addObserver(getTableEntryController());
88 88
		getPager(0).addObserver(this);
......
139 139
	
140 140
	public PaginationBarPanel getPaginationBar() {
141 141
		if(paginationBar == null) {
142
			paginationBar = new PaginationBarPanel();
142
			paginationBar = new PaginationBarPanel(tableListener);
143 143
		}
144 144
		return paginationBar;
145 145
	}
......
349 349
			}
350 350
			
351 351
			if(option == Pager.CHANGE_REMOVE_ENTRY ) {
352
				int selectedRow = getSelectedTableRow() - 1;
352
				int[] selectedRows = pager.getSelectedRows();
353 353
				int pageLoaded = reloadPage();
354 354
				
355 355
				//Se ha cargado una nueva p?gina
......
357 357
					int r = model.getRowCount() - 1;
358 358
					getJTable().setRowSelectionInterval(r, r);
359 359
				} else {
360
					if(selectedRow >= 0 && selectedRow < model.getRowCount()) {
361
						getJTable().setRowSelectionInterval(selectedRow, selectedRow);
362
					} else {
363
						getJTable().setRowSelectionInterval(0, 0);
360
					int r = selectedRows[0] % pager.getEntriesPerPage();
361
					if(r >= 0 && r < model.getRowCount()) {
362
						getJTable().setRowSelectionInterval(r, r);
364 363
					}
365 364
				}
366 365
			}
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/TableEntryControllerPanel.java
73 73
	/**
74 74
	 * This is the default constructor
75 75
	 */
76
	public TableEntryControllerPanel(TableListener tableListener) {
76
	public TableEntryControllerPanel(TableControllerListener tableListener) {
77 77
		tableListener.setControlPanel(this);
78 78
		initialize(tableListener);
79 79
	}
......
82 82
	 * This method initializes this
83 83
	 * @return void
84 84
	 */
85
	private void initialize(TableListener tableListener) {
85
	private void initialize(TableControllerListener tableListener) {
86 86
		statusComponent = new StatusComponent(this);
87 87

  
88 88
		this.setLayout(new FlowLayout(FlowLayout.CENTER, 1, 0));
......
448 448
				setNItems(pager.getEntriesCount());
449 449
				int[] selectedRows = pager.getSelectedRows();
450 450
				if(selectedRows != null && selectedRows.length >= 1) {
451
					setSelectedIndex(selectedRows[0] - 1);
451
					setSelectedIndex(selectedRows[0] % pager.getEntriesPerPage());
452 452
				}
453 453
			}
454 454
			
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/Pager.java
143 143
	
144 144
	public void removeEntry(int pos) {
145 145
		if(pos >= 0 && pos < entries.size()) {
146
			if(isRowSelected(pos)) {
147
				selectAlternative(pos);
148
			}
146 149
			entries.remove(pos);
147 150
			setChanged();
148 151
		    notifyObservers(CHANGE_REMOVE_ENTRY);
149 152
		}
150 153
	}
151 154
	
155
	private void selectAlternative(int row) {
156
		for (int i = 0; i < selectedRows.length; i++) {
157
			if(selectedRows[i] == row && selectedRows[i] != 0) {
158
				selectedRows[i] --;
159
			}
160
		}
161
	}
162
	
163
	private boolean isRowSelected(int row) {
164
		for (int i = 0; i < selectedRows.length; i++) {
165
			if(selectedRows[i] == row)
166
				return true;
167
		}
168
		return false;
169
	}
170
	
152 171
	public void swapRow(int i, int j) {
153 172
		if(i == j)
154 173
			return;
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/PaginationBarPanel.java
45 45
	private JLabel                nPages              = null;
46 46
	private String                pathToImagesForTest = "/src/main/resources/images/";
47 47
	
48
	public PaginationBarPanel() {
49
		initialize();
48
	public PaginationBarPanel(TableControllerListener tableListener) {
49
		if(tableListener != null)
50
			tableListener.setPaginationBarPanel(this);
51
		initialize(tableListener);
50 52
	}
51 53
	
52
	private void initialize() {
54
	private void initialize(TableControllerListener tableListener) {
53 55
		this.setLayout(new GridBagLayout());
54 56
		
55 57
		GridBagConstraints gbc = new GridBagConstraints();
......
67 69
		gbc1.fill = GridBagConstraints.NONE;
68 70
		gbc1.gridx = 0;
69 71
		gbc1.gridy = 0;
72
		p.add(getNPages(), gbc1);
73
		gbc1.gridy = 1;
70 74
		p.add(getSelectedPage(), gbc1);
71
		gbc1.gridy = 1;
72
		p.add(getNPages(), gbc1);
73 75
		add(p, gbc);
74 76
		
75 77
		gbc.weighty = 0;
......
77 79
		gbc.gridy = 2;
78 80
		
79 81
		add(getButtonDown(), gbc);
82
		
83
		getButtonUp().addActionListener(tableListener);
84
		getButtonDown().addActionListener(tableListener);
80 85
	}
81 86
	
82 87
	public JLabel getSelectedPage() {
83 88
		if(selectedPag == null)
84
			selectedPag = new JLabel("0");
89
			selectedPag = new JLabel("-");
85 90
		return selectedPag;
86 91
	}
87 92
	
88 93
	public JLabel getNPages() {
89 94
		if(nPages == null)
90
			nPages = new JLabel("0");
95
			nPages = new JLabel("-");
91 96
		return nPages;
92 97
	}
93 98
	
......
128 133
	}
129 134

  
130 135
	public void update(Observable o, Object arg) {
131
		
136
		Pager pager = (Pager)o;
137
		if(o instanceof Pager && arg instanceof Integer) {
138
			if(pager.getPageCount() == 0) {
139
				getNPages().setText("-");
140
				getSelectedPage().setText("-");
141
			} else {
142
				getNPages().setText(pager.getPageCount() + "");
143
				getSelectedPage().setText(pager.getSelectedPageNumber() + 1 + "");
144
			}
145
		}
132 146
	}
133 147
}
org.gvsig.raster/trunk/org.gvsig.raster/pom.xml
12 12
    <description>Raster support library</description>
13 13
	<parent>
14 14
        <groupId>org.gvsig</groupId>
15
        <artifactId>org.gvsig.maven.base.extension.pom</artifactId>
15
        <artifactId>org.gvsig.maven.base.pom</artifactId>
16 16
        <version>1.0.9-SNAPSHOT</version>
17 17
    </parent>
18 18
    <scm>
......
66 66
	            <type>tar.gz</type>
67 67
	        </dependency>
68 68
	        <dependency>
69
            	<groupId>org.gvsig</groupId>
70
            	<artifactId>org.gvsig.raster.gdal.io</artifactId>
71
            	<version>2.0.0-SNAPSHOT</version>
72
        	</dependency>
73
        	<dependency>
74
            	<groupId>org.gvsig</groupId>
75
            	<artifactId>org.gvsig.raster.ermapper.io</artifactId>
76
            	<version>2.0.0-SNAPSHOT</version>
77
        	</dependency>
78
        	<dependency>
79
            	<groupId>org.gvsig</groupId>
80
            	<artifactId>org.gvsig.raster.lizardtech.io</artifactId>
81
            	<version>2.0.0-SNAPSHOT</version>
82
	        </dependency>
83
	        <dependency>
84 69
				<groupId>org.gvsig</groupId>
85 70
				<artifactId>org.gvsig.timesupport.lib.impl</artifactId>
86 71
				<version>1.0.0-SNAPSHOT</version>
......
131 116
                <artifactId>maven-release-plugin</artifactId>
132 117
                <configuration>
133 118
                    <tagBase>https://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster/tags/</tagBase>
119
                    <goals>deploy</goals>
134 120
                </configuration>
135 121
            </plugin>
136 122
        </plugins>

Also available in: Unified diff