home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Checkbox;
- import java.awt.CheckboxGroup;
- import java.awt.Choice;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Event;
- import java.awt.FlowLayout;
- import java.awt.Font;
- import java.awt.Frame;
- import java.awt.Insets;
- import java.awt.Label;
- import java.awt.LayoutManager;
- import java.awt.Panel;
- import java.awt.TextComponent;
- import java.awt.TextField;
- import java.awt.Window;
- import java.awt.event.ItemEvent;
- import java.awt.event.ItemListener;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import java.awt.event.WindowEvent;
- import java.awt.event.WindowListener;
- import java.text.DecimalFormat;
- import java.text.NumberFormat;
- import java.text.ParsePosition;
- import java.util.EventObject;
- import java.util.Locale;
-
- class NumberFormatFrame extends Frame implements KeyListener, ItemListener, WindowListener {
- Panel localePanel;
- CheckboxGroup group1;
- Label label1;
- Label label2;
- Label label3;
- Choice localeMenu;
- Label localeLabel;
- TextField inputText;
- TextField outputText;
- TextField patternText;
- Label label4;
- TextField negPrefix;
- TextField negSuffix;
- TextField posPrefix;
- TextField posSuffix;
- Label label5;
- Label label6;
- Label label7;
- Label label8;
- TextField intMin;
- TextField intMax;
- TextField decMin;
- TextField decMax;
- Label label9;
- Label label10;
- Label label11;
- Label label12;
- Checkbox getInstance;
- Checkbox getCurrency;
- Checkbox getPercent;
- Checkbox getLocalized;
- Label label13;
- Label label14;
- private static final String creditString = "v1.1a6, Demo:";
- private static final String copyrightString = "";
- private static final String copyrightString2 = "";
- private static final int FIELD_COLUMNS = 35;
- private static final boolean DEBUG = false;
- private static boolean isLocalized;
- private DecimalFormat format;
- private Locale[] locales;
- private DemoApplet applet;
-
- public NumberFormatFrame(DemoApplet var1) {
- super("Number Formatting Demo");
- this.applet = var1;
- ((Window)this).addWindowListener(this);
- this.init();
- this.start();
- }
-
- public void init() {
- this.locales = Utility.getG7Locales();
- this.buildGUI();
- Locale.getDefault();
-
- for(int var1 = 0; var1 < this.locales.length; ++var1) {
- if (this.locales[var1].getCountry().length() > 0) {
- this.localeMenu.addItem(this.locales[var1].getDisplayName());
- if (this.locales[var1].equals(Locale.getDefault())) {
- this.localeMenu.select(var1);
- }
- }
- }
-
- this.setFormatFromLocale();
- }
-
- public void start() {
- this.inputText.setText("-1234.56");
- this.clickedRightButton();
- }
-
- public void itemStateChanged(ItemEvent var1) {
- if (((EventObject)var1).getSource() == this.getPercent) {
- this.clickedGetPercent();
- } else if (((EventObject)var1).getSource() == this.getCurrency) {
- this.clickedGetCurrency();
- } else if (((EventObject)var1).getSource() == this.getInstance) {
- this.clickedGetDefault();
- } else if (((EventObject)var1).getSource() == this.getLocalized) {
- isLocalized = this.getLocalized.getState();
- this.handleNewFormat();
- } else {
- if (((EventObject)var1).getSource() == this.localeMenu) {
- this.selectedLocaleMenu();
- }
-
- }
- }
-
- public void keyPressed(KeyEvent var1) {
- }
-
- public void keyReleased(KeyEvent var1) {
- if (((EventObject)var1).getSource() == this.inputText) {
- this.inputChanged();
- } else if (((EventObject)var1).getSource() == this.patternText) {
- this.patternChanged();
- } else if (((EventObject)var1).getSource() == this.outputText) {
- this.outputChanged();
- } else if (((EventObject)var1).getSource() == this.posSuffix) {
- this.posSuffixChanged();
- } else if (((EventObject)var1).getSource() == this.posPrefix) {
- this.posPrefixChanged();
- } else if (((EventObject)var1).getSource() == this.negSuffix) {
- this.negSuffixChanged();
- } else if (((EventObject)var1).getSource() == this.negPrefix) {
- this.negPrefixChanged();
- } else if (((EventObject)var1).getSource() == this.decMax) {
- this.decMaxChanged();
- } else if (((EventObject)var1).getSource() == this.decMin) {
- this.decMinChanged();
- } else if (((EventObject)var1).getSource() == this.intMax) {
- this.intMaxChanged();
- } else {
- if (((EventObject)var1).getSource() == this.intMin) {
- this.intMinChanged();
- }
-
- }
- }
-
- public void keyTyped(KeyEvent var1) {
- }
-
- public void windowClosed(WindowEvent var1) {
- }
-
- public void windowDeiconified(WindowEvent var1) {
- }
-
- public void windowIconified(WindowEvent var1) {
- }
-
- public void windowActivated(WindowEvent var1) {
- }
-
- public void windowDeactivated(WindowEvent var1) {
- }
-
- public void windowOpened(WindowEvent var1) {
- }
-
- public void windowClosing(WindowEvent var1) {
- ((Component)this).setVisible(false);
- ((Frame)this).dispose();
- if (this.applet != null) {
- this.applet.demoClosed();
- } else {
- System.exit(0);
- }
- }
-
- public void handleNewFormat() {
- if (isLocalized) {
- this.workaroundSetText(this.patternText, this.format.toLocalizedPattern());
- } else {
- this.workaroundSetText(this.patternText, this.format.toPattern());
- }
-
- this.clickedRightButton();
- }
-
- public void handleAttributeChange() {
- this.handleNewFormat();
- }
-
- public boolean handleFormatting(Event var1, Object var2) {
- return true;
- }
-
- public void setFormatFromLocale() {
- int var1 = this.localeMenu.getSelectedIndex();
- Locale var2 = this.locales[var1];
- if (this.getPercent.getState()) {
- this.format = (DecimalFormat)NumberFormat.getPercentInstance(var2);
- } else if (this.getCurrency.getState()) {
- this.format = (DecimalFormat)NumberFormat.getCurrencyInstance(var2);
- } else {
- this.format = (DecimalFormat)NumberFormat.getInstance(var2);
- }
-
- this.handleNewFormat();
- this.updateAttributes();
- }
-
- public void workaroundSetText(TextComponent var1, String var2) {
- String var3 = workaround(var1.getText());
- if (!var3.equals(var2)) {
- var1.setText(var2);
- }
- }
-
- public void updateAttributes() {
- this.workaroundSetText(this.intMin, this.toString(this.format.getMinimumIntegerDigits()));
- this.workaroundSetText(this.intMax, this.toString(this.format.getMaximumIntegerDigits()));
- this.workaroundSetText(this.decMin, this.toString(this.format.getMinimumFractionDigits()));
- this.workaroundSetText(this.decMax, this.toString(this.format.getMaximumFractionDigits()));
- this.workaroundSetText(this.negPrefix, this.format.getNegativePrefix());
- this.workaroundSetText(this.negSuffix, this.format.getNegativeSuffix());
- this.workaroundSetText(this.posPrefix, this.format.getPositivePrefix());
- this.workaroundSetText(this.posSuffix, this.format.getPositiveSuffix());
- }
-
- public void clickedGetDefault() {
- this.setFormatFromLocale();
- }
-
- public void clickedGetCurrency() {
- this.setFormatFromLocale();
- }
-
- public void clickedGetPercent() {
- this.setFormatFromLocale();
- }
-
- public void selectedLocaleMenu() {
- this.setFormatFromLocale();
- }
-
- public void inputChanged() {
- this.clickedRightButton();
- }
-
- public void outputChanged() {
- this.clickedLeftButton();
- }
-
- public void clickedRightButton() {
- String var1 = workaround(this.inputText.getText());
-
- Double var2;
- try {
- var2 = new Double(var1);
- } catch (IllegalArgumentException var3) {
- this.outputText.setText("");
- this.inputText.selectAll();
- return;
- }
-
- this.workaroundSetText(this.outputText, this.format.format(var2));
- }
-
- public void clickedLeftButton() {
- String var1 = workaround(this.outputText.getText());
- ParsePosition var3 = new ParsePosition(1);
-
- Number var2;
- try {
- var2 = this.format.parse(var1, var3);
- } catch (IllegalArgumentException var5) {
- this.errorText("Exception: " + var5.getClass() + ((Throwable)var5).getMessage());
- this.inputText.setText("");
- this.outputText.selectAll();
- return;
- }
-
- if (var3.getIndex() != var1.length()) {
- this.errorText("excess text: " + var1.substring(var3.getIndex(), var1.length()));
- }
-
- this.workaroundSetText(this.inputText, var2.toString());
- }
-
- public void patternChanged() {
- String var1 = workaround(this.patternText.getText());
-
- try {
- if (isLocalized) {
- this.format.applyLocalizedPattern(var1);
- this.errorText("Pattern: " + var1 + " -> " + this.format.toLocalizedPattern());
- } else {
- this.format.applyPattern(var1);
- this.errorText("Pattern: " + var1 + " -> " + this.format.toPattern());
- }
- } catch (Exception var3) {
- this.errorText("Exception: " + var3.getClass() + ((Throwable)var3).getMessage());
- }
-
- this.updateAttributes();
- this.clickedRightButton();
- }
-
- void addWithFont(Container var1, Component var2, Font var3) {
- if (var3 != null) {
- var2.setFont(var3);
- }
-
- var1.add(var2);
- }
-
- private void buildGUI() {
- ((Component)this).setBackground(Color.white);
- ((Container)this).setLayout(new FlowLayout(1, 2, 2));
- Panel var1 = new Panel();
- this.label1 = new Label("Decimal Number Formatting Demo", 1);
- this.label1.setFont(Utility.titleFont);
- ((Container)var1).add(this.label1);
- this.label13 = new Label("v1.1a6, Demo:", 1);
- this.label13.setFont(Utility.creditFont);
- ((Container)var1).add(this.label13);
- Utility.fixGrid(var1, 1);
- ((Container)this).add(var1);
- Panel var2 = new Panel();
- this.label3 = new Label("New Number", 2);
- this.label3.setFont(Utility.labelFont);
- ((Container)var2).add(this.label3);
- this.outputText = new TextField(35);
- this.outputText.setFont(Utility.editFont);
- ((Container)var2).add(this.outputText);
- this.label2 = new Label("Java 1.0 Number", 2);
- this.label2.setFont(Utility.labelFont);
- ((Container)var2).add(this.label2);
- this.inputText = new TextField(35);
- this.inputText.addKeyListener(this);
- this.inputText.setFont(Utility.editFont);
- ((Container)var2).add(this.inputText);
- this.label4 = new Label("Pattern", 2);
- this.label4.setFont(Utility.labelFont);
- ((Container)var2).add(this.label4);
- this.patternText = new TextField(35);
- this.patternText.addKeyListener(this);
- this.patternText.setFont(Utility.editFont);
- ((Container)var2).add(this.patternText);
- ((Container)var2).add(new Label(" "));
- this.getLocalized = new Checkbox("Localized Pattern");
- this.getLocalized.addItemListener(this);
- this.getLocalized.setFont(Utility.labelFont);
- ((Container)var2).add(this.getLocalized);
- Utility.fixGrid(var2, 2);
- ((Container)this).add(var2);
- this.localePanel = new Panel();
- this.localeLabel = new Label("Locale:");
- this.localeLabel.setFont(Utility.labelFont);
- this.localePanel.add("loc", this.localeLabel);
- this.localeMenu = new Choice();
- this.localeMenu.addItemListener(this);
- this.localeMenu.setFont(Utility.choiceFont);
- this.localePanel.add(this.localeMenu);
- this.group1 = new CheckboxGroup();
- this.getInstance = new Checkbox("Default Format", this.group1, false);
- this.getInstance.addItemListener(this);
- this.getInstance.setFont(Utility.labelFont);
- this.localePanel.add(this.getInstance);
- this.getCurrency = new Checkbox("Currency Format", this.group1, true);
- this.getCurrency.addItemListener(this);
- this.getCurrency.setFont(Utility.labelFont);
- this.localePanel.add(this.getCurrency);
- this.getPercent = new Checkbox("Percent Format", this.group1, false);
- this.getPercent.addItemListener(this);
- this.getPercent.setFont(Utility.labelFont);
- this.localePanel.add(this.getPercent);
- Utility.fixGrid(this.localePanel, 1);
- Panel var3 = new Panel();
- ((Container)var3).add(this.localePanel);
- BorderPanel var4 = new BorderPanel();
- ((Component)var4).setBackground(Color.lightGray);
- ((Container)var4).setLayout((LayoutManager)null);
- ((Component)var4).setSize(8, 130);
- ((Container)var3).add(var4);
- Panel var5 = new Panel();
- ((Container)var5).add(new Label(" "));
- this.label11 = new Label("Min", 1);
- this.label11.setFont(Utility.labelFont);
- ((Container)var5).add(this.label11);
- this.label12 = new Label("Max", 1);
- this.label12.setFont(Utility.labelFont);
- ((Container)var5).add(this.label12);
- this.label9 = new Label("Integers", 2);
- this.label9.setFont(Utility.labelFont);
- ((Container)var5).add(this.label9);
- this.intMin = new TextField(4);
- this.intMin.addKeyListener(this);
- this.intMin.setFont(Utility.editFont);
- ((Container)var5).add(this.intMin);
- this.intMax = new TextField(4);
- this.intMax.addKeyListener(this);
- this.intMax.setFont(Utility.editFont);
- ((Container)var5).add(this.intMax);
- this.label10 = new Label("Decimals", 2);
- this.label10.setFont(Utility.labelFont);
- ((Container)var5).add(this.label10);
- this.decMin = new TextField(4);
- this.decMin.addKeyListener(this);
- this.decMin.setFont(Utility.editFont);
- ((Container)var5).add(this.decMin);
- this.decMax = new TextField(4);
- this.decMax.addKeyListener(this);
- this.decMax.setFont(Utility.editFont);
- ((Container)var5).add(this.decMax);
- ((Container)var5).add(new Label(" "));
- this.label7 = new Label("Prefix", 1);
- this.label7.setFont(Utility.labelFont);
- ((Container)var5).add(this.label7);
- this.label8 = new Label("Suffix", 1);
- this.label8.setFont(Utility.labelFont);
- ((Container)var5).add(this.label8);
- this.label6 = new Label("Positive", 2);
- this.label6.setFont(Utility.labelFont);
- ((Container)var5).add(this.label6);
- this.posPrefix = new TextField(4);
- this.posPrefix.addKeyListener(this);
- this.posPrefix.setFont(Utility.editFont);
- ((Container)var5).add(this.posPrefix);
- this.posSuffix = new TextField(4);
- this.posSuffix.addKeyListener(this);
- this.posSuffix.setFont(Utility.editFont);
- ((Container)var5).add(this.posSuffix);
- this.label5 = new Label("Negative", 2);
- this.label5.setFont(Utility.labelFont);
- ((Container)var5).add(this.label5);
- this.negPrefix = new TextField(4);
- this.negPrefix.addKeyListener(this);
- this.negPrefix.setFont(Utility.editFont);
- ((Container)var5).add(this.negPrefix);
- this.negSuffix = new TextField(4);
- this.negSuffix.addKeyListener(this);
- this.negSuffix.setFont(Utility.editFont);
- ((Container)var5).add(this.negSuffix);
- Utility.fixGrid(var5, 3);
- ((Container)var3).add(var5);
- Utility.fixGrid(var3, 3);
- Utility.setInsets(var3, var4, new Insets(20, 20, 2, 2));
- ((Container)this).add(var3);
- Panel var6 = new Panel();
- this.addWithFont(var6, new Label("", 0), Utility.creditFont);
- this.addWithFont(var6, new Label("", 0), Utility.creditFont);
- Utility.fixGrid(var6, 1);
- ((Container)this).add(var6);
- }
-
- private String toString(int var1) {
- Integer var2 = new Integer(var1);
- return var2.toString();
- }
-
- private int parseIntField(TextComponent var1) {
- int var2 = 0;
-
- try {
- Integer var3 = new Integer(workaround(var1.getText()));
- var2 = var3;
- } catch (NumberFormatException var4) {
- }
-
- return var2;
- }
-
- private void intMinChanged() {
- this.format.setMinimumIntegerDigits(this.parseIntField(this.intMin));
- this.updateAttributes();
- this.handleAttributeChange();
- }
-
- private void intMaxChanged() {
- this.format.setMaximumIntegerDigits(this.parseIntField(this.intMax));
- this.updateAttributes();
- this.handleAttributeChange();
- }
-
- private void decMinChanged() {
- this.format.setMinimumFractionDigits(this.parseIntField(this.decMin));
- this.updateAttributes();
- this.handleAttributeChange();
- }
-
- private void decMaxChanged() {
- this.format.setMaximumFractionDigits(this.parseIntField(this.decMax));
- this.updateAttributes();
- this.handleAttributeChange();
- }
-
- private void negPrefixChanged() {
- this.format.setNegativePrefix(workaround(this.negPrefix.getText()));
- this.updateAttributes();
- this.handleAttributeChange();
- }
-
- private void negSuffixChanged() {
- this.format.setNegativeSuffix(workaround(this.negSuffix.getText()));
- this.updateAttributes();
- this.handleAttributeChange();
- }
-
- private void posPrefixChanged() {
- this.format.setPositivePrefix(workaround(this.posPrefix.getText()));
- this.updateAttributes();
- this.handleAttributeChange();
- }
-
- private void posSuffixChanged() {
- this.format.setPositiveSuffix(workaround(this.posSuffix.getText()));
- this.updateAttributes();
- this.handleAttributeChange();
- }
-
- private static String workaround(String var0) {
- StringBuffer var1 = new StringBuffer();
-
- for(int var2 = 0; var2 < var0.length(); ++var2) {
- var1.append((char)(var0.charAt(var2) & 255));
- }
-
- return var1.toString();
- }
-
- private void errorText(String var1) {
- }
- }
-