private ContextEditablePreset preset;
private synchronized static void assertChooser() {
if (fc == null) {
fc = new JFileChooser();
final PresetPackageHeaderInfoPane phip = new PresetPackageHeaderInfoPane(null);
JPanel p = new JPanel();
p.add(new JScrollPane(phip));
p.setBorder(new TitledBorder("Package Header"));
fc.setAccessory(p);
fc.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getPropertyName().equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) {
PresetPackage pkg = null;
File sf = fc.getSelectedFile();
if (sf != null && !sf.isDirectory())
try {
pkg = PackageFactory.extractPresetPackage(fc.getSelectedFile());
if (pkg != null) {
phip.setHeader(pkg.getHeader());
if (pkg.getSamplePackage() != null)
phip.setSampleHeader(pkg.getSamplePackage().getHeader());
else
phip.setSampleHeader(null);
} else
phip.setHeader(null);
} catch (CommandFailedException e) {
phip.setText("error");
}
else
phip.setHeader(null);
} else {
//if (evt.getPropertyName().equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)) {
phip.setHeader(null);
}
}
});
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);