View Javadoc

1   /*
2    *  File: JaretTableSelectionImpl.java 
3    *  Copyright (c) 2004-2007  Peter Kliem (Peter.Kliem@jaret.de)
4    *  A commercial license is available, see http://www.jaret.de.
5    *
6    * All rights reserved. This program and the accompanying materials
7    * are made available under the terms of the Common Public License v1.0
8    * which accompanies this distribution, and is available at
9    * http://www.eclipse.org/legal/cpl-v10.html
10   */
11  package de.jaret.util.ui.table.model;
12  
13  import java.util.ArrayList;
14  import java.util.HashSet;
15  import java.util.List;
16  import java.util.Set;
17  
18  /***
19   * Implementation of the JaretTableSelection.
20   * 
21   * @author Peter Kliem
22   * @version $Id: JaretTableSelectionImpl.java 179 2007-01-07 17:37:50Z olk $
23   */
24  public class JaretTableSelectionImpl implements IJaretTableSelection {
25      /*** selected rows. */
26      protected List<IRow> _rows = new ArrayList<IRow>();
27      /*** selected columns. */
28      protected List<IColumn> _columns = new ArrayList<IColumn>();
29      /*** selected cells. */
30      protected List<IJaretTableCell> _cells = new ArrayList<IJaretTableCell>();
31  
32      /***
33       * {@inheritDoc}
34       */
35      public void clear() {
36          _rows.clear();
37          _columns.clear();
38          _cells.clear();
39      }
40  
41      /***
42       * {@inheritDoc}
43       */
44      public List<IRow> getSelectedRows() {
45          return _rows;
46      }
47  
48      /***
49       * {@inheritDoc}
50       */
51      public List<IColumn> getSelectedColumns() {
52          return _columns;
53      }
54  
55      /***
56       * {@inheritDoc}
57       */
58      public List<IJaretTableCell> getSelectedCells() {
59          return _cells;
60      }
61  
62      /***
63       * {@inheritDoc}
64       */
65      public void addRow(IRow row) {
66          _rows.add(row);
67      }
68  
69      /***
70       * {@inheritDoc}
71       */
72      public void remRow(IRow row) {
73          _rows.remove(row);
74      }
75  
76      /***
77       * {@inheritDoc}
78       */
79      public void addColumn(IColumn column) {
80          _columns.add(column);
81      }
82  
83      /***
84       * {@inheritDoc}
85       */
86      public void remColumn(IColumn column) {
87          _columns.remove(column);
88      }
89  
90      /***
91       * {@inheritDoc}
92       */
93      public void addCell(IJaretTableCell cell) {
94          _cells.add(cell);
95      }
96  
97      /***
98       * {@inheritDoc}
99       */
100     public void remCell(IJaretTableCell cell) {
101         _cells.remove(cell);
102     }
103 
104     /***
105      * {@inheritDoc}
106      */
107     public boolean isEmpty() {
108         return _rows.size() == 0 && _columns.size() == 0 && _cells.size() == 0;
109     }
110 
111     /***
112      * {@inheritDoc}
113      */
114     public Set<IJaretTableCell> getAllSelectedCells(IJaretTableModel model) {
115         Set<IJaretTableCell> set = new HashSet<IJaretTableCell>();
116         for (IRow row : _rows) {
117             for (int i = 0; i < model.getColumnCount(); i++) {
118                 JaretTableCellImpl cell = new JaretTableCellImpl(row, model.getColumn(i));
119                 set.add(cell);
120             }
121         }
122         for (IColumn col : _columns) {
123             for (int i = 0; i < model.getRowCount(); i++) {
124                 JaretTableCellImpl cell = new JaretTableCellImpl(model.getRow(i), col);
125                 set.add(cell);
126             }
127 
128         }
129         set.addAll(_cells);
130         return set;
131     }
132 
133 }