149 * Validates content of file cache. 150 */ 151 public void validateFileCache() { 152 File currentDirectory = filechooser.getCurrentDirectory(); 153 if (currentDirectory == null) { 154 return; 155 } 156 if (filesLoader != null) { 157 filesLoader.loadThread.interrupt(); 158 filesLoader.cancelRunnables(); 159 } 160 161 setBusy(true, ++fetchID); 162 163 filesLoader = new FilesLoader(currentDirectory, fetchID); 164 } 165 166 /** 167 * Renames a file in the underlying file system. 168 * 169 * @param oldFile a <code>File</code> object representing 170 * the existing file 171 * @param newFile a <code>File</code> object representing 172 * the desired new file name 173 * @return <code>true</code> if rename succeeded, 174 * otherwise <code>false</code> 175 * @since 1.4 176 */ 177 public boolean renameFile(File oldFile, File newFile) { 178 synchronized(fileCache) { 179 if (oldFile.renameTo(newFile)) { 180 validateFileCache(); 181 return true; 182 } 183 return false; 184 } 185 } 186 187 /** 188 * Invoked when a content is changed. 189 */ 190 public void fireContentsChanged() { 191 fireContentsChanged(this, 0, getSize() - 1); 192 } 193 194 public int getSize() { 387 } 388 } 389 390 391 public void cancelRunnables(Vector<DoChangeContents> runnables) { 392 for (DoChangeContents runnable : runnables) { 393 runnable.cancel(); 394 } 395 } 396 397 public void cancelRunnables() { 398 cancelRunnables(runnables); 399 } 400 } 401 402 403 /** 404 * Adds a PropertyChangeListener to the listener list. The listener is 405 * registered for all bound properties of this class. 406 * <p> 407 * If <code>listener</code> is <code>null</code>, 408 * no exception is thrown and no action is performed. 409 * 410 * @param listener the property change listener to be added 411 * 412 * @see #removePropertyChangeListener 413 * @see #getPropertyChangeListeners 414 * 415 * @since 1.6 416 */ 417 public void addPropertyChangeListener(PropertyChangeListener listener) { 418 if (changeSupport == null) { 419 changeSupport = new PropertyChangeSupport(this); 420 } 421 changeSupport.addPropertyChangeListener(listener); 422 } 423 424 /** 425 * Removes a PropertyChangeListener from the listener list. 426 * <p> 427 * If listener is null, no exception is thrown and no action is performed. 428 * 429 * @param listener the PropertyChangeListener to be removed 430 * 431 * @see #addPropertyChangeListener 432 * @see #getPropertyChangeListeners 433 * 434 * @since 1.6 435 */ 436 public void removePropertyChangeListener(PropertyChangeListener listener) { 437 if (changeSupport != null) { 438 changeSupport.removePropertyChangeListener(listener); 439 } 440 } 441 442 /** 443 * Returns an array of all the property change listeners 444 * registered on this component. 445 * 446 * @return all of this component's <code>PropertyChangeListener</code>s 447 * or an empty array if no property change 448 * listeners are currently registered 449 * 450 * @see #addPropertyChangeListener 451 * @see #removePropertyChangeListener 452 * @see java.beans.PropertyChangeSupport#getPropertyChangeListeners 453 * 454 * @since 1.6 455 */ 456 public PropertyChangeListener[] getPropertyChangeListeners() { 457 if (changeSupport == null) { 458 return new PropertyChangeListener[0]; 459 } 460 return changeSupport.getPropertyChangeListeners(); 461 } 462 463 /** 464 * Support for reporting bound property changes for boolean properties. 465 * This method can be called when a bound property has changed and it will 466 * send the appropriate PropertyChangeEvent to any registered | 149 * Validates content of file cache. 150 */ 151 public void validateFileCache() { 152 File currentDirectory = filechooser.getCurrentDirectory(); 153 if (currentDirectory == null) { 154 return; 155 } 156 if (filesLoader != null) { 157 filesLoader.loadThread.interrupt(); 158 filesLoader.cancelRunnables(); 159 } 160 161 setBusy(true, ++fetchID); 162 163 filesLoader = new FilesLoader(currentDirectory, fetchID); 164 } 165 166 /** 167 * Renames a file in the underlying file system. 168 * 169 * @param oldFile a {@code File} object representing 170 * the existing file 171 * @param newFile a {@code File} object representing 172 * the desired new file name 173 * @return {@code true} if rename succeeded, 174 * otherwise {@code false} 175 * @since 1.4 176 */ 177 public boolean renameFile(File oldFile, File newFile) { 178 synchronized(fileCache) { 179 if (oldFile.renameTo(newFile)) { 180 validateFileCache(); 181 return true; 182 } 183 return false; 184 } 185 } 186 187 /** 188 * Invoked when a content is changed. 189 */ 190 public void fireContentsChanged() { 191 fireContentsChanged(this, 0, getSize() - 1); 192 } 193 194 public int getSize() { 387 } 388 } 389 390 391 public void cancelRunnables(Vector<DoChangeContents> runnables) { 392 for (DoChangeContents runnable : runnables) { 393 runnable.cancel(); 394 } 395 } 396 397 public void cancelRunnables() { 398 cancelRunnables(runnables); 399 } 400 } 401 402 403 /** 404 * Adds a PropertyChangeListener to the listener list. The listener is 405 * registered for all bound properties of this class. 406 * <p> 407 * If {@code listener} is {@code null}, 408 * no exception is thrown and no action is performed. 409 * 410 * @param listener the property change listener to be added 411 * 412 * @see #removePropertyChangeListener 413 * @see #getPropertyChangeListeners 414 * 415 * @since 1.6 416 */ 417 public void addPropertyChangeListener(PropertyChangeListener listener) { 418 if (changeSupport == null) { 419 changeSupport = new PropertyChangeSupport(this); 420 } 421 changeSupport.addPropertyChangeListener(listener); 422 } 423 424 /** 425 * Removes a PropertyChangeListener from the listener list. 426 * <p> 427 * If listener is null, no exception is thrown and no action is performed. 428 * 429 * @param listener the PropertyChangeListener to be removed 430 * 431 * @see #addPropertyChangeListener 432 * @see #getPropertyChangeListeners 433 * 434 * @since 1.6 435 */ 436 public void removePropertyChangeListener(PropertyChangeListener listener) { 437 if (changeSupport != null) { 438 changeSupport.removePropertyChangeListener(listener); 439 } 440 } 441 442 /** 443 * Returns an array of all the property change listeners 444 * registered on this component. 445 * 446 * @return all of this component's {@code PropertyChangeListener}s 447 * or an empty array if no property change 448 * listeners are currently registered 449 * 450 * @see #addPropertyChangeListener 451 * @see #removePropertyChangeListener 452 * @see java.beans.PropertyChangeSupport#getPropertyChangeListeners 453 * 454 * @since 1.6 455 */ 456 public PropertyChangeListener[] getPropertyChangeListeners() { 457 if (changeSupport == null) { 458 return new PropertyChangeListener[0]; 459 } 460 return changeSupport.getPropertyChangeListeners(); 461 } 462 463 /** 464 * Support for reporting bound property changes for boolean properties. 465 * This method can be called when a bound property has changed and it will 466 * send the appropriate PropertyChangeEvent to any registered |