001: package com.salmonllc.examples.example15;
002:
003: //The Salmon Open Framework for Internet Applications (SOFIA)
004: //Copyright (C) 1999 - 2002, Salmon LLC
005: //
006: //This program is free software; you can redistribute it and/or
007: //modify it under the terms of the GNU General Public License version 2
008: //as published by the Free Software Foundation;
009: //
010: //This program is distributed in the hope that it will be useful,
011: //but WITHOUT ANY WARRANTY; without even the implied warranty of
012: //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
013: //GNU General Public License for more details.
014: //
015: //You should have received a copy of the GNU General Public License
016: //along with this program; if not, write to the Free Software
017: //Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
018: //
019: //For more information please visit http://www.salmonllc.com
020:
021: import javax.swing.*;
022: import java.awt.event.WindowAdapter;
023: import java.awt.event.WindowEvent;
024: import java.awt.*;
025:
026: /*
027: * The data entry screen hosted in a Java Application
028: */
029:
030: public class DataEntryApplication {
031:
032: /**
033: * Checks if there are unsaved changes before allowing the user to close the window.
034: */
035: public static class CloseManager extends WindowAdapter {
036: MainPanel _pan;
037:
038: public CloseManager(MainPanel pan) {
039: _pan = pan;
040: }
041:
042: public void windowClosing(WindowEvent e) {
043: if (_pan.checkDataModified()) {
044: e.getWindow().hide();
045: e.getWindow().dispose();
046: _pan.stopPinging();
047: System.exit(0);
048: }
049: }
050: }
051:
052: public static void main(String args[]) {
053: //Get parms from the argument line. At a minimum we need a server URL parm
054: //Optionally we can get a session id. This is if we are running from Java Web Start. The client application can use the same server session as the web applet.
055: //Also we can optionally get width and height
056: String serverID = null;
057: String sessionID = null;
058: int width = 700;
059: int height = 420;
060: if (args.length > 0) {
061: serverID = args[0];
062: if (serverID != null) {
063: int pos = serverID.indexOf("/Jsp/");
064: if (pos != -1)
065: serverID = serverID.substring(0, pos);
066: }
067: }
068: if (args.length > 1) {
069: try {
070: width = Integer.parseInt(args[1]);
071: } catch (Exception e) {
072: }
073: }
074: if (args.length > 2) {
075: try {
076: height = Integer.parseInt(args[2]);
077: } catch (Exception e) {
078: }
079: }
080: if (args.length > 3)
081: sessionID = args[3];
082:
083: //Create the GUI
084: JFrame f = new JFrame("Data Entry Sample");
085: f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
086: Dimension r = Toolkit.getDefaultToolkit().getScreenSize();
087:
088: f.setBounds((r.width - width) / 2, (r.height - height) / 2,
089: width, height);
090: MainPanel panel = new MainPanel(serverID, sessionID, width);
091: f.getContentPane().add(panel);
092:
093: //Check to see if we are connected to the server before continuing.
094: if (panel.checkServerConnection()) {
095: f.addWindowListener(new CloseManager(panel));
096: f.show();
097: } else {
098: f.dispose();
099: System.exit(0);
100: }
101: }
102: }
|