/* Copyright (C) 2001, 2007 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. */ package gov.nasa.worldwind.layers.rpf.wizard; import gov.nasa.worldwind.util.wizard.DefaultPanelDescriptor; import gov.nasa.worldwind.util.wizard.Wizard; import gov.nasa.worldwind.util.wizard.WizardModel; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; /** * @author dcollins * @version $Id: FileChooserPanelDescriptor.java 4857 2008-03-29 01:11:08Z dcollins $ */ public class FileChooserPanelDescriptor extends DefaultPanelDescriptor { private FileChooserPanel panelComponent; public static final String IDENTIFIER = "gov.nasa.worldwind.rpf.wizard.FileChooserPanel"; public FileChooserPanelDescriptor() { this.panelComponent = new FileChooserPanel(); this.panelComponent.addPropertyChangeListener(new PropertyEvents()); setPanelIdentifier(IDENTIFIER); setPanelComponent(this.panelComponent); } public Object getBackPanelDescriptor() { return null; } public Object getNextPanelDescriptor() { Object nextDescriptor; if (!RPFWizardUtil.isFileListCurrent(getWizardModel())) nextDescriptor = FileSearchPanelDescriptor.IDENTIFIER; else nextDescriptor = DataChooserPanelDescriptor.IDENTIFIER; return nextDescriptor; } public void aboutToDisplayPanel() { this.panelComponent.setTitle(RPFWizardUtil.makeLarger("Choose Folder to Search")); this.panelComponent.setDescription("<html><br>Folder to search...</html>"); setNextButtonAccordingToSelectedFile(); } private void setNextButtonAccordingToSelectedFile() { Wizard wizard = getWizard(); if (wizard != null) { File file = RPFWizardUtil.getSelectedFile(wizard.getModel()); wizard.setNextButtonEnabled(file != null && file.exists()); wizard.giveFocusToNextButton(); } } private void selectedFileChanged(Object newValue) { WizardModel model = getWizardModel(); if (model != null && newValue != null && newValue instanceof File) { RPFWizardUtil.setSelectedFile(model, (File) newValue); } setNextButtonAccordingToSelectedFile(); } private class PropertyEvents implements PropertyChangeListener { public void propertyChange(PropertyChangeEvent evt) { if (evt != null && evt.getPropertyName() != null) { String propertyName = evt.getPropertyName(); if (propertyName.equals("selectedFile")) { selectedFileChanged(evt.getNewValue()); } } } } }