Browse Source

Convert assert pack support to ProjectFactory2

Toni Helenius 4 years ago
parent
commit
b31f5a2fae

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

@@ -1 +0,0 @@
-com.jme3.gde.assetpack.project.AssetPackProjectFactory

+ 25 - 13
jme3-assetpack-support/src/com/jme3/gde/assetpack/project/AssetPackProject.java

@@ -22,8 +22,8 @@ import javax.swing.JPanel;
 import org.netbeans.api.project.Project;
 import org.netbeans.api.project.Project;
 import org.netbeans.api.project.ProjectInformation;
 import org.netbeans.api.project.ProjectInformation;
 import org.netbeans.spi.project.ActionProvider;
 import org.netbeans.spi.project.ActionProvider;
-import org.netbeans.spi.project.DeleteOperationImplementation;
 import org.netbeans.spi.project.CopyOperationImplementation;
 import org.netbeans.spi.project.CopyOperationImplementation;
+import org.netbeans.spi.project.DeleteOperationImplementation;
 import org.netbeans.spi.project.ProjectState;
 import org.netbeans.spi.project.ProjectState;
 import org.netbeans.spi.project.ui.CustomizerProvider;
 import org.netbeans.spi.project.ui.CustomizerProvider;
 import org.netbeans.spi.project.ui.LogicalViewProvider;
 import org.netbeans.spi.project.ui.LogicalViewProvider;
