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

View File

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