UI defaults inspector: support sorting

This commit is contained in:
Karl Tauber
2020-09-15 00:16:57 +02:00
parent 0d266c4990
commit 2fd99ec9f3
2 changed files with 13 additions and 1 deletions

View File

@@ -21,6 +21,7 @@ import java.awt.event.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Locale;
import java.util.function.Predicate;
@@ -124,6 +125,8 @@ public class FlatUIDefaultsInspector
table.setModel( new ItemsTableModel( getUIDefaultsItems() ) );
table.setDefaultRenderer( String.class, new KeyRenderer() );
table.setDefaultRenderer( Item.class, new ValueRenderer() );
table.getRowSorter().setSortKeys( Collections.singletonList(
new RowSorter.SortKey( 0, SortOrder.ASCENDING ) ) );
// restore window bounds
Preferences prefs = getPrefs();
@@ -214,7 +217,6 @@ public class FlatUIDefaultsInspector
items.add( new Item( String.valueOf( key ), value ) );
}
items.sort( (item1, item2) -> item1.key.compareToIgnoreCase( item2.key ) );
return items.toArray( new Item[items.size()] );
}
@@ -386,6 +388,9 @@ public class FlatUIDefaultsInspector
//======== scrollPane ========
{
//---- table ----
table.setAutoCreateRowSorter(true);
scrollPane.setViewportView(table);
}
panel.add(scrollPane, BorderLayout.CENTER);
@@ -484,6 +489,12 @@ public class FlatUIDefaultsInspector
} else
return String.format( hasAlpha ? "#%06X%02X" : "#%06X", rgb & 0xffffff, (rgb >> 24) & 0xff );
}
// used for sorting by value
@Override
public String toString() {
return getValueAsString();
}
}
//---- class ItemsTableModel ----------------------------------------------

View File

@@ -73,6 +73,7 @@ new FormModel {
name: "scrollPane"
add( new FormComponent( "javax.swing.JTable" ) {
name: "table"
"autoCreateRowSorter": true
} )
}, new FormLayoutConstraints( class java.lang.String ) {
"value": "Center"