/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.das2.qds.filters; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; import java.util.logging.Level; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JCheckBox; import javax.swing.JFormattedTextField; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JSpinner; import javax.swing.SpinnerNumberModel; import org.das2.qds.QDataSet; import static org.das2.qds.filters.AbstractFilterEditorPanel.logger; /** * GUI for the slices operation. * @author jbf */ public class SlicesFilterEditorPanel extends AbstractFilterEditorPanel implements FilterEditorPanel { static final long t0= System.currentTimeMillis(); int[] qube= null; JSpinner[] spinners= new JSpinner[8]; JCheckBox[] checkboxs= new JCheckBox[8]; int rank= 8; public SlicesFilterEditorPanel() { setFilter("|slices(:)"); } @Override public String getFilter() { logger.fine( "getFilter" ); StringBuilder result= new StringBuilder("|slices("); for ( int i=0; imaxIndex ) newIndex= maxIndex; } snm.setValue( newIndex ); } } ); } @Override public final void setFilter(String filter) { logger.log(Level.FINE, "setFilter {0}", filter); Pattern p= Pattern.compile("\\|slices\\((.*)\\)"); Matcher m= p.matcher(filter); if ( m.matches() ) { String arg= m.group(1); String[] ss= arg.split(","); rank= ss.length; this.removeAll(); this.setLayout( new BoxLayout( this, BoxLayout.Y_AXIS ) ); for ( int i=0; i=max ) val= max; spinners[i].setModel( new SpinnerNumberModel( val, 0, max, 1 ) ); } for ( int i=ds.rank(); i