/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.autoplot.test; import java.awt.Toolkit; import java.io.File; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.SwingUtilities; import org.das2.datum.Units; import org.das2.datum.UnitsUtil; import org.das2.graph.DasAxis; import org.das2.util.LoggerManager; import org.netbeans.jemmy.JemmyProperties; import org.netbeans.jemmy.Scenario; import org.netbeans.jemmy.TestOut; import org.netbeans.jemmy.operators.DialogOperator; import org.netbeans.jemmy.operators.JButtonOperator; import org.netbeans.jemmy.operators.JFrameOperator; import org.netbeans.jemmy.operators.JTextFieldOperator; import org.autoplot.AutoplotUI; import org.autoplot.ScriptContext; import org.autoplot.dom.Application; import org.autoplot.dom.BindingModel; import util.NameComponentChooser; import util.RegexComponentChooser; /** * * @author jbf */ public class Test_034_TimeSeriesBrowse implements Scenario { private static final Logger logger= LoggerManager.getLogger("vatesting"); public int runIt(Object o) { JemmyProperties.setCurrentOutput(TestOut.getNullOutput()); try { ScriptContext.createGui(); AutoplotUI app = (AutoplotUI) ScriptContext.getViewWindow(); Application dom = ScriptContext.getDocumentModel(); dom.getOptions().setAutolayout(false); JFrameOperator mainFrame = new JFrameOperator(app); ScriptContext.waitUntilIdle(); new JTextFieldOperator(app.getDataSetSelector().getEditor()).setText("http://cdaweb.gsfc.nasa.gov/istp_public/data/polar/hydra/hyd_h0/$Y/po_h0_hyd_$Y$m$d_v01.cdf?ELECTRON_DIFFERENTIAL_ENERGY_FLUX&timerange=20000109"); new JButtonOperator(app.getDataSetSelector().getGoButton()).clickMouse(); final DasAxis xaxis = ScriptContext.getDocumentModel().getPlots(0).getXaxis().getController().getDasAxis(); // The following is interesting code that needs to be studied more. I think what's happened // is I moved the DataSetSelector event firing back on to the event thread, and // this is messing up this script. SwingUtilities.invokeAndWait( new Runnable() { public void run() { System.err.println( "1: "+ xaxis.getDatumRange() ); } }); System.err.println("TODO: There should be a way to make sure the app has recieved the update."); Thread.sleep(1500); ScriptContext.waitUntilIdle(); SwingUtilities.invokeAndWait( new Runnable() { public void run() { System.err.println( "2: "+xaxis.getDatumRange() ); } }); System.err.println( "3: "+xaxis.getDatumRange() ); xaxis.scanNext(); // no gui test, but that's okay... System.err.println( "4: "+xaxis.getDatumRange() ); new JButtonOperator( mainFrame, new NameComponentChooser("browse") ).clickMouse(); //app.getDataSetSelector().getBrowseButton()).clickMouse(); DialogOperator diaFrame = new DialogOperator( new RegexComponentChooser( "Editing .*") ); new JButtonOperator( diaFrame, "Plot Below" ).clickMouse(); System.err.println("Boo, sleep because testing server isn't stopping properly."); //TODO: fix this! Thread.sleep(1000); ScriptContext.waitUntilIdle(); int tries=0; while ( tries<10 && dom.getPlotElements(1).getController().getDataSet()==null ) { tries++; System.err.println("* data not here yet"); Thread.sleep(330); } System.err.println( "5: "+xaxis.getDatumRange() ); System.err.println("current directory: "+new File(".").getAbsoluteFile().toString()); ScriptContext.writeToPng( "Test_034_TimeSeriesBrowse.001.png"); System.err.println("--- bindings ---"); BindingModel[] bms= ScriptContext.getDocumentModel().getBindings(); for ( BindingModel bm: bms ) { System.err.println(bm); } System.err.println("---"); if ( bms.length==4 && ( bms[1].getSrcProperty().equals("timeRange") || bms[3].getSrcProperty().equals("timeRange") ) ) { return 0; } else if ( bms.length==2 && ( bms[1].getSrcProperty().equals("timeRange") || bms[3].getSrcProperty().equals("timeRange") ) ) { // we seem to have lost two of the bindings, but I wasn't sure about those anyway. return 0; } else { System.err.println("bindings.length="+bms.length +" (should be 4)" ); System.err.println("bindings[1].getSrcProperty()="+bms[1].getSrcProperty()+" (either this should be timeRange" ); System.err.println("bindings[3].getSrcProperty()="+bms[3].getSrcProperty()+" or this should be timeRange)" ); return 1; } } catch ( Exception ex ) { logger.log(Level.SEVERE, ex.getMessage(), ex); return -1; } } public static void main(String[] argv) { String[] params = {"org.autoplot.test.Test_034_TimeSeriesBrowse"}; org.netbeans.jemmy.Test.main(params); } }