/** Creates nad fires event */ protected final void fileCreated0(FileObject src, FileObject file, boolean expected) { fileCreated0(new FileEvent(src, file, expected), false); }
/** Notification that the output stream has been closed. * @param fireFileChanged defines if FileEvent should be fired to notify about * change of file after close of stream */ protected void outputStreamClosed(boolean fireFileChanged) { if (fireFileChanged) { fileChanged0(new FileEvent(AbstractFolder.this, AbstractFolder.this, lastModified().getTime())); } }
private void filesDeleted(final Map<String,AbstractFolder> removedToFire, final boolean expected) { for (AbstractFolder fo : removedToFire.values()) { fo.validFlag = false; if (hasAtLeastOneListeners() || fo.hasAtLeastOneListeners()) { FileEvent ev = new FileEvent(fo, fo, expected); fo.fileDeleted0(ev); } } }
@Override public void fileDeleted(FileEvent fe) { Enumeration<? extends FileObject> en = existingFileObjects(getRoot()); while (en.hasMoreElements()) { AbstractFolder fo = (AbstractFolder) en.nextElement(); fo.validFlag = false; fo.fileDeleted0(new FileEvent(fo)); } refreshRoot(); } };
private void refreshChildrenInAtomicAction(AbstractFolder fo, ResourceElem resElem) { try { beginAtomicAction(); Collection<AbstractFolder> oldChildren = new HashSet<AbstractFolder>(Collections.list(fo.existingSubFiles(true))); refreshChildren(fo, resElem); Collection<AbstractFolder> newChildren = Collections.list(fo.existingSubFiles(true)); oldChildren.removeAll(newChildren); for (Iterator<AbstractFolder> it = oldChildren.iterator(); it.hasNext();) { AbstractFileObject invalid = (AbstractFileObject)it.next(); if (invalid.validFlag) { invalid.validFlag = false; invalid.fileDeleted0(new FileEvent(invalid)); } } } finally { finishAtomicAction(); } }
private void someChange() { FileChangeListener listener; boolean wasOnTarget; FileObject currentNew; synchronized (this) { if (current == null) { return; } listener = get(); if (listener == null) { return; } wasOnTarget = isOnTarget; locateCurrent(); currentNew = current; } if (isOnTarget && !wasOnTarget) { // fire events about itself creation (it is difference from FCL // on FileOject - it cannot be fired because we attach FCL on already existing FileOject if (currentNew.isFolder()) { listener.fileFolderCreated(new FileEvent(currentNew)); } else { listener.fileDataCreated(new FileEvent(currentNew)); } } }
/** Fires event */ protected final void fileDeleted0(FileEvent fileevent) { super.fireFileDeletedEvent(listeners(), fileevent); if (fileevent.getFile().equals(this) && (parent != null)) { FileEvent ev = new FileEvent(parent, fileevent.getFile(), fileevent.isExpected()); try { ev.inheritPostNotify(fileevent); parent.fileDeleted0(ev); } finally { ev.setPostNotify(null); } } }
/** Fires event */ protected final void fileChanged0(FileEvent fileevent) { super.fireFileChangedEvent(listeners(), fileevent); if (fileevent.getFile().equals(this) && (parent != null)) { FileEvent ev = new FileEvent(parent, fileevent.getFile(), fileevent.isExpected(), fileevent.getTime()); try { ev.inheritPostNotify(fileevent); parent.fileChanged0(ev); } finally { ev.setPostNotify(null); } } }
/** Fires event */ protected final void fileCreated0(FileEvent fileevent, boolean isData) { /* if(isData) super.fireFileDataCreatedEvent(listeners (), fileevent); else super.fireFileFolderCreatedEvent(listeners (), fileevent); */ dispatchEvent(listeners(), fileevent); if (fileevent.getFile().equals(this) && (parent != null)) { FileEvent ev = new FileEvent(parent, fileevent.getFile(), fileevent.isExpected()); try { ev.inheritPostNotify(fileevent); parent.fileCreated0(ev, isData); } finally { ev.setPostNotify(null); } } }
fileChanged0(new FileEvent(this));
/** Fired when a file is changed. * @param fe the event describing context where action has taken place */ public void fileChanged(FileEvent fe) { FileObject changedFile = this; if (fe.getSource().equals(leader) && hasAtLeastOneListeners() && !fe.firedFrom(markAtomicAction)) { /**There should not dissapear information about source and changed file*/ if (!fe.getFile().equals(fe.getSource())) { changedFile = getFileObject(fe.getFile().getName(), fe.getFile().getExt()); } /**fileChanged1 - should not fire event for this.getParent (). * I think that already bottom layer forked event.*/ /** [PENDING] fix of #16926, #16895. But there should be investigated * why this MFO doesn`t know about child ?*/ if (changedFile != null) { fileChanged1(new FileEvent(this, changedFile, fe.getTime())); } } }
fileCreated0(new FileEvent(this, fo), true);
fileCreated0(new FileEvent(this, fo), false);
/** refreshes children recursively.*/ private void refreshChildren(AbstractFolder fo, ResourceElem resElem) { if (fo.isRoot()) { initializeReference(rootRef = new FileObjRef<AbstractFolder>(fo), resElem); } java.util.List<String> nameList = resElem.getChildren(); String[] names = new String[nameList.size()]; ResourceElem[] children = new ResourceElem[names.length]; nameList.toArray(names); for (int i = 0; i < names.length; i++) children[i] = resElem.getChild(names[i]); fo.refresh(null, null, true, true, names); for (int i = 0; i < children.length; i++) { AbstractFolder fo2 = (AbstractFolder) fo.getFileObject(names[i]); FileObjRef currentRef = (FileObjRef) findReference(fo2.getPath()); int diff = initializeReference(currentRef, children[i]); fo2.lastModified(); if (fo2.isFolder()) { refreshChildren(fo2, children[i]); } else { if ((diff & 0x01) != 0) { fo2.fileChanged0(new FileEvent(fo2)); } else { if ((diff & 0x02) != 0) { fo2.fileAttributeChanged0(new FileAttributeEvent(fo2, null, null, null)); } } } } }
fileCreated0(new FileEvent(this, fo), true);
ev = new FileEvent(this, this, expected);
abstractTarget.fileCreated0(new FileEvent(abstractTarget, fo), true);
fileCreated0(new FileEvent(this, fo), false);
void handleDelete(FileLock lock) throws IOException { if (parent == null) { throw new FSException(NbBundle.getMessage(MultiFileObject.class, "EXC_CannotDeleteRoot", getMultiFileSystem().getDisplayName())); } MultiFileSystem fs = getMultiFileSystem(); try { getFileSystem().beginAtomicAction(); synchronized (parent) { String fullName = getPath(); FileSystem single = fs.createWritableOn(fullName); if (needsMask(lock, true)) { getMultiFileSystem().maskFile(single, fullName); updateFoldersLock(getParent()); } String n = name; validFlag = false; /** [PENDING] expected rename of some refresh method */ //parent.internalRefresh (null, n, true, false, null); parent.refresh(null, n, true, false); if (hasAtLeastOneListeners()) { fileDeleted0(new FileEvent(this)); } } } finally { getFileSystem().finishAtomicAction(); } }
fileDeleted0(new FileEvent(this));