classpath-patches
[Top][All Lists]
Advanced

[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
> >>>      
> >>>
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]