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: David Gilbert
Subject: [cp-patches] Re: RFC: MetalFileChooserUI implementation
Date: Fri, 25 Nov 2005 16:28:02 +0000
User-agent: Mozilla Thunderbird 1.0.7 (X11/20051026)

OK, done. I'll try to get those additional Mauve tests into CVS over the weekend.

Regards,

Dave

Lillian Angel wrote:

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]