// Java 3D Test Program // AlphaPanel.java // Copyright (c) 1999 ENDO Yasuyuki // mailto:yasuyuki@javaopen.org // http://www.javaopen.org/j3dbook/index.html import java.awt.Panel; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.Label; import java.awt.TextField; import java.awt.Checkbox; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.ItemListener; import java.awt.event.ItemEvent; import javax.media.j3d.Alpha; public class AlphaPanel extends Panel { protected static final int FIELD_WIDTH = 5; protected int loopCount = -1; protected int mode = Alpha.INCREASING_ENABLE; protected long triggerTime = 0; protected long phaseDelayDuration = 0; protected long increasingAlphaDuration = 1000; protected long increasingAlphaRampDuration = 0; protected long alphaAtOneDuration = 0; protected long decreasingAlphaDuration = 0; protected long decreasingAlphaRampDuration = 0; protected long alphaAtZeroDuration = 0; protected Alpha alpha = null; public Alpha getAlpha() { return alpha; } public void reset() { reset(System.currentTimeMillis()); } public void reset(long time) { loopCount = alpha.getLoopCount(); alpha.setStartTime(time); alpha.setLoopCount(loopCount); } public AlphaPanel() { this(new Alpha()); } public AlphaPanel(Alpha anAlpha) { alpha = anAlpha; loopCount = alpha.getLoopCount(); mode = alpha.getMode(); triggerTime = alpha.getTriggerTime(); phaseDelayDuration = alpha.getPhaseDelayDuration(); increasingAlphaDuration = alpha.getIncreasingAlphaDuration(); increasingAlphaRampDuration = alpha.getIncreasingAlphaRampDuration(); alphaAtOneDuration = alpha.getAlphaAtOneDuration(); decreasingAlphaDuration = alpha.getDecreasingAlphaDuration(); decreasingAlphaRampDuration = alpha.getDecreasingAlphaRampDuration(); alphaAtZeroDuration = alpha.getAlphaAtZeroDuration(); reset(); this.setLayout( new GridLayout(3, 1) ); Panel[] apanels = new Panel[3]; for (int i=0; i<3; i++) { apanels[i] = new Panel(); this.add(apanels[i]); } apanels[0].add( new Label("lCount") ); TextField lcfield = new TextField(Long.toString(loopCount), FIELD_WIDTH); lcfield.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { loopCount = Integer.parseInt(e.getActionCommand()); if (loopCount < -1) loopCount = -1; alpha.setLoopCount(loopCount); } catch (NumberFormatException ex) {} } }); apanels[0].add(lcfield); apanels[0].add( new Label("trigger") ); TextField tgfield = new TextField(Long.toString(triggerTime), FIELD_WIDTH); tgfield.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { triggerTime = Long.parseLong(e.getActionCommand()); alpha.setTriggerTime(triggerTime); } catch (NumberFormatException ex) {} } }); apanels[0].add(tgfield); apanels[0].add( new Label("phDelayD") ); TextField pdfield = new TextField(Long.toString(phaseDelayDuration), FIELD_WIDTH); pdfield.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { phaseDelayDuration = Long.parseLong(e.getActionCommand()); alpha.setPhaseDelayDuration(phaseDelayDuration); } catch (NumberFormatException ex) {} } }); apanels[0].add(pdfield); Checkbox icheck = new Checkbox("Inc", false); if ((mode & Alpha.INCREASING_ENABLE) == Alpha.INCREASING_ENABLE) { icheck.setState(true); } icheck.addItemListener( new ItemListener() { public void itemStateChanged(ItemEvent e) { int state = e.getStateChange(); if (state == ItemEvent.SELECTED) { mode |= Alpha.INCREASING_ENABLE; } else if (state == ItemEvent.DESELECTED) { mode ^= Alpha.INCREASING_ENABLE; } alpha.setMode(mode); } }); apanels[1].add(icheck); apanels[1].add( new Label("iAlphDur") ); TextField iadfield = new TextField(Long.toString(increasingAlphaDuration), FIELD_WIDTH); iadfield.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { increasingAlphaDuration = Long.parseLong(e.getActionCommand()); alpha.setIncreasingAlphaDuration(increasingAlphaDuration); } catch (NumberFormatException ex) {} } }); apanels[1].add(iadfield); apanels[1].add( new Label("iAlphRampD") ); TextField iarfield = new TextField(Long.toString(increasingAlphaRampDuration), FIELD_WIDTH); iarfield.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { increasingAlphaRampDuration = Long.parseLong(e.getActionCommand()); alpha.setIncreasingAlphaRampDuration(increasingAlphaRampDuration); } catch (NumberFormatException ex) {} } }); apanels[1].add(iarfield); apanels[1].add( new Label("atOneDur") ); TextField aofield = new TextField(Long.toString(alphaAtOneDuration), FIELD_WIDTH); aofield.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { alphaAtOneDuration = Long.parseLong(e.getActionCommand()); alpha.setAlphaAtOneDuration(alphaAtOneDuration); } catch (NumberFormatException ex) {} } }); apanels[1].add(aofield); Checkbox dcheck = new Checkbox("Dec", false); if ((mode & Alpha.DECREASING_ENABLE) == Alpha.DECREASING_ENABLE) { dcheck.setState(true); } dcheck.addItemListener( new ItemListener() { public void itemStateChanged(ItemEvent e) { int state = e.getStateChange(); if (state == ItemEvent.SELECTED) { mode |= Alpha.DECREASING_ENABLE; } else if (state == ItemEvent.DESELECTED) { mode ^= Alpha.DECREASING_ENABLE; } alpha.setMode(mode); } }); apanels[2].add(dcheck); apanels[2].add( new Label("dAlphDur") ); TextField dadfield = new TextField(Long.toString(decreasingAlphaDuration), FIELD_WIDTH); dadfield.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { decreasingAlphaDuration = Long.parseLong(e.getActionCommand()); alpha.setDecreasingAlphaDuration(decreasingAlphaDuration); } catch (NumberFormatException ex) {} } }); apanels[2].add(dadfield); apanels[2].add( new Label("dAlphRampD") ); TextField darfield = new TextField(Long.toString(decreasingAlphaRampDuration), FIELD_WIDTH); darfield.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { decreasingAlphaRampDuration = Long.parseLong(e.getActionCommand()); alpha.setDecreasingAlphaRampDuration(decreasingAlphaRampDuration); } catch (NumberFormatException ex) {} } }); apanels[2].add(darfield); apanels[2].add( new Label("atZeroDur") ); TextField azfield = new TextField(Long.toString(alphaAtZeroDuration), FIELD_WIDTH); azfield.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { alphaAtZeroDuration = Long.parseLong(e.getActionCommand()); alpha.setAlphaAtZeroDuration(alphaAtZeroDuration); } catch (NumberFormatException ex) {} } }); apanels[2].add(azfield); } }