? src/.nbintdb Index: src/org/netbeans/modules/java/imptool/ImpDataSource.java =================================================================== RCS file: /cvs/java/src/org/netbeans/modules/java/imptool/ImpDataSource.java,v retrieving revision 1.20 diff -C3 -r1.20 ImpDataSource.java *** src/org/netbeans/modules/java/imptool/ImpDataSource.java 27 Feb 2003 23:38:15 -0000 1.20 --- src/org/netbeans/modules/java/imptool/ImpDataSource.java 12 Sep 2003 09:34:59 -0000 *************** *** 50,55 **** --- 50,56 ---- private SourceElement sourceElement; private String sourceFilePackageName; private int stage=0; + private boolean initialized; private static final int FQN_STAGE=1; private static final int IMPORT_STAGE=2; *************** *** 68,73 **** --- 69,75 ---- Iterator bodyIdIt=bodyIdentifiers.iterator(); Identifier sourceFilePackage; + this.initialized = false; sourceEditor=(SourceCookie.Editor)dataObject.getCookie(SourceCookie.Editor.class); javaEditor=(JavaEditor)dataObject.getCookie(JavaEditor.class); sourceElement=dataObject.getSource(); *************** *** 136,141 **** --- 138,148 ---- if (impSetting.getResolveStrategy()==ImpToolSettings.RESOLVE_WELLKNOWN) { tryResolveIdetifiers(); } + this.initialized = true; + } + + boolean isInitialized() { + return this.initialized; } private void addIdentifierFromType(Type type,Object owner) { *************** *** 274,280 **** ImpDataSourceNode createRootFQNNode() { Node template[]=new Node[0]; Children ch=new Children.Array(); - ch.add((Node[])idNodes.values().toArray(template)); stage=FQN_STAGE; return new ImpDataSourceNode(ch,ImpDataSourceNode.CLASS_NODE); --- 281,286 ---- Index: src/org/netbeans/modules/java/imptool/RootPanel.java =================================================================== RCS file: /cvs/java/src/org/netbeans/modules/java/imptool/RootPanel.java,v retrieving revision 1.18.2.1 diff -C3 -r1.18.2.1 RootPanel.java *** src/org/netbeans/modules/java/imptool/RootPanel.java 11 Mar 2003 15:55:37 -0000 1.18.2.1 --- src/org/netbeans/modules/java/imptool/RootPanel.java 12 Sep 2003 09:34:59 -0000 *************** *** 14,25 **** package org.netbeans.modules.java.imptool; import java.awt.*; import javax.swing.*; import org.openide.WizardDescriptor; import org.openide.nodes.Node; import org.openide.nodes.Sheet; - import javax.swing.event.ChangeListener; import org.openide.explorer.*; import org.openide.explorer.view.ListTableView; import org.openide.explorer.view.TreeTableView; --- 14,27 ---- package org.netbeans.modules.java.imptool; + import java.util.ArrayList; import java.awt.*; import javax.swing.*; + import javax.swing.event.ChangeEvent; + import javax.swing.event.ChangeListener; import org.openide.WizardDescriptor; import org.openide.nodes.Node; import org.openide.nodes.Sheet; import org.openide.explorer.*; import org.openide.explorer.view.ListTableView; import org.openide.explorer.view.TreeTableView; *************** *** 33,40 **** --- 35,45 ---- */ abstract class RootPanel extends JPanel { ImpDataSource dataSource; + boolean initialized=false; + private ArrayList changeListeners = new ArrayList(1); + /** See org.openide.WizardDescriptor.PROP_CONTENT_SELECTED_INDEX */ private static final String PROP_CONTENT_SELECTED_INDEX = "WizardPanel_contentSelectedIndex"; // NOI18N *************** *** 84,89 **** --- 89,95 ---- } else { addNoRowsLabel(); } + fireStateChange(); } protected final TreeTableView getListTableView() { *************** *** 144,149 **** --- 150,172 ---- add(noRowText,BorderLayout.NORTH); } + void addChangeListener(ChangeListener l) { + if(!changeListeners.contains(l)) { + changeListeners.add(l); + } + } + + void removeChangeListener(ChangeListener l) { + changeListeners.remove(l); + } + + private void fireStateChange() { + for(int i=0; itrue if the user has entered satisfactory information */ public boolean isValid() { ! return true; } /** Add a listener to changes of the panel's validity. * @param l the listener to add * @see #isValid */ public void addChangeListener(ChangeListener l) { } /** Remove a listener to changes of the panel's validity. * @param l the listener to remove */ public void removeChangeListener(ChangeListener l) { } public String getName() { return name; } } } --- 240,267 ---- * @return true if the user has entered satisfactory information */ public boolean isValid() { ! if (dataSource==null) ! return true; ! else ! return dataSource.isInitialized(); } /** Add a listener to changes of the panel's validity. * @param l the listener to add * @see #isValid */ public void addChangeListener(ChangeListener l) { + ((RootPanel)getComponent()).addChangeListener(l); } /** Remove a listener to changes of the panel's validity. * @param l the listener to remove */ public void removeChangeListener(ChangeListener l) { + ((RootPanel)getComponent()).removeChangeListener(l); } public String getName() { return name; } } + }