home *** CD-ROM | disk | FTP | other *** search
- package sun.swing;
-
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.ComponentOrientation;
- import java.awt.Container;
- import java.awt.Cursor;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.Rectangle;
- import java.awt.event.FocusListener;
- import java.beans.PropertyChangeEvent;
- import java.beans.PropertyChangeListener;
- import java.io.File;
- import java.security.AccessControlException;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Locale;
- import java.util.Set;
- import javax.swing.Action;
- import javax.swing.ActionMap;
- import javax.swing.ButtonGroup;
- import javax.swing.DefaultListSelectionModel;
- import javax.swing.JComponent;
- import javax.swing.JFileChooser;
- import javax.swing.JList;
- import javax.swing.JMenu;
- import javax.swing.JPanel;
- import javax.swing.JPopupMenu;
- import javax.swing.JRadioButtonMenuItem;
- import javax.swing.JScrollPane;
- import javax.swing.JTable;
- import javax.swing.JTextField;
- import javax.swing.ListSelectionModel;
- import javax.swing.LookAndFeel;
- import javax.swing.SwingUtilities;
- import javax.swing.UIManager;
- import javax.swing.border.Border;
- import javax.swing.event.ListSelectionListener;
- import javax.swing.filechooser.FileSystemView;
- import javax.swing.plaf.basic.BasicDirectoryModel;
- import javax.swing.table.DefaultTableColumnModel;
- import javax.swing.table.TableColumn;
- import sun.awt.shell.ShellFolderColumnInfo;
-
- public class FilePane extends JPanel implements PropertyChangeListener {
- public static final String ACTION_APPROVE_SELECTION = "approveSelection";
- public static final String ACTION_CANCEL = "cancelSelection";
- public static final String ACTION_EDIT_FILE_NAME = "editFileName";
- public static final String ACTION_REFRESH = "refresh";
- public static final String ACTION_CHANGE_TO_PARENT_DIRECTORY = "Go Up";
- public static final String ACTION_NEW_FOLDER = "New Folder";
- public static final String ACTION_VIEW_LIST = "viewTypeList";
- public static final String ACTION_VIEW_DETAILS = "viewTypeDetails";
- private Action[] actions;
- public static final int VIEWTYPE_LIST = 0;
- public static final int VIEWTYPE_DETAILS = 1;
- private static final int VIEWTYPE_COUNT = 2;
- private int viewType = -1;
- private JPanel[] viewPanels = new JPanel[2];
- private JPanel currentViewPanel;
- private String[] viewTypeActionNames;
- private JPopupMenu contextMenu;
- private JMenu viewMenu;
- private String viewMenuLabelText;
- private String refreshActionLabelText;
- private String newFolderActionLabelText;
- private String kiloByteString;
- private String megaByteString;
- private String gigaByteString;
- private static final Cursor waitCursor = Cursor.getPredefinedCursor(3);
- private FocusListener editorFocusListener = new 1(this);
- private static FocusListener repaintListener = new 2();
- private boolean smallIconsView = false;
- private Border listViewBorder;
- private Color listViewBackground;
- private boolean listViewWindowsStyle;
- private boolean readOnly;
- private ListSelectionModel listSelectionModel;
- private JList list;
- private JTable detailsTable;
- private static final int COLUMN_FILENAME = 0;
- private File newFolderFile;
- private FileChooserUIAccessor fileChooserUIAccessor;
- private DetailsTableModel detailsTableModel;
- private DetailsTableRowSorter rowSorter;
- private DetailsTableCellEditor tableCellEditor;
- int lastIndex = -1;
- File editFile = null;
- int editX = 20;
- JTextField editCell = null;
- protected Action newFolderAction;
- private Handler handler;
-
- public FilePane(FileChooserUIAccessor var1) {
- super(new BorderLayout());
- this.fileChooserUIAccessor = var1;
- this.installDefaults();
- this.createActionMap();
- }
-
- public void uninstallUI() {
- if (this.getModel() != null) {
- this.getModel().removePropertyChangeListener(this);
- }
-
- }
-
- protected JFileChooser getFileChooser() {
- return this.fileChooserUIAccessor.getFileChooser();
- }
-
- protected BasicDirectoryModel getModel() {
- return this.fileChooserUIAccessor.getModel();
- }
-
- public int getViewType() {
- return this.viewType;
- }
-
- public void setViewType(int var1) {
- int var2 = this.viewType;
- if (var1 != var2) {
- this.viewType = var1;
- switch (var1) {
- case 0:
- if (this.viewPanels[var1] == null) {
- JPanel var4 = this.fileChooserUIAccessor.createList();
- if (var4 == null) {
- var4 = this.createList();
- }
-
- this.setViewPanel(var1, var4);
- }
-
- this.list.setLayoutOrientation(1);
- break;
- case 1:
- if (this.viewPanels[var1] == null) {
- JPanel var3 = this.fileChooserUIAccessor.createDetailsView();
- if (var3 == null) {
- var3 = this.createDetailsView();
- }
-
- this.setViewPanel(var1, var3);
- }
- }
-
- JPanel var5 = this.currentViewPanel;
- this.currentViewPanel = this.viewPanels[var1];
- if (this.currentViewPanel != var5) {
- if (var5 != null) {
- this.remove(var5);
- }
-
- this.add(this.currentViewPanel, "Center");
- this.revalidate();
- this.repaint();
- }
-
- this.updateViewMenu();
- this.firePropertyChange("viewType", var2, var1);
- }
- }
-
- public Action getViewTypeAction(int var1) {
- return new ViewTypeAction(this, var1);
- }
-
- private static void recursivelySetInheritsPopupMenu(Container var0, boolean var1) {
- if (var0 instanceof JComponent) {
- ((JComponent)var0).setInheritsPopupMenu(var1);
- }
-
- int var2 = var0.getComponentCount();
-
- for(int var3 = 0; var3 < var2; ++var3) {
- recursivelySetInheritsPopupMenu((Container)var0.getComponent(var3), var1);
- }
-
- }
-
- public void setViewPanel(int var1, JPanel var2) {
- this.viewPanels[var1] = var2;
- recursivelySetInheritsPopupMenu(var2, true);
- switch (var1) {
- case 0:
- this.list = (JList)this.findChildComponent(this.viewPanels[var1], JList.class);
- if (this.listSelectionModel == null) {
- this.listSelectionModel = this.list.getSelectionModel();
- if (this.detailsTable != null) {
- this.detailsTable.setSelectionModel(this.listSelectionModel);
- }
- } else {
- this.list.setSelectionModel(this.listSelectionModel);
- }
- break;
- case 1:
- this.detailsTable = (JTable)this.findChildComponent(this.viewPanels[var1], JTable.class);
- this.detailsTable.setRowHeight(Math.max(this.detailsTable.getFont().getSize() + 4, 17));
- if (this.listSelectionModel != null) {
- this.detailsTable.setSelectionModel(this.listSelectionModel);
- }
- }
-
- if (this.viewType == var1) {
- if (this.currentViewPanel != null) {
- this.remove(this.currentViewPanel);
- }
-
- this.currentViewPanel = var2;
- this.add(this.currentViewPanel, "Center");
- this.revalidate();
- this.repaint();
- }
-
- }
-
- protected void installDefaults() {
- Locale var1 = this.getFileChooser().getLocale();
- this.listViewBorder = UIManager.getBorder("FileChooser.listViewBorder");
- this.listViewBackground = UIManager.getColor("FileChooser.listViewBackground");
- this.listViewWindowsStyle = UIManager.getBoolean("FileChooser.listViewWindowsStyle");
- this.readOnly = UIManager.getBoolean("FileChooser.readOnly");
- this.viewMenuLabelText = UIManager.getString("FileChooser.viewMenuLabelText", var1);
- this.refreshActionLabelText = UIManager.getString("FileChooser.refreshActionLabelText", var1);
- this.newFolderActionLabelText = UIManager.getString("FileChooser.newFolderActionLabelText", var1);
- this.viewTypeActionNames = new String[2];
- this.viewTypeActionNames[0] = UIManager.getString("FileChooser.listViewActionLabelText", var1);
- this.viewTypeActionNames[1] = UIManager.getString("FileChooser.detailsViewActionLabelText", var1);
- this.kiloByteString = UIManager.getString("FileChooser.fileSizeKiloBytes", var1);
- this.megaByteString = UIManager.getString("FileChooser.fileSizeMegaBytes", var1);
- this.gigaByteString = UIManager.getString("FileChooser.fileSizeGigaBytes", var1);
- }
-
- public Action[] getActions() {
- if (this.actions == null) {
- ArrayList var1 = new ArrayList(8);
- var1.add(new 1FilePaneAction(this, "cancelSelection"));
- var1.add(new 1FilePaneAction(this, "editFileName"));
- var1.add(new 1FilePaneAction(this, this.refreshActionLabelText, "refresh"));
- Action var2 = this.fileChooserUIAccessor.getApproveSelectionAction();
- if (var2 != null) {
- var1.add(var2);
- }
-
- var2 = this.fileChooserUIAccessor.getChangeToParentDirectoryAction();
- if (var2 != null) {
- var1.add(var2);
- }
-
- var2 = this.getNewFolderAction();
- if (var2 != null) {
- var1.add(var2);
- }
-
- var2 = this.getViewTypeAction(0);
- if (var2 != null) {
- var1.add(var2);
- }
-
- var2 = this.getViewTypeAction(1);
- if (var2 != null) {
- var1.add(var2);
- }
-
- this.actions = (Action[])var1.toArray(new Action[var1.size()]);
- }
-
- return this.actions;
- }
-
- protected void createActionMap() {
- addActionsToMap(super.getActionMap(), this.getActions());
- }
-
- public static void addActionsToMap(ActionMap var0, Action[] var1) {
- if (var0 != null && var1 != null) {
- for(int var2 = 0; var2 < var1.length; ++var2) {
- Action var3 = var1[var2];
- String var4 = (String)var3.getValue("ActionCommandKey");
- if (var4 == null) {
- var4 = (String)var3.getValue("Name");
- }
-
- var0.put(var4, var3);
- }
- }
-
- }
-
- private void updateListRowCount(JList var1) {
- if (this.smallIconsView) {
- var1.setVisibleRowCount(this.getModel().getSize() / 3);
- } else {
- var1.setVisibleRowCount(-1);
- }
-
- }
-
- public JPanel createList() {
- JPanel var1 = new JPanel(new BorderLayout());
- JFileChooser var2 = this.getFileChooser();
- 3 var3 = new 3(this, var2);
- ((JList)var3).setCellRenderer(new FileRenderer(this));
- ((JList)var3).setLayoutOrientation(1);
- ((JList)var3).putClientProperty("List.isFileList", Boolean.TRUE);
- if (this.listViewWindowsStyle) {
- ((JList)var3).addFocusListener(repaintListener);
- }
-
- this.updateListRowCount(var3);
- this.getModel().addListDataListener(new 4(this, var3));
- this.getModel().addPropertyChangeListener(this);
- if (var2.isMultiSelectionEnabled()) {
- ((JList)var3).setSelectionMode(2);
- } else {
- ((JList)var3).setSelectionMode(0);
- }
-
- ((JList)var3).setModel(new SortableListModel(this));
- ((JList)var3).addListSelectionListener(this.createListSelectionListener());
- ((JList)var3).addMouseListener(this.getMouseHandler());
- JScrollPane var4 = new JScrollPane(var3);
- if (this.listViewBackground != null) {
- ((JList)var3).setBackground(this.listViewBackground);
- }
-
- if (this.listViewBorder != null) {
- var4.setBorder(this.listViewBorder);
- }
-
- var1.add(var4, "Center");
- return var1;
- }
-
- private DetailsTableModel getDetailsTableModel() {
- if (this.detailsTableModel == null) {
- this.detailsTableModel = new DetailsTableModel(this, this.getFileChooser());
- }
-
- return this.detailsTableModel;
- }
-
- private void updateDetailsColumnModel(JTable var1) {
- if (var1 != null) {
- ShellFolderColumnInfo[] var2 = this.detailsTableModel.getColumns();
- DefaultTableColumnModel var3 = new DefaultTableColumnModel();
-
- for(int var4 = 0; var4 < var2.length; ++var4) {
- ShellFolderColumnInfo var5 = var2[var4];
- TableColumn var6 = new TableColumn(var4);
- String var7 = var5.getTitle();
- if (var7 != null && var7.startsWith("FileChooser.") && var7.endsWith("HeaderText")) {
- String var8 = UIManager.getString(var7, var1.getLocale());
- if (var8 != null) {
- var7 = var8;
- }
- }
-
- var6.setHeaderValue(var7);
- Integer var9 = var5.getWidth();
- if (var9 != null) {
- var6.setPreferredWidth(var9);
- }
-
- var3.addColumn(var6);
- }
-
- if (!this.readOnly && var3.getColumnCount() > 0) {
- var3.getColumn(0).setCellEditor(this.getDetailsTableCellEditor());
- }
-
- var1.setColumnModel(var3);
- }
-
- }
-
- private DetailsTableRowSorter getRowSorter() {
- if (this.rowSorter == null) {
- this.rowSorter = new DetailsTableRowSorter(this);
- }
-
- return this.rowSorter;
- }
-
- private DetailsTableCellEditor getDetailsTableCellEditor() {
- if (this.tableCellEditor == null) {
- this.tableCellEditor = new DetailsTableCellEditor(this, new JTextField());
- }
-
- return this.tableCellEditor;
- }
-
- public JPanel createDetailsView() {
- JFileChooser var1 = this.getFileChooser();
- JPanel var2 = new JPanel(new BorderLayout());
- 5 var3 = new 5(this, this.getDetailsTableModel(), var1);
- ((JTable)var3).setRowSorter(this.getRowSorter());
- ((JTable)var3).setAutoCreateColumnsFromModel(false);
- ((JTable)var3).setComponentOrientation(var1.getComponentOrientation());
- ((JTable)var3).setAutoResizeMode(0);
- ((JTable)var3).setShowGrid(false);
- ((JTable)var3).putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);
- Font var4 = this.list.getFont();
- ((JTable)var3).setFont(var4);
- ((JTable)var3).setIntercellSpacing(new Dimension(0, 0));
- AlignableTableHeaderRenderer var5 = new AlignableTableHeaderRenderer(this, ((JTable)var3).getTableHeader().getDefaultRenderer());
- ((JTable)var3).getTableHeader().setDefaultRenderer(var5);
- DetailsTableCellRenderer var6 = new DetailsTableCellRenderer(this, var1);
- ((JTable)var3).setDefaultRenderer(Object.class, var6);
- ((JTable)var3).getColumnModel().getSelectionModel().setSelectionMode(0);
- ((JTable)var3).addMouseListener(this.getMouseHandler());
- ((JTable)var3).putClientProperty("Table.isFileList", Boolean.TRUE);
- if (this.listViewWindowsStyle) {
- ((JTable)var3).addFocusListener(repaintListener);
- }
-
- ActionMap var7 = SwingUtilities.getUIActionMap(var3);
- var7.remove("selectNextRowCell");
- var7.remove("selectPreviousRowCell");
- var7.remove("selectNextColumnCell");
- var7.remove("selectPreviousColumnCell");
- ((JTable)var3).setFocusTraversalKeys(0, (Set)null);
- ((JTable)var3).setFocusTraversalKeys(1, (Set)null);
- JScrollPane var8 = new JScrollPane(var3);
- var8.setComponentOrientation(var1.getComponentOrientation());
- LookAndFeel.installColors(var8.getViewport(), "Table.background", "Table.foreground");
- var8.addComponentListener(new 6(this));
- var8.addMouseListener(new 7(this));
- ((JTable)var3).setForeground(this.list.getForeground());
- ((JTable)var3).setBackground(this.list.getBackground());
- if (this.listViewBorder != null) {
- var8.setBorder(this.listViewBorder);
- }
-
- var2.add(var8, "Center");
- this.detailsTableModel.fireTableStructureChanged();
- return var2;
- }
-
- private void fixNameColumnWidth(int var1) {
- TableColumn var2 = this.detailsTable.getColumnModel().getColumn(0);
- int var3 = this.detailsTable.getPreferredSize().width;
- if (var3 < var1) {
- var2.setPreferredWidth(var2.getPreferredWidth() + var1 - var3);
- }
-
- }
-
- public ListSelectionListener createListSelectionListener() {
- return this.fileChooserUIAccessor.createListSelectionListener();
- }
-
- private int getEditIndex() {
- return this.lastIndex;
- }
-
- private void setEditIndex(int var1) {
- this.lastIndex = var1;
- }
-
- private void resetEditIndex() {
- this.lastIndex = -1;
- }
-
- private void cancelEdit() {
- if (this.editFile != null) {
- this.editFile = null;
- this.list.remove(this.editCell);
- this.repaint();
- } else if (this.detailsTable != null && this.detailsTable.isEditing()) {
- this.detailsTable.getCellEditor().cancelCellEditing();
- }
-
- }
-
- private void editFileName(int var1) {
- File var2 = this.getFileChooser().getCurrentDirectory();
- if (!this.readOnly && canWrite(var2)) {
- this.ensureIndexIsVisible(var1);
- switch (this.viewType) {
- case 0:
- this.editFile = (File)this.getModel().getElementAt(this.getRowSorter().convertRowIndexToModel(var1));
- Rectangle var3 = this.list.getCellBounds(var1, var1);
- if (this.editCell == null) {
- this.editCell = new JTextField();
- this.editCell.addActionListener(new EditActionListener(this));
- this.editCell.addFocusListener(this.editorFocusListener);
- this.editCell.setNextFocusableComponent(this.list);
- }
-
- this.list.add(this.editCell);
- this.editCell.setText(this.getFileChooser().getName(this.editFile));
- ComponentOrientation var4 = this.list.getComponentOrientation();
- this.editCell.setComponentOrientation(var4);
- if (var4.isLeftToRight()) {
- this.editCell.setBounds(this.editX + var3.x, var3.y, var3.width - this.editX, var3.height);
- } else {
- this.editCell.setBounds(var3.x, var3.y, var3.width - this.editX, var3.height);
- }
-
- this.editCell.requestFocus();
- this.editCell.selectAll();
- break;
- case 1:
- this.detailsTable.editCellAt(var1, 0);
- }
-
- }
- }
-
- private void applyEdit() {
- if (this.editFile != null && this.editFile.exists()) {
- JFileChooser var1 = this.getFileChooser();
- String var2 = var1.getName(this.editFile);
- String var3 = this.editFile.getName();
- String var4 = this.editCell.getText().trim();
- if (!var4.equals(var2)) {
- String var5 = var4;
- int var6 = var3.length();
- int var7 = var2.length();
- if (var6 > var7 && var3.charAt(var7) == '.') {
- var5 = var4 + var3.substring(var7);
- }
-
- FileSystemView var8 = var1.getFileSystemView();
- File var9 = var8.createFileObject(this.editFile.getParentFile(), var5);
- if (!var9.exists() && this.getModel().renameFile(this.editFile, var9) && var8.isParent(var1.getCurrentDirectory(), var9)) {
- if (var1.isMultiSelectionEnabled()) {
- var1.setSelectedFiles(new File[]{var9});
- } else {
- var1.setSelectedFile(var9);
- }
- }
- }
- }
-
- if (this.detailsTable != null && this.detailsTable.isEditing()) {
- this.detailsTable.getCellEditor().stopCellEditing();
- }
-
- this.cancelEdit();
- }
-
- public Action getNewFolderAction() {
- if (!this.readOnly && this.newFolderAction == null) {
- this.newFolderAction = new 8(this, this.newFolderActionLabelText);
- }
-
- return this.newFolderAction;
- }
-
- void setFileSelected() {
- if (this.getFileChooser().isMultiSelectionEnabled() && !this.isDirectorySelected()) {
- File[] var11 = this.getFileChooser().getSelectedFiles();
- Object[] var13 = this.list.getSelectedValues();
- this.listSelectionModel.setValueIsAdjusting(true);
-
- try {
- int var14 = this.listSelectionModel.getLeadSelectionIndex();
- int var15 = this.listSelectionModel.getAnchorSelectionIndex();
- Arrays.sort(var11);
- Arrays.sort(var13);
- int var5 = 0;
- int var6 = 0;
-
- while(var5 < var11.length && var6 < var13.length) {
- int var7 = var11[var5].compareTo((File)var13[var6]);
- if (var7 < 0) {
- this.doSelectFile(var11[var5++]);
- } else if (var7 > 0) {
- this.doDeselectFile(var13[var6++]);
- } else {
- ++var5;
- ++var6;
- }
- }
-
- while(var5 < var11.length) {
- this.doSelectFile(var11[var5++]);
- }
-
- while(var6 < var13.length) {
- this.doDeselectFile(var13[var6++]);
- }
-
- if (this.listSelectionModel instanceof DefaultListSelectionModel) {
- ((DefaultListSelectionModel)this.listSelectionModel).moveLeadSelectionIndex(var14);
- ((DefaultListSelectionModel)this.listSelectionModel).setAnchorSelectionIndex(var15);
- }
- } finally {
- this.listSelectionModel.setValueIsAdjusting(false);
- }
- } else {
- JFileChooser var1 = this.getFileChooser();
- Object var2 = null;
- File var12;
- if (this.isDirectorySelected()) {
- var12 = this.getDirectory();
- } else {
- var12 = var1.getSelectedFile();
- }
-
- int var3;
- if (var12 != null && (var3 = this.getModel().indexOf(var12)) >= 0) {
- int var4 = this.getRowSorter().convertRowIndexToView(var3);
- this.listSelectionModel.setSelectionInterval(var4, var4);
- this.ensureIndexIsVisible(var4);
- } else {
- this.clearSelection();
- }
- }
-
- }
-
- private void doSelectFile(File var1) {
- int var2 = this.getModel().indexOf(var1);
- if (var2 >= 0) {
- var2 = this.getRowSorter().convertRowIndexToView(var2);
- this.listSelectionModel.addSelectionInterval(var2, var2);
- }
-
- }
-
- private void doDeselectFile(Object var1) {
- int var2 = this.getRowSorter().convertRowIndexToView(this.getModel().indexOf(var1));
- this.listSelectionModel.removeSelectionInterval(var2, var2);
- }
-
- private void doSelectedFileChanged(PropertyChangeEvent var1) {
- this.applyEdit();
- File var2 = (File)var1.getNewValue();
- JFileChooser var3 = this.getFileChooser();
- if (var2 != null && (var3.isFileSelectionEnabled() && !var2.isDirectory() || var2.isDirectory() && var3.isDirectorySelectionEnabled())) {
- this.setFileSelected();
- }
-
- }
-
- private void doSelectedFilesChanged(PropertyChangeEvent var1) {
- this.applyEdit();
- File[] var2 = (File[])var1.getNewValue();
- JFileChooser var3 = this.getFileChooser();
- if (var2 != null && var2.length > 0 && (var2.length > 1 || var3.isDirectorySelectionEnabled() || !var2[0].isDirectory())) {
- this.setFileSelected();
- }
-
- }
-
- private void doDirectoryChanged(PropertyChangeEvent var1) {
- JFileChooser var2 = this.getFileChooser();
- FileSystemView var3 = var2.getFileSystemView();
- this.applyEdit();
- this.resetEditIndex();
- this.ensureIndexIsVisible(0);
- File var4 = var2.getCurrentDirectory();
- if (var4 != null) {
- if (!this.readOnly) {
- this.getNewFolderAction().setEnabled(canWrite(var4));
- }
-
- this.fileChooserUIAccessor.getChangeToParentDirectoryAction().setEnabled(!var3.isRoot(var4));
- }
-
- }
-
- private void doFilterChanged(PropertyChangeEvent var1) {
- this.applyEdit();
- this.resetEditIndex();
- this.clearSelection();
- }
-
- private void doFileSelectionModeChanged(PropertyChangeEvent var1) {
- this.applyEdit();
- this.resetEditIndex();
- this.clearSelection();
- }
-
- private void doMultiSelectionChanged(PropertyChangeEvent var1) {
- if (this.getFileChooser().isMultiSelectionEnabled()) {
- this.listSelectionModel.setSelectionMode(2);
- } else {
- this.listSelectionModel.setSelectionMode(0);
- this.clearSelection();
- this.getFileChooser().setSelectedFiles((File[])null);
- }
-
- }
-
- public void propertyChange(PropertyChangeEvent var1) {
- if (this.viewType == -1) {
- this.setViewType(0);
- }
-
- String var2 = var1.getPropertyName();
- if (var2.equals("SelectedFileChangedProperty")) {
- this.doSelectedFileChanged(var1);
- } else if (var2.equals("SelectedFilesChangedProperty")) {
- this.doSelectedFilesChanged(var1);
- } else if (var2.equals("directoryChanged")) {
- this.doDirectoryChanged(var1);
- } else if (var2.equals("fileFilterChanged")) {
- this.doFilterChanged(var1);
- } else if (var2.equals("fileSelectionChanged")) {
- this.doFileSelectionModeChanged(var1);
- } else if (var2.equals("MultiSelectionEnabledChangedProperty")) {
- this.doMultiSelectionChanged(var1);
- } else if (var2.equals("CancelSelection")) {
- this.applyEdit();
- } else if (var2.equals("busy")) {
- this.setCursor((Boolean)var1.getNewValue() ? waitCursor : null);
- } else if (var2.equals("componentOrientation")) {
- ComponentOrientation var3 = (ComponentOrientation)var1.getNewValue();
- JFileChooser var4 = (JFileChooser)var1.getSource();
- if (var3 != (ComponentOrientation)var1.getOldValue()) {
- var4.applyComponentOrientation(var3);
- }
-
- if (this.detailsTable != null) {
- this.detailsTable.setComponentOrientation(var3);
- this.detailsTable.getParent().getParent().setComponentOrientation(var3);
- }
- }
-
- }
-
- private void ensureIndexIsVisible(int var1) {
- if (var1 >= 0) {
- if (this.list != null) {
- this.list.ensureIndexIsVisible(var1);
- }
-
- if (this.detailsTable != null) {
- this.detailsTable.scrollRectToVisible(this.detailsTable.getCellRect(var1, 0, true));
- }
- }
-
- }
-
- public void ensureFileIsVisible(JFileChooser var1, File var2) {
- int var3 = this.getModel().indexOf(var2);
- if (var3 >= 0) {
- this.ensureIndexIsVisible(this.getRowSorter().convertRowIndexToView(var3));
- }
-
- }
-
- public void rescanCurrentDirectory() {
- this.getModel().validateFileCache();
- }
-
- public void clearSelection() {
- if (this.listSelectionModel != null) {
- this.listSelectionModel.clearSelection();
- if (this.listSelectionModel instanceof DefaultListSelectionModel) {
- ((DefaultListSelectionModel)this.listSelectionModel).moveLeadSelectionIndex(0);
- ((DefaultListSelectionModel)this.listSelectionModel).setAnchorSelectionIndex(0);
- }
- }
-
- }
-
- public JMenu getViewMenu() {
- if (this.viewMenu == null) {
- this.viewMenu = new JMenu(this.viewMenuLabelText);
- ButtonGroup var1 = new ButtonGroup();
-
- for(int var2 = 0; var2 < 2; ++var2) {
- JRadioButtonMenuItem var3 = new JRadioButtonMenuItem(new ViewTypeAction(this, var2));
- var1.add(var3);
- this.viewMenu.add(var3);
- }
-
- this.updateViewMenu();
- }
-
- return this.viewMenu;
- }
-
- private void updateViewMenu() {
- if (this.viewMenu != null) {
- Component[] var1 = this.viewMenu.getMenuComponents();
-
- for(int var2 = 0; var2 < var1.length; ++var2) {
- if (var1[var2] instanceof JRadioButtonMenuItem) {
- JRadioButtonMenuItem var3 = (JRadioButtonMenuItem)var1[var2];
- if (sun.swing.FilePane.ViewTypeAction.access$2200((ViewTypeAction)var3.getAction()) == this.viewType) {
- var3.setSelected(true);
- }
- }
- }
- }
-
- }
-
- public JPopupMenu getComponentPopupMenu() {
- JPopupMenu var1 = this.getFileChooser().getComponentPopupMenu();
- if (var1 != null) {
- return var1;
- } else {
- JMenu var2 = this.getViewMenu();
- if (this.contextMenu == null) {
- this.contextMenu = new JPopupMenu();
- if (var2 != null) {
- this.contextMenu.add(var2);
- if (this.listViewWindowsStyle) {
- this.contextMenu.addSeparator();
- }
- }
-
- ActionMap var3 = this.getActionMap();
- Action var4 = var3.get("refresh");
- Action var5 = var3.get("New Folder");
- if (var4 != null) {
- this.contextMenu.add(var4);
- if (this.listViewWindowsStyle && var5 != null) {
- this.contextMenu.addSeparator();
- }
- }
-
- if (var5 != null) {
- this.contextMenu.add(var5);
- }
- }
-
- if (var2 != null) {
- var2.getPopupMenu().setInvoker(var2);
- }
-
- return this.contextMenu;
- }
- }
-
- protected Handler getMouseHandler() {
- if (this.handler == null) {
- this.handler = new Handler(this, (1)null);
- }
-
- return this.handler;
- }
-
- protected boolean isDirectorySelected() {
- return this.fileChooserUIAccessor.isDirectorySelected();
- }
-
- protected File getDirectory() {
- return this.fileChooserUIAccessor.getDirectory();
- }
-
- private Component findChildComponent(Container var1, Class var2) {
- int var3 = var1.getComponentCount();
-
- for(int var4 = 0; var4 < var3; ++var4) {
- Component var5 = var1.getComponent(var4);
- if (var2.isInstance(var5)) {
- return var5;
- }
-
- if (var5 instanceof Container) {
- Component var6 = this.findChildComponent((Container)var5, var2);
- if (var6 != null) {
- return var6;
- }
- }
- }
-
- return null;
- }
-
- public static boolean canWrite(File var0) {
- boolean var1 = false;
- if (var0 != null) {
- try {
- var1 = var0.canWrite();
- } catch (AccessControlException var3) {
- var1 = false;
- }
- }
-
- return var1;
- }
-
- // $FF: synthetic method
- static void access$000(FilePane var0) {
- var0.applyEdit();
- }
-
- // $FF: synthetic method
- static String[] access$100(FilePane var0) {
- return var0.viewTypeActionNames;
- }
-
- // $FF: synthetic method
- static void access$200(FilePane var0) {
- var0.cancelEdit();
- }
-
- // $FF: synthetic method
- static ListSelectionModel access$300(FilePane var0) {
- return var0.listSelectionModel;
- }
-
- // $FF: synthetic method
- static void access$400(FilePane var0, int var1) {
- var0.editFileName(var1);
- }
-
- // $FF: synthetic method
- static boolean access$500(FilePane var0) {
- return var0.readOnly;
- }
-
- // $FF: synthetic method
- static void access$600(FilePane var0, JList var1) {
- var0.updateListRowCount(var1);
- }
-
- // $FF: synthetic method
- static DetailsTableModel access$700(FilePane var0) {
- return var0.getDetailsTableModel();
- }
-
- // $FF: synthetic method
- static DetailsTableRowSorter access$800(FilePane var0) {
- return var0.getRowSorter();
- }
-
- // $FF: synthetic method
- static DetailsTableRowSorter access$900(FilePane var0) {
- return var0.rowSorter;
- }
-
- // $FF: synthetic method
- static File access$1000(FilePane var0) {
- return var0.newFolderFile;
- }
-
- // $FF: synthetic method
- static File access$1002(FilePane var0, File var1) {
- return var0.newFolderFile = var1;
- }
-
- // $FF: synthetic method
- static DetailsTableModel access$1200(FilePane var0) {
- return var0.detailsTableModel;
- }
-
- // $FF: synthetic method
- static FocusListener access$1400(FilePane var0) {
- return var0.editorFocusListener;
- }
-
- // $FF: synthetic method
- static boolean access$1500(FilePane var0) {
- return var0.listViewWindowsStyle;
- }
-
- // $FF: synthetic method
- static String access$1600(FilePane var0) {
- return var0.kiloByteString;
- }
-
- // $FF: synthetic method
- static String access$1700(FilePane var0) {
- return var0.megaByteString;
- }
-
- // $FF: synthetic method
- static String access$1800(FilePane var0) {
- return var0.gigaByteString;
- }
-
- // $FF: synthetic method
- static void access$1900(FilePane var0, JTable var1) {
- var0.updateDetailsColumnModel(var1);
- }
-
- // $FF: synthetic method
- static void access$2000(FilePane var0, int var1) {
- var0.fixNameColumnWidth(var1);
- }
-
- // $FF: synthetic method
- static FileChooserUIAccessor access$2100(FilePane var0) {
- return var0.fileChooserUIAccessor;
- }
-
- // $FF: synthetic method
- static JList access$2400(FilePane var0) {
- return var0.list;
- }
-
- // $FF: synthetic method
- static int access$2500(FilePane var0) {
- return var0.getEditIndex();
- }
-
- // $FF: synthetic method
- static void access$2600(FilePane var0, int var1) {
- var0.setEditIndex(var1);
- }
-
- // $FF: synthetic method
- static void access$2700(FilePane var0) {
- var0.resetEditIndex();
- }
- }
-