import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.JDialog;
import java.net.*;
import java.io.*;
import java.util.*;
import java.text.*;

public class DrwResize extends JDialog {
	static		JTextField dszPSField, drwNumField;
	static		String dszStg, dtstgsh, drwsz, drwNm, dtstg, fDrwStg, fDrwSzStg;
	static		String dlstflnm, DtStg, DrgStg, DrgSzStg, outnm, indata, inflnm, flnm;
	static		String[] dsz_val = { "B","C","D","E" };

	static		JDialog dmDlg;
	static		JButton ExitBut, SaveBut;
	static		JPanel fullPanel, topGridPanel, drwNumPanel, btmbutPanel;
	static		JPanel dszPSPanel, dszCBPanel;

	public DrwResize() {
		dmDlg=new JDialog(new JFrame()," DRAWING RESIZE PROGRAM ",true);
		dmDlg.setResizable( false );

		dmDlg.addWindowListener( new WindowAdapter() {
			public void windowClosing( WindowEvent e ) { System.exit(0); }
		});

		try {
			UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
		}
		catch (Exception exc) {}

		fullPanel = new JPanel();
		fullPanel.setBorder(new EmptyBorder(1,1,1,1));
		fullPanel.setLayout(new BorderLayout());

		topGridPanel = new JPanel();
		GridBagLayout gbc0 = new GridBagLayout();
		topGridPanel.setLayout(gbc0);

		// Input Drawing Number Panel
		drwNumPanel= new JPanel();
		JLabel drwNumLabel = new JLabel("Enter Drawing Name (No Ext.)");
		drwNumField = new JTextField(14);
		drwNumPanel.add(drwNumLabel);
		drwNumPanel.add(drwNumField);

		// Drawing Size
		dszPSPanel = new JPanel();
		JLabel dszPSLabel = new JLabel ("Actual Correct Drawing Size: ");
		dszPSField = new JTextField(dsz_val[1],5);
		dszPSPanel.add(dszPSLabel);
		dszPSPanel.add(dszPSField);

		dszCBPanel = new JPanel();
		JLabel dszcbLabel = new JLabel ("Select Drawing Size From List: ");
		final JComboBox dsgnsComboBox = new JComboBox(dsz_val);
		dsgnsComboBox.setSelectedItem(dsz_val[1]);
		dszCBPanel.add(dszcbLabel);
		dszCBPanel.add(dsgnsComboBox);

		dsgnsComboBox.addItemListener(
			new ItemListener() {
				public void itemStateChanged( ItemEvent e ) {
					if( e.getStateChange() == ItemEvent.SELECTED ){
						dszPSField.setText("" + ((JComboBox)e.getSource()).getSelectedItem());
					}
				}
			}
		);

		btmbutPanel = new JPanel();
		btmbutPanel.setLayout ( new FlowLayout(FlowLayout.CENTER) );

		SaveBut = new JButton("SAVE DATA");
		SaveBut.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				DtStg = getDateStg();
				DrgStg = getDrwStg();
				DrgSzStg = getDrwSzStg();

				flnm = DrgStg + "_" + DrgSzStg + "_" + DtStg + ".txt";
				inflnm = DrgStg + "|" + DrgSzStg;

				SaveSelected( inflnm, flnm );
				drwNumField.setText("Data Has Been Saved");
		}});
		btmbutPanel.add(SaveBut);

		ExitBut = new JButton("EXIT");
		ExitBut.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) { System.exit(0); }
		});
		btmbutPanel.add(ExitBut);

		topGridPanel.add(drwNumPanel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
			,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 1, 0));
		topGridPanel.add(dszPSPanel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0
			,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 1, 0));
		topGridPanel.add(dszCBPanel, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0
			,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 1, 0));

		fullPanel.add(topGridPanel, BorderLayout.NORTH);
		fullPanel.add(btmbutPanel, BorderLayout.SOUTH);

		dmDlg.getContentPane().add(fullPanel, BorderLayout.NORTH);
		dmDlg.pack();
		dmDlg.show();
	}

	public String getDrwStg() {
		fDrwStg = drwNumField.getText();
		return fDrwStg;
	}

	public String getDrwSzStg() {
		fDrwSzStg = dszPSField.getText();
		return fDrwSzStg;
	}

	public String getDateStg() {
		SimpleDateFormat df = new SimpleDateFormat ("MMddyy_HHmmss", Locale.getDefault());
		java.util.Date tm = new java.util.Date();
		String dtStg = df.format(tm);

		return dtStg;
	}

	public void SaveSelected( String indata, String outnm ) {
		try {
			PrintStream expfl = new PrintStream(new FileOutputStream(outnm));
			expfl.println( indata );
			expfl.flush();
			expfl.close();
		} catch(java.io.IOException IOEx) {
			System.out.println("Cannot create " + outnm + " file.");
			drwNumField.setText("Error Has Occurred");
		}
	}

	public static void main(String[] args) {
		DrwResize dmDlg;
		dmDlg = new DrwResize();

		dmDlg.addWindowListener( new WindowAdapter() {
			public void windowClosing( WindowEvent e ) { System.exit(0); }
		});
	}
}
