/* * Copyright 2013 Serdar. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.fub.maps.project; import de.fub.maps.project.nodes.MapsProjectNode; import org.netbeans.spi.project.ui.LogicalViewProvider; import org.openide.filesystems.FileObject; import org.openide.loaders.DataFolder; import org.openide.nodes.AbstractNode; import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.util.Exceptions; /** * * @author Serdar */ class MapsLogicalView implements LogicalViewProvider { private final MapsProject project; public MapsLogicalView(MapsProject project) { assert project != null; this.project = project; } @Override public Node createLogicalView() { Node node = null; try { //Obtain the project directory's node: FileObject projectDirectory = project.getProjectDirectory(); DataFolder projectFolder = DataFolder.findFolder(projectDirectory); Node nodeOfProjectFolder = projectFolder.getNodeDelegate(); //Decorate the project directory's node: node = new MapsProjectNode(nodeOfProjectFolder, project); } catch (IllegalArgumentException donfe) { Exceptions.printStackTrace(donfe); //Fallback-the directory couldn't be created - //read-only filesystem or something evil happened node = new AbstractNode(Children.LEAF); } return node; } @Override public Node findPath(Node root, Object target) { // TODO implement return null; } }