Loading GUI/pom.xml +5 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,11 @@ <artifactId>HumanFace</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>Project</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>MeshModel</artifactId> Loading GUI/src/main/java/cz/fidentis/analyst/core/FaceTab.java +5 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,11 @@ import org.openide.windows.TopComponent; * * @author Matej Kovar */ @TopComponent.Description( preferredID = "FaceTab", iconBase="analysis.png", persistenceType = TopComponent.PERSISTENCE_NEVER ) public class FaceTab extends TopComponent { private final Canvas canvas ; Loading GUI/src/main/java/cz/fidentis/analyst/project/ModelsTableModel.java +7 −4 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ import org.openide.util.Exceptions; import org.imgscalr.Scalr; /** * List of faces TableModel * Table with faces loaded into the current project. * * @author Matej Kovar */ Loading Loading @@ -118,13 +118,16 @@ public class ModelsTableModel extends DefaultTableModel { } public Class[] getTypes() { return types;} return types; } public void setTypes(Class[] types) { this.types = types;} this.types = types; } public boolean[] getCanEdit() { return canEdit;} return canEdit; } public void setCanEdit(boolean[] canEdit) { this.canEdit = canEdit; Loading GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.java +25 −24 Original line number Diff line number Diff line Loading @@ -34,6 +34,9 @@ import org.openide.util.Exceptions; import org.openide.windows.WindowManager; /** * Left-hand part of the project tab consisting of project toolbar and * the {@code ModelsTableModel} (the table of faces). * This panel also handles the list of analytical tabs. * * @author Matej Kovar */ Loading @@ -42,11 +45,11 @@ public class ProjectPanel extends JPanel { public static final String SAVE_CURRENT_PROJECT_TITLE = "Save current project"; public static final String SAVE_NEW_PROJECT_TITLE = "Save new project"; private Project project; private final Project project; private static List<FaceTab> tabs = new ArrayList<>(); private static final List<FaceTab> TABS = new ArrayList<>(); private ModelsTableModel model = new ModelsTableModel(); private final ModelsTableModel model = new ModelsTableModel(); /* List of indexes of selected Rows */ private List<Integer> selectedRows = new ArrayList<>(); Loading @@ -67,7 +70,6 @@ public class ProjectPanel extends JPanel { table.getColumnModel().getColumn(2).setCellEditor(new TaskCellEditor()); table.getColumnModel().getColumn(2).setCellRenderer(new TaskCellRenderer()); table.repaint(); } /** Loading Loading @@ -392,8 +394,7 @@ public class ProjectPanel extends JPanel { private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeButtonActionPerformed if (selectedRows.isEmpty()) { JOptionPane.showMessageDialog(this, "No face chosen"); JOptionPane.showMessageDialog(this, "No face chosen"); return; } int answer = JOptionPane.showConfirmDialog(null, Loading @@ -420,7 +421,7 @@ public class ProjectPanel extends JPanel { String name = model.getValueAt(row, 1).toString(); List<FaceTab> tabsToClose = new ArrayList<>(); tabs.stream().filter(t -> (t.hasFace(name))).forEachOrdered(t -> { TABS.stream().filter(t -> (t.hasFace(name))).forEachOrdered(t -> { tabsToClose.add(t); }); Loading @@ -437,7 +438,7 @@ public class ProjectPanel extends JPanel { } tabsToClose.get(0).close(); tabs.remove(tabsToClose.remove(0)); TABS.remove(tabsToClose.remove(0)); } // Remove already loaded and stored face info Loading Loading @@ -620,7 +621,7 @@ public class ProjectPanel extends JPanel { JComboBox comboBox = (JComboBox) e.getSource(); String taskName = String.valueOf(comboBox.getSelectedItem()); tabs.stream().filter(tab -> (tab.getName().equals(taskName))).forEachOrdered(tab -> { TABS.stream().filter(tab -> (tab.getName().equals(taskName))).forEachOrdered(tab -> { if (!tab.isOpened()) { tab.open(); Loading Loading @@ -658,7 +659,7 @@ public class ProjectPanel extends JPanel { } tab.close(); tabs.remove(tab); TABS.remove(tab); } } Loading Loading @@ -705,14 +706,14 @@ public class ProjectPanel extends JPanel { FaceTab newTab = new FaceTab(face, null, name, endTaskListener, project); if (!tabs.contains(newTab)) { if (!TABS.contains(newTab)) { if (camera != null) { newTab.setCamera(camera); } model.addNewTask(name, name); tabs.add(newTab); TABS.add(newTab); newTab.open(); newTab.requestActive(); Loading @@ -720,7 +721,7 @@ public class ProjectPanel extends JPanel { this.project.setSaved(false); } else { tabs.stream().filter(t -> (t.equals(newTab))).forEachOrdered(t -> { TABS.stream().filter(t -> (t.equals(newTab))).forEachOrdered(t -> { if (!t.isOpened()) { t.open(); } Loading Loading @@ -749,7 +750,7 @@ public class ProjectPanel extends JPanel { FaceTab newTab = new FaceTab(face1, face2, nameOfTab, endTaskListener, project); if (!tabs.contains(newTab)) { if (!TABS.contains(newTab)) { if (camera != null) { newTab.setCamera(camera); Loading @@ -758,7 +759,7 @@ public class ProjectPanel extends JPanel { model.addNewTask(face1.getShortName(), nameOfTab); model.addNewTask(face2.getShortName(), nameOfTab); tabs.add(newTab); TABS.add(newTab); newTab.open(); newTab.requestActive(); Loading @@ -766,7 +767,7 @@ public class ProjectPanel extends JPanel { this.project.setSaved(false); } else { tabs.stream().filter(t -> (t.equals(newTab))).forEachOrdered(t -> { TABS.stream().filter(t -> (t.equals(newTab))).forEachOrdered(t -> { if (!t.isOpened()) { t.open(); } Loading @@ -791,8 +792,8 @@ public class ProjectPanel extends JPanel { }; FaceTab newTab = new FaceTab(faces, name, endTaskListener); if (!tabs.contains(newTab)) { tabs.add(newTab); if (!TABS.contains(newTab)) { TABS.add(newTab); } newTab.open(); newTab.requestActive(); Loading Loading @@ -847,7 +848,7 @@ public class ProjectPanel extends JPanel { */ public static void serializeTasks() { tabs.forEach(tab -> { TABS.forEach(tab -> { try { tab.serializeTask(); } catch (IOException ex) { Loading @@ -865,9 +866,9 @@ public class ProjectPanel extends JPanel { serializeTasks(); } while (!tabs.isEmpty()) { tabs.get(0).close(); tabs.remove(0); while (!TABS.isEmpty()) { TABS.get(0).close(); TABS.remove(0); } faceStatePanel.clearLoadedFaces(); Loading GUI/src/main/java/cz/fidentis/analyst/project/ProjectTopComp.java +3 −3 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ import org.openide.windows.TopComponent; ) @TopComponent.Description( preferredID = "ProjectTopComp", //iconBase="SET/PATH/TO/ICON/HERE", iconBase="checker.png", persistenceType = TopComponent.PERSISTENCE_ALWAYS ) @TopComponent.Registration(mode = "editor", openAtStartup = true) Loading Loading @@ -99,7 +99,7 @@ public final class ProjectTopComp extends TopComponent { this.requestActive(); // Asks user whether he wants to create new project or open existing projectPanel.openExistingOrNewProject(); //projectPanel.openExistingOrNewProject(); this.repaint(); } Loading Loading
GUI/pom.xml +5 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,11 @@ <artifactId>HumanFace</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>Project</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>MeshModel</artifactId> Loading
GUI/src/main/java/cz/fidentis/analyst/core/FaceTab.java +5 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,11 @@ import org.openide.windows.TopComponent; * * @author Matej Kovar */ @TopComponent.Description( preferredID = "FaceTab", iconBase="analysis.png", persistenceType = TopComponent.PERSISTENCE_NEVER ) public class FaceTab extends TopComponent { private final Canvas canvas ; Loading
GUI/src/main/java/cz/fidentis/analyst/project/ModelsTableModel.java +7 −4 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ import org.openide.util.Exceptions; import org.imgscalr.Scalr; /** * List of faces TableModel * Table with faces loaded into the current project. * * @author Matej Kovar */ Loading Loading @@ -118,13 +118,16 @@ public class ModelsTableModel extends DefaultTableModel { } public Class[] getTypes() { return types;} return types; } public void setTypes(Class[] types) { this.types = types;} this.types = types; } public boolean[] getCanEdit() { return canEdit;} return canEdit; } public void setCanEdit(boolean[] canEdit) { this.canEdit = canEdit; Loading
GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.java +25 −24 Original line number Diff line number Diff line Loading @@ -34,6 +34,9 @@ import org.openide.util.Exceptions; import org.openide.windows.WindowManager; /** * Left-hand part of the project tab consisting of project toolbar and * the {@code ModelsTableModel} (the table of faces). * This panel also handles the list of analytical tabs. * * @author Matej Kovar */ Loading @@ -42,11 +45,11 @@ public class ProjectPanel extends JPanel { public static final String SAVE_CURRENT_PROJECT_TITLE = "Save current project"; public static final String SAVE_NEW_PROJECT_TITLE = "Save new project"; private Project project; private final Project project; private static List<FaceTab> tabs = new ArrayList<>(); private static final List<FaceTab> TABS = new ArrayList<>(); private ModelsTableModel model = new ModelsTableModel(); private final ModelsTableModel model = new ModelsTableModel(); /* List of indexes of selected Rows */ private List<Integer> selectedRows = new ArrayList<>(); Loading @@ -67,7 +70,6 @@ public class ProjectPanel extends JPanel { table.getColumnModel().getColumn(2).setCellEditor(new TaskCellEditor()); table.getColumnModel().getColumn(2).setCellRenderer(new TaskCellRenderer()); table.repaint(); } /** Loading Loading @@ -392,8 +394,7 @@ public class ProjectPanel extends JPanel { private void removeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeButtonActionPerformed if (selectedRows.isEmpty()) { JOptionPane.showMessageDialog(this, "No face chosen"); JOptionPane.showMessageDialog(this, "No face chosen"); return; } int answer = JOptionPane.showConfirmDialog(null, Loading @@ -420,7 +421,7 @@ public class ProjectPanel extends JPanel { String name = model.getValueAt(row, 1).toString(); List<FaceTab> tabsToClose = new ArrayList<>(); tabs.stream().filter(t -> (t.hasFace(name))).forEachOrdered(t -> { TABS.stream().filter(t -> (t.hasFace(name))).forEachOrdered(t -> { tabsToClose.add(t); }); Loading @@ -437,7 +438,7 @@ public class ProjectPanel extends JPanel { } tabsToClose.get(0).close(); tabs.remove(tabsToClose.remove(0)); TABS.remove(tabsToClose.remove(0)); } // Remove already loaded and stored face info Loading Loading @@ -620,7 +621,7 @@ public class ProjectPanel extends JPanel { JComboBox comboBox = (JComboBox) e.getSource(); String taskName = String.valueOf(comboBox.getSelectedItem()); tabs.stream().filter(tab -> (tab.getName().equals(taskName))).forEachOrdered(tab -> { TABS.stream().filter(tab -> (tab.getName().equals(taskName))).forEachOrdered(tab -> { if (!tab.isOpened()) { tab.open(); Loading Loading @@ -658,7 +659,7 @@ public class ProjectPanel extends JPanel { } tab.close(); tabs.remove(tab); TABS.remove(tab); } } Loading Loading @@ -705,14 +706,14 @@ public class ProjectPanel extends JPanel { FaceTab newTab = new FaceTab(face, null, name, endTaskListener, project); if (!tabs.contains(newTab)) { if (!TABS.contains(newTab)) { if (camera != null) { newTab.setCamera(camera); } model.addNewTask(name, name); tabs.add(newTab); TABS.add(newTab); newTab.open(); newTab.requestActive(); Loading @@ -720,7 +721,7 @@ public class ProjectPanel extends JPanel { this.project.setSaved(false); } else { tabs.stream().filter(t -> (t.equals(newTab))).forEachOrdered(t -> { TABS.stream().filter(t -> (t.equals(newTab))).forEachOrdered(t -> { if (!t.isOpened()) { t.open(); } Loading Loading @@ -749,7 +750,7 @@ public class ProjectPanel extends JPanel { FaceTab newTab = new FaceTab(face1, face2, nameOfTab, endTaskListener, project); if (!tabs.contains(newTab)) { if (!TABS.contains(newTab)) { if (camera != null) { newTab.setCamera(camera); Loading @@ -758,7 +759,7 @@ public class ProjectPanel extends JPanel { model.addNewTask(face1.getShortName(), nameOfTab); model.addNewTask(face2.getShortName(), nameOfTab); tabs.add(newTab); TABS.add(newTab); newTab.open(); newTab.requestActive(); Loading @@ -766,7 +767,7 @@ public class ProjectPanel extends JPanel { this.project.setSaved(false); } else { tabs.stream().filter(t -> (t.equals(newTab))).forEachOrdered(t -> { TABS.stream().filter(t -> (t.equals(newTab))).forEachOrdered(t -> { if (!t.isOpened()) { t.open(); } Loading @@ -791,8 +792,8 @@ public class ProjectPanel extends JPanel { }; FaceTab newTab = new FaceTab(faces, name, endTaskListener); if (!tabs.contains(newTab)) { tabs.add(newTab); if (!TABS.contains(newTab)) { TABS.add(newTab); } newTab.open(); newTab.requestActive(); Loading Loading @@ -847,7 +848,7 @@ public class ProjectPanel extends JPanel { */ public static void serializeTasks() { tabs.forEach(tab -> { TABS.forEach(tab -> { try { tab.serializeTask(); } catch (IOException ex) { Loading @@ -865,9 +866,9 @@ public class ProjectPanel extends JPanel { serializeTasks(); } while (!tabs.isEmpty()) { tabs.get(0).close(); tabs.remove(0); while (!TABS.isEmpty()) { TABS.get(0).close(); TABS.remove(0); } faceStatePanel.clearLoadedFaces(); Loading
GUI/src/main/java/cz/fidentis/analyst/project/ProjectTopComp.java +3 −3 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ import org.openide.windows.TopComponent; ) @TopComponent.Description( preferredID = "ProjectTopComp", //iconBase="SET/PATH/TO/ICON/HERE", iconBase="checker.png", persistenceType = TopComponent.PERSISTENCE_ALWAYS ) @TopComponent.Registration(mode = "editor", openAtStartup = true) Loading Loading @@ -99,7 +99,7 @@ public final class ProjectTopComp extends TopComponent { this.requestActive(); // Asks user whether he wants to create new project or open existing projectPanel.openExistingOrNewProject(); //projectPanel.openExistingOrNewProject(); this.repaint(); } Loading