vfsSession = new VFSSession();
	public VFSBrowser(View view, String path, int mode, boolean multipleSelection)	{		super(new BorderLayout());		listenerList = new EventListenerList();		this.mode = mode;		this.multipleSelection = multipleSelection;		this.view = view;		Box topBox = new Box(BoxLayout.Y_AXIS);		topBox.add(createToolBar());		GridBagLayout layout = new GridBagLayout();		JPanel pathAndFilterPanel = new JPanel(layout);		GridBagConstraints cons = new GridBagConstraints();		cons.gridwidth = cons.gridheight = 1;		cons.gridx = cons.gridy = 0;		cons.fill = GridBagConstraints.BOTH;		JLabel label = new JLabel(jEdit.getProperty("vfs.browser.path"),			SwingConstants.RIGHT);		label.setBorder(new EmptyBorder(0,0,0,12));		layout.setConstraints(label,cons);		pathAndFilterPanel.add(label);		pathField = new HistoryTextField("vfs.browser.path",true);		// because its preferred size can be quite wide, we		// don't want it to make the browser way too big,		// so set the preferred width to 0.		Dimension prefSize = pathField.getPreferredSize();		prefSize.width = 0;		pathField.setPreferredSize(prefSize);		pathField.addActionListener(new ActionHandler());		cons.gridx = 1;		cons.weightx = 1.0f;		layout.setConstraints(pathField,cons);		pathAndFilterPanel.add(pathField);		label = new JLabel(jEdit.getProperty("vfs.browser.filter"),			SwingConstants.RIGHT);		label.setBorder(new EmptyBorder(0,0,0,12));		cons.gridx = 0;		cons.weightx = 0.0f;		cons.gridy = 1;		layout.setConstraints(label,cons);		pathAndFilterPanel.add(label);		filterCombo = new JComboBox();		// because its preferred size can be quite wide, we		// don't want it to make the browser way too big,		// so set the preferred width to 0.		prefSize = filterCombo.getPreferredSize();		prefSize.width = 0;		filterCombo.setPreferredSize(prefSize);		filterCombo.addActionListener(new ActionHandler());		cons.gridx = 1;		cons.weightx = 1.0f;		layout.setConstraints(filterCombo,cons);		pathAndFilterPanel.add(filterCombo);		topBox.add(pathAndFilterPanel);		add(BorderLayout.NORTH,topBox);		propertiesChanged();		int lastFilter;		try		{			lastFilter = Integer.parseInt(jEdit.getProperty("vfs"				+ ".browser.lastFilter"));		}		catch(NumberFormatException nf)		{			lastFilter = 0;		}		if(lastFilter < filterCombo.getItemCount())			filterCombo.setSelectedIndex(lastFilter);		vfsSession = new VFSSession();		if(path == null)		{			String defaultPath = jEdit.getProperty("vfs.browser.defaultPath");			String userHome = System.getProperty("user.home");			if(defaultPath.equals("home"))				path = userHome;			else if(defaultPath.equals("buffer"))			{				if(view != null)				{					Buffer buffer = view.getBuffer();					path = buffer.getVFS().getFileParent(						buffer.getPath());				}				else					path = userHome;			}			else if(defaultPath.equals("last"))			{				HistoryModel model = HistoryModel.getModel("vfs.browser.path");				if(model.getSize() == 0)					path = userHome;				else					path = model.getItem(0);			}			else			{				// unknown value??!!!				path = userHome;			}		}		setDirectory(path);	}