diff --git a/GUI/src/main/java/cz/fidentis/analyst/core/ControlPanelBuilder.java b/GUI/src/main/java/cz/fidentis/analyst/core/ControlPanelBuilder.java index cb424ebb09e3045c8b3fe764c24c09953739234c..f49e9acb62dc1ace8da3c650851db2f85b829242 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/core/ControlPanelBuilder.java +++ b/GUI/src/main/java/cz/fidentis/analyst/core/ControlPanelBuilder.java @@ -22,6 +22,7 @@ import javax.swing.JComboBox; import javax.swing.JFormattedTextField; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JScrollPane; import javax.swing.JSlider; import javax.swing.JTextField; import javax.swing.event.ChangeEvent; @@ -428,5 +429,20 @@ public class ControlPanelBuilder { return slider; } - + + public JScrollPane addScrollPane(JPanel content) { + JScrollPane scrollPane = new JScrollPane(content); + + GridBagConstraints c = new GridBagConstraints(); + c.weighty = 1.0; + c.gridwidth = GridBagConstraints.REMAINDER; + c.gridy = row; + c.gridx = col; + c.anchor = GridBagConstraints.CENTER; + c.fill = GridBagConstraints.BOTH; + controlPanel.add(scrollPane, c); + + return scrollPane; + } + } diff --git a/GUI/src/main/java/cz/fidentis/analyst/distance/DistanceAction.java b/GUI/src/main/java/cz/fidentis/analyst/distance/DistanceAction.java index 93db8065be2f6d01b827d89960ae9a0b75680b8c..c05b2f5804db7f33c0caf16ddf2694fb2fe08b79 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/distance/DistanceAction.java +++ b/GUI/src/main/java/cz/fidentis/analyst/distance/DistanceAction.java @@ -34,7 +34,7 @@ public class DistanceAction extends ControlPanelAction { */ public DistanceAction(Canvas canvas, JTabbedPane topControlPanel) { super(canvas, topControlPanel); - this.controlPanel = new DistancePanel(this); + this.controlPanel = new DistancePanel(this, getSecondaryFeaturePoints().getFeaturePoints()); } @Override @@ -93,4 +93,5 @@ public class DistanceAction extends ControlPanelAction { getSecondaryDrawableFace().setHeatMap(visitor.getDistances()); } + } diff --git a/GUI/src/main/java/cz/fidentis/analyst/distance/DistancePanel.java b/GUI/src/main/java/cz/fidentis/analyst/distance/DistancePanel.java index fe8f5da82d2b1fa30f5a146794d19fcdf1cc75ca..517d5adcad751baab84ff63fe37bc6b0f179023d 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/distance/DistancePanel.java +++ b/GUI/src/main/java/cz/fidentis/analyst/distance/DistancePanel.java @@ -2,15 +2,19 @@ package cz.fidentis.analyst.distance; import cz.fidentis.analyst.core.ControlPanel; import cz.fidentis.analyst.core.ControlPanelBuilder; +import cz.fidentis.analyst.feature.FeaturePoint; import cz.fidentis.analyst.symmetry.SymmetryPanel; import java.awt.event.ActionListener; import java.util.List; import javax.swing.ImageIcon; +import javax.swing.JCheckBox; +import javax.swing.JPanel; /** * Control panel for Hausdorff distance. * * @author Radek Oslejsek + * @author Daniel Schramm */ public class DistancePanel extends ControlPanel { @@ -30,17 +34,17 @@ public class DistancePanel extends ControlPanel { /* * Configuration of panel-specific GUI elements */ - public static final String STRATEGY_POINT_TO_POINT= "Point to point"; - public static final String STRATEGY_POINT_TO_TRIANGLE= "Point to triangle"; + public static final String STRATEGY_POINT_TO_POINT = "Point to point"; + public static final String STRATEGY_POINT_TO_TRIANGLE = "Point to triangle"; /** * Constructor. * @param action Action listener */ - public DistancePanel(ActionListener action) { + public DistancePanel(ActionListener action, List<FeaturePoint> featurePoints) { this.setName(NAME); - ControlPanelBuilder builder = new ControlPanelBuilder(this); + final ControlPanelBuilder builder = new ControlPanelBuilder(this); builder.addCaptionLine("Computation options:"); builder.addLine(); @@ -61,6 +65,22 @@ public class DistancePanel extends ControlPanel { builder.addGap(); builder.addLine(); + final JPanel featurePointsPanel = new JPanel(); + final ControlPanelBuilder fpBuilder = new ControlPanelBuilder(featurePointsPanel); + for (int i = 0; i < featurePoints.size(); i++) { + final FeaturePoint featurePoint = featurePoints.get(i); + + final JCheckBox checkBox = fpBuilder.addCheckBox( + false, + null // TODO implement action + ); + checkBox.setText(featurePoint.getFeaturePointType().getName()); + + fpBuilder.addLine(); + } + builder.addScrollPane(featurePointsPanel); + builder.addLine(); + builder.addCaptionLine("Visualization options:"); builder.addLine(); builder.addCheckBoxOptionLine(