/* * SettingsFrame.java * * Created on July 10, 2007, 5:05 PM */ package KLICTWebcam; import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * * @author vovtz */ public class SettingsFrame extends javax.swing.JFrame implements WindowListener { private Main mainFrame; private Color selectedColour; private TrackColourSelection colourSelector; /** Creates new form SettingsFrame */ public SettingsFrame(Main mainFrame) { this.mainFrame = mainFrame; initComponents(); selectedColour = mainFrame.getTrackColour(); trackColourPreview.setBackground(selectedColour); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // //GEN-BEGIN:initComponents private void initComponents() { jLabel1 = new javax.swing.JLabel(); imageTypeComboBox = new javax.swing.JComboBox(); jLabel2 = new javax.swing.JLabel(); jSeparator1 = new javax.swing.JSeparator(); detectGlobsCheckBox = new javax.swing.JCheckBox(); jLabel3 = new javax.swing.JLabel(); minSizeSlider = new javax.swing.JSlider(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); maxSizeSlider = new javax.swing.JSlider(); jLabel6 = new javax.swing.JLabel(); globOutlineComboBox = new javax.swing.JComboBox(); jLabel7 = new javax.swing.JLabel(); jSeparator2 = new javax.swing.JSeparator(); jLabel8 = new javax.swing.JLabel(); trackColourPreview = new javax.swing.JPanel(); colourSelectorButton = new javax.swing.JButton(); jLabel9 = new javax.swing.JLabel(); sensitivitySlider = new javax.swing.JSlider(); jLabel10 = new javax.swing.JLabel(); densitySlider = new javax.swing.JSlider(); jSeparator3 = new javax.swing.JSeparator(); jLabel11 = new javax.swing.JLabel(); adaptivitySlider = new javax.swing.JSlider(); jLabel12 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); setResizable(false); jLabel1.setLabelFor(imageTypeComboBox); jLabel1.setText("Show:"); imageTypeComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Normal", "Retina", "Difference", "Globs (only for debugging)", "No" })); jLabel2.setText("Image"); detectGlobsCheckBox.setText("Detect Globs"); detectGlobsCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); detectGlobsCheckBox.setMargin(new java.awt.Insets(0, 0, 0, 0)); jLabel3.setLabelFor(minSizeSlider); jLabel3.setText("Min. size:"); minSizeSlider.setFont(new java.awt.Font("#GungSeo", 0, 5)); minSizeSlider.setMajorTickSpacing(2000); minSizeSlider.setMaximum(20000); minSizeSlider.setMinimum(10); minSizeSlider.setMinorTickSpacing(500); minSizeSlider.setPaintTicks(true); minSizeSlider.setValue(200); jLabel4.setText(minSizeSlider.getUIClassID()); jLabel4.setEnabled(false); jLabel4.setFocusable(false); jLabel4.setRequestFocusEnabled(false); jLabel4.setVerifyInputWhenFocusTarget(false); jLabel5.setLabelFor(maxSizeSlider); jLabel5.setText("Max. size:"); maxSizeSlider.setMajorTickSpacing(2000); maxSizeSlider.setMaximum(20000); maxSizeSlider.setMinimum(10); maxSizeSlider.setMinorTickSpacing(500); maxSizeSlider.setPaintTicks(true); maxSizeSlider.setValue(200); jLabel6.setLabelFor(globOutlineComboBox); jLabel6.setText("Show:"); globOutlineComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Center", "Box", "Polygon", "Pixels" })); globOutlineComboBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { globOutlineComboBoxActionPerformed(evt); } }); jLabel7.setText("of Globs"); jLabel8.setText("Track Colour:"); trackColourPreview.setBorder(javax.swing.BorderFactory.createEtchedBorder()); trackColourPreview.setEnabled(false); trackColourPreview.setFocusable(false); trackColourPreview.setRequestFocusEnabled(false); trackColourPreview.setVerifyInputWhenFocusTarget(false); org.jdesktop.layout.GroupLayout trackColourPreviewLayout = new org.jdesktop.layout.GroupLayout(trackColourPreview); trackColourPreview.setLayout(trackColourPreviewLayout); trackColourPreviewLayout.setHorizontalGroup( trackColourPreviewLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(0, 37, Short.MAX_VALUE) ); trackColourPreviewLayout.setVerticalGroup( trackColourPreviewLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(0, 25, Short.MAX_VALUE) ); colourSelectorButton.setText("Choose..."); colourSelectorButton.setNextFocusableComponent(sensitivitySlider); colourSelectorButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { colourSelectorButtonActionPerformed(evt); } }); jLabel9.setLabelFor(sensitivitySlider); jLabel9.setText("Sensitivity:"); sensitivitySlider.setMajorTickSpacing(10); sensitivitySlider.setMaximum(200); sensitivitySlider.setMinorTickSpacing(5); sensitivitySlider.setPaintTicks(true); sensitivitySlider.setValue(10); jLabel10.setLabelFor(densitySlider); jLabel10.setText("Density:"); densitySlider.setMajorTickSpacing(10); densitySlider.setMaximum(200); densitySlider.setMinorTickSpacing(5); densitySlider.setPaintTicks(true); densitySlider.setValue(0); jLabel11.setLabelFor(adaptivitySlider); jLabel11.setText("Adaptivity:"); jLabel11.setAlignmentY(0.0F); adaptivitySlider.setMajorTickSpacing(5); adaptivitySlider.setMaximum(20); adaptivitySlider.setMinorTickSpacing(1); adaptivitySlider.setPaintTicks(true); adaptivitySlider.setSnapToTicks(true); adaptivitySlider.setValue(0); jLabel12.setFont(new java.awt.Font("Lucida Grande", 0, 8)); jLabel12.setText("(0 means none)"); jLabel12.setVerticalAlignment(javax.swing.SwingConstants.TOP); jLabel12.setAlignmentY(0.0F); jLabel12.setEnabled(false); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, jSeparator1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 515, Short.MAX_VALUE) .add(layout.createSequentialGroup() .addContainerGap() .add(jLabel1) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(imageTypeComboBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 214, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jLabel2) .addContainerGap(196, Short.MAX_VALUE)) .add(layout.createSequentialGroup() .addContainerGap() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jLabel5) .add(jLabel3)) .add(13, 13, 13) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) .add(maxSizeSlider, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(minSizeSlider, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 369, Short.MAX_VALUE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 6, Short.MAX_VALUE) .add(jLabel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addContainerGap()) .add(layout.createSequentialGroup() .addContainerGap() .add(detectGlobsCheckBox) .addContainerGap(395, Short.MAX_VALUE)) .add(layout.createSequentialGroup() .addContainerGap() .add(jLabel6) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(globOutlineComboBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 210, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(16, 16, 16) .add(jLabel7) .addContainerGap(174, Short.MAX_VALUE)) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jLabel10) .add(jLabel11) .add(jLabel9))) .add(layout.createSequentialGroup() .add(20, 20, 20) .add(jLabel12))) .add(15, 15, 15) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) .add(densitySlider, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(sensitivitySlider, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 362, Short.MAX_VALUE) .add(adaptivitySlider, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(49, Short.MAX_VALUE)) .add(org.jdesktop.layout.GroupLayout.TRAILING, jSeparator3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 515, Short.MAX_VALUE) .add(layout.createSequentialGroup() .addContainerGap() .add(jLabel8) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(trackColourPreview, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(colourSelectorButton) .addContainerGap()) .add(org.jdesktop.layout.GroupLayout.TRAILING, jSeparator2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 515, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(28, 28, 28) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel1) .add(jLabel2) .add(imageTypeComboBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(20, 20, 20) .add(jSeparator1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(17, 17, 17) .add(detectGlobsCheckBox) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false) .add(layout.createSequentialGroup() .add(19, 19, 19) .add(minSizeSlider, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(jLabel3) .add(14, 14, 14)))) .add(layout.createSequentialGroup() .add(54, 54, 54) .add(jLabel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 18, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) .add(3, 3, 3) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(maxSizeSlider, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 30, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(21, 21, 21) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel6) .add(globOutlineComboBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabel7)) .add(16, 16, 16) .add(jSeparator2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(4, 4, 4) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(layout.createSequentialGroup() .add(jLabel8) .add(9, 9, 9)) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(colourSelectorButton) .add(trackColourPreview, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(4, 4, 4))) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(sensitivitySlider, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(layout.createSequentialGroup() .add(10, 10, 10) .add(jLabel9))) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(16, 16, 16) .add(jLabel10)) .add(layout.createSequentialGroup() .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(densitySlider, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) .add(6, 6, 6) .add(jSeparator3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(20, 20, 20) .add(jLabel11) .add(1, 1, 1) .add(jLabel12)) .add(layout.createSequentialGroup() .add(10, 10, 10) .add(adaptivitySlider, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) .addContainerGap(26, Short.MAX_VALUE)) ); pack(); }// //GEN-END:initComponents public Color getSelectedColour() { return selectedColour; } public void setSelectedColour(Color selectedColour) { this.selectedColour = selectedColour; } private void colourSelectorButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colourSelectorButtonActionPerformed colourSelector = new TrackColourSelection(this); colourSelector.setVisible(true); colourSelector.addWindowListener(this); }//GEN-LAST:event_colourSelectorButtonActionPerformed private void globOutlineComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_globOutlineComboBoxActionPerformed System.out.println(globOutlineComboBox.getSelectedItem()); mainFrame.setGlobType(((JComboBox)evt.getSource()).getSelectedItem().toString()); }//GEN-LAST:event_globOutlineComboBoxActionPerformed public void windowClosed(WindowEvent e) { colourSelector.removeWindowListener(this); mainFrame.setTrackColour(selectedColour); trackColourPreview.setBackground(selectedColour); trackColourPreview.repaint(); } public void windowActivated(WindowEvent e) {} public void windowClosing(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowOpened(WindowEvent e) {} // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JSlider adaptivitySlider; private javax.swing.JButton colourSelectorButton; private javax.swing.JSlider densitySlider; private javax.swing.JCheckBox detectGlobsCheckBox; private javax.swing.JComboBox globOutlineComboBox; private javax.swing.JComboBox imageTypeComboBox; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; private javax.swing.JSlider maxSizeSlider; private javax.swing.JSlider minSizeSlider; private javax.swing.JSlider sensitivitySlider; private javax.swing.JPanel trackColourPreview; // End of variables declaration//GEN-END:variables }