1 19 package org.netbeans.bluej.export; 20 21 import java.awt.Component ; 22 import java.io.File ; 23 import java.util.HashSet ; 24 import java.util.Iterator ; 25 import java.util.Set ; 26 import javax.swing.event.ChangeEvent ; 27 import javax.swing.event.ChangeListener ; 28 import org.openide.WizardDescriptor; 29 import org.openide.filesystems.FileObject; 30 import org.openide.util.HelpCtx; 31 32 public class ExportWizardPanel1 implements WizardDescriptor.Panel { 33 34 private String path; 35 39 private Component component; 40 41 private FileObject dir; 42 private boolean valid = false; 43 private WizardDescriptor settings; 44 45 ExportWizardPanel1(FileObject fo) { 46 dir = fo; 47 } 48 49 public Component getComponent() { 54 if (component == null) { 55 component = new ExportPanel(dir, this); 56 } 57 return component; 58 } 59 60 public HelpCtx getHelp() { 61 return HelpCtx.DEFAULT_HELP; 63 } 66 67 public boolean isValid() { 68 return valid; 69 } 70 71 private final Set listeners = new HashSet (1); 72 public final void addChangeListener(ChangeListener l) { 73 synchronized (listeners) { 74 listeners.add(l); 75 } 76 } 77 public final void removeChangeListener(ChangeListener l) { 78 synchronized (listeners) { 79 listeners.remove(l); 80 } 81 } 82 protected final void fireChangeEvent() { 83 Iterator it; 84 synchronized (listeners) { 85 it = new HashSet (listeners).iterator(); 86 } 87 ChangeEvent ev = new ChangeEvent (this); 88 while (it.hasNext()) { 89 ((ChangeListener )it.next()).stateChanged(ev); 90 } 91 } 92 93 public void readSettings(Object sets) { 98 this.settings = (WizardDescriptor)sets; 99 File fil = (File )settings.getProperty("NewProjectLocation"); 100 String path = fil != null ? fil.getAbsolutePath() : ""; 101 updateValue(path); 102 } 103 public void storeSettings(Object set) { 104 WizardDescriptor wiz = (WizardDescriptor)set; 105 if (path != null) { 106 wiz.putProperty("NewProjectLocation", new File (path.trim())); } 109 } 110 111 void updateValue(String value) { 112 path = value; 113 if (path == null || path.trim().length() == 0) { 114 settings.putProperty("WizardPanel_errorMessage", org.openide.util.NbBundle.getMessage(ExportWizardPanel1.class, "ERROR_noFolder")); 115 valid = false; 116 } else { 117 File fil = new File (path.trim()); 118 if (fil.exists() && (fil.isFile() || (fil.isDirectory() && fil.listFiles().length > 0))) { 119 settings.putProperty("WizardPanel_errorMessage", org.openide.util.NbBundle.getMessage(ExportWizardPanel1.class, "ERROR_WrongFolder")); 120 valid = false; 121 } else { 122 settings.putProperty("WizardPanel_errorMessage", null); 123 valid = true; 124 } 125 } 126 127 fireChangeEvent(); 128 } 129 130 } 131 132 | Popular Tags |