mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-21 06:45:39 -06:00
962 lines
No EOL
65 KiB
C++
962 lines
No EOL
65 KiB
C++
topic "U++ vs Java/Swing";
|
|
[l288;i704;a17;O9;~~~.992;2 $$1,0#10431211400427159095818037425705:param]
|
|
[a83;*R6 $$2,5#31310162474203024125188417583966:caption]
|
|
[b83;*2 $$3,5#07864147445237544204411237157677:title]
|
|
[b167;a42;C2 $$4,6#40027414424643823182269349404212:item]
|
|
[b42;a42;ph2 $$5,5#45413000475342174754091244180557:text]
|
|
[l288;a17;2 $$6,6#27521748481378242620020725143825:desc]
|
|
[l321;t246;C@5;1 $$7,7#20902679421464641399138805415013:code]
|
|
[b2503;2 $$8,0#65142375456100023862071332075487:separator]
|
|
[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base]
|
|
[t4167;C2 $$10,0#37138531426314131251341829483380:class]
|
|
[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement]
|
|
[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam]
|
|
[b167;C2 $$13,13#92430459443460461911108080531343:item1]
|
|
[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2]
|
|
[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate]
|
|
[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result]
|
|
[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line]
|
|
[l160;t4167;*C+117 $$18,5#88603949442205825958800053222425:package`-title]
|
|
[2 $$0,0#00000000000000000000000000000000:Default]
|
|
[{_}%EN-US
|
|
[s2; U`+`+ vs Java/Swing&]
|
|
[s5; To compare U`+`+ with Java, we found simple Converter example.
|
|
Note that this example was provided for Java tutorial, so it
|
|
is perhaps not the best thing to use it for development effectiveness
|
|
comparison. However, it still might serve well to get first hint
|
|
about how well U`+`+ does when compared to Java/Swing.&]
|
|
[s0; &]
|
|
[ {{4926:5074f0;g0; [s0;=
|
|
@@image:962&679
|
|
(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)
|
|
]
|
|
:: [s0;=
|
|
@@image:1937&867
|
|
(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)
|
|
]}}&]
|
|
[s0; &]
|
|
[s0; &]
|
|
[ {{5000:5000h1;@(204)R(178) [s0; [* U`+`+ version]]
|
|
:: [s0; [* Java/Swing version]]
|
|
::^@2R0 [s0; [*C3 Converter.cpp]&]
|
|
[s0; [C0 #include <CtrlLib/CtrlLib.h>]&]
|
|
[s0;C0 &]
|
|
[s0; [C0 using namespace Upp;]&]
|
|
[s0;C0 &]
|
|
[s0; [C0 #define LAYOUTFILE <Converter/converter.lay>]&]
|
|
[s0; [C0 #include <CtrlCore/lay.h>]&]
|
|
[s0;C0 &]
|
|
[s0; [C0 struct ConverterPane : WithConverterPaneLayout<StaticRect>
|
|
`{]&]
|
|
[s0; [C0 -|ConverterPane `*slave;]&]
|
|
[s0; [C0 -|void AdjustSlave()]&]
|
|
[s0; [C0 -|`{]&]
|
|
[s0; [C0 -|-|slave`->slider <<`= slave`->value <<`=]&]
|
|
[s0; [C0 -|-|-|IsNull(value) ? 0.0 : (double)`~unit `* (double)`~value
|
|
/ (double)`~slave`->unit;]&]
|
|
[s0; [C0 -|`}]&]
|
|
[s0; [C0 -|void ValueChanged()]&]
|
|
[s0; [C0 -|`{]&]
|
|
[s0; [C0 -|-|slider <<`= `~value;]&]
|
|
[s0; [C0 -|-|AdjustSlave();]&]
|
|
[s0; [C0 -|`}]&]
|
|
[s0; [C0 -|void SliderChanged()]&]
|
|
[s0; [C0 -|`{]&]
|
|
[s0; [C0 -|-|value <<`= `~slider;]&]
|
|
[s0; [C0 -|-|AdjustSlave();]&]
|
|
[s0; [C0 -|`}]&]
|
|
[s0; [C0 -|]&]
|
|
[s0; [C0 -|typedef ConverterPane CLASSNAME;]&]
|
|
[s0;C0 &]
|
|
[s0; [C0 -|ConverterPane()]&]
|
|
[s0; [C0 -|`{]&]
|
|
[s0; [C0 -|-|CtrlLayout(`*this);]&]
|
|
[s0; [C0 -|-|slider.Range(10000);]&]
|
|
[s0; [C0 -|-|slider <<`= value <<`= 0;]&]
|
|
[s0; [C0 -|-|value <<`= THISBACK(ValueChanged);]&]
|
|
[s0; [C0 -|-|slider <<`= THISBACK(SliderChanged);]&]
|
|
[s0; [C0 -|-|unit <<`= THISBACK(AdjustSlave);]&]
|
|
[s0; [C0 -|`}]&]
|
|
[s0; [C0 `};]&]
|
|
[s0;C0 &]
|
|
[s0; [C0 struct Converter : TopWindow]&]
|
|
[s0; [C0 `{]&]
|
|
[s0; [C0 -|ConverterPane metric, us;]&]
|
|
[s0;C0 &]
|
|
[s0; [C0 -|typedef Converter CLASSNAME;]&]
|
|
[s0;C0 &]
|
|
[s0; [C0 -|Converter()]&]
|
|
[s0; [C0 -|`{]&]
|
|
[s0; [C0 -|-|Title(`"Converter`");]&]
|
|
[s0; [C0 -|-|Size sz `= metric.GetLayoutSize();]&]
|
|
[s0; [C0 -|-|SetRect(0, 0, metric.GetSize().cx, metric.GetSize().cy `*
|
|
2);]&]
|
|
[s0; [C0 -|-|Add(metric.HSizePos().TopPos(0, sz.cy));]&]
|
|
[s0; [C0 -|-|Add(us.HSizePos().BottomPos(0, sz.cy));]&]
|
|
[s0;C0 &]
|
|
[s0; [C0 -|-|metric.title `= `"Metric units`";]&]
|
|
[s0; [C0 -|-|metric.unit.Add(0.01, `"Centimeters`");]&]
|
|
[s0; [C0 -|-|metric.unit.Add(1.0, `"Meters`");]&]
|
|
[s0; [C0 -|-|metric.unit.Add(1000.0, `"Kilometers`");]&]
|
|
[s0; [C0 -|-|metric.unit <<`= 1.0;]&]
|
|
[s0;C0 &]
|
|
[s0; [C0 -|-|us.title `= `"U.S. units`";]&]
|
|
[s0; [C0 -|-|us.unit.Add(0.0254, `"Inches`");]&]
|
|
[s0; [C0 -|-|us.unit.Add(0.305, `"Feet`");]&]
|
|
[s0; [C0 -|-|us.unit.Add(0.914, `"Yards`");]&]
|
|
[s0; [C0 -|-|us.unit.Add(1613.0, `"Miles`");]&]
|
|
[s0; [C0 -|-|us.unit <<`= 0.305;]&]
|
|
[s0; [C0 -|-|]&]
|
|
[s0; [C0 -|-|us.slave `= `&metric;]&]
|
|
[s0; [C0 -|-|metric.slave `= `&us;]&]
|
|
[s0; [C0 -|-|]&]
|
|
[s0; [C0 -|-|metric.AdjustSlave();]&]
|
|
[s0; [C0 -|`}]&]
|
|
[s0; [C0 `};]&]
|
|
[s0;C0 &]
|
|
[s0; [C0 GUI`_APP`_MAIN]&]
|
|
[s0; [C0 `{]&]
|
|
[s0; [C0 -|Converter().Run();]&]
|
|
[s0; [C0 `}]&]
|
|
[s0;C0 &]
|
|
[s0; [*C3 converter.lay][C0 ][C1 (designed using visual tool)]&]
|
|
[s0; [C0 #ifdef LAYOUTFILE]&]
|
|
[s0;C0 &]
|
|
[s0; [C0 LAYOUT(ConverterPaneLayout, 244, 76)]&]
|
|
[s0; [C0 -|ITEM(LabelBox, title, LeftPosZ(8, 228).TopPosZ(4, 64))]&]
|
|
[s0; [C0 -|ITEM(EditDoubleSpin, value, LeftPosZ(16, 144).TopPosZ(20,
|
|
19))]&]
|
|
[s0; [C0 -|ITEM(SliderCtrl, slider, LeftPosZ(16, 144).TopPosZ(40, 20))]&]
|
|
[s0; [C0 -|ITEM(DropList, unit, LeftPosZ(164, 64).TopPosZ(20, 19))]&]
|
|
[s0; [C0 END`_LAYOUT]&]
|
|
[s0;C0 &]
|
|
[s0; [C0 #endif]&]
|
|
[s0; ]
|
|
:: [s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [*C3 Converter.java]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import javax.swing.`*;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import javax.swing.event.`*;
|
|
]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import java.awt.`*;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import java.awt.event.`*;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import java.util.`*;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public class
|
|
Converter `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 ConversionPanel
|
|
metricPanel, usaPanel;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 Unit`[`]
|
|
metricDistances `= new Unit`[3`];]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 Unit`[`]
|
|
usaDistances `= new Unit`[4`];]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 ConverterRangeModel
|
|
dataModel `= new ConverterRangeModel();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 JPanel
|
|
mainPane;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
Converter() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
metricDistances`[0`] `= new Unit(`"Centimeters`", 0.01);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
metricDistances`[1`] `= new Unit(`"Meters`", 1.0);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
metricDistances`[2`] `= new Unit(`"Kilometers`", 1000.0);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
metricPanel `= new ConversionPanel(this, `"Metric System`",]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
metricDistances,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
dataModel);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
usaDistances`[0`] `= new Unit(`"Inches`", 0.0254);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
usaDistances`[1`] `= new Unit(`"Feet`", 0.305);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
usaDistances`[2`] `= new Unit(`"Yards`", 0.914);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
usaDistances`[3`] `= new Unit(`"Miles`", 1613.0);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
usaPanel `= new ConversionPanel(this, `"U.S. System`",]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
usaDistances,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
new FollowerRangeModel(dataModel));]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
mainPane `= new JPanel();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
mainPane.setLayout(new GridLayout(2,1,5,5));]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
mainPane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
mainPane.add(metricPanel);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
mainPane.add(usaPanel);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
resetMaxValues(true);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void resetMaxValues(boolean resetCurrentValues) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
double metricMultiplier `= metricPanel.getMultiplier();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
double usaMultiplier `= usaPanel.getMultiplier();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
int maximum `= ConversionPanel.MAX;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
if (metricMultiplier > usaMultiplier) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
maximum `= (int)(ConversionPanel.MAX `*]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
(usaMultiplier/metricMultiplier));]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
dataModel.setMaximum(maximum);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
if (resetCurrentValues) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
dataModel.setDoubleValue(maximum);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
static void main(String`[`] args) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
Converter converter `= new Converter();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
JFrame f `= new JFrame(`"Converter`");]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
f.addWindowListener(new WindowAdapter() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
public void windowClosing(WindowEvent e) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
System.exit(0);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`});]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
f.setContentPane(converter.mainPane);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;C0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
f.pack();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
f.setVisible(true);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;%- [C0 `}]&]
|
|
[s0;C &]
|
|
[s0; &]
|
|
[s0;%- [*C3 ConversionPanel.java]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import javax.swing.`*;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import javax.swing.event.`*;
|
|
]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import java.awt.`*;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import java.awt.event.`*;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import java.util.`*;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import java.text.NumberForma
|
|
t;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public class
|
|
ConversionPanel extends JPanel `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 DecimalField
|
|
textField;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 JComboBox
|
|
unitChooser;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 JSlider
|
|
slider;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 ConverterRangeModel
|
|
sliderModel;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 Converter
|
|
controller;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 Unit`[`]
|
|
units;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 String
|
|
title;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 final
|
|
static int MAX `= 10000;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 ConversionPanel(Converte
|
|
r myController, String myTitle, ]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
Unit`[`] myUnits,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
ConverterRangeModel myModel) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
setBorder(BorderFactory.createCompoundBorder(]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
BorderFactory.createTitledBorder(myTitle),]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
BorderFactory.createEmptyBorder(5,5,5,5)));]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
controller `= myController;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
units `= myUnits;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
title `= myTitle;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
sliderModel `= myModel;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
NumberFormat numberFormat `= NumberFormat.getNumberInstance();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
numberFormat.setMaximumFractionDigits(2);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
textField `= new DecimalField(0, 10, numberFormat); ]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
textField.setValue(sliderModel.getDoubleValue());]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
textField.addActionListener(new ActionListener() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
public void actionPerformed(ActionEvent e) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
sliderModel.setDoubleValue(textField.getValue());]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`});]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
unitChooser `= new JComboBox(); ]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
for (int i `= 0; i < units.length; i`+`+) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
unitChooser.addItem(units`[i`].description);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
unitChooser.setSelectedIndex(0);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
sliderModel.setMultiplier(units`[0`].multiplier);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
unitChooser.addActionListener(new ActionListener() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
public void actionPerformed(ActionEvent e) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
int i `= unitChooser.getSelectedIndex();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
sliderModel.setMultiplier(units`[i`].multiplier);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
controller.resetMaxValues(false);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`});]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
slider `= new JSlider(sliderModel);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
sliderModel.addChangeListener(new ChangeListener() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
public void stateChanged(ChangeEvent e) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
textField.setValue(sliderModel.getDoubleValue());]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`});]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
JPanel unitGroup `= new JPanel() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
public Dimension getMinimumSize() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return getPreferredSize();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
public Dimension getPreferredSize() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return new Dimension(150, ]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
super.getPreferredSize().height);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
public Dimension getMaximumSize() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return getPreferredSize();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`};]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
unitGroup.setBorder(BorderFactory.createEmptyBorder(]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
0,0,0,5));]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
unitGroup.setLayout(new BoxLayout(unitGroup, ]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
BoxLayout.Y`_AXIS));]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
unitGroup.add(textField);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
unitGroup.add(slider);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
setLayout(new BoxLayout(this, BoxLayout.X`_AXIS));]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
add(unitGroup);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
add(unitChooser);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
unitGroup.setAlignmentY(TOP`_ALIGNMENT);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
unitChooser.setAlignmentY(TOP`_ALIGNMENT);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
double getMultiplier() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return sliderModel.getMultiplier();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
double getValue() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return sliderModel.getDoubleValue();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;%- [C0 `}]&]
|
|
[s0; &]
|
|
[s0;%- [*C3 ConverterRangeModel.java]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import javax.swing.`*;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import javax.swing.event.`*;
|
|
]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public class
|
|
ConverterRangeModel implements BoundedRangeModel `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 protected
|
|
ChangeEvent changeEvent `= null;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 protected
|
|
EventListenerList listenerList `= new EventListenerList();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 protected
|
|
int maximum `= 10000;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 protected
|
|
int minimum `= 0;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 protected
|
|
int extent `= 0;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 protected
|
|
double value `= 0.0;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 protected
|
|
double multiplier `= 1.0;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 protected
|
|
boolean isAdjusting `= false;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;C0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
ConverterRangeModel() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
double getMultiplier() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return multiplier;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setMultiplier(double multiplier) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
this.multiplier `= multiplier;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
fireStateChanged();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
int getMaximum() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return maximum;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setMaximum(int newMaximum) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
setRangeProperties(value, extent, minimum, newMaximum, isAdjusting);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
int getMinimum() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return (int)minimum;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setMinimum(int newMinimum) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
System.out.println(`"In ConverterRangeModel setMinimum`");]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
int getValue() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return (int)getDoubleValue();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setValue(int newValue) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
setDoubleValue((double)newValue);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
double getDoubleValue() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return value;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setDoubleValue(double newValue) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
setRangeProperties(newValue, extent, minimum, maximum, isAdjusting);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
int getExtent() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return (int)extent;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setExtent(int newExtent) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
boolean getValueIsAdjusting() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return isAdjusting;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setValueIsAdjusting(boolean b) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
setRangeProperties(value, extent, minimum, maximum, b);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setRangeProperties(int newValue,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
int newExtent,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
int newMin,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
int newMax,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
boolean newAdjusting) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
System.out.println(`"In ConverterRangeModel setRangeProperties`");]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
setRangeProperties((double)newValue,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
newExtent,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
newMin,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
newMax,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
newAdjusting);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setRangeProperties(double newValue,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
int unusedExtent,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
int unusedMin,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
int newMax,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
boolean newAdjusting) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
if (newMax <`= minimum) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
newMax `= minimum `+ 1;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
if (DEBUG) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
System.out.println(`"maximum raised by 1 to `" `+ newMax);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
if (Math.round(newValue) > newMax) `{ //allow some rounding error]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
newValue `= newMax;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
boolean changeOccurred `= false;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
if (newValue !`= value) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
value `= newValue;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
changeOccurred `= true;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
if (newMax !`= maximum) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
maximum `= newMax;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
changeOccurred `= true;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
if (newAdjusting !`= isAdjusting) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
maximum `= newMax;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
isAdjusting `= newAdjusting;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
changeOccurred `= true;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
if (changeOccurred) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
fireStateChanged();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 /`*
|
|
]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `*
|
|
The rest of this is event handling code copied from ]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `*
|
|
DefaultBoundedRangeModel. ]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `*/]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void addChangeListener(ChangeListener l) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
listenerList.add(ChangeListener.class, l);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void removeChangeListener(ChangeListener l) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
listenerList.remove(ChangeListener.class, l);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 protected
|
|
void fireStateChanged() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
Object`[`] listeners `= listenerList.getListenerList();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
for (int i `= listeners.length `- 2; i >`= 0; i `-`=2 ) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
if (listeners`[i`] `=`= ChangeListener.class) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
if (changeEvent `=`= null) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
changeEvent `= new ChangeEvent(this);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
((ChangeListener)listeners`[i`+1`]).stateChanged(changeEvent);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;%- [C0 `}]&]
|
|
[s0;*C3 &]
|
|
[s0;%- [*C3 DecimalField.java]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import javax.swing.`*;
|
|
]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import javax.swing.text.`*;
|
|
]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import java.awt.Toolkit;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import java.text.`*;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public class
|
|
DecimalField extends JTextField `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 private
|
|
NumberFormat format;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
DecimalField(double value, int columns, NumberFormat f) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
super(columns);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
setDocument(new FormattedDocument(f));]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
format `= f;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
setValue(value);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
double getValue() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
double retVal `= 0.0;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
try `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
retVal `= format.parse(getText()).doubleValue();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`} catch (ParseException e) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
Toolkit.getDefaultToolkit().beep();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
System.err.println(`"getValue: could not parse: `" `+ getText());]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return retVal;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setValue(double value) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
setText(format.format(value));]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;%- [C0 `}]&]
|
|
[s0;C &]
|
|
[s0;%- [*C3 FollowerRangeModel.java]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import javax.swing.`*;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import javax.swing.event.`*;
|
|
]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public class
|
|
FollowerRangeModel extends ConverterRangeModel]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
implements ChangeListener `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 ConverterRangeModel
|
|
dataModel;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
FollowerRangeModel(ConverterRangeModel dataModel) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
this.dataModel `= dataModel;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
dataModel.addChangeListener(this);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void stateChanged(ChangeEvent e) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
fireStateChanged();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
int getMaximum() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
int modelMax `= dataModel.getMaximum();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
double multiplyBy `= dataModel.getMultiplier()/multiplier;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return (int)(modelMax `* multiplyBy);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setMaximum(int newMaximum) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
dataModel.setMaximum((int)(newMaximum `* ]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
(multiplier/dataModel.getMultiplier())));]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
int getValue() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return (int)getDoubleValue();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setValue(int newValue) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
setDoubleValue((double)newValue);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
double getDoubleValue() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return dataModel.getDoubleValue()]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`* dataModel.getMultiplier()]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
/ multiplier;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setDoubleValue(double newValue) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
dataModel.setDoubleValue(]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
newValue `* multiplier]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
/ dataModel.getMultiplier());]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
int getExtent() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return super.getExtent();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setExtent(int newExtent) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
super.setExtent(newExtent);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void setRangeProperties(int value,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
int extent,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
int min,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
int max,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
boolean adjusting) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
double multiplyBy `= multiplier/dataModel.getMultiplier();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
dataModel.setRangeProperties(value`*multiplyBy,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
extent, min, ]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
(int)(max`*multiplyBy),]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
adjusting);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;%- [C0 `}]&]
|
|
[s0;*C3 &]
|
|
[s0;%- [*C3 FormattedDocument.java]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import javax.swing.`*;
|
|
]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import javax.swing.text.`*;
|
|
]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import java.awt.Toolkit;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import java.text.`*;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 import java.util.Locale;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public class
|
|
FormattedDocument extends PlainDocument `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 private
|
|
Format format;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
FormattedDocument(Format f) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
format `= f;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
Format getFormat() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return format;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void insertString(int offs, String str, AttributeSet a) ]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
throws BadLocationException `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
String currentText `= getText(0, getLength());]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
String beforeOffset `= currentText.substring(0, offs);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
String afterOffset `= currentText.substring(offs, currentText.length());]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
String proposedResult `= beforeOffset `+ str `+ afterOffset;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
try `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
format.parseObject(proposedResult);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
super.insertString(offs, str, a);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`} catch (ParseException e) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
Toolkit.getDefaultToolkit().beep();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
System.err.println(`"insertString: could not parse: `"]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`+ proposedResult);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
void remove(int offs, int len) throws BadLocationException `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
String currentText `= getText(0, getLength());]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
String beforeOffset `= currentText.substring(0, offs);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
String afterOffset `= currentText.substring(len `+ offs,]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
currentText.length());]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
String proposedResult `= beforeOffset `+ afterOffset;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
try `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
if (proposedResult.length() !`= 0)]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
format.parseObject(proposedResult);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
super.remove(offs, len);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`} catch (ParseException e) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
Toolkit.getDefaultToolkit().beep();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
System.err.println(`"remove: could not parse: `" `+ proposedResult);]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
`}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;%- [C0 `}]&]
|
|
[s0;C &]
|
|
[s0;%- [*C3 Unit.java]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public class
|
|
Unit `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 String
|
|
description;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 double
|
|
multiplier;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 Unit(String
|
|
description, double multiplier) `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
super();]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
this.description `= description;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
this.multiplier `= multiplier;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;0 &]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 public
|
|
String toString() `{]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
String s `= `"Meters/`" `+ description `+ `" `= `" `+ multiplier;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0
|
|
return s;]&]
|
|
[s0;~~~0~400~799~1199~1598~1998~2398~2797~3197~3596;%- [C0 `}]&]
|
|
[s0;%- [C0 `}]&]
|
|
[s0;C ]}}&]
|
|
[s0; &]
|
|
[s3; References&]
|
|
[s5;l160;i150;O0; [/ http://www.ictp.trieste.it/`~manuals/programming/Java/tutorial/uisw
|
|
ing/overview/anatomy.html] `- original Java source code of Converter,
|
|
currently unavailable (2019)]] |