/* * CreatePngWalkDialog.java * * Created on Jun 30, 2010, 9:09:46 AM */ package org.autoplot.pngwalk; import java.io.File; import java.util.logging.Level; import java.util.logging.Logger; import java.util.prefs.BackingStoreException; import java.util.prefs.Preferences; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.JTextField; import org.autoplot.AutoplotUtil; import org.autoplot.EventsListToolUtil; import org.autoplot.datasource.AutoplotSettings; import org.autoplot.datasource.DataSetURI; import org.autoplot.datasource.TimeRangeTool; /** * Provide dialog to control make pngwalk code. * * see http://sourceforge.net/tracker/index.php?func=detail&aid=2984095&group_id=199733&atid=970685 * @author jbf */ public class CreatePngWalkDialog extends javax.swing.JPanel { private static final Logger logger= org.das2.util.LoggerManager.getLogger("autoplot.pngwalk"); /** Creates new form CreatePngWalkDialog */ public CreatePngWalkDialog() { initComponents(); EventsListToolUtil.deflts(eventsFileSelector); String home= java.lang.System.getProperty( "user.home" ) + java.lang.System.getProperty( "file.separator" ); home= home.replaceAll("\\\\","/"); outputFolderTf.setText( home + "pngwalk/" ); setDefaults(); checkExists(); } private void setDefaults() { Preferences prefs= AutoplotSettings.settings().getPreferences( CreatePngWalkDialog.class ); String file= prefs.get( "filenameRoot", flnRootTf.getText() ); flnRootTf.setText(file); String home= prefs.get( "outputFolder", outputFolderTf.getText() ); outputFolderTf.setText(home); String timeFormat= prefs.get("timeFormat", (String)timeFormatCB.getSelectedItem() ); timeFormatCB.setSelectedItem(timeFormat); String timeRange= prefs.get("timeRange", timeRangeTf.getText() ); timeRangeTf.setText( timeRange ); boolean thumbs= prefs.getBoolean( "createThumbs", createThumbsCb.isSelected() ); createThumbsCb.setSelected(thumbs); boolean useTimeRange= prefs.getBoolean( "useTimeRange", timeRangeRadioButton.isSelected() ); timeRangeRadioButton.setSelected(useTimeRange); boolean useEventsFile= prefs.getBoolean( "useEventsFile", eventsFileRadioButton.isSelected() ); eventsFileRadioButton.setSelected(useEventsFile); batchUriNameCB.setSelected(prefs.get( "batchUriName", "" ).equals("$o")); timeFormatCB.setEnabled( !batchUriNameCB.isSelected() ); String eventsFile= prefs.get( "eventsFile", eventsFileSelector.getValue() ); eventsFileSelector.setValue(eventsFile); autorangeCB.setSelected( prefs.getBoolean( "autorange", autorangeCB.isSelected() ) ); autorangeFlagsCB.setSelected( prefs.getBoolean( "autorangeFlags", autorangeFlagsCB.isSelected() ) ); rescaleComboBox.setSelectedItem( prefs.get( "rescalex", (String)rescaleComboBox.getSelectedItem() ) ); updateCB.setSelected( prefs.getBoolean( "update", updateCB.isSelected() ) ); runOnCopyCB.setSelected( prefs.getBoolean( "runOnCopy", runOnCopyCB.isSelected() ) ); versionTextField.setText( prefs.get( "version", versionTextField.getText() ) ); removeNoDataImagesCB.setSelected( prefs.getBoolean( "removeNoData", removeNoDataImagesCB.isSelected() )); pngFormatCB.setSelected( prefs.get("outputFormat", pngFormatCB.isSelected() ? "png": "pdf" ).equals("png") ); pdfFormatCB.setSelected( prefs.get("outputFormat", pngFormatCB.isSelected() ? "png": "pdf" ).equals("pdf") ); } public void writeDefaults() { Preferences prefs= AutoplotSettings.settings().getPreferences( CreatePngWalkDialog.class ); prefs.put( "filenameRoot", flnRootTf.getText().trim() ); File ff= getOutputFolder( getOutputFolderTf().getText().trim() ); prefs.put( "outputFolder", DataSetURI.fromFile(ff).substring(7) ); prefs.put( "timeFormat", ((String)timeFormatCB.getSelectedItem()).trim() ); prefs.put( "timeRange", timeRangeTf.getText().trim() ); prefs.putBoolean( "createThumbs", createThumbsCb.isSelected() ); prefs.putBoolean( "autorange", autorangeCB.isSelected() ); prefs.putBoolean( "autorangeFlags", autorangeFlagsCB.isSelected() ); prefs.put( "rescalex", ((String)rescaleComboBox.getSelectedItem()).trim() ); prefs.putBoolean( "update", updateCB.isSelected() ); prefs.putBoolean( "removeNoData", removeNoDataImagesCB.isSelected() ); prefs.putBoolean( "runOnCopy", runOnCopyCB.isSelected() ); prefs.put( "version", ((String)versionTextField.getText().trim()) ); prefs.putBoolean( "useTimeRange", timeRangeRadioButton.isSelected() ); prefs.putBoolean( "useEventsFile", eventsFileRadioButton.isSelected() ); prefs.put( "eventsFile", eventsFileSelector.getValue() ); prefs.put( "batchUriName", batchUriNameCB.isSelected() ? "$o" : "" ); prefs.put( "outputFormat", pngFormatCB.isSelected() ? "png" : "pdf" ); try { prefs.flush(); } catch (BackingStoreException ex) { logger.log(Level.SEVERE, ex.getMessage(), ex); } } private File getOutputFolder( String sff ) { if ( sff.startsWith("file://") ) sff= sff.substring(7); if ( sff.startsWith("file:") ) sff= sff.substring(5); File ff= new File( sff ); return ff; } public CreatePngWalk.Params getParams() { CreatePngWalk.Params params = new CreatePngWalk.Params(); File ff= getOutputFolder( getOutputFolderTf().getText().trim() ); params.outputFolder = DataSetURI.fromFile( ff ).substring(7); if ( !( params.outputFolder.endsWith("/") ) ) { params.outputFolder= params.outputFolder + "/"; } params.timeRangeStr = getTimeRangeTf().getText().trim(); params.product = getFlnRootTf().getText().trim(); params.timeFormat = ((String)getTimeFormatCB().getSelectedItem()).trim(); params.createThumbs = getCreateThumbsCb().isSelected(); params.autorange= autorangeCB.isSelected(); params.autorangeFlags= autorangeFlagsCB.isSelected(); params.rescalex= ((String)rescaleComboBox.getSelectedItem()).trim(); params.update= updateCB.isSelected(); params.runOnCopy= runOnCopyCB.isSelected(); params.removeNoData= removeNoDataImagesCB.isSelected(); params.version= versionTextField.getText().trim(); String s= eventsFileSelector.getValue(); if ( s.startsWith("(") && s.endsWith(")") ) { params.batchUri= ""; } else { params.batchUri= eventsFileSelector.getValue(); } params.useBatchUri= eventsFileRadioButton.isSelected(); if ( batchUriNameCB.isSelected() ) { params.batchUriName="$o"; } else { params.batchUriName=""; if ( params.timeFormat.length()<2 ) { throw new IllegalArgumentException("Time Format must be at least two characters in length"); } } params.outputFormat= pngFormatCB.isSelected() ? "png" : "pdf"; return params; } private void checkExists() { String sf= outputFolderTf.getText(); File f= new File( sf ); overwriteCB.setEnabled(f.exists()); if ( !f.exists() ) { overwriteCB.setSelected(false); } } public JTextField getFlnRootTf() { return flnRootTf; } public JTextField getOutputFolderTf() { return outputFolderTf; } public JTextField getTimeRangeTf() { return timeRangeTf; } public JComboBox getTimeFormatCB() { return timeFormatCB; } public JCheckBox getCreateThumbsCb() { return createThumbsCb; } public JCheckBox getOverwriteCb() { return overwriteCB; } /** 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. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { bindingGroup = new org.jdesktop.beansbinding.BindingGroup(); buttonGroup1 = new javax.swing.ButtonGroup(); buttonGroup2 = new javax.swing.ButtonGroup(); jLabel1 = new javax.swing.JLabel(); flnRootTf = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); outputFolderTf = new javax.swing.JTextField(); pickFolderButton = new javax.swing.JButton(); jLabel3 = new javax.swing.JLabel(); timeRangeTf = new javax.swing.JTextField(); createThumbsCb = new javax.swing.JCheckBox(); overwriteCB = new javax.swing.JCheckBox(); jLabel5 = new javax.swing.JLabel(); versionTextField = new javax.swing.JTextField(); updateCB = new javax.swing.JCheckBox(); jLabel6 = new javax.swing.JLabel(); rescaleComboBox = new javax.swing.JComboBox(); autorangeCB = new javax.swing.JCheckBox(); timeFormatCB = new javax.swing.JComboBox(); timeRangeToolButton = new javax.swing.JButton(); timeRangeRadioButton = new javax.swing.JRadioButton(); eventsFileRadioButton = new javax.swing.JRadioButton(); eventsFileSelector = new org.autoplot.datasource.DataSetSelector(); pngFormatCB = new javax.swing.JRadioButton(); pdfFormatCB = new javax.swing.JRadioButton(); jLabel4 = new javax.swing.JLabel(); batchUriNameCB = new javax.swing.JCheckBox(); runOnCopyCB = new javax.swing.JCheckBox(); autorangeFlagsCB = new javax.swing.JCheckBox(); removeNoDataImagesCB = new javax.swing.JCheckBox(); jLabel1.setText("Filename Root:"); jLabel1.setToolTipText("Stem to identify result within folder."); flnRootTf.setText("product"); flnRootTf.setToolTipText("Stem used to ensure unique filenames"); jLabel2.setText("Output Folder:"); outputFolderTf.setText("/folder/"); outputFolderTf.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { outputFolderTfKeyReleased(evt); } public void keyTyped(java.awt.event.KeyEvent evt) { outputFolderTfKeyTyped(evt); } }); pickFolderButton.setText("Pick"); pickFolderButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { pickFolderButtonActionPerformed(evt); } }); jLabel3.setText("Time Format:"); jLabel3.setToolTipText("Time format for each png, used to infer cadence of sequence"); timeRangeTf.setText("2010"); org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, timeRangeRadioButton, org.jdesktop.beansbinding.ELProperty.create("${selected}"), timeRangeTf, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); createThumbsCb.setSelected(true); createThumbsCb.setText("Create Thumbs"); createThumbsCb.setToolTipText("create thumbs subfolders for performance"); overwriteCB.setText("Overwrite"); overwriteCB.setToolTipText("overwrite existing pngwalk"); jLabel5.setText("Version (Optional):"); jLabel5.setToolTipText("Add this version id to files"); versionTextField.setText(" "); updateCB.setText("Update Sequence"); updateCB.setToolTipText("Only update the sequence, skipping images already computed"); jLabel6.setText("Rescale (Optional):"); jLabel6.setToolTipText("Rescale before making image, possibly showing surrounding context."); rescaleComboBox.setEditable(true); rescaleComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "0%,100%", "0%-1hr,100%+1hr", "-300%,400%" })); autorangeCB.setText("Autorange Each"); autorangeCB.setToolTipText("Autorange in Y and Z each image of the sequence"); timeFormatCB.setEditable(true); timeFormatCB.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "$Y$m$d", "$Y", "$Y$(m,span=3)", "$Y$m", "$Y_$j", "$Y$m$d_$H", "$Y$m$d_$H$M", "$Y$m$d_$H$M$S", "$Y$m$d_$H$M$S.$(subsec,places=3)", "$(o,id=rbspa-pp)", "$(o,id=http://das2.org/Orbits/marsx.dat)", " ", " " })); timeRangeToolButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/autoplot/datasource/calendar.png"))); // NOI18N timeRangeToolButton.setToolTipText("Use time range tool"); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, timeRangeRadioButton, org.jdesktop.beansbinding.ELProperty.create("${selected}"), timeRangeToolButton, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); timeRangeToolButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { timeRangeToolButtonActionPerformed(evt); } }); buttonGroup1.add(timeRangeRadioButton); timeRangeRadioButton.setSelected(true); timeRangeRadioButton.setText("Generate intervals to cover time range:"); timeRangeRadioButton.setToolTipText("Generate intervals based on the output filename. For example 2010 with $Y$m$d is covered by 2010-01-01, 2010-01-02, ..., 2010-12-31"); buttonGroup1.add(eventsFileRadioButton); eventsFileRadioButton.setText("Use events file that contains list of times:"); eventsFileRadioButton.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { eventsFileRadioButtonItemStateChanged(evt); } }); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, eventsFileRadioButton, org.jdesktop.beansbinding.ELProperty.create("${selected}"), eventsFileSelector, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); buttonGroup2.add(pngFormatCB); pngFormatCB.setText("PNG"); pngFormatCB.setToolTipText("Write PNG files"); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, createThumbsCb, org.jdesktop.beansbinding.ELProperty.create("${enabled}"), pngFormatCB, org.jdesktop.beansbinding.BeanProperty.create("selected")); bindingGroup.addBinding(binding); pngFormatCB.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { pngFormatCBActionPerformed(evt); } }); buttonGroup2.add(pdfFormatCB); pdfFormatCB.setText("PDF"); pdfFormatCB.setToolTipText("Write PDF files"); jLabel4.setText("Output Format:"); batchUriNameCB.setText("Events file specifies product names"); batchUriNameCB.setToolTipText("The events file contains the file name, so for example instead of product_$Y$m$d,\n
just use the last column when generating the filename.\n
2000-01-09T06:50:41.155Z\t2000-01-09T13:46:34.224Z\ta/o1\t\n"); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, eventsFileRadioButton, org.jdesktop.beansbinding.ELProperty.create("${selected}"), batchUriNameCB, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); batchUriNameCB.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { batchUriNameCBActionPerformed(evt); } }); runOnCopyCB.setSelected(true); runOnCopyCB.setText("Run in background"); runOnCopyCB.setToolTipText("Run the PNG Walk on a copy in the background. Note only properties conveyed by a .vap file will appear on the produced images."); autorangeFlagsCB.setText("Check Autorange flag"); autorangeFlagsCB.setToolTipText("Check each axis' autorange property, true indicates the axis should be reset."); binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, autorangeCB, org.jdesktop.beansbinding.ELProperty.create("${selected}"), autorangeFlagsCB, org.jdesktop.beansbinding.BeanProperty.create("enabled")); bindingGroup.addBinding(binding); removeNoDataImagesCB.setText("Remove No Data Images"); removeNoDataImagesCB.setToolTipText("Check that the image produced will actually contain displayed data, and skip those that don't."); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(12, 12, 12) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(overwriteCB) .add(layout.createSequentialGroup() .add(outputFolderTf) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(pickFolderButton)))) .add(layout.createSequentialGroup() .add(jLabel2) .add(0, 0, Short.MAX_VALUE))) .add(45, 45, 45)) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jLabel1) .add(jLabel3) .add(layout.createSequentialGroup() .add(12, 12, 12) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(org.jdesktop.layout.GroupLayout.LEADING, timeFormatCB, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(org.jdesktop.layout.GroupLayout.LEADING, flnRootTf)))) .add(25, 25, 25)) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(createThumbsCb) .add(35, 35, 35) .add(jLabel4) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(pngFormatCB) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(pdfFormatCB)) .add(eventsFileRadioButton) .add(timeRangeRadioButton) .add(layout.createSequentialGroup() .add(12, 12, 12) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(eventsFileSelector, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(batchUriNameCB) .add(layout.createSequentialGroup() .add(timeRangeTf, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 306, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(timeRangeToolButton))) .add(0, 0, Short.MAX_VALUE))))) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED))) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(autorangeCB, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(updateCB) .add(jLabel5) .add(jLabel6) .add(runOnCopyCB) .add(layout.createSequentialGroup() .add(12, 12, 12) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(rescaleComboBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 174, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(versionTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 74, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(autorangeFlagsCB))) .add(removeNoDataImagesCB)) .add(0, 0, Short.MAX_VALUE)))))) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(jLabel2) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(outputFolderTf, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(pickFolderButton)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(overwriteCB) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel1) .add(jLabel5)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(flnRootTf, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(versionTextField, 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(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel3) .add(jLabel6)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(timeFormatCB, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(rescaleComboBox, 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(autorangeCB) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(timeRangeRadioButton) .add(autorangeFlagsCB)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(timeRangeToolButton) .add(timeRangeTf, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(7, 7, 7) .add(eventsFileRadioButton) .add(1, 1, 1) .add(eventsFileSelector, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(3, 3, 3) .add(batchUriNameCB) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(pngFormatCB) .add(pdfFormatCB) .add(jLabel4)) .add(createThumbsCb))) .add(layout.createSequentialGroup() .add(updateCB) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(runOnCopyCB) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(removeNoDataImagesCB))) .addContainerGap(53, Short.MAX_VALUE)) ); bindingGroup.bind(); }//
//GEN-END:initComponents private void pickFolderButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pickFolderButtonActionPerformed JFileChooser chooser= new JFileChooser( getOutputFolderTf().getText() ); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); int r= chooser.showSaveDialog(this); if ( r==JFileChooser.APPROVE_OPTION ) { outputFolderTf.setText( chooser.getSelectedFile().toString() ); } }//GEN-LAST:event_pickFolderButtonActionPerformed private void outputFolderTfKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_outputFolderTfKeyTyped checkExists(); }//GEN-LAST:event_outputFolderTfKeyTyped private void outputFolderTfKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_outputFolderTfKeyReleased checkExists(); }//GEN-LAST:event_outputFolderTfKeyReleased private void timeRangeToolButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_timeRangeToolButtonActionPerformed TimeRangeTool t=new TimeRangeTool(); t.setSelectedRange( timeRangeTf.getText() );//TODO: goofy if ( JOptionPane.OK_OPTION==AutoplotUtil.showConfirmDialog( this, t, "Select time range", JOptionPane.OK_CANCEL_OPTION ) ) { String str= t.getSelectedRange(); timeRangeTf.setText(str); } }//GEN-LAST:event_timeRangeToolButtonActionPerformed private void pngFormatCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pngFormatCBActionPerformed // TODO add your handling code here: }//GEN-LAST:event_pngFormatCBActionPerformed private void batchUriNameCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_batchUriNameCBActionPerformed timeFormatCB.setEnabled( !batchUriNameCB.isSelected() ); }//GEN-LAST:event_batchUriNameCBActionPerformed private void eventsFileRadioButtonItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_eventsFileRadioButtonItemStateChanged if ( !eventsFileRadioButton.isSelected() ) { batchUriNameCB.setSelected(false); timeFormatCB.setEnabled(true); } }//GEN-LAST:event_eventsFileRadioButtonItemStateChanged // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JCheckBox autorangeCB; private javax.swing.JCheckBox autorangeFlagsCB; private javax.swing.JCheckBox batchUriNameCB; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.ButtonGroup buttonGroup2; private javax.swing.JCheckBox createThumbsCb; private javax.swing.JRadioButton eventsFileRadioButton; private org.autoplot.datasource.DataSetSelector eventsFileSelector; private javax.swing.JTextField flnRootTf; private javax.swing.JLabel jLabel1; 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.JTextField outputFolderTf; private javax.swing.JCheckBox overwriteCB; private javax.swing.JRadioButton pdfFormatCB; private javax.swing.JButton pickFolderButton; private javax.swing.JRadioButton pngFormatCB; private javax.swing.JCheckBox removeNoDataImagesCB; private javax.swing.JComboBox rescaleComboBox; private javax.swing.JCheckBox runOnCopyCB; private javax.swing.JComboBox timeFormatCB; private javax.swing.JRadioButton timeRangeRadioButton; private javax.swing.JTextField timeRangeTf; private javax.swing.JButton timeRangeToolButton; private javax.swing.JCheckBox updateCB; private javax.swing.JTextField versionTextField; private org.jdesktop.beansbinding.BindingGroup bindingGroup; // End of variables declaration//GEN-END:variables }