X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=core%2Fsrc%2Fnet%2Fsf%2Fopenrocket%2Fgui%2Fdialogs%2Fpreset%2FXTableColumnModel.java;h=ac05c7894d5bfd3b1fc85e12163376b404eb8dd8;hb=091345cb872e40e9e263c9b7accf2fee67c19aa5;hp=9968e247236136e62656d955b31999ae3485dfb0;hpb=c35037f9328cdfd002ea99663a43d8bf635a4c9c;p=debian%2Fopenrocket diff --git a/core/src/net/sf/openrocket/gui/dialogs/preset/XTableColumnModel.java b/core/src/net/sf/openrocket/gui/dialogs/preset/XTableColumnModel.java index 9968e247..ac05c789 100644 --- a/core/src/net/sf/openrocket/gui/dialogs/preset/XTableColumnModel.java +++ b/core/src/net/sf/openrocket/gui/dialogs/preset/XTableColumnModel.java @@ -6,20 +6,20 @@ import java.util.Vector; import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.TableColumn; -public class XTableColumnModel extends DefaultTableColumnModel { - +public class XTableColumnModel extends DefaultTableColumnModel { + /** Array of TableColumn objects in this model. * Holds all column objects, regardless of their visibility */ protected Vector allTableColumns = new Vector(); - + /** * Creates an extended table column model. */ XTableColumnModel() { super(); } - + /** * Sets the visibility of the specified TableColumn. * The call is ignored if the TableColumn is not found in this column model @@ -31,47 +31,47 @@ public class XTableColumnModel extends DefaultTableColumnModel { */ // listeners will receive columnAdded()/columnRemoved() event public void setColumnVisible(TableColumn column, boolean visible) { - if(!visible) { + if (!visible) { super.removeColumn(column); } else { // find the visible index of the column: // iterate through both collections of visible and all columns, counting // visible columns up to the one that's about to be shown again - int noVisibleColumns = tableColumns.size(); - int noInvisibleColumns = allTableColumns.size(); - int visibleIndex = 0; - - for(int invisibleIndex = 0; invisibleIndex < noInvisibleColumns; ++invisibleIndex) { - TableColumn visibleColumn = (visibleIndex < noVisibleColumns ? (TableColumn)tableColumns.get(visibleIndex) : null); - TableColumn testColumn = (TableColumn)allTableColumns.get(invisibleIndex); - - if(testColumn == column) { - if(visibleColumn != column) { + int noVisibleColumns = tableColumns.size(); + int noInvisibleColumns = allTableColumns.size(); + int visibleIndex = 0; + + for (int invisibleIndex = 0; invisibleIndex < noInvisibleColumns; ++invisibleIndex) { + TableColumn visibleColumn = (visibleIndex < noVisibleColumns ? (TableColumn) tableColumns.get(visibleIndex) : null); + TableColumn testColumn = allTableColumns.get(invisibleIndex); + + if (testColumn == column) { + if (visibleColumn != column) { super.addColumn(column); super.moveColumn(tableColumns.size() - 1, visibleIndex); } return; // #################### } - if(testColumn == visibleColumn) { + if (testColumn == visibleColumn) { ++visibleIndex; } } } } - + /** * Makes all columns in this model visible */ public void setAllColumnsVisible(boolean visible) { - int noColumns = allTableColumns.size(); - - for(int columnIndex = 0; columnIndex < noColumns; ++columnIndex) { - TableColumn visibleColumn = (columnIndex < tableColumns.size() ? (TableColumn)tableColumns.get(columnIndex) : null); - TableColumn invisibleColumn = (TableColumn)allTableColumns.get(columnIndex); - if ( visible ) { - - if(visibleColumn != invisibleColumn) { + int noColumns = allTableColumns.size(); + + for (int columnIndex = 0; columnIndex < noColumns; ++columnIndex) { + TableColumn visibleColumn = (columnIndex < tableColumns.size() ? (TableColumn) tableColumns.get(columnIndex) : null); + TableColumn invisibleColumn = allTableColumns.get(columnIndex); + if (visible) { + + if (visibleColumn != invisibleColumn) { super.addColumn(invisibleColumn); super.moveColumn(tableColumns.size() - 1, columnIndex); } @@ -80,7 +80,7 @@ public class XTableColumnModel extends DefaultTableColumnModel { } } } - + /** * Maps the index of the column in the table model at * modelColumnIndex to the TableColumn object. @@ -91,50 +91,51 @@ public class XTableColumnModel extends DefaultTableColumnModel { */ public TableColumn getColumnByModelIndex(int modelColumnIndex) { for (int columnIndex = 0; columnIndex < allTableColumns.size(); ++columnIndex) { - TableColumn column = (TableColumn)allTableColumns.get(columnIndex); - if(column.getModelIndex() == modelColumnIndex) { + TableColumn column = allTableColumns.get(columnIndex); + if (column.getModelIndex() == modelColumnIndex) { return column; } } return null; } - + /** Checks wether the specified column is currently visible. * @param aColumn column to check * @return visibility of specified column (false if there is no such column at all. [It's not visible, right?]) - */ + */ public boolean isColumnVisible(TableColumn aColumn) { return (tableColumns.indexOf(aColumn) >= 0); } - + /** Append column to the right of exisiting columns. * Posts columnAdded event. * @param column The column to be added * @see #removeColumn * @exception IllegalArgumentException if column is null - */ + */ @Override public void addColumn(TableColumn column) { allTableColumns.add(column); super.addColumn(column); } - + /** Removes column from this column model. * Posts columnRemoved event. * Will do nothing if the column is not in this model. * @param column the column to be added * @see #addColumn - */ + */ @Override public void removeColumn(TableColumn column) { int allColumnsIndex = allTableColumns.indexOf(column); - if(allColumnsIndex != -1) { + if (allColumnsIndex != -1) { allTableColumns.remove(allColumnsIndex); } super.removeColumn(column); } - - /** Moves the column from oldIndex to newIndex. + + /** + * Moves the column from oldIndex to newIndex. * Posts columnMoved event. * Will not move any columns if oldIndex equals newIndex. * @@ -149,21 +150,21 @@ public class XTableColumnModel extends DefaultTableColumnModel { if ((oldIndex < 0) || (oldIndex >= getColumnCount()) || (newIndex < 0) || (newIndex >= getColumnCount())) throw new IllegalArgumentException("moveColumn() - Index out of range"); - - TableColumn fromColumn = (TableColumn) tableColumns.get(oldIndex); - TableColumn toColumn = (TableColumn) tableColumns.get(newIndex); - - int allColumnsOldIndex = allTableColumns.indexOf(fromColumn); - int allColumnsNewIndex = allTableColumns.indexOf(toColumn); - - if(oldIndex != newIndex) { + + TableColumn fromColumn = tableColumns.get(oldIndex); + TableColumn toColumn = tableColumns.get(newIndex); + + int allColumnsOldIndex = allTableColumns.indexOf(fromColumn); + int allColumnsNewIndex = allTableColumns.indexOf(toColumn); + + if (oldIndex != newIndex) { allTableColumns.remove(allColumnsOldIndex); allTableColumns.add(allColumnsNewIndex, fromColumn); } - + super.moveColumn(oldIndex, newIndex); } - + /** * Returns the total number of columns in this model. * @@ -175,7 +176,7 @@ public class XTableColumnModel extends DefaultTableColumnModel { Vector columns = (onlyVisible ? tableColumns : allTableColumns); return columns.size(); } - + /** * Returns an Enumeration of all the columns in the model. * @@ -184,10 +185,10 @@ public class XTableColumnModel extends DefaultTableColumnModel { */ public Enumeration getColumns(boolean onlyVisible) { Vector columns = (onlyVisible ? tableColumns : allTableColumns); - + return columns.elements(); } - + /** * Returns the position of the first column whose identifier equals identifier. * Position is the the index in all visible columns if onlyVisible is true or @@ -209,21 +210,21 @@ public class XTableColumnModel extends DefaultTableColumnModel { if (identifier == null) { throw new IllegalArgumentException("Identifier is null"); } - - Vector columns = (onlyVisible ? tableColumns : allTableColumns); - int noColumns = columns.size(); + + Vector columns = (onlyVisible ? tableColumns : allTableColumns); + int noColumns = columns.size(); TableColumn column; - - for(int columnIndex = 0; columnIndex < noColumns; ++columnIndex) { - column = (TableColumn)columns.get(columnIndex); - - if(identifier.equals(column.getIdentifier())) + + for (int columnIndex = 0; columnIndex < noColumns; ++columnIndex) { + column = columns.get(columnIndex); + + if (identifier.equals(column.getIdentifier())) return columnIndex; } - + throw new IllegalArgumentException("Identifier not found"); } - + /** * Returns the TableColumn object for the column * at columnIndex. @@ -236,6 +237,6 @@ public class XTableColumnModel extends DefaultTableColumnModel { * at columnIndex */ public TableColumn getColumn(int columnIndex, boolean onlyVisible) { - return (TableColumn)tableColumns.elementAt(columnIndex); + return tableColumns.elementAt(columnIndex); } }