You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pivot.apache.org by "Volker Seibt (Updated) (JIRA)" <ji...@apache.org> on 2012/01/02 10:32:30 UTC

[jira] [Updated] (PIVOT-832) FileBrowserSheet.setRootDirectory(...) fails the first time on drives other than system volume

     [ https://issues.apache.org/jira/browse/PIVOT-832?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Volker Seibt updated PIVOT-832:
-------------------------------

    Description: 
Let the system volumen be C:. If FileBrowserSheet.setRootDirectory is called with a path on a different drive (<volume>:\the\path), on the first time root directory is set to "<volume>:" instead of "<volume>:\the\path".

I was not sure if it had to do with the patch I provided (it's also in 2.0), so I analized the behavior. It's caused by a strange loop of listeners:
* If FileBrowserSheet.setRootDirectory is called this triggers the fileBrowserSheetListeners.
* One of the listeners is TerraFileBrowserSkin.rootDirectoryChanged.
* In this method driveListButton.setSelectedItem is called with the new drive.
* This triggers the listButtonSelectionListeners of the driveListButton,
* One of the listeners triggers FileBrowser.setRootDirectory with this newly "selected" drive, so rootdirectory is set to this drive instead of the given path for this drive.

Workaround: calling FileBrowserSheet.setRootDirectory twice in the application breaks the circle, because FileBrowser.setRootDirectory is not triggered again from driveListButton.


  was:
Let the system volumen be C:. If FileBrowserSheet.setRootDirectory is called with a path on a different drive (<volume>:\the\path), on the first time root directory is set to "<volume>:".

I was not sure if it had to do with the patch I provided (it's also in 2.0), so I analized the behavior. It's caused by a strange loop of listeners:
* If FileBrowserSheet.setRootDirectory is called this triggers the fileBrowserSheetListeners.
* One of the listeners is TerraFileBrowserSkin.rootDirectoryChanged.
* In this method driveListButton.setSelectedItem is called with the new drive.
* This triggers the listButtonSelectionListeners of the driveListButton,
* One of the listeners triggers FileBrowser.setRootDirectory with this newly "selected" drive, so rootdirectory is set to this drive instead of the given path for this drive.

Workaround: calling FileBrowserSheet.setRootDirectory twice in the application breaks the circle, because FileBrowser.setRootDirectory is not triggered again from driveListButton.


    
> FileBrowserSheet.setRootDirectory(...) fails the first time on drives other than system volume
> ----------------------------------------------------------------------------------------------
>
>                 Key: PIVOT-832
>                 URL: https://issues.apache.org/jira/browse/PIVOT-832
>             Project: Pivot
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.0.1
>         Environment: Windows
>            Reporter: Volker Seibt
>            Priority: Minor
>
> Let the system volumen be C:. If FileBrowserSheet.setRootDirectory is called with a path on a different drive (<volume>:\the\path), on the first time root directory is set to "<volume>:" instead of "<volume>:\the\path".
> I was not sure if it had to do with the patch I provided (it's also in 2.0), so I analized the behavior. It's caused by a strange loop of listeners:
> * If FileBrowserSheet.setRootDirectory is called this triggers the fileBrowserSheetListeners.
> * One of the listeners is TerraFileBrowserSkin.rootDirectoryChanged.
> * In this method driveListButton.setSelectedItem is called with the new drive.
> * This triggers the listButtonSelectionListeners of the driveListButton,
> * One of the listeners triggers FileBrowser.setRootDirectory with this newly "selected" drive, so rootdirectory is set to this drive instead of the given path for this drive.
> Workaround: calling FileBrowserSheet.setRootDirectory twice in the application breaks the circle, because FileBrowser.setRootDirectory is not triggered again from driveListButton.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira