diff --git a/GUI/pom.xml b/GUI/pom.xml index ec98cb3bbcd037dceaeaef3087a9155125d14a74..d6fd3fbb48071d125d78656ef4d92e98000846d0 100644 --- a/GUI/pom.xml +++ b/GUI/pom.xml @@ -76,6 +76,17 @@ <artifactId>org-openide-modules</artifactId> <version>${netbeans.version}</version> </dependency> + <dependency> + <groupId>org.netbeans.api</groupId> + <artifactId>org-openide-filesystems-nb</artifactId> + <version>${netbeans.version}</version> + </dependency> + <dependency> + <groupId>org.netbeans.api</groupId> + <artifactId>org-netbeans-modules-options-api</artifactId> + <version>${netbeans.version}</version> + <type>jar</type> + </dependency> <dependency> <groupId>org.jogamp.gluegen</groupId> <artifactId>gluegen-rt-main</artifactId> diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/ProjectTopComp.java b/GUI/src/main/java/cz/fidentis/analyst/gui/ProjectTopComp.java index 03232d79cdc2f2fde8e049114bfc7d00d6b0a725..e91c36ca55bb242a28460809e364761d7e991a59 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/ProjectTopComp.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/ProjectTopComp.java @@ -13,19 +13,12 @@ import org.openide.windows.TopComponent; import org.openide.util.NbBundle.Messages; import cz.fidentis.analyst.Project; import cz.fidentis.analyst.face.HumanFace; -import cz.fidentis.analyst.mesh.io.ModelFileFilter; -import cz.fidentis.analyst.gui.scene.DrawableMesh; -import java.awt.Dimension; +import cz.fidentis.analyst.face.HumanFaceFactory; import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileWriter; -import java.io.IOException; import java.util.HashMap; import java.util.Map; -import java.util.Scanner; -import javax.swing.ImageIcon; -import javax.swing.JFileChooser; -import javax.swing.JOptionPane; +import javax.swing.filechooser.FileNameExtensionFilter; +import org.openide.filesystems.FileChooserBuilder; /** * The main panel enabling analysts to select the primary and secondary faces, @@ -289,6 +282,25 @@ public final class ProjectTopComp extends TopComponent { * Loads model selected in file chooser by user */ public void loadModel () { + File file = new FileChooserBuilder(ProjectTopComp.class) + .setTitle("Open human face(s)") + .setDefaultWorkingDirectory(new File (System.getProperty("user.home"))) + //.setApproveText("Add") + .setFileFilter(new FileNameExtensionFilter("obj files (*.obj)", "obj")) + .setAcceptAllFileFilterUsed(true) + .showOpenDialog(); + + if (file== null) { + System.out.print("No file chosen."); + } else { + String faceId = HumanFaceFactory.instance().loadFace(file); + HumanFace face = HumanFaceFactory.instance().getFace(faceId); + this.project.setPrimaryFace(face); + jLabel1.setText(face.getName()); + createSingleFaceTab(face, face.getName()); + } + + /* String[] extensions = new String[2]; extensions[0] = "obj"; extensions[1] = "OBJ"; @@ -314,7 +326,9 @@ public final class ProjectTopComp extends TopComponent { System.out.print("No file chosen."); } else { this.addModel(fileArray[0]); - } + } + */ + } /** @@ -323,6 +337,7 @@ public final class ProjectTopComp extends TopComponent { * * @param file File from which model will be read */ + /* private void addModel (final File file) { try { HumanFace loadedFace; @@ -353,7 +368,7 @@ public final class ProjectTopComp extends TopComponent { //TODO remove duplicate with PreferenceTopComponent String data = ""; try { - File myObj = new File(/*propPath + */"preferences.fip"); + File myObj = new File("preferences.fip"); if (myObj.length() == 0) return data; try (Scanner myReader = new Scanner(myObj)) { @@ -365,6 +380,7 @@ public final class ProjectTopComp extends TopComponent { } return data; } + */ private void createSingleFaceTab(HumanFace face, String name) { SingleFaceTab newTab = new SingleFaceTab(); diff --git a/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/ModelFileFilter.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/ModelFileFilter.java index 17a5f729bcf869daaa0225876d6c3d57a31d9f44..c12a3604b31e3f076ff3ef56dfb7d8235c2aa4b8 100644 --- a/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/ModelFileFilter.java +++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/io/ModelFileFilter.java @@ -9,7 +9,7 @@ import java.io.File; * Class that enables to choose just extensions we want in the filechooser */ public class ModelFileFilter extends FileFilter { - + private final String[] extension; private final String description;