[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cp-patches] Re: RFC: MetalFileChooserUI implementation
From: |
Lillian Angel |
Subject: |
[cp-patches] Re: RFC: MetalFileChooserUI implementation |
Date: |
Fri, 25 Nov 2005 10:25:30 -0500 |
Please commit :)
On Fri, 2005-11-25 at 15:29 +0000, David Gilbert wrote:
> Hi Lillian,
>
> Roman suggested I commit the patch, which I'll do unless that messes
> anything up for you. I also have some Mauve tests for
> MetalFileChooserUI that I need to commit - I'll probably get that done
> over the weekend.
>
> Regards,
>
> Dave
>
> Lillian Angel wrote:
>
> >Looks great!
> >I will continue the implementation for this.
> >
> >Thanks alot!
> >Lillian
> >
> >
> >On Fri, 2005-11-25 at 11:46 +0000, David Gilbert wrote:
> >
> >
> >>One additional thing, there is a screen shot here for those that like
> >>that sort of thing:
> >>
> >>http://www.object-refinery.com/classpath/JFileChooser.png
> >>
> >>Regards,
> >>
> >>Dave
> >>
> >>David Gilbert wrote:
> >>
> >>
> >>
> >>>Hi all,
> >>>
> >>>In recent weeks I have done some work on a MetalFileChooserUI
> >>>implementation, but don't have enough time lately to fix the last few
> >>>problems. Lillian mentioned that she has just started looking at this
> >>>also, so I thought I would send in my current patch (which is
> >>>unfortunately somewhat large) for others to look at and/or work on.
> >>>
> >>>Some notes:
> >>>
> >>>- the patch destroys the current file chooser UI in the
> >>>BasicLookAndFeel (the one in the reference implementation doesn't
> >>>function on its own either);
> >>>- I already committed a FileChooserDemo to the GNU Classpath Swing
> >>>demo, and this is useful for testing ('open' and 'save' work for me,
> >>>selecting a directory doesn't, multiple selection doesn't);
> >>>- a recent regression in the JComboBox implementation makes the
> >>>directory selection somewhat flakey;
> >>>- there is a bug in the JList implementation that prevents the correct
> >>>layout of the files and directories from being used, it was working
> >>>previously (for now, I've used the standard list layout);
> >>>- this patch fixes most (but not all) of the Mauve tests that I've
> >>>written for JFileChooser/BasicFileChooserUI/MetalFileChooserUI.
> >>>
> >>>If there any questions, please ask. Perhaps if the patch works well
> >>>enough for others, I can just commit it to CVS and then anyone else
> >>>can jump in to help with fixes.
> >>>
> >>>Here is a ChangeLog entry (with some TODOs marked):
> >>>
> >>>2005-11-25 David Gilbert <address@hidden>
> >>>
> >>> * javax/swing/JFileChooser.java
> >>> (selectedFiles): Initialise,
> >>> (JFileChooser(String)): Delegate to another constructor,
> >>> (JFileChooser(String, FileSystemView)): Convert directory to file,
> >>> (setSelectedFile): Check for current selection == null,
> >>> (getSelectedFiles): Updated API docs,
> >>> (setSelectedFiles): Changed order of event generation,
> >>> (changeToParentDirectory): Don't check for null parent (reference
> >>> implementation doesn't),
> >>> (addChoosableFileFilter): Change handling of null filter,
> >>> (removeChoosableFileFilter): Handle case where removed filter is also
> >>> the current selection,
> >>> (setAcceptAllFileFilterUsed): Add or remove accept all filter as
> >>> appropriate,
> >>> (setFileFilter): Add new filter to choosable filters if necessary,
> >>> (accept): Reimplemented,
> >>> * javax/swing/plaf/basic/BasicFileChooserUI.java
> >>> (ApproveSelectionAction.ApproveSelectionAction): Set action name,
> >>> (ApproveSelectionAction.actionPerformed): Call getFileName() rather
> >>> than accessing JTextField directly,
> >>> (CancelSelectionAction.CancelSelectionAction): Set action name,
> >>> (ChangeToParentDirectoryAction.ChangeToParentDirectoryAction): Set
> >>> action name,
> >>> (DoubleClickListener.mouseClicked): Call setFileName rather than
> >>> accessing JTextField directly,
> >>> (GoHomeAction.GoHomeAction): Set action name,
> >>> (NewFolderAction.NewFolderAction): Set action name,
> >>> (SelectionListener.valueChanged): Get list from event,
> >>> (UpdateAction.UpdateAction): Set action name to null,
> >>> (computerIcon): Removed initialization,
> >>> (detailsViewIcon): Likewise,
> >>> (directoryIcon): Likewise,
> >>> (fileIcon): Likewise,
> >>> (floppyDriveIcon): Likewise,
> >>> (hardDriveIcon): Likewise,
> >>> (homeFolderIcon): Likewise,
> >>> (listViewIcon): Likewise,
> >>> (upFolderIcon): Likewise,
> >>> (fileList): Removed,
> >>> (filters): Removed,
> >>> (ICON_SIZE): Removed,
> >>> (parents): Removed,
> >>> (filename): Removed,
> >>> (cancel): Removed,
> >>> (upFolderButton): Removed,
> >>> (newFolderButton): Removed,
> >>> (homeFolderButton): Removed,
> >>> (approveSelectionAction): New field,
> >>> (cancelSelectionAction): New field,
> >>> (goHomeAction): New field,
> >>> (changeToParentDirectoryAction): New field,
> >>> (newFolderAction): New field,
> >>> (updateAction): New field,
> >>> (BasicFileChooserUI): Do nothing here,
> >>> (installUI): Initialise filechooser field,
> >>> (createBoxListener): Removed,
> >>> (createFilterListener): Removed,
> >>> (filterEntries): Removed,
> >>> (installComponents): Do nothing here,
> >>> (uninstallComponents): Do nothing here,
> >>> (installListeners): Removed component specific listeners,
> >>> (installIcons): Use Metal icons,
> >>> (unintallIcons): Clear icons,
> >>> (installStrings): Use fixed strings for text items that aren't
> >>>defined
> >>> in the UI defaults - should implement localised strings later,
> >>> (uninstallStrings): Clear text items,
> >>> (createPropertyChangeListener): Return blank listener,
> >>> (getFileName): TODO,
> >>> (setFileName): TODO,
> >>> (rescanCurrentDirectory): Remove call on deleted filelist,
> >>> (getApproveButton): Just return field,
> >>> (getFileView): Updated API docs,
> >>> (getDialogTitle): Reimplemented,
> >>> (getApproveButtonText): Reimplemented,
> >>> (getNewFolderAction): Create new instance if required,
> >>> (getGoHomeAction): Likewise,
> >>> (getChangeToParentDirectoryAction): Likewise,
> >>> (getApproveSelectionAction): Likewise,
> >>> (getCancelSelectionAction): Likewise,
> >>> (getUpdateAction): Likewise,
> >>> * javax/swing/plaf/metal/MetalFileChooserUI.java
> >>> (MetalFileChooserPropertyChangeListener): New class,
> >>> (DirectoryComboBoxRenderer): New class,
> >>> (FilterComboBoxModel.selectedIndex): Removed field,
> >>> (FilterComboBoxModel.selected): New field,
> >>> (FilterComboBoxModel.FilterComboBoxModel): Initialise selected field,
> >>> (FilterComboBoxModel.propertyChange): Update filter list,
> >>> (FilterComboBoxModel.setSelectedItem): Reimplemented,
> >>> (FilterComboBoxModel.getSelectedItem): Return selected field,
> >>> (FilterComboBoxRenderer.getListCellRendererComponent): Call super,
> >>> (MetalFileChooserSelectionListener): New class,
> >>> (SingleClickListener): New class TODO,
> >>> (directoryLabel): New field,
> >>> (directoryComboBox): New field,
> >>> (fileLabel): New field,
> >>> (fileTextField): New field,
> >>> (filterLabel): New field,
> >>> (topPanel): New field,
> >>> (controls): New field,
> >>> (bottomPanel): New field,
> >>> (buttonPanel): New field,
> >>> (approveButton): New field,
> >>> (fileList): New field,
> >>> (fileListPanel): New field,
> >>> (filterModel): New field,
> >>> (MetalFileChooserUI): Initialise panels,
> >>> (installUI): TODO,
> >>> (uninstallUI): TODO,
> >>> (installComponents): Implemented,
> >>> (uninstallComponents): Implemented,
> >>> (getButtonPanel): Implemented,
> >>> (getBottomPanel): Implemented,
> >>> (installStrings): Implemented,
> >>> (installListeners): Implemented,
> >>> (uninstallListeners): Implemented,
> >>> (getActionMap): TODO,
> >>> (createActionMap): Implemented,
> >>> (createList): Implemented,
> >>> (createDetailsView): Implemented,
> >>> (createListSelectionListener): Implemented,
> >>> (getPreferredSize): Implemented badly,
> >>> (getMinimumSize): Likewise,
> >>> (getMaximumSize): Implemented,
> >>> (createPropertyChangeListener): Implemented,
> >>> (createDirectoryComboBoxRenderer): Implemented,
> >>> (addControlButtons): Implemented,
> >>> (removeControlButtons): TODO,
> >>> (ensureFileIsVisible): TODO,
> >>> (rescanCurrentDirectory): Implemented,
> >>> (getFileName): Implemented,
> >>> (setFileName): Implemented,
> >>> (setDirectorySelected): TODO,
> >>> (getDirectoryName): TODO,
> >>> (setDirectoryName): TODO,
> >>> (valueChanged): TODO,
> >>> (getApproveButton): Implemented,
> >>> (VerticalMidLayout): New support class,
> >>> (ButtonLayout): New support class,
> >>> * javax/swing/plaf/metal/MetalLookAndFeel.java
> >>> (initClassDefaults): Add 'FileChooserUI' default,
> >>> (initComponentDefaults): Added FileChooser icons.
> >>>
> >>>Regards,
> >>>
> >>>Dave
> >>>
> >>>
>