package org.freeplane.plugin.workspace.creator; import java.io.File; import java.net.URI; import org.freeplane.n3.nanoxml.XMLElement; import org.freeplane.plugin.workspace.WorkspaceController; import org.freeplane.plugin.workspace.WorkspaceUtils; import org.freeplane.plugin.workspace.model.AWorkspaceNodeCreator; import org.freeplane.plugin.workspace.model.AWorkspaceTreeNode; import org.freeplane.plugin.workspace.nodes.AFolderNode; import org.freeplane.plugin.workspace.nodes.FolderLinkNode; public class FolderTypePhysicalCreator extends AWorkspaceNodeCreator { public FolderTypePhysicalCreator() { } public AWorkspaceTreeNode getNode(XMLElement data) { String type = data.getAttribute("type", AFolderNode.FOLDER_TYPE_PHYSICAL); FolderLinkNode node = new FolderLinkNode(type); String path = data.getAttribute("path", null); if (path == null) { return null; } node.setPath(URI.create(path)); File file = WorkspaceUtils.resolveURI(node.getPath()); if (file == null) { return null; } boolean monitor = Boolean.parseBoolean(data.getAttribute("monitor", "false")); node.enableMonitoring(monitor); boolean descending = Boolean.parseBoolean(data.getAttribute("orderDescending", "false")); node.orderDescending(descending); String name = data.getAttribute("name", file.getName()); node.setName(name); return node; } public void endElement(final Object parent, final String tag, final Object currentNode, final XMLElement lastBuiltElement) { super.endElement(parent, tag, currentNode, lastBuiltElement); if (currentNode == null) { return; } WorkspaceController .getController() .getFilesystemMgr() .scanFileSystem((AWorkspaceTreeNode) currentNode, WorkspaceUtils.resolveURI(((FolderLinkNode) currentNode).getPath())); } }