/* * AsterApplet.java * * Created on October 20, 2000, 11:51 PM */ /** * * nedelec@embl-heidelberg.de * */ import java.awt.*; import java.awt.event.*; import java.applet.Applet; import java.util.Random; import java.text.NumberFormat; public class AsterApplet extends Applet { private void initComponents () { jPanelP = new Panel (new java.awt.GridLayout(0, 2)); jPanelP.add( new Label ("Grow (um/min)", Label.LEFT) ); jPanelP.add( jtGrowSp = new TextField ("12") ); jPanelP.add( new Label ("Cata (per min)", Label.LEFT) ); jPanelP.add( jtCataFreq = new TextField ("3") ); jPanelP.add( new Label ("Shrink (um/min)", Label.LEFT) ); jPanelP.add( jtShrinkSp = new TextField ("-18") ); jPanelP.add( new Label ("Rescue (per min)", Label.LEFT) ); jPanelP.add( jtRescFreq = new TextField ("0.3") ); jPanelP.add( new Label ("microtubules", Label.LEFT) ); jPanelP.add( jtNuc = new TextField ("50") ); jPanelP.add( new Label ("acceleration", Label.LEFT ) ); jPanelP.add( jtAcc = new TextField ("5") ); jPanelP.add( new Label ("sim clock (milli-s):", Label.LEFT) ); jPanelP.add( jtClock = new TextField ("25") ); jPanelP.add( new Label ("averaging (s)", Label.LEFT) ); jPanelP.add( jtAvg = new TextField ("120") ); jPanelP.add( jbSet = new Button ("set") ); jbSet.addActionListener ( new java.awt.event.ActionListener () { public void actionPerformed (java.awt.event.ActionEvent evt) { getParams(); }}); jPanelP.add( jbReset = new Button ("reset") ); jbReset.addActionListener (new java.awt.event.ActionListener () { public void actionPerformed (java.awt.event.ActionEvent evt) { getParams(); myAster.reset(1); }}); jPanelP.add( new Label ("Zoom :", Label.CENTER) ); jPanelP.add( jsZoom = new Scrollbar ( Scrollbar.HORIZONTAL, 100, 200, 1, 1000 ) ); jsZoom.addAdjustmentListener (new AdjustmentListener () { public void adjustmentValueChanged (AdjustmentEvent evt) { myAster.setZoom( jsZoom.getValue() ); }}); jPanelP.add( new Label ("profile plot zoom:", Label.CENTER) ); jPanelP.add( jsZoomN = new Scrollbar ( Scrollbar.HORIZONTAL, 50, 10, 1, 500 ) ); jsZoomN.addAdjustmentListener (new AdjustmentListener () { public void adjustmentValueChanged (AdjustmentEvent evt) { myAster.setZoomN( jsZoomN.getValue() ); }}); jPanelP.add( new Label ("model:", Label.CENTER) ); jPanelP.add( jcModel = new Choice() ); jcModel.add("classic model"); jcModel.add("length dependent"); jcModel.addItemListener( new ItemListener () { public void itemStateChanged( ItemEvent evt) { myAster.setModel( jcModel.getSelectedIndex() ); }}); myAster = new Aster(); GridBagLayout gridbag = new java.awt.GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); setLayout( gridbag ); c.ipadx = 2; c.insets = new Insets( 0, 0, 0, 2 ); c.anchor = c.WEST; gridbag.setConstraints( myAster, c ); add (myAster); c.anchor = c.EAST; gridbag.setConstraints( jPanelP, c ); add (jPanelP); } private void getParams() { double R, S, C, G; int accl, avg, M, clock; try { R = new Double(jtRescFreq.getText()).doubleValue(); S = new Double(jtShrinkSp.getText()).doubleValue(); C = new Double(jtCataFreq.getText()).doubleValue(); G = new Double(jtGrowSp.getText()).doubleValue(); myAster.setParams( G, S, C, R); M = Integer.parseInt(jtNuc.getText(), 10); myAster.setNumber( M ); clock = Integer.parseInt( jtClock.getText(), 10); accl = Integer.parseInt( jtAcc.getText(), 10); avg = Integer.parseInt( jtAvg.getText(), 10); myAster.setTiming( accl, clock, avg ); } catch( NumberFormatException e) { //showMessageDialog(this, "Invalid format"); } } // Variables declaration private Panel jPanelP; private TextField jtGrowSp, jtShrinkSp, jtCataFreq, jtRescFreq; private TextField jtAcc, jtAvg, jtClock, jtNuc; private Button jbSet, jbReset; private Scrollbar jsZoom, jsZoomN; private Choice jcModel; private Aster myAster = null; /* public static void main(String s[]) { Frame f = new Frame("Aster"); f.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); }}); f.setSize(new Dimension( Aster.wSize+200, Aster.wSize)); f.setVisible(true); //initComponents(); } */ //applet's life cycle public void init() { if ( myAster == null ) { initComponents (); getParams(); myAster.setZoom( jsZoom.getValue() ); myAster.setZoomN( jsZoomN.getValue() ); setSize( getPreferredSize() ); } setVisible(true); } public void start() { if ( myAster != null ) myAster.start(); } public void stop() { if ( myAster != null ) myAster.stop(); } public void destroy() { } }