< prev index next >

src/java.desktop/macosx/classes/com/apple/laf/AquaFileChooserUI.java

Print this page




 106     String createButtonText = null;
 107 
 108     JFileChooser filechooser = null;
 109 
 110     private MouseListener doubleClickListener = null;
 111     private PropertyChangeListener propertyChangeListener = null;
 112     private AncestorListener ancestorListener = null;
 113     private DropTarget dragAndDropTarget = null;
 114 
 115     private final AcceptAllFileFilter acceptAllFileFilter = new AcceptAllFileFilter();
 116 
 117     private AquaFileSystemModel model;
 118 
 119     final AquaFileView fileView = new AquaFileView(this);
 120 
 121     boolean selectionInProgress = false;
 122 
 123     // The accessoryPanel is a container to place the JFileChooser accessory component
 124     private JPanel accessoryPanel = null;
 125 


 126     //
 127     // ComponentUI Interface Implementation methods
 128     //
 129     public static ComponentUI createUI(final JComponent c) {
 130         return new AquaFileChooserUI((JFileChooser)c);
 131     }
 132 
 133     public AquaFileChooserUI(final JFileChooser filechooser) {
 134         super();
 135     }
 136 
 137     public void installUI(final JComponent c) {
 138         accessoryPanel = new JPanel(new BorderLayout());
 139         filechooser = (JFileChooser)c;
 140 
 141         createModel();
 142 
 143         installDefaults(filechooser);
 144         installComponents(filechooser);
 145         installListeners(filechooser);


 191         fc.setDropTarget(dragAndDropTarget);
 192     }
 193 
 194     protected void uninstallListeners(final JFileChooser fc) {
 195         if (propertyChangeListener != null) {
 196             fc.removePropertyChangeListener(propertyChangeListener);
 197         }
 198         fFileList.removeMouseListener(doubleClickListener);
 199         fc.removePropertyChangeListener(model);
 200         fc.unregisterKeyboardAction(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0));
 201         fc.removeAncestorListener(ancestorListener);
 202         fc.setDropTarget(null);
 203         ancestorListener = null;
 204     }
 205 
 206     protected void installDefaults(final JFileChooser fc) {
 207         installIcons(fc);
 208         installStrings(fc);
 209         setPackageIsTraversable(fc.getClientProperty(PACKAGE_TRAVERSABLE_PROPERTY));
 210         setApplicationIsTraversable(fc.getClientProperty(APPLICATION_TRAVERSABLE_PROPERTY));

 211     }
 212 
 213     protected void installIcons(final JFileChooser fc) {
 214         directoryIcon = UIManager.getIcon("FileView.directoryIcon");
 215         fileIcon = UIManager.getIcon("FileView.fileIcon");
 216         computerIcon = UIManager.getIcon("FileView.computerIcon");
 217         hardDriveIcon = UIManager.getIcon("FileView.hardDriveIcon");
 218     }
 219 
 220     String getString(final String uiKey, final String fallback) {
 221         final String result = UIManager.getString(uiKey);
 222         return (result == null ? fallback : result);
 223     }
 224 
 225     protected void installStrings(final JFileChooser fc) {
 226         // Exist in basic.properties (though we might want to override)
 227         fileDescriptionText = UIManager.getString("FileChooser.fileDescriptionText");
 228         directoryDescriptionText = UIManager.getString("FileChooser.directoryDescriptionText");
 229         newFolderErrorText = getString("FileChooser.newFolderErrorText", "Error occurred during folder creation");
 230 


 279         chooseFolderButtonToolTipText = UIManager.getString("FileChooser.chooseFolderButtonToolTipText");
 280         openDirectoryButtonToolTipText = UIManager.getString("FileChooser.openDirectoryButtonToolTipText");
 281 
 282         directoryComboBoxToolTipText = UIManager.getString("FileChooser.directoryComboBoxToolTipText");
 283         filenameTextFieldToolTipText = UIManager.getString("FileChooser.filenameTextFieldToolTipText");
 284         filterComboBoxToolTipText = UIManager.getString("FileChooser.filterComboBoxToolTipText");
 285 
 286         cancelOpenButtonToolTipText = UIManager.getString("FileChooser.cancelOpenButtonToolTipText");
 287         cancelSaveButtonToolTipText = UIManager.getString("FileChooser.cancelSaveButtonToolTipText");
 288         cancelChooseButtonToolTipText = UIManager.getString("FileChooser.cancelChooseButtonToolTipText");
 289         cancelNewFolderButtonToolTipText = UIManager.getString("FileChooser.cancelNewFolderButtonToolTipText");
 290 
 291         newFolderTitleText = UIManager.getString("FileChooser.newFolderTitleText");
 292         newFolderToolTipText = UIManager.getString("FileChooser.newFolderToolTipText");
 293         newFolderAccessibleName = getString("FileChooser.newFolderAccessibleName", newFolderTitleText);
 294     }
 295 
 296     protected void uninstallDefaults(final JFileChooser fc) {
 297         uninstallIcons(fc);
 298         uninstallStrings(fc);




 299     }
 300 
 301     protected void uninstallIcons(final JFileChooser fc) {
 302         directoryIcon = null;
 303         fileIcon = null;
 304         computerIcon = null;
 305         hardDriveIcon = null;
 306         floppyDriveIcon = null;
 307 
 308         upFolderIcon = null;
 309         homeFolderIcon = null;
 310         detailsViewIcon = null;
 311         listViewIcon = null;
 312     }
 313 
 314     protected void uninstallStrings(final JFileChooser fc) {
 315         saveTitleText = null;
 316         openTitleText = null;
 317         newFolderTitleText = null;
 318 


1059             Rectangle paintIconR = new Rectangle();
1060             Rectangle paintTextR = new Rectangle();
1061 
1062             final String clippedText = layoutCL(this, fm, text, icon, paintViewR, paintIconR, paintTextR);
1063 
1064             if (icon != null) {
1065                 icon.paintIcon(this, g, paintIconR.x + 5, paintIconR.y);
1066             }
1067 
1068             if (text != null) {
1069                 final int textX = paintTextR.x;
1070                 final int textY = paintTextR.y + fm.getAscent() + 1;
1071                 if (isEnabled()) {
1072                     // Color background = fIsSelected ? getForeground() : getBackground();
1073                     final Color background = getBackground();
1074 
1075                     g.setColor(background);
1076                     g.fillRect(textX - 1, paintTextR.y, paintTextR.width + 2, fm.getAscent() + 2);
1077 
1078                     g.setColor(getForeground());
1079                     SwingUtilities2.drawString(filechooser, g, clippedText, textX, textY);
1080                 } else {
1081                     final Color background = getBackground();
1082                     g.setColor(background);
1083                     g.fillRect(textX - 1, paintTextR.y, paintTextR.width + 2, fm.getAscent() + 2);
1084 
1085                     g.setColor(background.brighter());
1086                     SwingUtilities2.drawString(filechooser, g, clippedText, textX, textY);
1087                     g.setColor(background.darker());
1088                     SwingUtilities2.drawString(filechooser, g, clippedText, textX + 1, textY + 1);
1089                 }
1090             }
1091         }
1092 
1093     }
1094 
1095     @SuppressWarnings("serial") // Superclass is not serializable across versions
1096     protected class FileRenderer extends MacFCTableCellRenderer {
1097         public FileRenderer(final Font f) {
1098             super(f);
1099         }
1100 
1101         public Component getTableCellRendererComponent(final JTable list,
1102                                                        final Object value,
1103                                                        final boolean isSelected,
1104                                                        final boolean cellHasFocus,
1105                                                        final int index,
1106                                                        final int col) {
1107             super.getTableCellRendererComponent(list, value, isSelected, false,
1108                                                 index,




 106     String createButtonText = null;
 107 
 108     JFileChooser filechooser = null;
 109 
 110     private MouseListener doubleClickListener = null;
 111     private PropertyChangeListener propertyChangeListener = null;
 112     private AncestorListener ancestorListener = null;
 113     private DropTarget dragAndDropTarget = null;
 114 
 115     private final AcceptAllFileFilter acceptAllFileFilter = new AcceptAllFileFilter();
 116 
 117     private AquaFileSystemModel model;
 118 
 119     final AquaFileView fileView = new AquaFileView(this);
 120 
 121     boolean selectionInProgress = false;
 122 
 123     // The accessoryPanel is a container to place the JFileChooser accessory component
 124     private JPanel accessoryPanel = null;
 125 
 126     private TextUIDrawing textUIDrawing;
 127 
 128     //
 129     // ComponentUI Interface Implementation methods
 130     //
 131     public static ComponentUI createUI(final JComponent c) {
 132         return new AquaFileChooserUI((JFileChooser)c);
 133     }
 134 
 135     public AquaFileChooserUI(final JFileChooser filechooser) {
 136         super();
 137     }
 138 
 139     public void installUI(final JComponent c) {
 140         accessoryPanel = new JPanel(new BorderLayout());
 141         filechooser = (JFileChooser)c;
 142 
 143         createModel();
 144 
 145         installDefaults(filechooser);
 146         installComponents(filechooser);
 147         installListeners(filechooser);


 193         fc.setDropTarget(dragAndDropTarget);
 194     }
 195 
 196     protected void uninstallListeners(final JFileChooser fc) {
 197         if (propertyChangeListener != null) {
 198             fc.removePropertyChangeListener(propertyChangeListener);
 199         }
 200         fFileList.removeMouseListener(doubleClickListener);
 201         fc.removePropertyChangeListener(model);
 202         fc.unregisterKeyboardAction(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0));
 203         fc.removeAncestorListener(ancestorListener);
 204         fc.setDropTarget(null);
 205         ancestorListener = null;
 206     }
 207 
 208     protected void installDefaults(final JFileChooser fc) {
 209         installIcons(fc);
 210         installStrings(fc);
 211         setPackageIsTraversable(fc.getClientProperty(PACKAGE_TRAVERSABLE_PROPERTY));
 212         setApplicationIsTraversable(fc.getClientProperty(APPLICATION_TRAVERSABLE_PROPERTY));
 213         textUIDrawing = SwingUtilities2.getTextUIDrawing(textUIDrawing);
 214     }
 215 
 216     protected void installIcons(final JFileChooser fc) {
 217         directoryIcon = UIManager.getIcon("FileView.directoryIcon");
 218         fileIcon = UIManager.getIcon("FileView.fileIcon");
 219         computerIcon = UIManager.getIcon("FileView.computerIcon");
 220         hardDriveIcon = UIManager.getIcon("FileView.hardDriveIcon");
 221     }
 222 
 223     String getString(final String uiKey, final String fallback) {
 224         final String result = UIManager.getString(uiKey);
 225         return (result == null ? fallback : result);
 226     }
 227 
 228     protected void installStrings(final JFileChooser fc) {
 229         // Exist in basic.properties (though we might want to override)
 230         fileDescriptionText = UIManager.getString("FileChooser.fileDescriptionText");
 231         directoryDescriptionText = UIManager.getString("FileChooser.directoryDescriptionText");
 232         newFolderErrorText = getString("FileChooser.newFolderErrorText", "Error occurred during folder creation");
 233 


 282         chooseFolderButtonToolTipText = UIManager.getString("FileChooser.chooseFolderButtonToolTipText");
 283         openDirectoryButtonToolTipText = UIManager.getString("FileChooser.openDirectoryButtonToolTipText");
 284 
 285         directoryComboBoxToolTipText = UIManager.getString("FileChooser.directoryComboBoxToolTipText");
 286         filenameTextFieldToolTipText = UIManager.getString("FileChooser.filenameTextFieldToolTipText");
 287         filterComboBoxToolTipText = UIManager.getString("FileChooser.filterComboBoxToolTipText");
 288 
 289         cancelOpenButtonToolTipText = UIManager.getString("FileChooser.cancelOpenButtonToolTipText");
 290         cancelSaveButtonToolTipText = UIManager.getString("FileChooser.cancelSaveButtonToolTipText");
 291         cancelChooseButtonToolTipText = UIManager.getString("FileChooser.cancelChooseButtonToolTipText");
 292         cancelNewFolderButtonToolTipText = UIManager.getString("FileChooser.cancelNewFolderButtonToolTipText");
 293 
 294         newFolderTitleText = UIManager.getString("FileChooser.newFolderTitleText");
 295         newFolderToolTipText = UIManager.getString("FileChooser.newFolderToolTipText");
 296         newFolderAccessibleName = getString("FileChooser.newFolderAccessibleName", newFolderTitleText);
 297     }
 298 
 299     protected void uninstallDefaults(final JFileChooser fc) {
 300         uninstallIcons(fc);
 301         uninstallStrings(fc);
 302         if (textUIDrawing != SwingUtilities2.DEFAULT_UI_TEXT_DRAWING
 303                 && textUIDrawing instanceof UIResource) {
 304             textUIDrawing = SwingUtilities2.DEFAULT_UI_TEXT_DRAWING;
 305         }
 306     }
 307 
 308     protected void uninstallIcons(final JFileChooser fc) {
 309         directoryIcon = null;
 310         fileIcon = null;
 311         computerIcon = null;
 312         hardDriveIcon = null;
 313         floppyDriveIcon = null;
 314 
 315         upFolderIcon = null;
 316         homeFolderIcon = null;
 317         detailsViewIcon = null;
 318         listViewIcon = null;
 319     }
 320 
 321     protected void uninstallStrings(final JFileChooser fc) {
 322         saveTitleText = null;
 323         openTitleText = null;
 324         newFolderTitleText = null;
 325 


1066             Rectangle paintIconR = new Rectangle();
1067             Rectangle paintTextR = new Rectangle();
1068 
1069             final String clippedText = layoutCL(this, fm, text, icon, paintViewR, paintIconR, paintTextR);
1070 
1071             if (icon != null) {
1072                 icon.paintIcon(this, g, paintIconR.x + 5, paintIconR.y);
1073             }
1074 
1075             if (text != null) {
1076                 final int textX = paintTextR.x;
1077                 final int textY = paintTextR.y + fm.getAscent() + 1;
1078                 if (isEnabled()) {
1079                     // Color background = fIsSelected ? getForeground() : getBackground();
1080                     final Color background = getBackground();
1081 
1082                     g.setColor(background);
1083                     g.fillRect(textX - 1, paintTextR.y, paintTextR.width + 2, fm.getAscent() + 2);
1084 
1085                     g.setColor(getForeground());
1086                     textUIDrawing.drawString(filechooser, g, clippedText, textX, textY);
1087                 } else {
1088                     final Color background = getBackground();
1089                     g.setColor(background);
1090                     g.fillRect(textX - 1, paintTextR.y, paintTextR.width + 2, fm.getAscent() + 2);
1091 
1092                     g.setColor(background.brighter());
1093                     textUIDrawing.drawString(filechooser, g, clippedText, textX, textY);
1094                     g.setColor(background.darker());
1095                     textUIDrawing.drawString(filechooser, g, clippedText, textX + 1, textY + 1);
1096                 }
1097             }
1098         }
1099 
1100     }
1101 
1102     @SuppressWarnings("serial") // Superclass is not serializable across versions
1103     protected class FileRenderer extends MacFCTableCellRenderer {
1104         public FileRenderer(final Font f) {
1105             super(f);
1106         }
1107 
1108         public Component getTableCellRendererComponent(final JTable list,
1109                                                        final Object value,
1110                                                        final boolean isSelected,
1111                                                        final boolean cellHasFocus,
1112                                                        final int index,
1113                                                        final int col) {
1114             super.getTableCellRendererComponent(list, value, isSelected, false,
1115                                                 index,


< prev index next >