From 36f9a1ecc266a4b4dce41ac9690561a24651dc7e Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Tue, 31 Mar 2009 11:01:25 +0000 Subject: [PATCH] added some generics to Table svn changeset:7249/svn branch:6.0 --- src/com/itmill/toolkit/ui/Table.java | 158 +++++++++++++++------------ 1 file changed, 87 insertions(+), 71 deletions(-) diff --git a/src/com/itmill/toolkit/ui/Table.java b/src/com/itmill/toolkit/ui/Table.java index 22bd242e97..424495ae42 100644 --- a/src/com/itmill/toolkit/ui/Table.java +++ b/src/com/itmill/toolkit/ui/Table.java @@ -23,6 +23,7 @@ import com.itmill.toolkit.data.util.ContainerOrderedWrapper; import com.itmill.toolkit.data.util.IndexedContainer; import com.itmill.toolkit.event.Action; import com.itmill.toolkit.event.ItemClickEvent; +import com.itmill.toolkit.event.Action.Handler; import com.itmill.toolkit.event.ItemClickEvent.ItemClickListener; import com.itmill.toolkit.event.ItemClickEvent.ItemClickSource; import com.itmill.toolkit.terminal.KeyMapper; @@ -165,37 +166,37 @@ public class Table extends AbstractSelect implements Action.Container, /** * Holds visible column propertyIds - in order. */ - private LinkedList visibleColumns = new LinkedList(); + private LinkedList visibleColumns = new LinkedList(); /** * Holds propertyIds of currently collapsed columns. */ - private final HashSet collapsedColumns = new HashSet(); + private final HashSet collapsedColumns = new HashSet(); /** * Holds headers for visible columns (by propertyId). */ - private final HashMap columnHeaders = new HashMap(); + private final HashMap columnHeaders = new HashMap(); /** * Holds icons for visible columns (by propertyId). */ - private final HashMap columnIcons = new HashMap(); + private final HashMap columnIcons = new HashMap(); /** * Holds alignments for visible columns (by propertyId). */ - private HashMap columnAlignments = new HashMap(); + private HashMap columnAlignments = new HashMap(); /** * Holds column widths in pixels for visible columns (by propertyId). */ - private final HashMap columnWidths = new HashMap(); + private final HashMap columnWidths = new HashMap(); /** * Holds column generators */ - private final HashMap columnGenerators = new LinkedHashMap(); + private final HashMap columnGenerators = new LinkedHashMap(); /** * Holds value of property pageLength. 0 disables paging. @@ -239,17 +240,17 @@ public class Table extends AbstractSelect implements Action.Container, * Note: This should be set or list. IdentityHashMap used due very heavy * hashCode in indexed container */ - private HashSet listenedProperties = null; + private HashSet listenedProperties = null; /** * Set of visible components - the is used for needsRepaint calculation. */ - private HashSet visibleComponents = null; + private HashSet visibleComponents = null; /** * List of action handlers. */ - private LinkedList actionHandlers = null; + private LinkedList actionHandlers = null; /** * Action mapper. @@ -403,7 +404,7 @@ public class Table extends AbstractSelect implements Action.Container, // If this is called before the constructor is finished, it might be // uninitialized - final LinkedList newVC = new LinkedList(); + final LinkedList newVC = new LinkedList(); for (int i = 0; i < visibleColumns.length; i++) { newVC.add(visibleColumns[i]); } @@ -412,7 +413,7 @@ public class Table extends AbstractSelect implements Action.Container, if (this.visibleColumns != null) { boolean disabledHere = disableContentRefreshing(); try { - for (final Iterator i = this.visibleColumns.iterator(); i + for (final Iterator i = this.visibleColumns.iterator(); i .hasNext();) { final Object col = i.next(); if (!newVC.contains(col)) { @@ -455,8 +456,9 @@ public class Table extends AbstractSelect implements Action.Container, } final String[] headers = new String[visibleColumns.size()]; int i = 0; - for (final Iterator it = visibleColumns.iterator(); it.hasNext(); i++) { - headers[i] = (String) columnHeaders.get(it.next()); + for (final Iterator it = visibleColumns.iterator(); it + .hasNext(); i++) { + headers[i] = columnHeaders.get(it.next()); } return headers; } @@ -486,7 +488,8 @@ public class Table extends AbstractSelect implements Action.Container, this.columnHeaders.clear(); int i = 0; - for (final Iterator it = visibleColumns.iterator(); it.hasNext() + for (final Iterator it = visibleColumns.iterator(); it + .hasNext() && i < columnHeaders.length; i++) { this.columnHeaders.put(it.next(), columnHeaders[i]); } @@ -515,8 +518,9 @@ public class Table extends AbstractSelect implements Action.Container, } final Resource[] icons = new Resource[visibleColumns.size()]; int i = 0; - for (final Iterator it = visibleColumns.iterator(); it.hasNext(); i++) { - icons[i] = (Resource) columnIcons.get(it.next()); + for (final Iterator it = visibleColumns.iterator(); it + .hasNext(); i++) { + icons[i] = columnIcons.get(it.next()); } return icons; @@ -546,7 +550,8 @@ public class Table extends AbstractSelect implements Action.Container, this.columnIcons.clear(); int i = 0; - for (final Iterator it = visibleColumns.iterator(); it.hasNext() + for (final Iterator it = visibleColumns.iterator(); it + .hasNext() && i < columnIcons.length; i++) { this.columnIcons.put(it.next(), columnIcons[i]); } @@ -580,7 +585,8 @@ public class Table extends AbstractSelect implements Action.Container, } final String[] alignments = new String[visibleColumns.size()]; int i = 0; - for (final Iterator it = visibleColumns.iterator(); it.hasNext(); i++) { + for (final Iterator it = visibleColumns.iterator(); it + .hasNext(); i++) { alignments[i++] = getColumnAlignment(it.next()); } @@ -623,9 +629,10 @@ public class Table extends AbstractSelect implements Action.Container, } // Resets the alignments - final HashMap newCA = new HashMap(); + final HashMap newCA = new HashMap(); int i = 0; - for (final Iterator it = visibleColumns.iterator(); it.hasNext() + for (final Iterator it = visibleColumns.iterator(); it + .hasNext() && i < columnAlignments.length; i++) { newCA.put(it.next(), columnAlignments[i]); } @@ -658,7 +665,7 @@ public class Table extends AbstractSelect implements Action.Container, * @return width of colun or -1 when value not set */ public int getColumnWidth(Object propertyId) { - final Integer value = (Integer) columnWidths.get(propertyId); + final Integer value = columnWidths.get(propertyId); if (value == null) { return -1; } @@ -771,7 +778,7 @@ public class Table extends AbstractSelect implements Action.Container, * set, or if the column is not visible. */ public Resource getColumnIcon(Object propertyId) { - return (Resource) columnIcons.get(propertyId); + return columnIcons.get(propertyId); } /** @@ -810,7 +817,7 @@ public class Table extends AbstractSelect implements Action.Container, return null; } - String header = (String) columnHeaders.get(propertyId); + String header = columnHeaders.get(propertyId); if ((header == null && getColumnHeaderMode() == COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID) || getColumnHeaderMode() == COLUMN_HEADER_MODE_ID) { header = propertyId.toString(); @@ -847,7 +854,7 @@ public class Table extends AbstractSelect implements Action.Container, * @return the specified column's alignment if it as one; null otherwise. */ public String getColumnAlignment(Object propertyId) { - final String a = (String) columnAlignments.get(propertyId); + final String a = columnAlignments.get(propertyId); return a == null ? ALIGN_LEFT : a; } @@ -982,7 +989,7 @@ public class Table extends AbstractSelect implements Action.Container, if (columnOrder == null || !isColumnReorderingAllowed()) { return; } - final LinkedList newOrder = new LinkedList(); + final LinkedList newOrder = new LinkedList(); for (int i = 0; i < columnOrder.length; i++) { if (columnOrder[i] != null && visibleColumns.contains(columnOrder[i])) { @@ -990,7 +997,8 @@ public class Table extends AbstractSelect implements Action.Container, newOrder.add(columnOrder[i]); } } - for (final Iterator it = visibleColumns.iterator(); it.hasNext();) { + for (final Iterator it = visibleColumns.iterator(); it + .hasNext();) { final Object columnId = it.next(); if (!newOrder.contains(columnId)) { newOrder.add(columnId); @@ -1189,12 +1197,12 @@ public class Table extends AbstractSelect implements Action.Container, if (isContentRefreshesEnabled) { - HashSet oldListenedProperties = listenedProperties; - HashSet oldVisibleComponents = visibleComponents; + HashSet oldListenedProperties = listenedProperties; + HashSet oldVisibleComponents = visibleComponents; // initialize the listener collections - listenedProperties = new HashSet(); - visibleComponents = new HashSet(); + listenedProperties = new HashSet(); + visibleComponents = new HashSet(); // Collects the basic facts about the table page final Object[] colids = getVisibleColumns(); @@ -1317,7 +1325,7 @@ public class Table extends AbstractSelect implements Action.Container, value = pageBuffer[CELL_FIRSTCOL + j][indexInOldBuffer]; } else { if (isGenerated) { - ColumnGenerator cg = (ColumnGenerator) columnGenerators + ColumnGenerator cg = columnGenerators .get(colids[j]); value = cg .generateCell(this, id, colids[j]); @@ -1338,7 +1346,7 @@ public class Table extends AbstractSelect implements Action.Container, || !oldVisibleComponents.contains(value)) { ((Component) value).setParent(this); } - visibleComponents.add(value); + visibleComponents.add((Component) value); } cells[CELL_FIRSTCOL + j][i] = value; } @@ -1384,11 +1392,12 @@ public class Table extends AbstractSelect implements Action.Container, * set of components that where attached in last render */ private void unregisterPropertiesAndComponents( - HashSet oldListenedProperties, HashSet oldVisibleComponents) { + HashSet oldListenedProperties, + HashSet oldVisibleComponents) { if (oldVisibleComponents != null) { - for (final Iterator i = oldVisibleComponents.iterator(); i + for (final Iterator i = oldVisibleComponents.iterator(); i .hasNext();) { - Component c = (Component) i.next(); + Component c = i.next(); if (!visibleComponents.contains(c)) { c.setParent(null); } @@ -1396,7 +1405,7 @@ public class Table extends AbstractSelect implements Action.Container, } if (oldListenedProperties != null) { - for (final Iterator i = oldListenedProperties.iterator(); i + for (final Iterator i = oldListenedProperties.iterator(); i .hasNext();) { Property.ValueChangeNotifier o = (ValueChangeNotifier) i.next(); if (!listenedProperties.contains(o)) { @@ -1484,8 +1493,8 @@ public class Table extends AbstractSelect implements Action.Container, throws UnsupportedOperationException { // remove generated columns from the list of columns being assigned - final LinkedList availableCols = new LinkedList(); - for (Iterator it = visibleColumns.iterator(); it.hasNext();) { + final LinkedList availableCols = new LinkedList(); + for (Iterator it = visibleColumns.iterator(); it.hasNext();) { Object id = it.next(); if (!columnGenerators.containsKey(id)) { availableCols.add(id); @@ -1571,7 +1580,7 @@ public class Table extends AbstractSelect implements Action.Container, } // columnGenerators 'override' properties, don't add the same id twice - Collection col = new LinkedList(); + Collection col = new LinkedList(); for (Iterator it = getContainerPropertyIds().iterator(); it.hasNext();) { Object id = it.next(); if (columnGenerators == null || !columnGenerators.containsKey(id)) { @@ -1672,10 +1681,9 @@ public class Table extends AbstractSelect implements Action.Container, final Action action = (Action) actionMapper.get(st.nextToken()); if (action != null && containsId(itemId) && actionHandlers != null) { - for (final Iterator i = actionHandlers.iterator(); i + for (final Iterator i = actionHandlers.iterator(); i .hasNext();) { - ((Action.Handler) i.next()).handleAction(action, this, - itemId); + (i.next()).handleAction(action, this, itemId); } } } @@ -1713,7 +1721,7 @@ public class Table extends AbstractSelect implements Action.Container, try { final Object[] ids = (Object[]) variables .get("collapsedcolumns"); - for (final Iterator it = visibleColumns.iterator(); it + for (final Iterator it = visibleColumns.iterator(); it .hasNext();) { setColumnCollapsed(it.next(), false); } @@ -1851,7 +1859,7 @@ public class Table extends AbstractSelect implements Action.Container, } // selection support - LinkedList selectedKeys = new LinkedList(); + LinkedList selectedKeys = new LinkedList(); if (isMultiSelect()) { // only paint selections that are currently visible in the client HashSet sel = new HashSet((Set) getValue()); @@ -1903,8 +1911,9 @@ public class Table extends AbstractSelect implements Action.Container, // Visible column order final Collection sortables = getSortableContainerPropertyIds(); - final ArrayList visibleColOrder = new ArrayList(); - for (final Iterator it = visibleColumns.iterator(); it.hasNext();) { + final ArrayList visibleColOrder = new ArrayList(); + for (final Iterator it = visibleColumns.iterator(); it + .hasNext();) { final Object columnId = it.next(); if (!isColumnCollapsed(columnId)) { visibleColOrder.add(columnIdMap.key(columnId)); @@ -1913,11 +1922,12 @@ public class Table extends AbstractSelect implements Action.Container, target.addAttribute("vcolorder", visibleColOrder.toArray()); // Rows - final Set actionSet = new LinkedHashSet(); + final Set actionSet = new LinkedHashSet(); final boolean selectable = isSelectable(); final boolean[] iscomponent = new boolean[visibleColumns.size()]; int iscomponentIndex = 0; - for (final Iterator it = visibleColumns.iterator(); it.hasNext() + for (final Iterator it = visibleColumns.iterator(); it + .hasNext() && iscomponentIndex < iscomponent.length;) { final Object columnId = it.next(); if (columnGenerators.containsKey(columnId)) { @@ -1978,11 +1988,10 @@ public class Table extends AbstractSelect implements Action.Container, // Actions if (actionHandlers != null) { - final ArrayList keys = new ArrayList(); - for (final Iterator ahi = actionHandlers.iterator(); ahi + final ArrayList keys = new ArrayList(); + for (final Iterator ahi = actionHandlers.iterator(); ahi .hasNext();) { - final Action[] aa = ((Action.Handler) ahi.next()) - .getActions(itemId, this); + final Action[] aa = (ahi.next()).getActions(itemId, this); if (aa != null) { for (int ai = 0; ai < aa.length; ai++) { final String key = actionMapper.key(aa[ai]); @@ -2008,7 +2017,8 @@ public class Table extends AbstractSelect implements Action.Container, // cells int currentColumn = 0; - for (final Iterator it = visibleColumns.iterator(); it.hasNext(); currentColumn++) { + for (final Iterator it = visibleColumns.iterator(); it + .hasNext(); currentColumn++) { final Object columnId = it.next(); if (columnId == null || isColumnCollapsed(columnId)) { continue; @@ -2049,7 +2059,7 @@ public class Table extends AbstractSelect implements Action.Container, // The select variable is only enabled if selectable if (selectable && selectedKeys.size() > 0) { - target.addVariable(this, "selected", (String[]) selectedKeys + target.addVariable(this, "selected", selectedKeys .toArray(new String[selectedKeys.size()])); } @@ -2077,8 +2087,8 @@ public class Table extends AbstractSelect implements Action.Container, if (!actionSet.isEmpty()) { target.addVariable(this, "action", ""); target.startTag("actions"); - for (final Iterator it = actionSet.iterator(); it.hasNext();) { - final Action a = (Action) it.next(); + for (final Iterator it = actionSet.iterator(); it.hasNext();) { + final Action a = it.next(); target.startTag("action"); if (a.getCaption() != null) { target.addAttribute("caption", a.getCaption()); @@ -2094,7 +2104,8 @@ public class Table extends AbstractSelect implements Action.Container, if (columnReorderingAllowed) { final String[] colorder = new String[visibleColumns.size()]; int i = 0; - for (final Iterator it = visibleColumns.iterator(); it.hasNext() + for (final Iterator it = visibleColumns.iterator(); it + .hasNext() && i < colorder.length;) { colorder[i++] = columnIdMap.key(it.next()); } @@ -2102,8 +2113,9 @@ public class Table extends AbstractSelect implements Action.Container, } // Available columns if (columnCollapsingAllowed) { - final HashSet ccs = new HashSet(); - for (final Iterator i = visibleColumns.iterator(); i.hasNext();) { + final HashSet ccs = new HashSet(); + for (final Iterator i = visibleColumns.iterator(); i + .hasNext();) { final Object o = i.next(); if (isColumnCollapsed(o)) { ccs.add(o); @@ -2111,7 +2123,8 @@ public class Table extends AbstractSelect implements Action.Container, } final String[] collapsedkeys = new String[ccs.size()]; int nextColumn = 0; - for (final Iterator it = visibleColumns.iterator(); it.hasNext() + for (final Iterator it = visibleColumns.iterator(); it + .hasNext() && nextColumn < collapsedkeys.length;) { final Object columnId = it.next(); if (isColumnCollapsed(columnId)) { @@ -2122,7 +2135,8 @@ public class Table extends AbstractSelect implements Action.Container, } target.startTag("visiblecolumns"); int i = 0; - for (final Iterator it = visibleColumns.iterator(); it.hasNext(); i++) { + for (final Iterator it = visibleColumns.iterator(); it + .hasNext(); i++) { final Object columnId = it.next(); if (columnId != null) { target.startTag("column"); @@ -2239,7 +2253,7 @@ public class Table extends AbstractSelect implements Action.Container, if (actionHandler != null) { if (actionHandlers == null) { - actionHandlers = new LinkedList(); + actionHandlers = new LinkedList(); actionMapper = new KeyMapper(); } @@ -2313,8 +2327,9 @@ public class Table extends AbstractSelect implements Action.Container, refreshRenderedCells(); if (visibleComponents != null) { - for (final Iterator i = visibleComponents.iterator(); i.hasNext();) { - ((Component) i.next()).attach(); + for (final Iterator i = visibleComponents.iterator(); i + .hasNext();) { + i.next().attach(); } } } @@ -2329,8 +2344,9 @@ public class Table extends AbstractSelect implements Action.Container, super.detach(); if (visibleComponents != null) { - for (final Iterator i = visibleComponents.iterator(); i.hasNext();) { - ((Component) i.next()).detach(); + for (final Iterator i = visibleComponents.iterator(); i + .hasNext();) { + i.next().detach(); } } } @@ -2530,7 +2546,7 @@ public class Table extends AbstractSelect implements Action.Container, @Override public Collection getVisibleItemIds() { - final LinkedList visible = new LinkedList(); + final LinkedList visible = new LinkedList(); final Object[][] cells = getVisibleCells(); for (int i = 0; i < cells[CELL_ITEMID].length; i++) { @@ -3065,9 +3081,9 @@ public class Table extends AbstractSelect implements Action.Container, public void requestRepaintAll() { requestRepaint(); if (visibleComponents != null) { - for (Iterator childIterator = visibleComponents.iterator(); childIterator - .hasNext();) { - Component c = (Component) childIterator.next(); + for (Iterator childIterator = visibleComponents + .iterator(); childIterator.hasNext();) { + Component c = childIterator.next(); if (c instanceof Form) { // Form has children in layout, but is not // ComponentContainer -- 2.39.5