Browse Source

Convert codeless project to ProjectFactory2

Toni Helenius 4 years ago
parent
commit
c7dd33c1e2

+ 0 - 1
jme3-core/src/META-INF/services/org.netbeans.spi.project.ProjectFactory

@@ -1 +0,0 @@
-com.jme3.gde.core.codeless.CodelessProjectFactory

+ 14 - 7
jme3-core/src/com/jme3/gde/core/codeless/CodelessProject.java

@@ -11,7 +11,6 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 import javax.swing.Icon;
-import javax.swing.ImageIcon;
 import org.netbeans.api.project.Project;
 import org.netbeans.api.project.ProjectInformation;
 import org.netbeans.spi.project.ActionProvider;
@@ -32,7 +31,7 @@ class CodelessProject implements Project {
     LogicalViewProvider logicalView = new CodelessProjectLogicalView(this);
     private final ProjectState state;
     private Lookup lkp;
-    private ProjectAssetManager projectAssetManager;
+    private final ProjectAssetManager projectAssetManager;
 
     public CodelessProject(FileObject projectDir, ProjectState state) {
         this.projectDir = projectDir;
@@ -122,7 +121,7 @@ class CodelessProject implements Project {
 
     private final class ActionProviderImpl implements ActionProvider {
 
-        private String[] supported = new String[]{
+        private final String[] supported = new String[]{
             ActionProvider.COMMAND_DELETE,
             ActionProvider.COMMAND_COPY,
         };
@@ -156,19 +155,23 @@ class CodelessProject implements Project {
 
     private final class DemoDeleteOperation implements DeleteOperationImplementation {
 
+        @Override
         public void notifyDeleting() throws IOException {
         }
 
+        @Override
         public void notifyDeleted() throws IOException {
         }
 
+        @Override
         public List<FileObject> getMetadataFiles() {
-            List<FileObject> dataFiles = new ArrayList<FileObject>();
+            List<FileObject> dataFiles = new ArrayList<>();
             return dataFiles;
         }
 
+        @Override
         public List<FileObject> getDataFiles() {
-            List<FileObject> dataFiles = new ArrayList<FileObject>();
+            List<FileObject> dataFiles = new ArrayList<>();
             return dataFiles;
         }
     }
@@ -183,17 +186,21 @@ class CodelessProject implements Project {
             this.projectDir = project.getProjectDirectory();
         }
 
+        @Override
         public List<FileObject> getMetadataFiles() {
-            return Collections.EMPTY_LIST;
+            return Collections.emptyList();
         }
 
+        @Override
         public List<FileObject> getDataFiles() {
-            return Collections.EMPTY_LIST;
+            return Collections.emptyList();
         }
 
+        @Override
         public void notifyCopying() throws IOException {
         }
 
+        @Override
         public void notifyCopied(Project arg0, File arg1, String arg2) throws IOException {
         }
     }

+ 18 - 7
jme3-core/src/com/jme3/gde/core/codeless/CodelessProjectFactory.java

@@ -1,23 +1,25 @@
 
 package com.jme3.gde.core.codeless;
 
+import com.jme3.gde.core.icons.IconList;
 import java.io.IOException;
 import org.netbeans.api.project.Project;
+import org.netbeans.api.project.ProjectManager;
 import org.netbeans.spi.project.ProjectFactory;
+import org.netbeans.spi.project.ProjectFactory2;
 import org.netbeans.spi.project.ProjectState;
 import org.openide.filesystems.FileObject;
+import org.openide.util.lookup.ServiceProvider;
 
-public class CodelessProjectFactory implements ProjectFactory {
+@ServiceProvider(service = ProjectFactory.class)
+public class CodelessProjectFactory implements ProjectFactory2 {
 
-    public static final String CONFIG_NAME="assets.jmp";
+    public static final String CONFIG_NAME = "assets.jmp";
 
     //Specifies when a project is a project, i.e. properties file exists
     @Override
     public boolean isProject(FileObject projectDirectory) {
-        if(projectDirectory.getFileObject(CONFIG_NAME)!=null){
-            return true;
-        }
-        return false;
+        return projectDirectory.getFileObject(CONFIG_NAME) != null;
     }
 
     //Specifies when the project will be opened, i.e.,
@@ -36,5 +38,14 @@ public class CodelessProjectFactory implements ProjectFactory {
                     " cannot save project");
         }
     }
-    
+
+    @Override
+    public ProjectManager.Result isProject2(FileObject fo) {
+        if (!isProject(fo)) {
+            return null;
+        }
+
+        return new ProjectManager.Result(IconList.jmeLogo);
+    }
+
 }