protected DataObject handleCreateFromTemplate ( DataFolder f, String name ) throws IOException { DataFolder newFolder = (DataFolder)super.handleCreateFromTemplate (f, name); Enumeration en = children (); while (en.hasMoreElements ()) { try { DataObject obj = (DataObject)en.nextElement (); obj.createFromTemplate (newFolder); } catch (IOException ex) { ErrorManager.getDefault().notify(ex); } } return newFolder; }
protected void handleDelete () throws IOException { Enumeration en = children (); try { while (en.hasMoreElements ()) { DataObject obj = (DataObject)en.nextElement (); if (obj.isValid ()) { obj.delete (); } } } catch (IOException iex) { /** Annotates exception and throws again*/ FileObject fo = getPrimaryFile(); String message = NbBundle.getMessage(DataFolder.class, "EXC_CannotDelete2", FileUtil.getFileDisplayName(fo)); ErrorManager.getDefault().annotate(iex, message); throw iex; } super.handleDelete (); }
/** Enumerate all children of this folder. If the children should be enumerated * recursively, first all direct children are listed; then children of direct subfolders; and so on. * * @param rec whether to enumerate recursively * @return enumeration of type <code>DataObject</code> */ public Enumeration children (final boolean rec) { if (!rec) { return children(); } class Processor implements org.openide.util.Enumerations.Processor { /** @param o processes object by adding its children to the queue */ public Object process (Object o, Collection toAdd) { DataObject dataObj = (DataObject)o; if (rec && dataObj instanceof DataFolder) { toAdd.addAll (Arrays.asList (((DataFolder)dataObj).getChildren())); } return o; } } Enumeration en = org.openide.util.Enumerations.queue ( org.openide.util.Enumerations.array (getChildren ()), new Processor () ); return en; }
protected DataObject handleCopy (DataFolder f) throws IOException { testNesting(this, f); Enumeration en = children (); DataFolder newFolder = (DataFolder)super.handleCopy (f); while (en.hasMoreElements ()) { try { DataObject obj = (DataObject)en.nextElement (); if (obj.isCopyAllowed()) { obj.copy (newFolder); } else { // data object can not be copied, inform user ErrorManager.getDefault().log(ErrorManager.USER, NbBundle.getMessage(DataFolder.class, "FMT_CannotCopyDo", obj.getName() ) ); } } catch (IOException ex) { ErrorManager.getDefault().notify(ex); } } return newFolder; }
Enumeration en = children ();