@@ -45,14 +45,16 @@ import org.xml.sax.InputSource;
 @SuppressWarnings("unchecked")
 @SuppressWarnings("unchecked")
 public class AssetPackProject implements Project {
 public class AssetPackProject implements Project {
 
 
+    public static final ImageIcon assetPackIcon = ImageUtilities.loadImageIcon("com/jme3/gde/assetpack/icons/assetpack.png", false);
+
     private final FileObject projectDir;
     private final FileObject projectDir;
-    private LogicalViewProvider logicalView = new AssetPackProjectLogicalView(this);
-    private String assetsFolder = "assets";
+    private final LogicalViewProvider logicalView = new AssetPackProjectLogicalView(this);
+    private final String assetsFolder = "assets";
     private final ProjectState state;
     private final ProjectState state;
     private Lookup lkp;
     private Lookup lkp;
-    private ProjectAssetManager projectAssetManager;
+    private final ProjectAssetManager projectAssetManager;
     private Document configuration;
     private Document configuration;
-    private AssetPackProjectCustomizer projectCustomizer;
+    private final AssetPackProjectCustomizer projectCustomizer;
     private AssetPackBrowserFolder assetPackFolder;
     private AssetPackBrowserFolder assetPackFolder;
 
 
     public AssetPackProject(FileObject projectDir, ProjectState state) {
     public AssetPackProject(FileObject projectDir, ProjectState state) {
@@ -247,7 +249,7 @@ public class AssetPackProject implements Project {
 //    }
 //    }
     private final class ActionProviderImpl implements ActionProvider {
     private final class ActionProviderImpl implements ActionProvider {
 
 
-        private String[] supported = new String[]{
+        private final String[] supported = new String[]{
             ActionProvider.COMMAND_DELETE,
             ActionProvider.COMMAND_DELETE,
             ActionProvider.COMMAND_COPY,};
             ActionProvider.COMMAND_COPY,};
 
 
@@ -280,19 +282,23 @@ public class AssetPackProject implements Project {
 
 
     private final class DemoDeleteOperation implements DeleteOperationImplementation {
     private final class DemoDeleteOperation implements DeleteOperationImplementation {
 
 
+        @Override
         public void notifyDeleting() throws IOException {
         public void notifyDeleting() throws IOException {
         }
         }
 
 
+        @Override
         public void notifyDeleted() throws IOException {
         public void notifyDeleted() throws IOException {
         }
         }
 
 
+        @Override
         public List<FileObject> getMetadataFiles() {
         public List<FileObject> getMetadataFiles() {
-            List<FileObject> dataFiles = new ArrayList<FileObject>();
+            List<FileObject> dataFiles = new ArrayList<>();
             return dataFiles;
             return dataFiles;
         }
         }
 
 
+        @Override
         public List<FileObject> getDataFiles() {
         public List<FileObject> getDataFiles() {
-            List<FileObject> dataFiles = new ArrayList<FileObject>();
+            List<FileObject> dataFiles = new ArrayList<>();
             return dataFiles;
             return dataFiles;
         }
         }
     }
     }
@@ -307,24 +313,28 @@ public class AssetPackProject implements Project {
             this.projectDir = project.getProjectDirectory();
             this.projectDir = project.getProjectDirectory();
         }
         }
 
 
+        @Override
         public List<FileObject> getMetadataFiles() {
         public List<FileObject> getMetadataFiles() {
-            return Collections.EMPTY_LIST;
+            return Collections.emptyList();
         }
         }
 
 
+        @Override
         public List<FileObject> getDataFiles() {
         public List<FileObject> getDataFiles() {
-            return Collections.EMPTY_LIST;
+            return Collections.emptyList();
         }
         }
 
 
+        @Override
         public void notifyCopying() throws IOException {
         public void notifyCopying() throws IOException {
         }
         }
 
 
+        @Override
         public void notifyCopied(Project arg0, File arg1, String arg2) throws IOException {
         public void notifyCopied(Project arg0, File arg1, String arg2) throws IOException {
         }
         }
     }
     }
 
 
     private final class AssetPackProjectCustomizer implements CustomizerProvider, ProjectCustomizer.CategoryComponentProvider, ActionListener {
     private final class AssetPackProjectCustomizer implements CustomizerProvider, ProjectCustomizer.CategoryComponentProvider, ActionListener {
 
 
-        private Category[] propertyCategories = new Category[]{
+        private final Category[] propertyCategories = new Category[]{
             Category.create("General", "General", null),
             Category.create("General", "General", null),
             Category.create("License", "License", null),};
             Category.create("License", "License", null),};
         AssetPackProject project;
         AssetPackProject project;
@@ -335,10 +345,12 @@ public class AssetPackProject implements Project {
             this.project = project;
             this.project = project;
         }
         }
 
 
+        @Override
         public void showCustomizer() {
         public void showCustomizer() {
             ProjectCustomizer.createCustomizerDialog(propertyCategories, this, "General", this, new HelpCtx("sdk.asset_packs")).setVisible(true);
             ProjectCustomizer.createCustomizerDialog(propertyCategories, this, "General", this, new HelpCtx("sdk.asset_packs")).setVisible(true);
         }
         }
 
 
+        @Override
         public JComponent create(Category category) {
         public JComponent create(Category category) {
             if (category.getName().equals("General")) {
             if (category.getName().equals("General")) {
                 panel1 =
                 panel1 =
@@ -354,6 +366,7 @@ public class AssetPackProject implements Project {
 
 
         }
         }
 
 
+        @Override
         public void actionPerformed(ActionEvent e) {
         public void actionPerformed(ActionEvent e) {
             panel1.actionPerformed(null);
             panel1.actionPerformed(null);
             panel2.actionPerformed(null);
             panel2.actionPerformed(null);
@@ -366,8 +379,7 @@ public class AssetPackProject implements Project {
 
 
         @Override
         @Override
         public Icon getIcon() {
         public Icon getIcon() {
-            return new ImageIcon(ImageUtilities.loadImage(
-                    "com/jme3/gde/assetpack/icons/assetpack.png"));
+            return assetPackIcon;
         }
         }
 
 
         @Override
         @Override

+ 15 - 5
jme3-assetpack-support/src/com/jme3/gde/assetpack/project/AssetPackProjectFactory.java

@@ -2,21 +2,22 @@ package com.jme3.gde.assetpack.project;
 
 
 import java.io.IOException;
 import java.io.IOException;
 import org.netbeans.api.project.Project;
 import org.netbeans.api.project.Project;
+import org.netbeans.api.project.ProjectManager;
 import org.netbeans.spi.project.ProjectFactory;
 import org.netbeans.spi.project.ProjectFactory;
+import org.netbeans.spi.project.ProjectFactory2;
 import org.netbeans.spi.project.ProjectState;
 import org.netbeans.spi.project.ProjectState;
 import org.openide.filesystems.FileObject;
 import org.openide.filesystems.FileObject;
+import org.openide.util.lookup.ServiceProvider;
 
 
-public class AssetPackProjectFactory implements ProjectFactory {
+@ServiceProvider(service = ProjectFactory.class)
+public class AssetPackProjectFactory implements ProjectFactory2 {
 
 
     public static final String CONFIG_NAME = "assetpack.xml";
     public static final String CONFIG_NAME = "assetpack.xml";
 
 
     //Specifies when a project is a project, i.e. properties file exists
     //Specifies when a project is a project, i.e. properties file exists
     @Override
     @Override
     public boolean isProject(FileObject projectDirectory) {
     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.,
     //Specifies when the project will be opened, i.e.,
@@ -36,4 +37,13 @@ public class AssetPackProjectFactory implements ProjectFactory {
         }
         }
         ((AssetPackProject)project).saveSettings();
         ((AssetPackProject)project).saveSettings();
     }
     }
+
+    @Override
+    public ProjectManager.Result isProject2(FileObject fo) {
+        if (!isProject(fo)) {
+            return null;
+        }
+
+        return new ProjectManager.Result(AssetPackProject.assetPackIcon);
+    }
 }
 }

+ 4 - 4
jme3-assetpack-support/src/com/jme3/gde/assetpack/project/AssetPackProjectLogicalView.java

@@ -1,10 +1,10 @@
 package com.jme3.gde.assetpack.project;
 package com.jme3.gde.assetpack.project;
 
 
-import com.jme3.gde.assetpack.project.actions.PublishAssetPackAction;
 import com.jme3.gde.assetpack.browser.nodes.AssetPackBrowserFolder;
 import com.jme3.gde.assetpack.browser.nodes.AssetPackBrowserFolder;
 import com.jme3.gde.assetpack.project.actions.CleanupProjectAction;
 import com.jme3.gde.assetpack.project.actions.CleanupProjectAction;
 import com.jme3.gde.assetpack.project.actions.ConvertOgreBinaryMeshesAction;
 import com.jme3.gde.assetpack.project.actions.ConvertOgreBinaryMeshesAction;
 import com.jme3.gde.assetpack.project.actions.ImportWorldForgeAction;
 import com.jme3.gde.assetpack.project.actions.ImportWorldForgeAction;
+import com.jme3.gde.assetpack.project.actions.PublishAssetPackAction;
 import java.awt.Image;
 import java.awt.Image;
 import java.util.LinkedList;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.List;
@@ -45,7 +45,7 @@ class AssetPackProjectLogicalView implements LogicalViewProvider {
     /** This is the node you actually see in the project tab for the project */
     /** This is the node you actually see in the project tab for the project */
     private static final class ProjectNode extends AbstractNode {
     private static final class ProjectNode extends AbstractNode {
 
 
-        private InstanceContent instanceContent;
+        private final InstanceContent instanceContent;
         final AssetPackProject project;
         final AssetPackProject project;
 
 
         public ProjectNode(AssetPackProject project) throws DataObjectNotFoundException {
         public ProjectNode(AssetPackProject project) throws DataObjectNotFoundException {
@@ -91,7 +91,7 @@ class AssetPackProjectLogicalView implements LogicalViewProvider {
     public static final class ProjectLookup extends AbstractLookup {
     public static final class ProjectLookup extends AbstractLookup {
 
 
         private static final long serialVersionUID = 1214314412L;
         private static final long serialVersionUID = 1214314412L;
-        private InstanceContent instanceContent;
+        private final InstanceContent instanceContent;
 
 
         public ProjectLookup(InstanceContent instanceContent) {
         public ProjectLookup(InstanceContent instanceContent) {
             super(instanceContent);
             super(instanceContent);
@@ -121,7 +121,7 @@ class AssetPackProjectLogicalView implements LogicalViewProvider {
         }
         }
 
 
         protected List<Object> createKeys() {
         protected List<Object> createKeys() {
-            LinkedList<Object> ret = new LinkedList<Object>();
+            LinkedList<Object> ret = new LinkedList<>();
             ret.add(new Object());
             ret.add(new Object());
             return ret;
             return ret;
         }
         }