Index: WebLogicalViewProvider.java =================================================================== RCS file: /cvs/web/project/src/org/netbeans/modules/web/project/ui/WebLogicalViewProvider.java,v retrieving revision 1.4 diff -r1.4 WebLogicalViewProvider.java 87a88 > import org.netbeans.modules.visualweb.dataconnectivity.ui.BrokenDatabaseSupport; 103a105 > private static final RequestProcessor BROKEN_DATABASE_RP = new RequestProcessor("WebLogicalViewProvider.BROKEN_DATABASE_RP"); // NOI18N 643a646,695 > fireIconChange(); > fireOpenedIconChange(); > fireDisplayNameChange(null, null); > } > } > } > > private class BrokenDatabaseAction extends AbstractAction implements > PropertyChangeListener, Runnable { > > private RequestProcessor.Task task = null; > private boolean brokenDatabase; > > public BrokenDatabaseAction() { > putValue(Action.NAME, > NbBundle.getMessage(WebLogicalViewProvider.class, > "LBL_Fix_Broken_Database_Action")); // NOI18N > evaluator.addPropertyChangeListener(this); > checkMissingDatabase(); > } > > public boolean isEnabled() { > return brokenDatabase; > } > > public void actionPerformed(ActionEvent e) { > String instance = BrokenDatabaseSupport.selectDatabaseConnection(project); > run(); > } > > public void propertyChange(PropertyChangeEvent evt) { > checkMissingDatabase(); > } > > private void checkMissingDatabase() { > if (task == null) { > task = BROKEN_DATABASE_RP.create(this); > } > javax.swing.SwingUtilities.invokeLater(new Runnable() { > public void run() { > task.schedule(100); > } > }); > } > > public synchronized void run() { > boolean old = brokenDatabase; > brokenDatabase = BrokenDatabaseSupport.isBroken(project); > > if (old != brokenDatabase) {