- /**************************************************************************\r
- * Overridden to get our own model\r
- * @return\r
- *************************************************************************/\r
- public final BasicDirectoryModel getModel() {\r
- return model;\r
- }\r
-\r
- /**************************************************************************\r
- * Calls the default method then adds a MouseListener to the JTable\r
- * @param chooser\r
- * @return\r
- *************************************************************************/\r
- protected final JPanel createDetailsView(JFileChooser chooser) {\r
- final JPanel panel = super.createDetailsView(chooser);\r
-\r
- //Since we can't access MetalFileChooserUI's private member detailsTable\r
- //directly, we have to find it in the JPanel\r
- final JTable tbl = findJTable(panel.getComponents());\r
-\r
- if (tbl != null) {\r
- //Fix the columns so they can't be rearranged, if we don't do this\r
- //we would need to keep track when each column is moved\r
- tbl.getTableHeader().setReorderingAllowed(false);\r
-\r
- //Add a mouselistener to listen for clicks on column headers\r
- tbl.getTableHeader().addMouseListener(new MouseAdapter() {\r
- public void mouseClicked(MouseEvent e) {\r
- //Only process single clicks\r
- if (e.getClickCount() > 1) {\r
- return;\r
- }\r
-\r
- e.consume();\r
-\r
- final int col = tbl.getTableHeader().columnAtPoint(e.getPoint());\r
-\r
- if ((col == COLUMN_FILENAME) ||\r
- (col == COLUMN_FILESIZE) ||\r
- (col == COLUMN_FILEDATE)) {\r
- model.sort(col, tbl);\r
- }\r
- }\r
- });\r
- }\r
-\r
- return panel;\r
- }\r
-\r
- /**************************************************************************\r
- * Finds the JTable in the panel so we can add MouseListener\r
- * @param comp\r
- * @return\r
- *************************************************************************/\r
- private final static JTable findJTable(Component[] comp) {\r
- for (int i = 0; i < comp.length; i++) {\r
- if (comp[i] instanceof JTable) {\r
- return (JTable) comp[i];\r
- }\r
-\r
- if (comp[i] instanceof Container) {\r
- JTable tbl = findJTable(((Container) comp[i]).getComponents());\r
-\r
- if (tbl != null) {\r
- return tbl;\r
- }\r
- }\r
- }\r
-\r
- return null;\r
- }\r