// Controls pane
final WebToolBar contolsToolbar = new WebToolBar ( WebToolBar.HORIZONTAL );
contolsToolbar.setToolbarStyle ( ToolbarStyle.attached );
contolsToolbar.setFloatable ( false );
folderUp = new WebButton ( FOLDER_UP_ICON );
folderUp.setLanguage ( "weblaf.ex.dirchooser.folderup" );
folderUp.addHotkey ( WebDirectoryChooserPanel.this, Hotkey.ALT_UP ).setHotkeyDisplayWay ( TooltipWay.down );
folderUp.setRolloverDecoratedOnly ( true );
folderUp.addActionListener ( new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
if ( selectedDirectory != null )
{
updateSelectedDirectory ( selectedDirectory.getParentFile (), true, true );
}
}
} );
contolsToolbar.add ( folderUp );
folderHome = new WebButton ( FOLDER_HOME_ICON );
folderHome.setLanguage ( "weblaf.ex.dirchooser.home" );
folderHome.addHotkey ( WebDirectoryChooserPanel.this, Hotkey.ALT_H ).setHotkeyDisplayWay ( TooltipWay.trailing );
folderHome.setRolloverDecoratedOnly ( true );
folderHome.addActionListener ( new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
updateSelectedDirectory ( FileUtils.getUserHome (), true, true );
}
} );
contolsToolbar.add ( folderHome );
contolsToolbar.addSeparator ();
for ( final File file : FileTreeRootType.drives.getRoots () )
{
final WebButton root = new WebButton ( FileUtils.getFileIcon ( file ) );
TooltipManager.setTooltip ( root, FileUtils.getDisplayFileName ( file ) );
root.setRolloverDecoratedOnly ( true );
root.addActionListener ( new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
updateSelectedDirectory ( file, true, true );
}
} );
contolsToolbar.add ( root );
}
refresh = new WebButton ( REFRESH_ICON );
refresh.setLanguage ( "weblaf.ex.dirchooser.refresh" );
refresh.addHotkey ( WebDirectoryChooserPanel.this, Hotkey.F5 ).setHotkeyDisplayWay ( TooltipWay.leading );
refresh.setRolloverDecoratedOnly ( true );
refresh.addActionListener ( new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
if ( selectedDirectory != null )
{
fileTree.reloadChilds ( selectedDirectory );
}
else
{
fileTree.reloadRootNode ();
}
}
} );
contolsToolbar.add ( refresh, ToolbarLayout.END );
folderNew = new WebButton ( FOLDER_NEW_ICON );
folderNew.setLanguage ( "weblaf.ex.dirchooser.newfolder" );
folderNew.addHotkey ( WebDirectoryChooserPanel.this, Hotkey.CTRL_N ).setHotkeyDisplayWay ( TooltipWay.down );
folderNew.setRolloverDecoratedOnly ( true );
folderNew.addActionListener ( new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
if ( selectedDirectory != null )
{
final String defaultName = LanguageManager.get ( "weblaf.ex.dirchooser.newfolder.name" );
final String freeName = FileUtils.getAvailableName ( selectedDirectory, defaultName );
final File file = new File ( selectedDirectory, freeName );
if ( file.mkdir () )
{
// Updating filestree
fileTree.addFile ( selectedDirectory, file );
// Editing added folder name
fileTree.startEditingFile ( file );
}
else
{
final String message = LanguageManager.get ( "weblaf.ex.dirchooser.newfolder.error.text" );
final String title = LanguageManager.get ( "weblaf.ex.dirchooser.newfolder.error.title" );
WebOptionPane.showMessageDialog ( WebDirectoryChooserPanel.this, message, title, WebOptionPane.ERROR_MESSAGE );
}
}
}
} );
contolsToolbar.add ( folderNew, ToolbarLayout.END );
remove = new WebButton ( REMOVE_ICON );
remove.setLanguage ( "weblaf.ex.dirchooser.delete" );
remove.addHotkey ( WebDirectoryChooserPanel.this, Hotkey.DELETE ).setHotkeyDisplayWay ( TooltipWay.down );
remove.setRolloverDecoratedOnly ( true );
remove.addActionListener ( new ActionListener ()
{