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: Roman Kennke
Subject: [cp-patches] Re: RFC: MetalFileChooserUI implementation
Date: Fri, 25 Nov 2005 14:24:10 +0100

Hi David,

you post that as RFC, so I say: go commit this stuff :-) This JList bug
is already known and filed as bugreport, I hope to get to it soon. I
can't get to this next week cause I'm on vacation for a week. This is
indeed a nice start for it :-)

Cheers,
Roman

Am Freitag, den 25.11.2005, 11:46 +0000 schrieb David Gilbert:
> 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
> 
> 

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


reply via email to

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