home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Button;
- 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.FlowLayout;
- import java.awt.Font;
- import java.awt.Frame;
- import java.awt.GridLayout;
- import java.awt.Label;
- import java.awt.LayoutManager;
- import java.awt.Panel;
- import java.awt.TextField;
- import java.awt.Window;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.InputEvent;
- 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.DateFormat;
- import java.text.ParsePosition;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.EventObject;
- import java.util.Locale;
- import java.util.SimpleTimeZone;
-
- class DateTimeFrame extends Frame implements WindowListener, ActionListener, ItemListener, KeyListener {
- private static final String creditString = "";
- private static final String copyrightString = "";
- private static final String copyrightString2 = "";
- private static final int FIELD_COLUMNS = 45;
- private static final boolean DEBUG = false;
- private static final int millisPerHour = 3600000;
- private boolean isLocalized = false;
- private boolean validationMode = false;
- private Locale curLocale;
- private SimpleDateFormat format;
- private Locale[] locales;
- private DemoApplet applet;
- private static final int[] kAdjCityIndex = new int[]{1, 3, 2, 4, 0, 5, 0, 0, 6};
- private static final int[] kZoneOffsets = new int[]{3600000, -28800000, 0, -18000000, -25200000, -21600000, 32400000};
- private static final String[] kZoneIDs = new String[]{"ECT", "PST", "GMT", "EST", "MST", "CST", "JST"};
- Panel localePanel;
- Panel formatPanel;
- CheckboxGroup group1;
- CheckboxGroup group2;
- Label label1;
- Label label2;
- Label label3;
- Label demo;
- Label code;
- Choice localeMenu;
- Choice dateStyleMenu;
- Choice timeStyleMenu;
- Choice dateMenu;
- Choice cityMenu;
- Label dateLabel;
- Label cityLabel;
- TextField millisText;
- Label millisLabel;
- // $FF: renamed from: up java.awt.Button
- Button field_0;
- Button down;
- Label localeLabel;
- Label dateStyleLabel;
- Label timeStyleLabel;
- TextField inputText;
- TextField outputText;
- Label formatLabel;
- Label parseLabel;
- TextField patternText;
- Label label4;
- Checkbox getDateInstance;
- Checkbox getTimeInstance;
- Checkbox getDateTimeInstance;
- Checkbox getRoll;
- Checkbox getAdd;
- Checkbox getLocalized;
- Checkbox getValidationMode;
- Color color;
- private boolean add;
- long time;
-
- public DateTimeFrame(DemoApplet var1) {
- super("Date/Time Formatting Demo");
- this.curLocale = Locale.US;
- this.color = Color.white;
- this.add = false;
- this.time = System.currentTimeMillis();
- 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(true);
- this.formatText();
- }
-
- void addWithFont(Container var1, Component var2, Font var3) {
- if (var3 != null) {
- var2.setFont(var3);
- }
-
- var1.add(var2);
- }
-
- public void start() {
- }
-
- public void handleNewFormat() {
- Utility.setText(this.patternText, this.format.toPattern());
- }
-
- public void validationModeChanged() {
- this.format.setLenient(this.validationMode);
- this.parseText();
- }
-
- public void buildGUI() {
- ((Component)this).setBackground(this.color);
- ((Container)this).setLayout(new FlowLayout());
- Panel var1 = new Panel();
- this.label1 = new Label("Date/Time Formatting Demo", 1);
- this.label1.setFont(Utility.titleFont);
- ((Container)var1).add(this.label1);
- Panel var2 = new Panel();
- this.demo = new Label("", 1);
- this.demo.setFont(Utility.creditFont);
- ((Container)var2).add(this.demo);
- ((Container)var1).add(var2);
- Utility.fixGrid(var1, 1);
- ((Container)this).add(var1);
- Panel var3 = new Panel();
- ((Container)var3).setLayout(new FlowLayout());
- this.label3 = new Label("New Date", 2);
- this.label3.setFont(Utility.labelFont);
- ((Container)var3).add(this.label3);
- this.outputText = new TextField(45);
- this.outputText.addKeyListener(this);
- this.outputText.setFont(Utility.editFont);
- ((Container)var3).add(this.outputText);
- this.label2 = new Label("1.0 Date", 2);
- this.label2.setFont(Utility.labelFont);
- ((Container)var3).add(this.label2);
- this.inputText = new TextField((new Date()).toGMTString(), 45);
- this.inputText.addKeyListener(this);
- this.inputText.setFont(Utility.editFont);
- ((Container)var3).add(this.inputText);
- this.millisLabel = new Label("Millis", 2);
- this.millisLabel.setFont(Utility.labelFont);
- ((Container)var3).add(this.millisLabel);
- this.millisText = new TextField(45);
- this.millisText.addKeyListener(this);
- this.millisText.setFont(Utility.editFont);
- ((Container)var3).add(this.millisText);
- this.label4 = new Label("Pattern", 2);
- this.label4.setFont(Utility.labelFont);
- ((Container)var3).add(this.label4);
- this.patternText = new TextField(45);
- this.patternText.addKeyListener(this);
- this.patternText.setFont(Utility.editFont);
- ((Container)var3).add(this.patternText);
- ((Container)var3).add(new Label(" "));
- this.getLocalized = new Checkbox("Localized Pattern");
- this.getLocalized.addItemListener(this);
- this.getLocalized.setFont(Utility.labelFont);
- this.getValidationMode = new Checkbox("Validation Mode");
- this.getValidationMode.addItemListener(this);
- this.getValidationMode.setFont(Utility.labelFont);
- Panel var4 = new Panel();
- ((Container)var4).setLayout(new GridLayout(1, 2, 40, 0));
- ((Container)var4).add(this.getLocalized);
- ((Container)var4).add(this.getValidationMode);
- ((Container)var3).add(var4);
- Utility.fixGrid(var3, 2);
- ((Container)this).add(var3);
- Panel var5 = new Panel();
- ((Container)var5).setLayout(new FlowLayout());
- this.group2 = new CheckboxGroup();
- this.getRoll = new Checkbox("Roll", this.group2, true);
- this.getAdd = new Checkbox("Add", this.group2, false);
- this.getRoll.addItemListener(this);
- this.getAdd.addItemListener(this);
- this.dateLabel = new Label("Date Fields");
- this.dateLabel.setFont(Utility.labelFont);
- Panel var6 = new Panel();
- ((Container)var6).setLayout(new GridLayout(2, 1));
- this.field_0 = new Button("^");
- this.down = new Button("v");
- this.field_0.addActionListener(this);
- this.down.addActionListener(this);
- this.field_0.setBackground(Color.lightGray);
- this.down.setBackground(Color.lightGray);
- ((Container)var6).add(this.field_0);
- ((Container)var6).add(this.down);
- Panel var7 = new Panel();
- ((Container)var7).setLayout(new GridLayout(2, 1));
- ((Container)var7).add(this.getRoll);
- ((Container)var7).add(this.getAdd);
- Panel var8 = new Panel();
- ((Container)var8).setLayout(new FlowLayout());
- ((Container)var8).add(var7);
- ((Container)var8).add(var6);
- this.dateMenu = new Choice();
- this.dateMenu.addItem("Year");
- this.dateMenu.addItem("Month");
- this.dateMenu.addItem("Day of Month");
- this.dateMenu.addItem("Hour of Day");
- this.dateMenu.addItem("Minute");
- this.dateMenu.addItem("Second");
- this.dateMenu.addItem("Millisecond");
- Panel var9 = new Panel();
- ((Container)var9).setLayout(new GridLayout(2, 1));
- ((Container)var9).add(this.dateLabel);
- ((Container)var9).add(this.dateMenu);
- ((Container)var5).add(var9);
- Panel var10 = new Panel();
- ((Container)var10).setLayout(new FlowLayout());
- Panel var11 = new Panel();
- ((Container)var11).setLayout(new GridLayout(2, 1));
- this.cityMenu = new Choice();
- this.cityMenu.addItemListener(this);
- this.cityMenu.addItem("Paris");
- this.cityMenu.addItem("Copenhagen");
- this.cityMenu.addItem("London");
- this.cityMenu.addItem("Washington");
- this.cityMenu.addItem("Toronto");
- this.cityMenu.addItem("Montreal");
- this.cityMenu.addItem("Tokyo");
- this.cityLabel = new Label("City");
- this.cityLabel.setFont(Utility.labelFont);
- ((Container)var11).add(this.cityLabel);
- ((Container)var11).add(this.cityMenu);
- ((Container)var10).add(var11);
- Panel var12 = new Panel();
- ((Container)var12).add(var10);
- ((Container)var12).add(var5);
- ((Container)var12).add(var8);
- Utility.fixGrid(var12, 1);
- ((Container)this).add(var12);
- BorderPanel var13 = new BorderPanel(true);
- ((Component)var13).setBackground(Color.lightGray);
- ((Container)var13).setLayout((LayoutManager)null);
- ((Component)var13).setSize(8, 150);
- ((Container)this).add(var13);
- this.localePanel = new Panel();
- this.localePanel.setLayout(new GridLayout(2, 1));
- this.localeLabel = new Label("Locale");
- this.localeLabel.setFont(Utility.labelFont);
- this.localeMenu = new Choice();
- this.localeMenu.addItemListener(this);
- this.localePanel.add("loc", this.localeLabel);
- this.localePanel.add(this.localeMenu);
- this.formatPanel = new Panel();
- this.group1 = new CheckboxGroup();
- this.getDateInstance = new Checkbox("Date Format", this.group1, false);
- this.getTimeInstance = new Checkbox("Time Format", this.group1, false);
- this.getDateTimeInstance = new Checkbox("Date and Time Format", this.group1, true);
- this.getDateInstance.addItemListener(this);
- this.getTimeInstance.addItemListener(this);
- this.getDateTimeInstance.addItemListener(this);
- Panel var14 = new Panel();
- ((Container)var14).setLayout(new GridLayout(3, 1));
- ((Container)var14).add(this.getDateInstance);
- ((Container)var14).add(this.getTimeInstance);
- ((Container)var14).add(this.getDateTimeInstance);
- Panel var15 = new Panel();
- ((Container)var15).setLayout(new GridLayout(2, 1));
- this.dateStyleLabel = new Label("Date Style");
- this.dateStyleLabel.setFont(Utility.labelFont);
- this.dateStyleMenu = new Choice();
- this.dateStyleMenu.addItemListener(this);
- this.dateStyleMenu.addItem("Full");
- this.dateStyleMenu.addItem("Long");
- this.dateStyleMenu.addItem("Default");
- this.dateStyleMenu.addItem("Short");
- ((Container)var15).add("loc", this.dateStyleLabel);
- ((Container)var15).add(this.dateStyleMenu);
- Panel var16 = new Panel();
- ((Container)var16).setLayout(new GridLayout(2, 1));
- this.timeStyleLabel = new Label("Time Style");
- this.timeStyleLabel.setFont(Utility.labelFont);
- this.timeStyleMenu = new Choice();
- this.timeStyleMenu.addItemListener(this);
- this.timeStyleMenu.addItem("Full");
- this.timeStyleMenu.addItem("Long");
- this.timeStyleMenu.addItem("Default");
- this.timeStyleMenu.addItem("Short");
- ((Container)var16).add("loc", this.timeStyleLabel);
- ((Container)var16).add(this.timeStyleMenu);
- Panel var17 = new Panel();
- ((Container)var17).setLayout(new GridLayout(1, 2, 20, 0));
- ((Container)var17).add(var15);
- ((Container)var17).add(var16);
- this.formatPanel.add(var14);
- this.formatPanel.add(var17);
- Utility.fixGrid(this.formatPanel, 1);
- Panel var18 = new Panel();
- ((Container)var18).add(this.localePanel);
- ((Container)var18).add(this.formatPanel);
- Utility.fixGrid(var18, 1);
- ((Container)this).add(var18);
- Panel var19 = new Panel();
- this.addWithFont(var19, new Label("", 0), Utility.creditFont);
- this.addWithFont(var19, new Label("", 0), Utility.creditFont);
- Utility.fixGrid(var19, 1);
- ((Container)this).add(var19);
- }
-
- public void actionPerformed(ActionEvent var1) {
- if (((EventObject)var1).getSource() == this.field_0) {
- this.dateFieldChanged(true);
- } else {
- if (((EventObject)var1).getSource() == this.down) {
- this.dateFieldChanged(false);
- }
-
- }
- }
-
- public void itemStateChanged(ItemEvent var1) {
- if (((EventObject)var1).getSource() == this.localeMenu) {
- this.selectedLocaleMenu();
- } else if (((EventObject)var1).getSource() == this.dateStyleMenu) {
- this.selectedDateStyleMenu();
- } else if (((EventObject)var1).getSource() == this.timeStyleMenu) {
- this.selectedTimeStyleMenu();
- } else if (((EventObject)var1).getSource() == this.cityMenu) {
- this.cityChanged();
- } else if (((EventObject)var1).getSource() == this.getRoll) {
- this.clickedGetRoll();
- } else if (((EventObject)var1).getSource() == this.getAdd) {
- this.clickedGetAdd();
- } else if (((EventObject)var1).getSource() == this.getLocalized) {
- this.isLocalized = this.getLocalized.getState();
- this.handleNewFormat();
- } else if (((EventObject)var1).getSource() == this.getValidationMode) {
- this.validationMode = this.getValidationMode.getState();
- this.validationModeChanged();
- } else if (((EventObject)var1).getSource() == this.getDateInstance) {
- this.clickedGetDateFormat();
- } else if (((EventObject)var1).getSource() == this.getTimeInstance) {
- this.clickedGetTimeFormat();
- } else {
- if (((EventObject)var1).getSource() == this.getDateTimeInstance) {
- this.clickedGetDateTimeFormat();
- }
-
- }
- }
-
- public void keyPressed(KeyEvent var1) {
- }
-
- public void keyReleased(KeyEvent var1) {
- if (((EventObject)var1).getSource() == this.patternText) {
- ((InputEvent)var1).consume();
- this.patternTextChanged();
- } else if (((EventObject)var1).getSource() == this.inputText) {
- ((InputEvent)var1).consume();
- this.formatText();
- } else if (((EventObject)var1).getSource() == this.outputText) {
- ((InputEvent)var1).consume();
- this.parseText();
- } else {
- if (((EventObject)var1).getSource() == this.millisText) {
- ((InputEvent)var1).consume();
- this.millisChanged();
- }
-
- }
- }
-
- 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 setFormatFromLocale(boolean var1) {
- int var2 = this.localeMenu.getSelectedIndex();
- int var3 = this.dateStyleMenu.getSelectedIndex();
- int var4 = this.timeStyleMenu.getSelectedIndex();
- if (var1) {
- this.curLocale = this.locales[var2];
- }
-
- if (this.getDateInstance.getState()) {
- this.format = (SimpleDateFormat)DateFormat.getDateInstance(var3, this.curLocale);
- } else if (this.getTimeInstance.getState()) {
- this.format = (SimpleDateFormat)DateFormat.getTimeInstance(var4, this.curLocale);
- } else {
- this.format = (SimpleDateFormat)DateFormat.getDateTimeInstance(var3, var4, this.curLocale);
- }
-
- this.patternText.setText(this.format.toPattern());
- if (!var1) {
- this.setMillisText();
- this.millisFormat();
- } else {
- this.cityMenu.select(kAdjCityIndex[var2]);
- this.cityChanged();
- }
- }
-
- public void setFormatFromPattern() {
- String var1 = this.patternText.getText();
- this.format.applyPattern(var1);
- this.millisFormat();
- this.millisParse();
- }
-
- public void clickedGetRoll() {
- this.add = false;
- }
-
- public void clickedGetAdd() {
- this.add = true;
- }
-
- public void clickedGetDateFormat() {
- this.setFormatFromLocale(false);
- }
-
- public void clickedGetTimeFormat() {
- this.setFormatFromLocale(false);
- }
-
- public void clickedGetDateTimeFormat() {
- this.setFormatFromLocale(false);
- }
-
- public void selectedLocaleMenu() {
- this.setFormatFromLocale(true);
- }
-
- public void selectedDateStyleMenu() {
- this.setFormatFromLocale(false);
- }
-
- public void selectedTimeStyleMenu() {
- this.setFormatFromLocale(false);
- }
-
- public void formatText() {
- String var1 = this.inputText.getText();
- if (var1.length() == 0) {
- this.errorText("Error: no input to format!");
- } else {
- try {
- this.time = Date.parse(var1);
- } catch (Exception var2) {
- this.outputText.setText("ERROR");
- this.errorText("Exception: Date.parse: " + var1);
- return;
- }
-
- this.setMillisText();
- this.millisFormat();
- }
- }
-
- public void parseText() {
- String var1 = this.outputText.getText();
- ParsePosition var2 = new ParsePosition(0);
- if (var1.length() == 0) {
- this.errorText("Error: no input to parse!");
- } else {
- try {
- this.time = this.format.parse(var1, var2).getTime();
- } catch (Exception var3) {
- this.inputText.setText("ERROR");
- this.errorText("Exception: parse: " + var1);
- return;
- }
-
- this.setMillisText();
- this.millisParse();
- }
- }
-
- public void millisFormat() {
- String var1 = "";
-
- try {
- var1 = this.format.format(new Date(this.time));
- } catch (Exception var2) {
- this.outputText.setText("ERROR");
- this.errorText("Exception: format: " + this.time);
- return;
- }
-
- this.outputText.setText(var1);
- this.errorText("Formatted...");
- }
-
- public void millisParse() {
- String var1 = "";
-
- try {
- var1 = (new Date(this.time)).toGMTString();
- } catch (Exception var2) {
- this.inputText.setText("ERROR");
- this.errorText("Exception: in toGMTString: " + this.time);
- return;
- }
-
- this.inputText.setText(var1);
- this.errorText("Parsed...");
- }
-
- public void millisChanged() {
- String var1 = this.millisText.getText();
-
- try {
- this.time = Long.parseLong(var1);
- } catch (Exception var2) {
- this.errorText("Exception: Bad value for millis. Must be Long");
- return;
- }
-
- this.millisFormat();
- this.millisParse();
- this.errorText("Millis changed...");
- }
-
- public void setMillisText() {
- this.millisText.setText(Long.toString(this.time));
- }
-
- public void patternTextChanged() {
- this.setFormatFromPattern();
- }
-
- public void cityChanged() {
- int var1 = this.cityMenu.getSelectedIndex();
- SimpleTimeZone var2 = new SimpleTimeZone(kZoneOffsets[var1], kZoneIDs[var1]);
- var2.setStartRule(3, 1, 1, 7200000);
- var2.setEndRule(9, -1, 1, 7200000);
- this.format.setTimeZone(var2);
- this.millisFormat();
- this.millisParse();
- }
-
- private boolean addMode() {
- return this.add;
- }
-
- public void dateFieldChanged(boolean var1) {
- String var2 = this.dateMenu.getSelectedItem();
- byte var3 = 0;
- if (var2.equals("Year")) {
- var3 = 1;
- } else if (var2.equals("Month")) {
- var3 = 2;
- } else if (var2.equals("Day of Month")) {
- var3 = 5;
- } else if (var2.equals("Hour of Day")) {
- var3 = 11;
- } else if (var2.equals("Minute")) {
- var3 = 12;
- } else if (var2.equals("Second")) {
- var3 = 13;
- } else if (var2.equals("Millisecond")) {
- var3 = 14;
- }
-
- this.format.getCalendar().setTime(new Date(this.time));
- if (var1) {
- if (this.addMode()) {
- this.format.getCalendar().add(var3, 1);
- } else {
- this.format.getCalendar().roll(var3, true);
- }
- } else if (this.addMode()) {
- this.format.getCalendar().add(var3, -1);
- } else {
- this.format.getCalendar().roll(var3, false);
- }
-
- this.time = this.format.getCalendar().getTime().getTime();
- this.setMillisText();
- this.millisFormat();
- this.millisParse();
- }
-
- public void errorText(String var1) {
- }
- }
-