Mercurial > hg > jslab
view src/samer/core_/viewers/swing/FileChooserViewer.java @ 5:b67a33c44de7
Remove some crap, etc
author | samer |
---|---|
date | Fri, 05 Apr 2019 21:34:25 +0100 |
parents | bf79fb79ee13 |
children |
line wrap: on
line source
/* * FileViewer.java * * Copyright (c) 2000, Samer Abdallah, King's College London. * All rights reserved. * * This software is provided AS iS and WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. */ package samer.core.viewers.swing; import samer.core.types.*; import samer.core.util.*; import samer.core.*; import java.io.*; import java.util.*; import javax.swing.*; import javax.swing.event.*; import java.beans.*; public class FileChooserViewer extends VariableViewer implements PropertyChangeListener { JFileChooser chooser; VFile vfile; public FileChooserViewer(Viewable v) { this((VFile)v); } public FileChooserViewer(VFile vfile) { super(vfile); this.vfile=vfile; setLayout(new BoxLayout(panel(),BoxLayout.Y_AXIS)); chooser = new JFileChooser(vfile.getFile()); chooser.setSelectedFile(vfile.getFile().getAbsoluteFile()); chooser.setControlButtonsAreShown(false); chooser.addPropertyChangeListener( JFileChooser.SELECTED_FILE_CHANGED_PROPERTY, this ); try { if (vfile.getFile().isDirectory()) setDirectorySelection(); } catch (Exception ex) {} add(chooser); } public void update(Observable o, Object source) { if (source!=this) { chooser.setSelectedFile(vfile.getFile().getAbsoluteFile()); } super.update(o,source); } public void propertyChange(PropertyChangeEvent e) { String prop = e.getPropertyName(); if(prop == JFileChooser.SELECTED_FILE_CHANGED_PROPERTY) { vfile.setFile(chooser.getSelectedFile()); vfile.changed(); } } public void setMultiSelectionEnabled(boolean f) { chooser.setMultiSelectionEnabled(f); } public void setDirectorySelection() { chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); } public void setFileSelection() { chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); } }