From 36022c044157067c58da23f5de56e4fdce2cc118 Mon Sep 17 00:00:00 2001 From: Radek Oslejsek <oslejsek@fi.muni.cz> Date: Mon, 19 Oct 2020 18:35:09 +0200 Subject: [PATCH] Simplified dependency on java.swing --- .../analyst/symmetry/SymmetryEstimator.java | 46 ++++++++++++------- .../fidentis/analyst/gui/SymmetryPanel.java | 5 +- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/Comparison/src/main/java/cz/fidentis/analyst/symmetry/SymmetryEstimator.java b/Comparison/src/main/java/cz/fidentis/analyst/symmetry/SymmetryEstimator.java index 98bd7a3b..0507e945 100644 --- a/Comparison/src/main/java/cz/fidentis/analyst/symmetry/SymmetryEstimator.java +++ b/Comparison/src/main/java/cz/fidentis/analyst/symmetry/SymmetryEstimator.java @@ -15,6 +15,11 @@ import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.ProgressMonitor; import javax.swing.UIManager; +//import javax.swing.ImageIcon; +//import javax.swing.JOptionPane; +//import javax.swing.JPanel; +//import javax.swing.ProgressMonitor; +//import javax.swing.UIManager; import javax.vecmath.Vector3d; /** @@ -35,7 +40,7 @@ public class SymmetryEstimator { private List<MeshTriangle> triangles; // Helping array of triangles computed from corner table - private JPanel panel; // panel for configuration of symmetry counting + //private JPanel panel; // panel for configuration of symmetry counting private final Config config; @@ -82,17 +87,17 @@ public class SymmetryEstimator { * * @return panel for configuration of symmetry counting */ - public JPanel getPanel() { - return panel; - } + //public JPanel getPanel() { + // return panel; + //} /** * * @param panel new panel for configuration of symmetry counting */ - public void setPanel(JPanel panel) { - this.panel = panel; - } + //public void setPanel(JPanel panel) { + // this.panel = panel; + //} /** * @@ -116,11 +121,12 @@ public class SymmetryEstimator { /** * Computes the approximate plane of symmetry. + * @param panel parrent window for the progress window (can be null) * @return approximate plane of symmtetry */ - public Plane getApproxSymmetryPlane() { + public Plane getApproxSymmetryPlane(JPanel panel) { - UIManager.put("ProgressMonitor.progressText", "Counting symmetry..."); + ///UIManager.put("ProgressMonitor.progressText", "Counting symmetry..."); ArrayList<ApproxSymmetryPlane> planes = new ArrayList<>(); //List<Vector3d> normals = calculateNormals(); @@ -162,9 +168,11 @@ public class SymmetryEstimator { Plane plane = new Plane(0, 0, 0, 0); int lastVotes = 0; - ProgressMonitor progressMonitor; - progressMonitor = new ProgressMonitor(panel, "Cunting...", - "Steps", 0, significantPoints.size()); + ProgressMonitor progressMonitor = null; + if (panel != null) { + UIManager.put("ProgressMonitor.progressText", "Counting symmetry..."); + progressMonitor = new ProgressMonitor(panel, "Counting...", "Steps", 0, significantPoints.size()); + } double onePercent = significantCurvatures.size() / 100.0; double percentsPerStep = 1 / onePercent; @@ -220,8 +228,10 @@ public class SymmetryEstimator { } } } - progressMonitor.setNote("Task step: " + (int) ((i + 1) * percentsPerStep)); - progressMonitor.setProgress(i); + if (panel != null) { + progressMonitor.setNote("Task step: " + (int) ((i + 1) * percentsPerStep)); + progressMonitor.setProgress(i); + } } Collections.sort(planes); @@ -253,10 +263,12 @@ public class SymmetryEstimator { if (config.isAveraging()){ plane = finalPlane; } - JOptionPane.showMessageDialog(panel, "Symmetry estimate done.", "Done", 0, - new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/exportedModel.png"))); + if (panel != null) { + JOptionPane.showMessageDialog(panel, "Symmetry estimate done.", "Done", 0, + new ImageIcon(getClass().getResource("/cz/fidentis/analyst/gui/resources/exportedModel.png"))); - progressMonitor.close(); + progressMonitor.close(); + } return plane; } diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/SymmetryPanel.java b/GUI/src/main/java/cz/fidentis/analyst/gui/SymmetryPanel.java index 4e85f9e3..cbb2d2bd 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/SymmetryPanel.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/SymmetryPanel.java @@ -11,6 +11,8 @@ import javax.swing.ImageIcon; import javax.swing.JOptionPane; import javax.swing.JSlider; import javax.swing.JTextField; +import javax.swing.ProgressMonitor; +import javax.swing.UIManager; import javax.swing.event.ChangeEvent; /** @@ -155,8 +157,7 @@ public final class SymmetryPanel extends javax.swing.JPanel { MeshModel model = new MeshModel(); canvas.changeModel(canvas.getLoadedModel()); symCounter = new SymmetryEstimator(canvas.getModel().getFacets().get(0), config); - symCounter.setPanel(this); - finalPlane = symCounter.getApproxSymmetryPlane(); + finalPlane = symCounter.getApproxSymmetryPlane(this); SymmetryEstimator counted = symCounter.mergeWithPlane(finalPlane); model.addFacet(counted.getFacet()); -- GitLab