[Bprocessor-commit] bprocessor/src/net/sourceforge/bprocessor/packages/skeleton SkeletonPackage.ja
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2011-05-19 11:49:46
|
Update of /cvsroot/bprocessor/bprocessor/src/net/sourceforge/bprocessor/packages/skeleton In directory vz-cvs-2.sog:/tmp/cvs-serv3231/src/net/sourceforge/bprocessor/packages/skeleton Modified Files: SkeletonPackage.java Log Message: Index: SkeletonPackage.java =================================================================== RCS file: /cvsroot/bprocessor/bprocessor/src/net/sourceforge/bprocessor/packages/skeleton/SkeletonPackage.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SkeletonPackage.java 19 May 2011 07:24:48 -0000 1.3 --- SkeletonPackage.java 19 May 2011 11:49:43 -0000 1.4 *************** *** 3,6 **** --- 3,7 ---- import java.awt.BorderLayout; import java.awt.Color; + import java.awt.Dimension; import java.awt.Insets; import java.awt.event.ActionEvent; *************** *** 8,11 **** --- 9,13 ---- import java.awt.event.MouseEvent; import java.net.URL; + import java.text.DecimalFormat; import javax.swing.AbstractAction; *************** *** 18,21 **** --- 20,25 ---- import javax.swing.JPanel; import javax.swing.JSlider; + import javax.swing.event.ChangeEvent; + import javax.swing.event.ChangeListener; import net.sourceforge.bprocessor.gl.Editor; *************** *** 35,48 **** --- 39,62 ---- public static class SkeletonCommand extends NetCommand { private ControlPanel panel; + private double skeletonConstant; public void initialize(Space net) { super.initialize(net); System.out.println("initialize " + net); + skeletonConstant = 42; panel = new ControlPanel(this); GUI.getInstance().registerControlPanel(panel); } + public double getSkeletonConstant() { + return skeletonConstant; + } + public void setSkeletonConstant(double value) { + skeletonConstant = value; + } public void evaluate() { System.out.println("evaluate " + net); + System.out.println("skeleton-constant: " + skeletonConstant); } + } public static class SkeletonTool extends AbstractTool { *************** *** 102,105 **** --- 116,184 ---- } + public static interface ControlDelegate { + void changed(Object source); + } + + public static class SliderControl implements ChangeListener { + private Box row; + private JLabel valueLabel; + private JSlider slider; + private double minimum; + private double maximum; + private double value; + private ControlDelegate delegate; + + public SliderControl(double minimum, double maximum, double value, ControlDelegate delegate) { + this.minimum = minimum; + this.maximum = maximum; + this.value = value; + this.delegate = delegate; + row = Box.createHorizontalBox(); + valueLabel = new JLabel(toString(value)); + Dimension size = valueLabel.getPreferredSize(); + size.width = 60; + valueLabel.setPreferredSize(size); + slider = new JSlider(); + slider.setMinimum(0); + slider.setMaximum(Integer.MAX_VALUE); + slider.setValue(valueToInt(value)); + row.add(Box.createHorizontalStrut(5)); + row.add(valueLabel); + row.add(slider); + slider.addChangeListener(this); + } + + + public Box row() { + return row; + } + + public double value() { + return value; + } + + public double intToValue(int i) { + double factor = (double) i / (double) Integer.MAX_VALUE; + return minimum + factor * (maximum - minimum); + } + public int valueToInt(double v) { + double factor = (v - minimum) / (maximum - minimum); + return (int) (factor * Integer.MAX_VALUE); + } + + public static String toString(double v) { + DecimalFormat format = new DecimalFormat("#.###"); + return format.format(v); + } + public void stateChanged(ChangeEvent event) { + int i = slider.getValue(); + value = intToValue(i); + valueLabel.setText(toString(value)); + if (delegate != null) { + delegate.changed(this); + } + } + } + public static class ControlPanel extends JPanel { *************** *** 109,116 **** private Box content; private SkeletonTool tool; ! public ControlPanel(SkeletonCommand skeleton) { super(new BorderLayout()); ! this.skeleton = skeleton; ! doit = new CommandEvaluator(skeleton); tool = new SkeletonTool(); --- 188,195 ---- private Box content; private SkeletonTool tool; ! public ControlPanel(SkeletonCommand command) { super(new BorderLayout()); ! this.skeleton = command; ! doit = new CommandEvaluator(command); tool = new SkeletonTool(); *************** *** 120,124 **** Box title = Box.createVerticalBox(); Box header = Box.createHorizontalBox(); ! JLabel label = new JLabel(" - Skeleton Controls -"); label.setFont(AttributeView.FONT_HEADER); header.add(Box.createHorizontalGlue()); --- 199,203 ---- Box title = Box.createVerticalBox(); Box header = Box.createHorizontalBox(); ! JLabel label = new JLabel("- Skeleton Controls -"); label.setFont(AttributeView.FONT_HEADER); header.add(Box.createHorizontalGlue()); *************** *** 177,208 **** content.add(toolBtn); { - Box sliderRow = Box.createHorizontalBox(); Box titleRow = Box.createHorizontalBox(); titleRow.add(Box.createHorizontalStrut(5)); ! titleRow.add(new JLabel("Spring Constant:")); ! titleRow.add(Box.createHorizontalGlue()); ! JLabel value = new JLabel("1.500"); ! JSlider slider = new JSlider(); ! sliderRow.add(Box.createHorizontalStrut(5)); ! sliderRow.add(value); ! sliderRow.add(slider); ! content.add((Box.createVerticalStrut(7))); ! content.add(titleRow); ! content.add(sliderRow); ! } ! { ! Box sliderRow = Box.createHorizontalBox(); ! Box titleRow = Box.createHorizontalBox(); ! titleRow.add(Box.createHorizontalStrut(5)); ! titleRow.add(new JLabel("Default Weight:")); titleRow.add(Box.createHorizontalGlue()); ! JLabel value = new JLabel("4.700"); ! JSlider slider = new JSlider(); ! sliderRow.add(Box.createHorizontalStrut(5)); ! sliderRow.add(value); ! sliderRow.add(slider); content.add((Box.createVerticalStrut(7))); content.add(titleRow); ! content.add(sliderRow); } } --- 256,272 ---- content.add(toolBtn); { Box titleRow = Box.createHorizontalBox(); titleRow.add(Box.createHorizontalStrut(5)); ! titleRow.add(new JLabel("Skeleton Constant:")); titleRow.add(Box.createHorizontalGlue()); ! SliderControl control = new SliderControl(18.0, 80.0, skeleton.getSkeletonConstant(), new ControlDelegate() { ! public void changed(Object source) { ! SliderControl cntl = (SliderControl) source; ! skeleton.setSkeletonConstant(cntl.value()); ! } ! }); content.add((Box.createVerticalStrut(7))); content.add(titleRow); ! content.add(control.row()); } } |