Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / swingjs / j2s / javax / swing / DefaultRowSorter.js
index 6ea0f91..e0bc1f5 100644 (file)
-Clazz.declarePackage ("javax.swing");\r
-Clazz.load (["javax.swing.RowFilter", "$.RowSorter"], "javax.swing.DefaultRowSorter", ["java.lang.IllegalArgumentException", "$.IndexOutOfBoundsException", "java.util.ArrayList", "$.Arrays", "$.Collections", "javax.swing.SortOrder"], function () {\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.sortsOnUpdates = false;\r
-this.viewToModel = null;\r
-this.modelToView = null;\r
-this.comparators = null;\r
-this.$isSortable = null;\r
-this.cachedSortKeys = null;\r
-this.sortComparators = null;\r
-this.filter = null;\r
-this.filterEntry = null;\r
-this.sortKeys = null;\r
-this.$useToString = null;\r
-this.sorted = false;\r
-this.maxSortKeys = 0;\r
-this.modelWrapper = null;\r
-this.modelRowCount = 0;\r
-if (!Clazz.isClassDefined ("javax.swing.DefaultRowSorter.FilterEntry")) {\r
-javax.swing.DefaultRowSorter.$DefaultRowSorter$FilterEntry$ ();\r
-}\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing, "DefaultRowSorter", javax.swing.RowSorter);\r
-Clazz.makeConstructor (c$, \r
-function () {\r
-Clazz.superConstructor (this, javax.swing.DefaultRowSorter, []);\r
-this.sortKeys = java.util.Collections.emptyList ();\r
-this.maxSortKeys = 3;\r
-});\r
-Clazz.defineMethod (c$, "setModelWrapper", \r
-function (modelWrapper) {\r
-if (modelWrapper == null) {\r
-throw  new IllegalArgumentException ("modelWrapper most be non-null");\r
-}var last = this.modelWrapper;\r
-this.modelWrapper = modelWrapper;\r
-if (last != null) {\r
-this.modelStructureChanged ();\r
-} else {\r
-this.modelRowCount = this.getModelWrapper ().getRowCount ();\r
-}}, "javax.swing.DefaultRowSorter.ModelWrapper");\r
-Clazz.defineMethod (c$, "getModelWrapper", \r
-function () {\r
-return this.modelWrapper;\r
-});\r
-Clazz.overrideMethod (c$, "getModel", \r
-function () {\r
-return this.getModelWrapper ().getModel ();\r
-});\r
-Clazz.defineMethod (c$, "setSortable", \r
-function (column, sortable) {\r
-this.checkColumn (column);\r
-if (this.$isSortable == null) {\r
-this.$isSortable =  Clazz.newBooleanArray (this.getModelWrapper ().getColumnCount (), false);\r
-for (var i = this.$isSortable.length - 1; i >= 0; i--) {\r
-this.$isSortable[i] = true;\r
-}\r
-}this.$isSortable[column] = sortable;\r
-}, "~N,~B");\r
-Clazz.defineMethod (c$, "isSortable", \r
-function (column) {\r
-this.checkColumn (column);\r
-return (this.$isSortable == null) ? true : this.$isSortable[column];\r
-}, "~N");\r
-Clazz.overrideMethod (c$, "setSortKeys", \r
-function (sortKeys) {\r
-var old = this.sortKeys;\r
-if (sortKeys != null && sortKeys.size () > 0) {\r
-var max = this.getModelWrapper ().getColumnCount ();\r
-for (var key, $key = sortKeys.iterator (); $key.hasNext () && ((key = $key.next ()) || true);) {\r
-if (key == null || key.getColumn () < 0 || key.getColumn () >= max) {\r
-throw  new IllegalArgumentException ("Invalid SortKey");\r
-}}\r
-this.sortKeys = java.util.Collections.unmodifiableList ( new java.util.ArrayList (sortKeys));\r
-} else {\r
-this.sortKeys = java.util.Collections.emptyList ();\r
-}if (!this.sortKeys.equals (old)) {\r
-this.fireSortOrderChanged ();\r
-if (this.viewToModel == null) {\r
-this.sort ();\r
-} else {\r
-this.sortExistingData ();\r
-}}}, "java.util.List");\r
-Clazz.overrideMethod (c$, "getSortKeys", \r
-function () {\r
-return this.sortKeys;\r
-});\r
-Clazz.defineMethod (c$, "setMaxSortKeys", \r
-function (max) {\r
-if (max < 1) {\r
-throw  new IllegalArgumentException ("Invalid max");\r
-}this.maxSortKeys = max;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getMaxSortKeys", \r
-function () {\r
-return this.maxSortKeys;\r
-});\r
-Clazz.defineMethod (c$, "setSortsOnUpdates", \r
-function (sortsOnUpdates) {\r
-this.sortsOnUpdates = sortsOnUpdates;\r
-}, "~B");\r
-Clazz.defineMethod (c$, "getSortsOnUpdates", \r
-function () {\r
-return this.sortsOnUpdates;\r
-});\r
-Clazz.defineMethod (c$, "setRowFilter", \r
-function (filter) {\r
-this.filter = filter;\r
-this.sort ();\r
-}, "javax.swing.RowFilter");\r
-Clazz.defineMethod (c$, "getRowFilter", \r
-function () {\r
-return this.filter;\r
-});\r
-Clazz.overrideMethod (c$, "toggleSortOrder", \r
-function (column) {\r
-this.checkColumn (column);\r
-if (this.isSortable (column)) {\r
-var keys =  new java.util.ArrayList (this.getSortKeys ());\r
-var sortKey;\r
-var sortIndex;\r
-for (sortIndex = keys.size () - 1; sortIndex >= 0; sortIndex--) {\r
-if (keys.get (sortIndex).getColumn () == column) {\r
-break;\r
-}}\r
-if (sortIndex == -1) {\r
-sortKey =  new javax.swing.RowSorter.SortKey (column, javax.swing.SortOrder.ASCENDING);\r
-keys.add (0, sortKey);\r
-} else if (sortIndex == 0) {\r
-keys.set (0, this.toggle (keys.get (0)));\r
-} else {\r
-keys.remove (sortIndex);\r
-keys.add (0,  new javax.swing.RowSorter.SortKey (column, javax.swing.SortOrder.ASCENDING));\r
-}if (keys.size () > this.getMaxSortKeys ()) {\r
-keys = keys.subList (0, this.getMaxSortKeys ());\r
-}this.setSortKeys (keys);\r
-}}, "~N");\r
-Clazz.defineMethod (c$, "toggle", \r
- function (key) {\r
-if (key.getSortOrder () === javax.swing.SortOrder.ASCENDING) {\r
-return  new javax.swing.RowSorter.SortKey (key.getColumn (), javax.swing.SortOrder.DESCENDING);\r
-}return  new javax.swing.RowSorter.SortKey (key.getColumn (), javax.swing.SortOrder.ASCENDING);\r
-}, "javax.swing.RowSorter.SortKey");\r
-Clazz.overrideMethod (c$, "convertRowIndexToView", \r
-function (index) {\r
-if (this.modelToView == null) {\r
-if (index < 0 || index >= this.getModelWrapper ().getRowCount ()) {\r
-throw  new IndexOutOfBoundsException ("Invalid index");\r
-}return index;\r
-}return this.modelToView[index];\r
-}, "~N");\r
-Clazz.overrideMethod (c$, "convertRowIndexToModel", \r
-function (index) {\r
-if (this.viewToModel == null) {\r
-if (index < 0 || index >= this.getModelWrapper ().getRowCount ()) {\r
-throw  new IndexOutOfBoundsException ("Invalid index");\r
-}return index;\r
-}return this.viewToModel[index].modelIndex;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "isUnsorted", \r
- function () {\r
-var keys = this.getSortKeys ();\r
-var keySize = keys.size ();\r
-return (keySize == 0 || keys.get (0).getSortOrder () === javax.swing.SortOrder.UNSORTED);\r
-});\r
-Clazz.defineMethod (c$, "sortExistingData", \r
- function () {\r
-var lastViewToModel = this.getViewToModelAsInts (this.viewToModel);\r
-this.updateUseToString ();\r
-this.cacheSortKeys (this.getSortKeys ());\r
-if (this.isUnsorted ()) {\r
-if (this.getRowFilter () == null) {\r
-this.viewToModel = null;\r
-this.modelToView = null;\r
-} else {\r
-var included = 0;\r
-for (var i = 0; i < this.modelToView.length; i++) {\r
-if (this.modelToView[i] != -1) {\r
-this.viewToModel[included].modelIndex = i;\r
-this.modelToView[i] = included++;\r
-}}\r
-}} else {\r
-java.util.Arrays.sort (this.viewToModel);\r
-this.setModelToViewFromViewToModel (false);\r
-}this.fireRowSorterChanged (lastViewToModel);\r
-});\r
-Clazz.defineMethod (c$, "sort", \r
-function () {\r
-this.sorted = true;\r
-var lastViewToModel = this.getViewToModelAsInts (this.viewToModel);\r
-this.updateUseToString ();\r
-if (this.isUnsorted ()) {\r
-this.cachedSortKeys =  new Array (0);\r
-if (this.getRowFilter () == null) {\r
-if (this.viewToModel != null) {\r
-this.viewToModel = null;\r
-this.modelToView = null;\r
-} else {\r
-return;\r
-}} else {\r
-this.initializeFilteredMapping ();\r
-}} else {\r
-this.cacheSortKeys (this.getSortKeys ());\r
-if (this.getRowFilter () != null) {\r
-this.initializeFilteredMapping ();\r
-} else {\r
-this.createModelToView (this.getModelWrapper ().getRowCount ());\r
-this.createViewToModel (this.getModelWrapper ().getRowCount ());\r
-}java.util.Arrays.sort (this.viewToModel);\r
-this.setModelToViewFromViewToModel (false);\r
-}this.fireRowSorterChanged (lastViewToModel);\r
-});\r
-Clazz.defineMethod (c$, "updateUseToString", \r
- function () {\r
-var i = this.getModelWrapper ().getColumnCount ();\r
-if (this.$useToString == null || this.$useToString.length != i) {\r
-this.$useToString =  Clazz.newBooleanArray (i, false);\r
-}for (--i; i >= 0; i--) {\r
-this.$useToString[i] = this.useToString (i);\r
-}\r
-});\r
-Clazz.defineMethod (c$, "initializeFilteredMapping", \r
- function () {\r
-var rowCount = this.getModelWrapper ().getRowCount ();\r
-var i;\r
-var j;\r
-var excludedCount = 0;\r
-this.createModelToView (rowCount);\r
-for (i = 0; i < rowCount; i++) {\r
-if (this.include (i)) {\r
-this.modelToView[i] = i - excludedCount;\r
-} else {\r
-this.modelToView[i] = -1;\r
-excludedCount++;\r
-}}\r
-this.createViewToModel (rowCount - excludedCount);\r
-for (i = 0, j = 0; i < rowCount; i++) {\r
-if (this.modelToView[i] != -1) {\r
-this.viewToModel[j++].modelIndex = i;\r
-}}\r
-});\r
-Clazz.defineMethod (c$, "createModelToView", \r
- function (rowCount) {\r
-if (this.modelToView == null || this.modelToView.length != rowCount) {\r
-this.modelToView =  Clazz.newIntArray (rowCount, 0);\r
-}}, "~N");\r
-Clazz.defineMethod (c$, "createViewToModel", \r
- function (rowCount) {\r
-var recreateFrom = 0;\r
-if (this.viewToModel != null) {\r
-recreateFrom = Math.min (rowCount, this.viewToModel.length);\r
-if (this.viewToModel.length != rowCount) {\r
-var oldViewToModel = this.viewToModel;\r
-this.viewToModel =  new Array (rowCount);\r
-System.arraycopy (oldViewToModel, 0, this.viewToModel, 0, recreateFrom);\r
-}} else {\r
-this.viewToModel =  new Array (rowCount);\r
-}var i;\r
-for (i = 0; i < recreateFrom; i++) {\r
-this.viewToModel[i].modelIndex = i;\r
-}\r
-for (i = recreateFrom; i < rowCount; i++) {\r
-this.viewToModel[i] =  new javax.swing.DefaultRowSorter.Row (this, i);\r
-}\r
-}, "~N");\r
-Clazz.defineMethod (c$, "cacheSortKeys", \r
- function (keys) {\r
-var keySize = keys.size ();\r
-this.sortComparators =  new Array (keySize);\r
-for (var i = 0; i < keySize; i++) {\r
-this.sortComparators[i] = this.getComparator0 (keys.get (i).getColumn ());\r
-}\r
-this.cachedSortKeys = keys.toArray ( new Array (keySize));\r
-}, "java.util.List");\r
-Clazz.defineMethod (c$, "useToString", \r
-function (column) {\r
-return (this.getComparator (column) == null);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "setModelToViewFromViewToModel", \r
- function (unsetFirst) {\r
-var i;\r
-if (unsetFirst) {\r
-for (i = this.modelToView.length - 1; i >= 0; i--) {\r
-this.modelToView[i] = -1;\r
-}\r
-}for (i = this.viewToModel.length - 1; i >= 0; i--) {\r
-this.modelToView[this.viewToModel[i].modelIndex] = i;\r
-}\r
-}, "~B");\r
-Clazz.defineMethod (c$, "getViewToModelAsInts", \r
- function (viewToModel) {\r
-if (viewToModel != null) {\r
-var viewToModelI =  Clazz.newIntArray (viewToModel.length, 0);\r
-for (var i = viewToModel.length - 1; i >= 0; i--) {\r
-viewToModelI[i] = viewToModel[i].modelIndex;\r
-}\r
-return viewToModelI;\r
-}return  Clazz.newIntArray (0, 0);\r
-}, "~A");\r
-Clazz.defineMethod (c$, "setComparator", \r
-function (column, comparator) {\r
-this.checkColumn (column);\r
-if (this.comparators == null) {\r
-this.comparators =  new Array (this.getModelWrapper ().getColumnCount ());\r
-}this.comparators[column] = comparator;\r
-}, "~N,java.util.Comparator");\r
-Clazz.defineMethod (c$, "getComparator", \r
-function (column) {\r
-this.checkColumn (column);\r
-if (this.comparators != null) {\r
-return this.comparators[column];\r
-}return null;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getComparator0", \r
- function (column) {\r
-var comparator = this.getComparator (column);\r
-if (comparator != null) {\r
-return comparator;\r
-}return null;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getFilterEntry", \r
- function (modelIndex) {\r
-if (this.filterEntry == null) {\r
-this.filterEntry = Clazz.innerTypeInstance (javax.swing.DefaultRowSorter.FilterEntry, this, null);\r
-}this.filterEntry.modelIndex = modelIndex;\r
-return this.filterEntry;\r
-}, "~N");\r
-Clazz.overrideMethod (c$, "getViewRowCount", \r
-function () {\r
-if (this.viewToModel != null) {\r
-return this.viewToModel.length;\r
-}return this.getModelWrapper ().getRowCount ();\r
-});\r
-Clazz.overrideMethod (c$, "getModelRowCount", \r
-function () {\r
-return this.getModelWrapper ().getRowCount ();\r
-});\r
-Clazz.defineMethod (c$, "allChanged", \r
- function () {\r
-this.modelToView = null;\r
-this.viewToModel = null;\r
-this.comparators = null;\r
-this.$isSortable = null;\r
-if (this.isUnsorted ()) {\r
-this.sort ();\r
-} else {\r
-this.setSortKeys (null);\r
-}});\r
-Clazz.overrideMethod (c$, "modelStructureChanged", \r
-function () {\r
-this.allChanged ();\r
-this.modelRowCount = this.getModelWrapper ().getRowCount ();\r
-});\r
-Clazz.overrideMethod (c$, "allRowsChanged", \r
-function () {\r
-this.modelRowCount = this.getModelWrapper ().getRowCount ();\r
-this.sort ();\r
-});\r
-Clazz.overrideMethod (c$, "rowsInserted", \r
-function (firstRow, endRow) {\r
-this.checkAgainstModel (firstRow, endRow);\r
-var newModelRowCount = this.getModelWrapper ().getRowCount ();\r
-if (endRow >= newModelRowCount) {\r
-throw  new IndexOutOfBoundsException ("Invalid range");\r
-}this.modelRowCount = newModelRowCount;\r
-if (this.shouldOptimizeChange (firstRow, endRow)) {\r
-this.rowsInserted0 (firstRow, endRow);\r
-}}, "~N,~N");\r
-Clazz.overrideMethod (c$, "rowsDeleted", \r
-function (firstRow, endRow) {\r
-this.checkAgainstModel (firstRow, endRow);\r
-if (firstRow >= this.modelRowCount || endRow >= this.modelRowCount) {\r
-throw  new IndexOutOfBoundsException ("Invalid range");\r
-}this.modelRowCount = this.getModelWrapper ().getRowCount ();\r
-if (this.shouldOptimizeChange (firstRow, endRow)) {\r
-this.rowsDeleted0 (firstRow, endRow);\r
-}}, "~N,~N");\r
-Clazz.defineMethod (c$, "rowsUpdated", \r
-function (firstRow, endRow) {\r
-this.checkAgainstModel (firstRow, endRow);\r
-if (firstRow >= this.modelRowCount || endRow >= this.modelRowCount) {\r
-throw  new IndexOutOfBoundsException ("Invalid range");\r
-}if (this.getSortsOnUpdates ()) {\r
-if (this.shouldOptimizeChange (firstRow, endRow)) {\r
-this.rowsUpdated0 (firstRow, endRow);\r
-}} else {\r
-this.sorted = false;\r
-}}, "~N,~N");\r
-Clazz.defineMethod (c$, "rowsUpdated", \r
-function (firstRow, endRow, column) {\r
-this.checkColumn (column);\r
-this.rowsUpdated (firstRow, endRow);\r
-}, "~N,~N,~N");\r
-Clazz.defineMethod (c$, "checkAgainstModel", \r
- function (firstRow, endRow) {\r
-if (firstRow > endRow || firstRow < 0 || endRow < 0 || firstRow > this.modelRowCount) {\r
-throw  new IndexOutOfBoundsException ("Invalid range");\r
-}}, "~N,~N");\r
-Clazz.defineMethod (c$, "include", \r
- function (row) {\r
-var filter = this.getRowFilter ();\r
-if (filter != null) {\r
-return filter.include (this.getFilterEntry (row));\r
-}return true;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "isTransformed", \r
- function () {\r
-return (this.viewToModel != null);\r
-});\r
-Clazz.defineMethod (c$, "insertInOrder", \r
- function (toAdd, current) {\r
-var last = 0;\r
-var index;\r
-var max = toAdd.size ();\r
-for (var i = 0; i < max; i++) {\r
-index = java.util.Arrays.binarySearch (current, toAdd.get (i));\r
-if (index < 0) {\r
-index = -1 - index;\r
-}System.arraycopy (current, last, this.viewToModel, last + i, index - last);\r
-this.viewToModel[index + i] = toAdd.get (i);\r
-last = index;\r
-}\r
-System.arraycopy (current, last, this.viewToModel, last + max, current.length - last);\r
-}, "java.util.List,~A");\r
-Clazz.defineMethod (c$, "shouldOptimizeChange", \r
- function (firstRow, lastRow) {\r
-if (!this.isTransformed ()) {\r
-return false;\r
-}if (!this.sorted || (lastRow - firstRow) > Clazz.doubleToInt (this.viewToModel.length / 10)) {\r
-this.sort ();\r
-return false;\r
-}return true;\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "rowsInserted0", \r
- function (firstRow, lastRow) {\r
-var oldViewToModel = this.getViewToModelAsInts (this.viewToModel);\r
-var i;\r
-var delta = (lastRow - firstRow) + 1;\r
-var added =  new java.util.ArrayList (delta);\r
-for (i = firstRow; i <= lastRow; i++) {\r
-if (this.include (i)) {\r
-added.add ( new javax.swing.DefaultRowSorter.Row (this, i));\r
-}}\r
-var viewIndex;\r
-for (i = this.modelToView.length - 1; i >= firstRow; i--) {\r
-viewIndex = this.modelToView[i];\r
-if (viewIndex != -1) {\r
-this.viewToModel[viewIndex].modelIndex += delta;\r
-}}\r
-if (added.size () > 0) {\r
-java.util.Collections.sort (added);\r
-var lastViewToModel = this.viewToModel;\r
-this.viewToModel =  new Array (this.viewToModel.length + added.size ());\r
-this.insertInOrder (added, lastViewToModel);\r
-}this.createModelToView (this.getModelWrapper ().getRowCount ());\r
-this.setModelToViewFromViewToModel (true);\r
-this.fireRowSorterChanged (oldViewToModel);\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "rowsDeleted0", \r
- function (firstRow, lastRow) {\r
-var oldViewToModel = this.getViewToModelAsInts (this.viewToModel);\r
-var removedFromView = 0;\r
-var i;\r
-var viewIndex;\r
-for (i = firstRow; i <= lastRow; i++) {\r
-viewIndex = this.modelToView[i];\r
-if (viewIndex != -1) {\r
-removedFromView++;\r
-this.viewToModel[viewIndex] = null;\r
-}}\r
-var delta = lastRow - firstRow + 1;\r
-for (i = this.modelToView.length - 1; i > lastRow; i--) {\r
-viewIndex = this.modelToView[i];\r
-if (viewIndex != -1) {\r
-this.viewToModel[viewIndex].modelIndex -= delta;\r
-}}\r
-if (removedFromView > 0) {\r
-var newViewToModel =  new Array (this.viewToModel.length - removedFromView);\r
-var newIndex = 0;\r
-var last = 0;\r
-for (i = 0; i < this.viewToModel.length; i++) {\r
-if (this.viewToModel[i] == null) {\r
-System.arraycopy (this.viewToModel, last, newViewToModel, newIndex, i - last);\r
-newIndex += (i - last);\r
-last = i + 1;\r
-}}\r
-System.arraycopy (this.viewToModel, last, newViewToModel, newIndex, this.viewToModel.length - last);\r
-this.viewToModel = newViewToModel;\r
-}this.createModelToView (this.getModelWrapper ().getRowCount ());\r
-this.setModelToViewFromViewToModel (true);\r
-this.fireRowSorterChanged (oldViewToModel);\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "rowsUpdated0", \r
- function (firstRow, lastRow) {\r
-var oldViewToModel = this.getViewToModelAsInts (this.viewToModel);\r
-var i;\r
-var j;\r
-var delta = lastRow - firstRow + 1;\r
-var modelIndex;\r
-if (this.getRowFilter () == null) {\r
-var updated =  new Array (delta);\r
-for (j = 0, i = firstRow; i <= lastRow; i++, j++) {\r
-updated[j] = this.viewToModel[this.modelToView[i]];\r
-}\r
-java.util.Arrays.sort (updated);\r
-var intermediary =  new Array (this.viewToModel.length - delta);\r
-for (i = 0, j = 0; i < this.viewToModel.length; i++) {\r
-modelIndex = this.viewToModel[i].modelIndex;\r
-if (modelIndex < firstRow || modelIndex > lastRow) {\r
-intermediary[j++] = this.viewToModel[i];\r
-}}\r
-this.insertInOrder (java.util.Arrays.asList (updated), intermediary);\r
-this.setModelToViewFromViewToModel (false);\r
-} else {\r
-var updated =  new java.util.ArrayList (delta);\r
-var newlyVisible = 0;\r
-var newlyHidden = 0;\r
-var effected = 0;\r
-for (i = firstRow; i <= lastRow; i++) {\r
-if (this.modelToView[i] == -1) {\r
-if (this.include (i)) {\r
-updated.add ( new javax.swing.DefaultRowSorter.Row (this, i));\r
-newlyVisible++;\r
-}} else {\r
-if (!this.include (i)) {\r
-newlyHidden++;\r
-} else {\r
-updated.add (this.viewToModel[this.modelToView[i]]);\r
-}this.modelToView[i] = -2;\r
-effected++;\r
-}}\r
-java.util.Collections.sort (updated);\r
-var intermediary =  new Array (this.viewToModel.length - effected);\r
-for (i = 0, j = 0; i < this.viewToModel.length; i++) {\r
-modelIndex = this.viewToModel[i].modelIndex;\r
-if (this.modelToView[modelIndex] != -2) {\r
-intermediary[j++] = this.viewToModel[i];\r
-}}\r
-if (newlyVisible != newlyHidden) {\r
-this.viewToModel =  new Array (this.viewToModel.length + newlyVisible - newlyHidden);\r
-}this.insertInOrder (updated, intermediary);\r
-this.setModelToViewFromViewToModel (true);\r
-}this.fireRowSorterChanged (oldViewToModel);\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "checkColumn", \r
- function (column) {\r
-if (column < 0 || column >= this.getModelWrapper ().getColumnCount ()) {\r
-throw  new IndexOutOfBoundsException ("column beyond range of TableModel");\r
-}}, "~N");\r
-c$.$DefaultRowSorter$FilterEntry$ = function () {\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-this.modelIndex = 0;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.DefaultRowSorter, "FilterEntry", javax.swing.RowFilter.Entry);\r
-Clazz.overrideMethod (c$, "getModel", \r
-function () {\r
-return this.b$["javax.swing.DefaultRowSorter"].getModelWrapper ().getModel ();\r
-});\r
-Clazz.overrideMethod (c$, "getValueCount", \r
-function () {\r
-return this.b$["javax.swing.DefaultRowSorter"].getModelWrapper ().getColumnCount ();\r
-});\r
-Clazz.overrideMethod (c$, "getValue", \r
-function (a) {\r
-return this.b$["javax.swing.DefaultRowSorter"].getModelWrapper ().getValueAt (this.modelIndex, a);\r
-}, "~N");\r
-Clazz.overrideMethod (c$, "getStringValue", \r
-function (a) {\r
-return this.b$["javax.swing.DefaultRowSorter"].getModelWrapper ().getStringValueAt (this.modelIndex, a);\r
-}, "~N");\r
-Clazz.overrideMethod (c$, "getIdentifier", \r
-function () {\r
-return this.b$["javax.swing.DefaultRowSorter"].getModelWrapper ().getIdentifier (this.modelIndex);\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.declareType (javax.swing.DefaultRowSorter, "ModelWrapper");\r
-Clazz.makeConstructor (c$, \r
-function () {\r
-});\r
-Clazz.defineMethod (c$, "getStringValueAt", \r
-function (a, b) {\r
-var c = this.getValueAt (a, b);\r
-if (c == null) {\r
-return "";\r
-}var d = c.toString ();\r
-if (d == null) {\r
-return "";\r
-}return d;\r
-}, "~N,~N");\r
-c$ = Clazz.p0p ();\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.sorter = null;\r
-this.modelIndex = 0;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.DefaultRowSorter, "Row", null, Comparable);\r
-Clazz.makeConstructor (c$, \r
-function (a, b) {\r
-this.sorter = a;\r
-this.modelIndex = b;\r
-}, "javax.swing.DefaultRowSorter,~N");\r
-Clazz.overrideMethod (c$, "compareTo", \r
-function (a) {\r
-return this.sorter.compare (this.modelIndex, a.modelIndex);\r
-}, "javax.swing.DefaultRowSorter.Row");\r
-c$ = Clazz.p0p ();\r
-});\r
+Clazz.declarePackage ("javax.swing");
+Clazz.load (["javax.swing.RowFilter", "$.RowSorter"], "javax.swing.DefaultRowSorter", ["java.lang.IllegalArgumentException", "$.IndexOutOfBoundsException", "java.util.ArrayList", "$.Arrays", "$.Collections", "javax.swing.SortOrder"], function () {
+c$ = Clazz.decorateAsClass (function () {
+this.sortsOnUpdates = false;
+this.viewToModel = null;
+this.modelToView = null;
+this.comparators = null;
+this.$isSortable = null;
+this.cachedSortKeys = null;
+this.sortComparators = null;
+this.filter = null;
+this.filterEntry = null;
+this.sortKeys = null;
+this.$useToString = null;
+this.sorted = false;
+this.maxSortKeys = 0;
+this.modelWrapper = null;
+this.modelRowCount = 0;
+if (!Clazz.isClassDefined ("javax.swing.DefaultRowSorter.FilterEntry")) {
+javax.swing.DefaultRowSorter.$DefaultRowSorter$FilterEntry$ ();
+}
+Clazz.instantialize (this, arguments);
+}, javax.swing, "DefaultRowSorter", javax.swing.RowSorter);
+Clazz.makeConstructor (c$, 
+function () {
+Clazz.superConstructor (this, javax.swing.DefaultRowSorter, []);
+this.sortKeys = java.util.Collections.emptyList ();
+this.maxSortKeys = 3;
+});
+Clazz.defineMethod (c$, "setModelWrapper", 
+function (modelWrapper) {
+if (modelWrapper == null) {
+throw  new IllegalArgumentException ("modelWrapper most be non-null");
+}var last = this.modelWrapper;
+this.modelWrapper = modelWrapper;
+if (last != null) {
+this.modelStructureChanged ();
+} else {
+this.modelRowCount = this.getModelWrapper ().getRowCount ();
+}}, "javax.swing.DefaultRowSorter.ModelWrapper");
+Clazz.defineMethod (c$, "getModelWrapper", 
+function () {
+return this.modelWrapper;
+});
+Clazz.overrideMethod (c$, "getModel", 
+function () {
+return this.getModelWrapper ().getModel ();
+});
+Clazz.defineMethod (c$, "setSortable", 
+function (column, sortable) {
+this.checkColumn (column);
+if (this.$isSortable == null) {
+this.$isSortable =  Clazz.newBooleanArray (this.getModelWrapper ().getColumnCount (), false);
+for (var i = this.$isSortable.length - 1; i >= 0; i--) {
+this.$isSortable[i] = true;
+}
+}this.$isSortable[column] = sortable;
+}, "~N,~B");
+Clazz.defineMethod (c$, "isSortable", 
+function (column) {
+this.checkColumn (column);
+return (this.$isSortable == null) ? true : this.$isSortable[column];
+}, "~N");
+Clazz.overrideMethod (c$, "setSortKeys", 
+function (sortKeys) {
+var old = this.sortKeys;
+if (sortKeys != null && sortKeys.size () > 0) {
+var max = this.getModelWrapper ().getColumnCount ();
+for (var key, $key = sortKeys.iterator (); $key.hasNext () && ((key = $key.next ()) || true);) {
+if (key == null || key.getColumn () < 0 || key.getColumn () >= max) {
+throw  new IllegalArgumentException ("Invalid SortKey");
+}}
+this.sortKeys = java.util.Collections.unmodifiableList ( new java.util.ArrayList (sortKeys));
+} else {
+this.sortKeys = java.util.Collections.emptyList ();
+}if (!this.sortKeys.equals (old)) {
+this.fireSortOrderChanged ();
+if (this.viewToModel == null) {
+this.sort ();
+} else {
+this.sortExistingData ();
+}}}, "java.util.List");
+Clazz.overrideMethod (c$, "getSortKeys", 
+function () {
+return this.sortKeys;
+});
+Clazz.defineMethod (c$, "setMaxSortKeys", 
+function (max) {
+if (max < 1) {
+throw  new IllegalArgumentException ("Invalid max");
+}this.maxSortKeys = max;
+}, "~N");
+Clazz.defineMethod (c$, "getMaxSortKeys", 
+function () {
+return this.maxSortKeys;
+});
+Clazz.defineMethod (c$, "setSortsOnUpdates", 
+function (sortsOnUpdates) {
+this.sortsOnUpdates = sortsOnUpdates;
+}, "~B");
+Clazz.defineMethod (c$, "getSortsOnUpdates", 
+function () {
+return this.sortsOnUpdates;
+});
+Clazz.defineMethod (c$, "setRowFilter", 
+function (filter) {
+this.filter = filter;
+this.sort ();
+}, "javax.swing.RowFilter");
+Clazz.defineMethod (c$, "getRowFilter", 
+function () {
+return this.filter;
+});
+Clazz.overrideMethod (c$, "toggleSortOrder", 
+function (column) {
+this.checkColumn (column);
+if (this.isSortable (column)) {
+var keys =  new java.util.ArrayList (this.getSortKeys ());
+var sortKey;
+var sortIndex;
+for (sortIndex = keys.size () - 1; sortIndex >= 0; sortIndex--) {
+if (keys.get (sortIndex).getColumn () == column) {
+break;
+}}
+if (sortIndex == -1) {
+sortKey =  new javax.swing.RowSorter.SortKey (column, javax.swing.SortOrder.ASCENDING);
+keys.add (0, sortKey);
+} else if (sortIndex == 0) {
+keys.set (0, this.toggle (keys.get (0)));
+} else {
+keys.remove (sortIndex);
+keys.add (0,  new javax.swing.RowSorter.SortKey (column, javax.swing.SortOrder.ASCENDING));
+}if (keys.size () > this.getMaxSortKeys ()) {
+keys = keys.subList (0, this.getMaxSortKeys ());
+}this.setSortKeys (keys);
+}}, "~N");
+Clazz.defineMethod (c$, "toggle", 
+ function (key) {
+if (key.getSortOrder () === javax.swing.SortOrder.ASCENDING) {
+return  new javax.swing.RowSorter.SortKey (key.getColumn (), javax.swing.SortOrder.DESCENDING);
+}return  new javax.swing.RowSorter.SortKey (key.getColumn (), javax.swing.SortOrder.ASCENDING);
+}, "javax.swing.RowSorter.SortKey");
+Clazz.overrideMethod (c$, "convertRowIndexToView", 
+function (index) {
+if (this.modelToView == null) {
+if (index < 0 || index >= this.getModelWrapper ().getRowCount ()) {
+throw  new IndexOutOfBoundsException ("Invalid index");
+}return index;
+}return this.modelToView[index];
+}, "~N");
+Clazz.overrideMethod (c$, "convertRowIndexToModel", 
+function (index) {
+if (this.viewToModel == null) {
+if (index < 0 || index >= this.getModelWrapper ().getRowCount ()) {
+throw  new IndexOutOfBoundsException ("Invalid index");
+}return index;
+}return this.viewToModel[index].modelIndex;
+}, "~N");
+Clazz.defineMethod (c$, "isUnsorted", 
+ function () {
+var keys = this.getSortKeys ();
+var keySize = keys.size ();
+return (keySize == 0 || keys.get (0).getSortOrder () === javax.swing.SortOrder.UNSORTED);
+});
+Clazz.defineMethod (c$, "sortExistingData", 
+ function () {
+var lastViewToModel = this.getViewToModelAsInts (this.viewToModel);
+this.updateUseToString ();
+this.cacheSortKeys (this.getSortKeys ());
+if (this.isUnsorted ()) {
+if (this.getRowFilter () == null) {
+this.viewToModel = null;
+this.modelToView = null;
+} else {
+var included = 0;
+for (var i = 0; i < this.modelToView.length; i++) {
+if (this.modelToView[i] != -1) {
+this.viewToModel[included].modelIndex = i;
+this.modelToView[i] = included++;
+}}
+}} else {
+java.util.Arrays.sort (this.viewToModel);
+this.setModelToViewFromViewToModel (false);
+}this.fireRowSorterChanged (lastViewToModel);
+});
+Clazz.defineMethod (c$, "sort", 
+function () {
+this.sorted = true;
+var lastViewToModel = this.getViewToModelAsInts (this.viewToModel);
+this.updateUseToString ();
+if (this.isUnsorted ()) {
+this.cachedSortKeys =  new Array (0);
+if (this.getRowFilter () == null) {
+if (this.viewToModel != null) {
+this.viewToModel = null;
+this.modelToView = null;
+} else {
+return;
+}} else {
+this.initializeFilteredMapping ();
+}} else {
+this.cacheSortKeys (this.getSortKeys ());
+if (this.getRowFilter () != null) {
+this.initializeFilteredMapping ();
+} else {
+this.createModelToView (this.getModelWrapper ().getRowCount ());
+this.createViewToModel (this.getModelWrapper ().getRowCount ());
+}java.util.Arrays.sort (this.viewToModel);
+this.setModelToViewFromViewToModel (false);
+}this.fireRowSorterChanged (lastViewToModel);
+});
+Clazz.defineMethod (c$, "updateUseToString", 
+ function () {
+var i = this.getModelWrapper ().getColumnCount ();
+if (this.$useToString == null || this.$useToString.length != i) {
+this.$useToString =  Clazz.newBooleanArray (i, false);
+}for (--i; i >= 0; i--) {
+this.$useToString[i] = this.useToString (i);
+}
+});
+Clazz.defineMethod (c$, "initializeFilteredMapping", 
+ function () {
+var rowCount = this.getModelWrapper ().getRowCount ();
+var i;
+var j;
+var excludedCount = 0;
+this.createModelToView (rowCount);
+for (i = 0; i < rowCount; i++) {
+if (this.include (i)) {
+this.modelToView[i] = i - excludedCount;
+} else {
+this.modelToView[i] = -1;
+excludedCount++;
+}}
+this.createViewToModel (rowCount - excludedCount);
+for (i = 0, j = 0; i < rowCount; i++) {
+if (this.modelToView[i] != -1) {
+this.viewToModel[j++].modelIndex = i;
+}}
+});
+Clazz.defineMethod (c$, "createModelToView", 
+ function (rowCount) {
+if (this.modelToView == null || this.modelToView.length != rowCount) {
+this.modelToView =  Clazz.newIntArray (rowCount, 0);
+}}, "~N");
+Clazz.defineMethod (c$, "createViewToModel", 
+ function (rowCount) {
+var recreateFrom = 0;
+if (this.viewToModel != null) {
+recreateFrom = Math.min (rowCount, this.viewToModel.length);
+if (this.viewToModel.length != rowCount) {
+var oldViewToModel = this.viewToModel;
+this.viewToModel =  new Array (rowCount);
+System.arraycopy (oldViewToModel, 0, this.viewToModel, 0, recreateFrom);
+}} else {
+this.viewToModel =  new Array (rowCount);
+}var i;
+for (i = 0; i < recreateFrom; i++) {
+this.viewToModel[i].modelIndex = i;
+}
+for (i = recreateFrom; i < rowCount; i++) {
+this.viewToModel[i] =  new javax.swing.DefaultRowSorter.Row (this, i);
+}
+}, "~N");
+Clazz.defineMethod (c$, "cacheSortKeys", 
+ function (keys) {
+var keySize = keys.size ();
+this.sortComparators =  new Array (keySize);
+for (var i = 0; i < keySize; i++) {
+this.sortComparators[i] = this.getComparator0 (keys.get (i).getColumn ());
+}
+this.cachedSortKeys = keys.toArray ( new Array (keySize));
+}, "java.util.List");
+Clazz.defineMethod (c$, "useToString", 
+function (column) {
+return (this.getComparator (column) == null);
+}, "~N");
+Clazz.defineMethod (c$, "setModelToViewFromViewToModel", 
+ function (unsetFirst) {
+var i;
+if (unsetFirst) {
+for (i = this.modelToView.length - 1; i >= 0; i--) {
+this.modelToView[i] = -1;
+}
+}for (i = this.viewToModel.length - 1; i >= 0; i--) {
+this.modelToView[this.viewToModel[i].modelIndex] = i;
+}
+}, "~B");
+Clazz.defineMethod (c$, "getViewToModelAsInts", 
+ function (viewToModel) {
+if (viewToModel != null) {
+var viewToModelI =  Clazz.newIntArray (viewToModel.length, 0);
+for (var i = viewToModel.length - 1; i >= 0; i--) {
+viewToModelI[i] = viewToModel[i].modelIndex;
+}
+return viewToModelI;
+}return  Clazz.newIntArray (0, 0);
+}, "~A");
+Clazz.defineMethod (c$, "setComparator", 
+function (column, comparator) {
+this.checkColumn (column);
+if (this.comparators == null) {
+this.comparators =  new Array (this.getModelWrapper ().getColumnCount ());
+}this.comparators[column] = comparator;
+}, "~N,java.util.Comparator");
+Clazz.defineMethod (c$, "getComparator", 
+function (column) {
+this.checkColumn (column);
+if (this.comparators != null) {
+return this.comparators[column];
+}return null;
+}, "~N");
+Clazz.defineMethod (c$, "getComparator0", 
+ function (column) {
+var comparator = this.getComparator (column);
+if (comparator != null) {
+return comparator;
+}return null;
+}, "~N");
+Clazz.defineMethod (c$, "getFilterEntry", 
+ function (modelIndex) {
+if (this.filterEntry == null) {
+this.filterEntry = Clazz.innerTypeInstance (javax.swing.DefaultRowSorter.FilterEntry, this, null);
+}this.filterEntry.modelIndex = modelIndex;
+return this.filterEntry;
+}, "~N");
+Clazz.overrideMethod (c$, "getViewRowCount", 
+function () {
+if (this.viewToModel != null) {
+return this.viewToModel.length;
+}return this.getModelWrapper ().getRowCount ();
+});
+Clazz.overrideMethod (c$, "getModelRowCount", 
+function () {
+return this.getModelWrapper ().getRowCount ();
+});
+Clazz.defineMethod (c$, "allChanged", 
+ function () {
+this.modelToView = null;
+this.viewToModel = null;
+this.comparators = null;
+this.$isSortable = null;
+if (this.isUnsorted ()) {
+this.sort ();
+} else {
+this.setSortKeys (null);
+}});
+Clazz.overrideMethod (c$, "modelStructureChanged", 
+function () {
+this.allChanged ();
+this.modelRowCount = this.getModelWrapper ().getRowCount ();
+});
+Clazz.overrideMethod (c$, "allRowsChanged", 
+function () {
+this.modelRowCount = this.getModelWrapper ().getRowCount ();
+this.sort ();
+});
+Clazz.overrideMethod (c$, "rowsInserted", 
+function (firstRow, endRow) {
+this.checkAgainstModel (firstRow, endRow);
+var newModelRowCount = this.getModelWrapper ().getRowCount ();
+if (endRow >= newModelRowCount) {
+throw  new IndexOutOfBoundsException ("Invalid range");
+}this.modelRowCount = newModelRowCount;
+if (this.shouldOptimizeChange (firstRow, endRow)) {
+this.rowsInserted0 (firstRow, endRow);
+}}, "~N,~N");
+Clazz.overrideMethod (c$, "rowsDeleted", 
+function (firstRow, endRow) {
+this.checkAgainstModel (firstRow, endRow);
+if (firstRow >= this.modelRowCount || endRow >= this.modelRowCount) {
+throw  new IndexOutOfBoundsException ("Invalid range");
+}this.modelRowCount = this.getModelWrapper ().getRowCount ();
+if (this.shouldOptimizeChange (firstRow, endRow)) {
+this.rowsDeleted0 (firstRow, endRow);
+}}, "~N,~N");
+Clazz.defineMethod (c$, "rowsUpdated", 
+function (firstRow, endRow) {
+this.checkAgainstModel (firstRow, endRow);
+if (firstRow >= this.modelRowCount || endRow >= this.modelRowCount) {
+throw  new IndexOutOfBoundsException ("Invalid range");
+}if (this.getSortsOnUpdates ()) {
+if (this.shouldOptimizeChange (firstRow, endRow)) {
+this.rowsUpdated0 (firstRow, endRow);
+}} else {
+this.sorted = false;
+}}, "~N,~N");
+Clazz.defineMethod (c$, "rowsUpdated", 
+function (firstRow, endRow, column) {
+this.checkColumn (column);
+this.rowsUpdated (firstRow, endRow);
+}, "~N,~N,~N");
+Clazz.defineMethod (c$, "checkAgainstModel", 
+ function (firstRow, endRow) {
+if (firstRow > endRow || firstRow < 0 || endRow < 0 || firstRow > this.modelRowCount) {
+throw  new IndexOutOfBoundsException ("Invalid range");
+}}, "~N,~N");
+Clazz.defineMethod (c$, "include", 
+ function (row) {
+var filter = this.getRowFilter ();
+if (filter != null) {
+return filter.include (this.getFilterEntry (row));
+}return true;
+}, "~N");
+Clazz.defineMethod (c$, "isTransformed", 
+ function () {
+return (this.viewToModel != null);
+});
+Clazz.defineMethod (c$, "insertInOrder", 
+ function (toAdd, current) {
+var last = 0;
+var index;
+var max = toAdd.size ();
+for (var i = 0; i < max; i++) {
+index = java.util.Arrays.binarySearch (current, toAdd.get (i));
+if (index < 0) {
+index = -1 - index;
+}System.arraycopy (current, last, this.viewToModel, last + i, index - last);
+this.viewToModel[index + i] = toAdd.get (i);
+last = index;
+}
+System.arraycopy (current, last, this.viewToModel, last + max, current.length - last);
+}, "java.util.List,~A");
+Clazz.defineMethod (c$, "shouldOptimizeChange", 
+ function (firstRow, lastRow) {
+if (!this.isTransformed ()) {
+return false;
+}if (!this.sorted || (lastRow - firstRow) > Clazz.doubleToInt (this.viewToModel.length / 10)) {
+this.sort ();
+return false;
+}return true;
+}, "~N,~N");
+Clazz.defineMethod (c$, "rowsInserted0", 
+ function (firstRow, lastRow) {
+var oldViewToModel = this.getViewToModelAsInts (this.viewToModel);
+var i;
+var delta = (lastRow - firstRow) + 1;
+var added =  new java.util.ArrayList (delta);
+for (i = firstRow; i <= lastRow; i++) {
+if (this.include (i)) {
+added.add ( new javax.swing.DefaultRowSorter.Row (this, i));
+}}
+var viewIndex;
+for (i = this.modelToView.length - 1; i >= firstRow; i--) {
+viewIndex = this.modelToView[i];
+if (viewIndex != -1) {
+this.viewToModel[viewIndex].modelIndex += delta;
+}}
+if (added.size () > 0) {
+java.util.Collections.sort (added);
+var lastViewToModel = this.viewToModel;
+this.viewToModel =  new Array (this.viewToModel.length + added.size ());
+this.insertInOrder (added, lastViewToModel);
+}this.createModelToView (this.getModelWrapper ().getRowCount ());
+this.setModelToViewFromViewToModel (true);
+this.fireRowSorterChanged (oldViewToModel);
+}, "~N,~N");
+Clazz.defineMethod (c$, "rowsDeleted0", 
+ function (firstRow, lastRow) {
+var oldViewToModel = this.getViewToModelAsInts (this.viewToModel);
+var removedFromView = 0;
+var i;
+var viewIndex;
+for (i = firstRow; i <= lastRow; i++) {
+viewIndex = this.modelToView[i];
+if (viewIndex != -1) {
+removedFromView++;
+this.viewToModel[viewIndex] = null;
+}}
+var delta = lastRow - firstRow + 1;
+for (i = this.modelToView.length - 1; i > lastRow; i--) {
+viewIndex = this.modelToView[i];
+if (viewIndex != -1) {
+this.viewToModel[viewIndex].modelIndex -= delta;
+}}
+if (removedFromView > 0) {
+var newViewToModel =  new Array (this.viewToModel.length - removedFromView);
+var newIndex = 0;
+var last = 0;
+for (i = 0; i < this.viewToModel.length; i++) {
+if (this.viewToModel[i] == null) {
+System.arraycopy (this.viewToModel, last, newViewToModel, newIndex, i - last);
+newIndex += (i - last);
+last = i + 1;
+}}
+System.arraycopy (this.viewToModel, last, newViewToModel, newIndex, this.viewToModel.length - last);
+this.viewToModel = newViewToModel;
+}this.createModelToView (this.getModelWrapper ().getRowCount ());
+this.setModelToViewFromViewToModel (true);
+this.fireRowSorterChanged (oldViewToModel);
+}, "~N,~N");
+Clazz.defineMethod (c$, "rowsUpdated0", 
+ function (firstRow, lastRow) {
+var oldViewToModel = this.getViewToModelAsInts (this.viewToModel);
+var i;
+var j;
+var delta = lastRow - firstRow + 1;
+var modelIndex;
+if (this.getRowFilter () == null) {
+var updated =  new Array (delta);
+for (j = 0, i = firstRow; i <= lastRow; i++, j++) {
+updated[j] = this.viewToModel[this.modelToView[i]];
+}
+java.util.Arrays.sort (updated);
+var intermediary =  new Array (this.viewToModel.length - delta);
+for (i = 0, j = 0; i < this.viewToModel.length; i++) {
+modelIndex = this.viewToModel[i].modelIndex;
+if (modelIndex < firstRow || modelIndex > lastRow) {
+intermediary[j++] = this.viewToModel[i];
+}}
+this.insertInOrder (java.util.Arrays.asList (updated), intermediary);
+this.setModelToViewFromViewToModel (false);
+} else {
+var updated =  new java.util.ArrayList (delta);
+var newlyVisible = 0;
+var newlyHidden = 0;
+var effected = 0;
+for (i = firstRow; i <= lastRow; i++) {
+if (this.modelToView[i] == -1) {
+if (this.include (i)) {
+updated.add ( new javax.swing.DefaultRowSorter.Row (this, i));
+newlyVisible++;
+}} else {
+if (!this.include (i)) {
+newlyHidden++;
+} else {
+updated.add (this.viewToModel[this.modelToView[i]]);
+}this.modelToView[i] = -2;
+effected++;
+}}
+java.util.Collections.sort (updated);
+var intermediary =  new Array (this.viewToModel.length - effected);
+for (i = 0, j = 0; i < this.viewToModel.length; i++) {
+modelIndex = this.viewToModel[i].modelIndex;
+if (this.modelToView[modelIndex] != -2) {
+intermediary[j++] = this.viewToModel[i];
+}}
+if (newlyVisible != newlyHidden) {
+this.viewToModel =  new Array (this.viewToModel.length + newlyVisible - newlyHidden);
+}this.insertInOrder (updated, intermediary);
+this.setModelToViewFromViewToModel (true);
+}this.fireRowSorterChanged (oldViewToModel);
+}, "~N,~N");
+Clazz.defineMethod (c$, "checkColumn", 
+ function (column) {
+if (column < 0 || column >= this.getModelWrapper ().getColumnCount ()) {
+throw  new IndexOutOfBoundsException ("column beyond range of TableModel");
+}}, "~N");
+c$.$DefaultRowSorter$FilterEntry$ = function () {
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+this.modelIndex = 0;
+Clazz.instantialize (this, arguments);
+}, javax.swing.DefaultRowSorter, "FilterEntry", javax.swing.RowFilter.Entry);
+Clazz.overrideMethod (c$, "getModel", 
+function () {
+return this.b$["javax.swing.DefaultRowSorter"].getModelWrapper ().getModel ();
+});
+Clazz.overrideMethod (c$, "getValueCount", 
+function () {
+return this.b$["javax.swing.DefaultRowSorter"].getModelWrapper ().getColumnCount ();
+});
+Clazz.overrideMethod (c$, "getValue", 
+function (a) {
+return this.b$["javax.swing.DefaultRowSorter"].getModelWrapper ().getValueAt (this.modelIndex, a);
+}, "~N");
+Clazz.overrideMethod (c$, "getStringValue", 
+function (a) {
+return this.b$["javax.swing.DefaultRowSorter"].getModelWrapper ().getStringValueAt (this.modelIndex, a);
+}, "~N");
+Clazz.overrideMethod (c$, "getIdentifier", 
+function () {
+return this.b$["javax.swing.DefaultRowSorter"].getModelWrapper ().getIdentifier (this.modelIndex);
+});
+c$ = Clazz.p0p ();
+};
+Clazz.pu$h(self.c$);
+c$ = Clazz.declareType (javax.swing.DefaultRowSorter, "ModelWrapper");
+Clazz.makeConstructor (c$, 
+function () {
+});
+Clazz.defineMethod (c$, "getStringValueAt", 
+function (a, b) {
+var c = this.getValueAt (a, b);
+if (c == null) {
+return "";
+}var d = c.toString ();
+if (d == null) {
+return "";
+}return d;
+}, "~N,~N");
+c$ = Clazz.p0p ();
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+this.sorter = null;
+this.modelIndex = 0;
+Clazz.instantialize (this, arguments);
+}, javax.swing.DefaultRowSorter, "Row", null, Comparable);
+Clazz.makeConstructor (c$, 
+function (a, b) {
+this.sorter = a;
+this.modelIndex = b;
+}, "javax.swing.DefaultRowSorter,~N");
+Clazz.overrideMethod (c$, "compareTo", 
+function (a) {
+return this.sorter.compare (this.modelIndex, a.modelIndex);
+}, "javax.swing.DefaultRowSorter.Row");
+c$ = Clazz.p0p ();
+});