home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.metal;
-
- import java.awt.BorderLayout;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Insets;
- import java.awt.event.MouseListener;
- import java.beans.PropertyChangeListener;
- import java.io.File;
- import javax.swing.AbstractButton;
- import javax.swing.Action;
- import javax.swing.Box;
- import javax.swing.BoxLayout;
- import javax.swing.JButton;
- import javax.swing.JComboBox;
- import javax.swing.JComponent;
- import javax.swing.JFileChooser;
- import javax.swing.JLabel;
- import javax.swing.JList;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTextField;
- import javax.swing.JToggleButton;
- import javax.swing.UIManager;
- import javax.swing.event.ListSelectionEvent;
- import javax.swing.plaf.ComponentUI;
- import javax.swing.plaf.basic.BasicFileChooserUI;
-
- public class MetalFileChooserUI extends BasicFileChooserUI {
- private JPanel centerPanel;
- private JComboBox directoryComboBox;
- private DirectoryComboBoxModel directoryComboBoxModel;
- private Action directoryComboBoxAction = new DirectoryComboBoxAction(this);
- private FilterComboBoxModel filterComboBoxModel;
- private JTextField filenameTextField;
- private JList list;
- private JButton approveButton;
- private JButton cancelButton;
- private JComboBox filterComboBox;
- private JPanel bodyPanel = null;
- private static final Dimension hstrut10 = new Dimension(10, 1);
- private static final Dimension hstrut25 = new Dimension(25, 1);
- private static final Dimension vstrut10 = new Dimension(1, 10);
- private static final Insets shrinkwrap = new Insets(0, 0, 0, 0);
- private static int PREF_WIDTH = 500;
- private static int PREF_HEIGHT = 300;
- private static Dimension PREF_SIZE;
- private static int MIN_WIDTH;
- private static int MIN_HEIGHT;
- private static Dimension MIN_SIZE;
- private static int LIST_MIN_WIDTH;
- private static int LIST_MIN_HEIGHT;
- private static Dimension LIST_MIN_SIZE;
- private int lookInLabelMnemonic = 0;
- private String lookInLabelText = null;
- private int fileNameLabelMnemonic = 0;
- private String fileNameLabelText = null;
- private int filesOfTypeLabelMnemonic = 0;
- private String filesOfTypeLabelText = null;
- private String upFolderToolTipText = null;
- private String upFolderAccessibleName = null;
- private String homeFolderToolTipText = null;
- private String homeFolderAccessibleName = null;
- private String newFolderToolTipText = null;
- private String newFolderAccessibleName = null;
- private String listViewButtonToolTipText = null;
- private String listViewButtonAccessibleName = null;
- private String detailsViewButtonToolTipText = null;
- private String detailsViewButtonAccessibleName = null;
- int lastIndex = -1;
- boolean editing = false;
- int editX = 20;
- int editWidth = 200;
- JTextField editCell = null;
- static final int space = 10;
-
- static {
- PREF_SIZE = new Dimension(PREF_WIDTH, PREF_HEIGHT);
- MIN_WIDTH = 400;
- MIN_HEIGHT = 200;
- MIN_SIZE = new Dimension(MIN_WIDTH, MIN_HEIGHT);
- LIST_MIN_WIDTH = 400;
- LIST_MIN_HEIGHT = 100;
- LIST_MIN_SIZE = new Dimension(LIST_MIN_WIDTH, LIST_MIN_HEIGHT);
- }
-
- public MetalFileChooserUI(JFileChooser var1) {
- super(var1);
- }
-
- // $FF: synthetic method
- static void access$0(MetalFileChooserUI var0) {
- var0.cancelEdit();
- }
-
- // $FF: synthetic method
- static JList access$1(MetalFileChooserUI var0) {
- return var0.list;
- }
-
- // $FF: synthetic method
- static DirectoryComboBoxModel access$2(MetalFileChooserUI var0) {
- return var0.directoryComboBoxModel;
- }
-
- // $FF: synthetic method
- static JButton access$3(MetalFileChooserUI var0) {
- return var0.approveButton;
- }
-
- // $FF: synthetic method
- static JComboBox access$4(MetalFileChooserUI var0) {
- return var0.directoryComboBox;
- }
-
- private void cancelEdit() {
- this.editing = false;
- if (this.editCell != null) {
- this.list.remove(this.editCell);
- }
-
- }
-
- protected DirectoryComboBoxModel createDirectoryComboBoxModel(JFileChooser var1) {
- return new DirectoryComboBoxModel(this);
- }
-
- protected DirectoryComboBoxRenderer createDirectoryComboBoxRenderer(JFileChooser var1) {
- return new DirectoryComboBoxRenderer(this);
- }
-
- protected FilterComboBoxModel createFilterComboBoxModel() {
- return new FilterComboBoxModel(this);
- }
-
- protected FilterComboBoxRenderer createFilterComboBoxRenderer() {
- return new FilterComboBoxRenderer(this);
- }
-
- protected JPanel createList(JFileChooser var1) {
- JPanel var2 = new JPanel(new BorderLayout());
- this.list = new JList();
- this.list.setCellRenderer(new FileRenderer(this));
- this.list.setModel(((BasicFileChooserUI)this).getModel());
- this.list.addListSelectionListener(((BasicFileChooserUI)this).createListSelectionListener(var1));
- this.list.addMouseListener(((BasicFileChooserUI)this).createDoubleClickListener(var1, this.list));
- this.list.addMouseListener(this.createSingleClickListener(var1, this.list));
- JScrollPane var3 = new JScrollPane(this.list);
- ((Container)var2).add(var3, "Center");
- return var2;
- }
-
- public PropertyChangeListener createPropertyChangeListener(JFileChooser var1) {
- return new 3(this);
- }
-
- private MouseListener createSingleClickListener(JFileChooser var1, JList var2) {
- return new SingleClickListener(this, var2);
- }
-
- public static ComponentUI createUI(JComponent var0) {
- return new MetalFileChooserUI((JFileChooser)var0);
- }
-
- public void ensureFileIsVisible(JFileChooser var1, File var2) {
- if (((BasicFileChooserUI)this).getModel().contains(var2)) {
- this.list.ensureIndexIsVisible(((BasicFileChooserUI)this).getModel().indexOf(var2));
- }
-
- }
-
- protected JButton getApproveButton(JFileChooser var1) {
- return this.approveButton;
- }
-
- public String getDirectoryName() {
- return null;
- }
-
- public String getFileName() {
- return this.filenameTextField != null ? this.filenameTextField.getText() : null;
- }
-
- public Dimension getMaximumSize(JComponent var1) {
- return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
- }
-
- public Dimension getMinimumSize(JComponent var1) {
- return MIN_SIZE;
- }
-
- public Dimension getPreferredSize(JComponent var1) {
- return PREF_SIZE;
- }
-
- public void installComponents(JFileChooser var1) {
- ((Container)var1).setLayout(new BoxLayout(var1, 1));
- ((Container)var1).add(Box.createRigidArea(vstrut10));
- JPanel var2 = new JPanel();
- ((Container)var2).setLayout(new BoxLayout(var2, 0));
- ((Container)var1).add(var2);
- ((Container)var1).add(Box.createRigidArea(vstrut10));
- JLabel var3 = new JLabel(this.lookInLabelText);
- var3.setDisplayedMnemonic(this.lookInLabelMnemonic);
- ((JComponent)var3).setAlignmentX(0.0F);
- ((JComponent)var3).setAlignmentY(0.5F);
- ((Container)var2).add(Box.createRigidArea(hstrut10));
- ((Container)var2).add(var3);
- ((Container)var2).add(Box.createRigidArea(hstrut25));
- this.directoryComboBox = new JComboBox();
- this.directoryComboBox.putClientProperty("JComboBox.lightweightKeyboardNavigation", "Lightweight");
- var3.setLabelFor(this.directoryComboBox);
- this.directoryComboBoxModel = this.createDirectoryComboBoxModel(var1);
- this.directoryComboBox.setModel(this.directoryComboBoxModel);
- this.directoryComboBox.addActionListener(this.directoryComboBoxAction);
- this.directoryComboBox.setRenderer(this.createDirectoryComboBoxRenderer(var1));
- this.directoryComboBox.setAlignmentX(0.0F);
- this.directoryComboBox.setAlignmentY(0.5F);
- ((Container)var2).add(this.directoryComboBox);
- ((Container)var2).add(Box.createRigidArea(hstrut10));
- JButton var4 = new JButton(super.upFolderIcon);
- ((JComponent)var4).setToolTipText(this.upFolderToolTipText);
- var4.getAccessibleContext().setAccessibleName(this.upFolderAccessibleName);
- ((JComponent)var4).setAlignmentX(0.0F);
- ((JComponent)var4).setAlignmentY(0.5F);
- ((AbstractButton)var4).setMargin(shrinkwrap);
- ((AbstractButton)var4).addActionListener(((BasicFileChooserUI)this).getChangeToParentDirectoryAction());
- ((Container)var2).add(var4);
- ((Container)var2).add(Box.createRigidArea(hstrut10));
- var4 = new JButton(super.homeFolderIcon);
- ((JComponent)var4).setToolTipText(this.homeFolderToolTipText);
- var4.getAccessibleContext().setAccessibleName(this.homeFolderAccessibleName);
- ((JComponent)var4).setAlignmentX(0.0F);
- ((JComponent)var4).setAlignmentY(0.5F);
- ((AbstractButton)var4).setMargin(shrinkwrap);
- ((AbstractButton)var4).addActionListener(((BasicFileChooserUI)this).getGoHomeAction());
- ((Container)var2).add(var4);
- ((Container)var2).add(Box.createRigidArea(hstrut10));
- var4 = new JButton(super.newFolderIcon);
- ((JComponent)var4).setToolTipText(this.newFolderToolTipText);
- var4.getAccessibleContext().setAccessibleName(this.newFolderAccessibleName);
- ((JComponent)var4).setAlignmentX(0.0F);
- ((JComponent)var4).setAlignmentY(0.5F);
- ((AbstractButton)var4).setMargin(shrinkwrap);
- ((AbstractButton)var4).addActionListener(((BasicFileChooserUI)this).getNewFolderAction());
- ((Container)var2).add(var4);
- ((Container)var2).add(Box.createRigidArea(hstrut10));
- JToggleButton var5 = new JToggleButton(super.listViewIcon);
- ((JComponent)var5).setToolTipText(this.listViewButtonToolTipText);
- var5.getAccessibleContext().setAccessibleName(this.listViewButtonAccessibleName);
- ((AbstractButton)var5).setEnabled(false);
- ((JComponent)var5).setAlignmentX(0.0F);
- ((JComponent)var5).setAlignmentY(0.5F);
- ((AbstractButton)var5).setMargin(shrinkwrap);
- ((Container)var2).add(var5);
- var5 = new JToggleButton(super.detailsViewIcon);
- ((JComponent)var5).setToolTipText(this.detailsViewButtonToolTipText);
- var5.getAccessibleContext().setAccessibleName(this.detailsViewButtonAccessibleName);
- ((AbstractButton)var5).setSelected(true);
- ((AbstractButton)var5).setEnabled(false);
- ((JComponent)var5).setAlignmentX(0.0F);
- ((JComponent)var5).setAlignmentY(0.5F);
- ((AbstractButton)var5).setMargin(shrinkwrap);
- ((Container)var2).add(var5);
- ((Container)var2).add(Box.createRigidArea(hstrut10));
- this.centerPanel = new JPanel(new BorderLayout());
- JPanel var6 = this.createList(var1);
- ((JComponent)var6).setMinimumSize(LIST_MIN_SIZE);
- this.centerPanel.add(var6, "Center");
- this.centerPanel.add(((BasicFileChooserUI)this).getAccessoryPanel(), "East");
- JComponent var7 = var1.getAccessory();
- if (var7 != null) {
- ((BasicFileChooserUI)this).getAccessoryPanel().add(var7);
- }
-
- ((Container)var1).add(this.centerPanel);
- JPanel var8 = new JPanel();
- ((Container)var8).setLayout(new BoxLayout(var8, 0));
- ((Container)var8).add(Box.createRigidArea(hstrut10));
- ((Container)var1).add(Box.createRigidArea(vstrut10));
- ((Container)var1).add(var8);
- ((Container)var1).add(Box.createRigidArea(vstrut10));
- JPanel var9 = new JPanel();
- ((Container)var9).setLayout(new BoxLayout(var9, 1));
- JLabel var10 = new JLabel(this.fileNameLabelText);
- var10.setDisplayedMnemonic(this.fileNameLabelMnemonic);
- ((Container)var9).add(var10);
- ((Container)var9).add(Box.createRigidArea(vstrut10));
- JLabel var11 = new JLabel(this.filesOfTypeLabelText);
- var11.setDisplayedMnemonic(this.filesOfTypeLabelMnemonic);
- ((Container)var9).add(var11);
- ((Container)var8).add(var9);
- ((Container)var8).add(Box.createRigidArea(hstrut25));
- JPanel var12 = new JPanel();
- ((Container)var12).setLayout(new BoxLayout(var12, 1));
- this.filenameTextField = new JTextField();
- var10.setLabelFor(this.filenameTextField);
- this.filenameTextField.addActionListener(((BasicFileChooserUI)this).getApproveSelectionAction());
- File var13 = var1.getSelectedFile();
- if (var13 != null) {
- this.setFileName(var1.getName(var13));
- }
-
- ((Container)var12).add(this.filenameTextField);
- ((Container)var12).add(Box.createRigidArea(vstrut10));
- this.filterComboBoxModel = this.createFilterComboBoxModel();
- ((JComponent)var1).addPropertyChangeListener(this.filterComboBoxModel);
- this.filterComboBox = new JComboBox(this.filterComboBoxModel);
- var11.setLabelFor(this.filterComboBox);
- this.filterComboBox.setRenderer(this.createFilterComboBoxRenderer());
- ((Container)var12).add(this.filterComboBox);
- ((Container)var8).add(var12);
- ((Container)var8).add(Box.createRigidArea(hstrut10));
- JPanel var14 = new JPanel();
- ((Container)var14).setLayout(new BoxLayout(var14, 1));
- this.approveButton = new 1(((BasicFileChooserUI)this).getApproveButtonText(var1));
- this.approveButton.setMnemonic(((BasicFileChooserUI)this).getApproveButtonMnemonic(var1));
- this.approveButton.addActionListener(((BasicFileChooserUI)this).getApproveSelectionAction());
- this.approveButton.setToolTipText(((BasicFileChooserUI)this).getApproveButtonToolTipText(var1));
- ((Container)var14).add(this.approveButton);
- ((Container)var14).add(Box.createRigidArea(vstrut10));
- this.cancelButton = new 2(super.cancelButtonText);
- this.cancelButton.setMnemonic(super.cancelButtonMnemonic);
- this.cancelButton.setToolTipText(super.cancelButtonToolTipText);
- this.cancelButton.addActionListener(((BasicFileChooserUI)this).getCancelSelectionAction());
- ((Container)var14).add(this.cancelButton);
- ((Container)var8).add(var14);
- ((Container)var8).add(Box.createRigidArea(hstrut10));
- }
-
- protected void installStrings(JFileChooser var1) {
- super.installStrings(var1);
- this.lookInLabelMnemonic = UIManager.getInt("FileChooser.lookInLabelMnemonic");
- this.lookInLabelText = UIManager.getString("FileChooser.lookInLabelText");
- this.fileNameLabelMnemonic = UIManager.getInt("FileChooser.fileNameLabelMnemonic");
- this.fileNameLabelText = UIManager.getString("FileChooser.fileNameLabelText");
- this.filesOfTypeLabelMnemonic = UIManager.getInt("FileChooser.filesOfTypeLabelMnemonic");
- this.filesOfTypeLabelText = UIManager.getString("FileChooser.filesOfTypeLabelText");
- this.upFolderToolTipText = UIManager.getString("FileChooser.upFolderToolTipText");
- this.upFolderAccessibleName = UIManager.getString("FileChooser.upFolderAccessibleName");
- this.homeFolderToolTipText = UIManager.getString("FileChooser.homeFolderToolTipText");
- this.homeFolderAccessibleName = UIManager.getString("FileChooser.homeFolderAccessibleName");
- this.newFolderToolTipText = UIManager.getString("FileChooser.newFolderToolTipText");
- this.newFolderAccessibleName = UIManager.getString("FileChooser.newFolderAccessibleName");
- this.listViewButtonToolTipText = UIManager.getString("FileChooser.listViewButtonToolTipText");
- this.listViewButtonAccessibleName = UIManager.getString("FileChooser.listViewButtonAccessibleName");
- this.detailsViewButtonToolTipText = UIManager.getString("FileChooser.detailsViewButtonToolTipText");
- this.detailsViewButtonAccessibleName = UIManager.getString("FileChooser.detailsViewButtonAccessibleName");
- }
-
- public void rescanCurrentDirectory(JFileChooser var1) {
- ((BasicFileChooserUI)this).getModel().invalidateFileCache();
- ((BasicFileChooserUI)this).getModel().validateFileCache();
- }
-
- public void setDirectoryName(String var1) {
- }
-
- public void setFileName(String var1) {
- if (this.filenameTextField != null) {
- this.filenameTextField.setText(var1);
- }
-
- }
-
- public void uninstallUI(JComponent var1) {
- var1.removePropertyChangeListener(this.filterComboBoxModel);
- this.cancelButton.removeActionListener(((BasicFileChooserUI)this).getCancelSelectionAction());
- this.approveButton.removeActionListener(((BasicFileChooserUI)this).getApproveSelectionAction());
- this.filenameTextField.removeActionListener(((BasicFileChooserUI)this).getApproveSelectionAction());
- super.uninstallUI(var1);
- }
-
- public void valueChanged(ListSelectionEvent var1) {
- File var2 = ((BasicFileChooserUI)this).getFileChooser().getSelectedFile();
- if (!var1.getValueIsAdjusting() && var2 != null && !((BasicFileChooserUI)this).getFileChooser().isTraversable(var2)) {
- this.setFileName(((BasicFileChooserUI)this).getFileChooser().getName(var2));
- }
-
- }
- }
-