You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
227 lines
7.5 KiB
Java
227 lines
7.5 KiB
Java
package mosaic.window;
|
|
|
|
import java.awt.BorderLayout;
|
|
import java.awt.Dimension;
|
|
import java.awt.Font;
|
|
import java.awt.GridLayout;
|
|
|
|
import javax.swing.BoxLayout;
|
|
import javax.swing.JCheckBox;
|
|
import javax.swing.JLabel;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.JSpinner;
|
|
import javax.swing.JTextField;
|
|
import javax.swing.border.Border;
|
|
|
|
public class SettingsPanel extends JPanel{
|
|
// Retry with SpringLayout?
|
|
/*
|
|
* gridWidth - NumField
|
|
* gridHeight - NumField
|
|
* targetMulti - NumField
|
|
* keepRatio - CheckBox
|
|
* overlapImages - CheckBox
|
|
* alphaThreshhold - Spinner (0-255)
|
|
*
|
|
* adaptionCount - NumField
|
|
* adaptionStep - Spinner (1.01 - 2.0)
|
|
* gridErrorThresh - Spinner (0.01 - 1.0)
|
|
*
|
|
* ---PERFORMANCE---
|
|
* inputWorkerLimit - NumField
|
|
* targetWorkerLimit - NumField
|
|
* matchWorkerLimit - NumField
|
|
* placeWorkerLimit - NumField
|
|
*
|
|
*/
|
|
private final static String[] guiText = {
|
|
"Grid Width:",
|
|
"Grid Height:",
|
|
"Magnification:",
|
|
"Keep Image Ratio:",
|
|
"Overlap Images:",
|
|
"Alpha Threshhold:",
|
|
"Number of Adaption Steps (max):",
|
|
"Size of Adaption Step:",
|
|
"Grid Error Threshhold:",
|
|
"Input Worker Limit:",
|
|
"Target Worker Limit:",
|
|
"Match Worker Limit:",
|
|
"Place Worker Limit:",
|
|
"Settings"
|
|
};
|
|
|
|
private JPanel topPanel, gridPanel,
|
|
gridWidthPanel, gridHeightPanel, targetMultiPanel,
|
|
adaptionCountPanel, adaptionStepPanel, inputWorkerPanel,
|
|
targetWorkerPanel, matchWorkerPanel, placeWorkerPanel,
|
|
gridErrorPanel, alphaThreshPanel, keepRatioPanel,
|
|
overlapPanel;
|
|
private JLabel titleLabel;
|
|
private JTextField gridWidthField, gridHeightField, targetMultiField,
|
|
adaptionCountField, inputWorkerField, targetWorkerField, matchWorkerField,
|
|
placeWorkerField;
|
|
private JSpinner adaptionStepSpinner, gridErrorSpinner, alphaThreshSpinner;
|
|
private JCheckBox keepRatioCheck, overlapCheck;
|
|
|
|
private JLabel gridWidthLabel, gridHeightLabel, targetMultiLabel,
|
|
keepRatioLabel, overlapLabel, alphaThreshLabel, adaptionCountLabel,
|
|
adaptionStepLabel, gridErrorLabel, inputWorkerLabel, targetWorkerLabel,
|
|
matchWorkerLabel, placeWorkerLabel;
|
|
|
|
public SettingsPanel(){
|
|
//Initiate
|
|
gridPanel = new JPanel();
|
|
topPanel = new JPanel();
|
|
gridWidthPanel = new JPanel();
|
|
gridHeightPanel = new JPanel();
|
|
targetMultiPanel = new JPanel();
|
|
adaptionCountPanel = new JPanel();
|
|
adaptionStepPanel = new JPanel();
|
|
inputWorkerPanel = new JPanel();
|
|
targetWorkerPanel = new JPanel();
|
|
matchWorkerPanel = new JPanel();
|
|
placeWorkerPanel = new JPanel();
|
|
gridErrorPanel = new JPanel();
|
|
alphaThreshPanel = new JPanel();
|
|
keepRatioPanel = new JPanel();
|
|
overlapPanel = new JPanel();
|
|
|
|
gridWidthField = new JTextField();
|
|
gridHeightField = new JTextField();
|
|
targetMultiField = new JTextField();
|
|
adaptionCountField = new JTextField();
|
|
inputWorkerField = new JTextField();
|
|
targetWorkerField = new JTextField();
|
|
matchWorkerField = new JTextField();
|
|
placeWorkerField = new JTextField();
|
|
|
|
adaptionStepSpinner = new JSpinner();
|
|
gridErrorSpinner = new JSpinner();
|
|
alphaThreshSpinner = new JSpinner();
|
|
|
|
keepRatioCheck = new JCheckBox();
|
|
overlapCheck = new JCheckBox();
|
|
|
|
gridWidthLabel = new JLabel(guiText[0]);
|
|
gridHeightLabel = new JLabel(guiText[1]);
|
|
targetMultiLabel = new JLabel(guiText[2]);
|
|
keepRatioLabel = new JLabel(guiText[3]);
|
|
overlapLabel = new JLabel(guiText[4]);
|
|
alphaThreshLabel = new JLabel(guiText[5]);
|
|
adaptionCountLabel = new JLabel(guiText[6]);
|
|
adaptionStepLabel = new JLabel(guiText[7]);
|
|
gridErrorLabel = new JLabel(guiText[8]);
|
|
inputWorkerLabel = new JLabel(guiText[9]);
|
|
targetWorkerLabel = new JLabel(guiText[10]);
|
|
matchWorkerLabel = new JLabel(guiText[11]);
|
|
placeWorkerLabel = new JLabel(guiText[12]);
|
|
titleLabel = new JLabel(guiText[13]);
|
|
// End Initiate
|
|
|
|
//Config Component
|
|
titleLabel.setFont(titleLabel.getFont().deriveFont(40f));
|
|
|
|
Dimension lineSize = new Dimension(100, 40);
|
|
gridWidthField.setMaximumSize(lineSize);
|
|
gridHeightField.setMaximumSize(lineSize);
|
|
targetMultiField.setMaximumSize(lineSize);
|
|
adaptionCountField.setMaximumSize(lineSize);
|
|
inputWorkerField.setMaximumSize(lineSize);
|
|
targetWorkerField.setMaximumSize(lineSize);
|
|
matchWorkerField.setMaximumSize(lineSize);
|
|
placeWorkerField.setMaximumSize(lineSize);
|
|
|
|
adaptionStepSpinner.setMaximumSize(lineSize);
|
|
gridErrorSpinner.setMaximumSize(lineSize);
|
|
alphaThreshSpinner.setMaximumSize(lineSize);
|
|
|
|
keepRatioCheck.setMaximumSize(lineSize);
|
|
overlapCheck.setMaximumSize(lineSize);
|
|
//End Config Components
|
|
|
|
// Add to Panels
|
|
add(topPanel, BorderLayout.WEST);
|
|
add(gridPanel, BorderLayout.WEST);
|
|
|
|
topPanel.add(titleLabel);
|
|
|
|
gridWidthPanel.add(gridWidthLabel);
|
|
gridWidthPanel.add(gridWidthField);
|
|
|
|
gridHeightPanel.add(gridHeightLabel);
|
|
gridHeightPanel.add(gridHeightField);
|
|
|
|
targetMultiPanel.add(targetMultiLabel);
|
|
targetMultiPanel.add(targetMultiField);
|
|
|
|
keepRatioPanel.add(keepRatioLabel);
|
|
keepRatioPanel.add(keepRatioCheck);
|
|
|
|
overlapPanel.add(overlapLabel);
|
|
overlapPanel.add(overlapCheck);
|
|
|
|
alphaThreshPanel.add(alphaThreshLabel);
|
|
alphaThreshPanel.add(alphaThreshSpinner);
|
|
|
|
adaptionCountPanel.add(adaptionCountLabel);
|
|
adaptionCountPanel.add(adaptionCountField);
|
|
|
|
adaptionStepPanel.add(adaptionStepLabel);
|
|
adaptionStepPanel.add(adaptionStepSpinner);
|
|
|
|
gridErrorPanel.add(gridErrorLabel);
|
|
gridErrorPanel.add(gridErrorSpinner);
|
|
|
|
inputWorkerPanel.add(inputWorkerLabel);
|
|
inputWorkerPanel.add(inputWorkerField);
|
|
|
|
targetWorkerPanel.add(targetWorkerLabel);
|
|
targetWorkerPanel.add(targetWorkerField);
|
|
|
|
targetMultiPanel.add(targetMultiLabel);
|
|
targetMultiPanel.add(targetMultiField);
|
|
|
|
matchWorkerPanel.add(matchWorkerLabel);
|
|
matchWorkerPanel.add(matchWorkerField);
|
|
|
|
placeWorkerPanel.add(placeWorkerLabel);
|
|
placeWorkerPanel.add(placeWorkerField);
|
|
|
|
gridPanel.add(gridWidthPanel);
|
|
gridPanel.add(gridHeightPanel);
|
|
gridPanel.add(targetMultiPanel);
|
|
gridPanel.add(overlapPanel);
|
|
gridPanel.add(keepRatioPanel);
|
|
gridPanel.add(alphaThreshPanel);
|
|
gridPanel.add(adaptionCountPanel);
|
|
gridPanel.add(adaptionStepPanel);
|
|
gridPanel.add(inputWorkerPanel);
|
|
gridPanel.add(targetWorkerPanel);
|
|
gridPanel.add(matchWorkerPanel);
|
|
gridPanel.add(placeWorkerPanel);
|
|
gridPanel.add(gridErrorPanel);
|
|
//End Add to Panels
|
|
|
|
//Setup Layouts
|
|
gridWidthPanel.setLayout(new BoxLayout(gridWidthPanel, BoxLayout.LINE_AXIS));
|
|
gridHeightPanel.setLayout(new BoxLayout(gridHeightPanel, BoxLayout.LINE_AXIS));
|
|
targetMultiPanel.setLayout(new BoxLayout(targetMultiPanel, BoxLayout.LINE_AXIS));
|
|
keepRatioPanel.setLayout(new BoxLayout(keepRatioPanel, BoxLayout.LINE_AXIS));
|
|
overlapPanel.setLayout(new BoxLayout(overlapPanel, BoxLayout.LINE_AXIS));
|
|
alphaThreshPanel.setLayout(new BoxLayout(alphaThreshPanel, BoxLayout.LINE_AXIS));
|
|
adaptionCountPanel.setLayout(new BoxLayout(adaptionCountPanel, BoxLayout.LINE_AXIS));
|
|
adaptionStepPanel.setLayout(new BoxLayout(adaptionStepPanel, BoxLayout.LINE_AXIS));
|
|
gridErrorPanel.setLayout(new BoxLayout(gridErrorPanel, BoxLayout.LINE_AXIS));
|
|
inputWorkerPanel.setLayout(new BoxLayout(inputWorkerPanel, BoxLayout.LINE_AXIS));
|
|
targetWorkerPanel.setLayout(new BoxLayout(targetWorkerPanel, BoxLayout.LINE_AXIS));
|
|
targetMultiPanel.setLayout(new BoxLayout(targetMultiPanel, BoxLayout.LINE_AXIS));
|
|
matchWorkerPanel.setLayout(new BoxLayout(matchWorkerPanel, BoxLayout.LINE_AXIS));
|
|
placeWorkerPanel.setLayout(new BoxLayout(placeWorkerPanel, BoxLayout.LINE_AXIS));
|
|
|
|
gridPanel.setLayout(new GridLayout(13, 1));
|
|
this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
|
|
//End Setup Layouts
|
|
}
|
|
}
|