001: /*
002: License $Id: JoIgnition.java,v 1.5 2003/09/13 04:59:57 hendriks73 Exp $
003:
004: Copyright (c) 2001-2005 tagtraum industries.
005:
006: LGPL
007: ====
008:
009: jo! is free software; you can redistribute it and/or
010: modify it under the terms of the GNU Lesser General Public
011: License as published by the Free Software Foundation; either
012: version 2.1 of the License, or (at your option) any later version.
013:
014: jo! is distributed in the hope that it will be useful,
015: but WITHOUT ANY WARRANTY; without even the implied warranty of
016: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: Lesser General Public License for more details.
018:
019: You should have received a copy of the GNU Lesser General Public
020: License along with this library; if not, write to the Free Software
021: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
022:
023: For LGPL see <http://www.fsf.org/copyleft/lesser.txt>
024:
025:
026: Sun license
027: ===========
028:
029: This release contains software by Sun Microsystems. Therefore
030: the following conditions have to be met, too. They apply to the
031: files
032:
033: - lib/mail.jar
034: - lib/activation.jar
035: - lib/jsse.jar
036: - lib/jcert.jar
037: - lib/jaxp.jar
038: - lib/crimson.jar
039: - lib/servlet.jar
040: - lib/jnet.jar
041: - lib/jaas.jar
042: - lib/jaasmod.jar
043:
044: contained in this release.
045:
046: a. Licensee may not modify the Java Platform
047: Interface (JPI, identified as classes contained within the javax
048: package or any subpackages of the javax package), by creating additional
049: classes within the JPI or otherwise causing the addition to or modification
050: of the classes in the JPI. In the event that Licensee creates any
051: Java-related API and distribute such API to others for applet or
052: application development, you must promptly publish broadly, an accurate
053: specification for such API for free use by all developers of Java-based
054: software.
055:
056: b. Software is confidential copyrighted information of Sun and
057: title to all copies is retained by Sun and/or its licensors. Licensee
058: shall not modify, decompile, disassemble, decrypt, extract, or otherwise
059: reverse engineer Software. Software may not be leased, assigned, or
060: sublicensed, in whole or in part. Software is not designed or intended
061: for use in on-line control of aircraft, air traffic, aircraft navigation
062: or aircraft communications; or in the design, construction, operation or
063: maintenance of any nuclear facility. Licensee warrants that it will not
064: use or redistribute the Software for such purposes.
065:
066: c. Software is provided "AS IS," without a warranty
067: of any kind. ALL EXPRESS OR IMPLIED REPRESENTATIONS AND WARRANTIES,
068: INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
069: PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
070:
071: d. This License is effective until terminated. Licensee may
072: terminate this License at any time by destroying all copies of Software.
073: This License will terminate immediately without notice from Sun if Licensee
074: fails to comply with any provision of this License. Upon such termination,
075: Licensee must destroy all copies of Software.
076:
077: e. Software, including technical data, is subject to U.S.
078: export control laws, including the U.S. Export Administration Act and its
079: associated regulations, and may be subject to export or import regulations
080: in other countries. Licensee agrees to comply strictly with all such
081: regulations and acknowledges that it has the responsibility to obtain
082: licenses to export, re-export, or import Software. Software may not be
083: downloaded, or otherwise exported or re-exported (i) into, or to a national
084: or resident of, Cuba, Iraq, Iran, North Korea, Libya, Sudan, Syria or any
085: country to which the U.S. has embargoed goods; or (ii) to anyone on the
086: U.S. Treasury Department's list of Specially Designated Nations or the U.S.
087: Commerce Department's Table of Denial Orders.
088:
089:
090: Feedback
091: ========
092:
093: We encourage your feedback and suggestions and want to use your feedback to
094: improve the Software. Send all such feedback to:
095: <feedback@tagtraum.com>
096:
097: For more information on tagtraum industries and jo!
098: please see <http://www.tagtraum.com/>.
099:
100:
101: */
102: package com.tagtraum.jo;
103:
104: import com.tagtraum.framework.log.Log;
105: import com.tagtraum.framework.server.ServerException;
106: import com.tagtraum.framework.util.URLHelper;
107: import com.tagtraum.jo.builder.I_JoServiceBuilder;
108: import com.tagtraum.jo.builder.JoPropertyServiceBuilder;
109:
110: import javax.swing.*;
111: import java.awt.*;
112: import java.awt.event.ActionEvent;
113: import java.awt.event.ActionListener;
114: import java.awt.event.WindowAdapter;
115: import java.awt.event.WindowEvent;
116: import java.util.ResourceBundle;
117:
118: /**
119: * Minimalistic GUI with just a button.
120: *
121: * @author <a href="mailto:hs@tagtraum.com">Hendrik Schreiber</a>
122: * @version 1.1beta1 $Id: JoIgnition.java,v 1.5 2003/09/13 04:59:57 hendriks73 Exp $
123: */
124: public class JoIgnition extends JFrame implements ActionListener {
125:
126: /**
127: * Source-Version
128: */
129: public static String vcid = "$Id: JoIgnition.java,v 1.5 2003/09/13 04:59:57 hendriks73 Exp $";
130: private static ResourceBundle localStrings = ResourceBundle
131: .getBundle("com.tagtraum.jo.localStrings");
132:
133: /**
134: * jo! Instance.
135: */
136: private I_JoServletService jo;
137:
138: /**
139: * The button.
140: */
141: private JButton toggle = new JButton(localStrings
142: .getString("start_button"));
143:
144: /**
145: * Server name.
146: */
147: private static String serverName;
148:
149: /**
150: * Window-Constructor.
151: *
152: * @param title window title.
153: */
154: public JoIgnition(String title) throws Exception {
155: super (title);
156:
157: toggle.addActionListener(this );
158: toggle.setBackground(Color.green);
159: addWindowListener(new WindowAdapter() {
160:
161: public void windowClosing(WindowEvent e) {
162: try {
163: ((JoIgnition) e.getWindow()).stop();
164: } catch (ServerException se) {
165: se.printStackTrace();
166: }
167: e.getWindow().dispose();
168: System.exit(0);
169: }
170:
171: });
172: setSize(100, 75);
173:
174: GridBagLayout gbl = new GridBagLayout();
175: GridBagConstraints c = new GridBagConstraints();
176:
177: getContentPane().setLayout(gbl);
178:
179: c.fill = GridBagConstraints.BOTH;
180: c.weightx = 1.0;
181: c.weighty = 1.0;
182:
183: gbl.setConstraints(toggle, c);
184: getContentPane().add(toggle);
185:
186: I_JoServiceBuilder myBuilder = new JoPropertyServiceBuilder();
187:
188: myBuilder.setName("jo");
189: myBuilder.setURL(URLHelper.make("./"));
190: jo = (I_JoServletService) myBuilder.build();
191: actionPerformed(null);
192: show();
193: }
194:
195: /**
196: * Reacts to the push of the button and calls
197: * {@link #stop()} or {@link #start()}.
198: *
199: * @param e ActionEvent
200: */
201: public void actionPerformed(ActionEvent e) {
202: if (toggle.getText().equals(
203: localStrings.getString("start_button"))) {
204: try {
205: start();
206: } catch (Exception ex) {
207: Log.getLog(serverName).log(ex);
208: Log.getLog(serverName).log(
209: localStrings.getString("service_start_failed")
210: + ex.toString());
211: }
212: } else {
213: try {
214: stop();
215: } catch (Exception ex) {
216: Log.getLog(serverName).log(ex);
217: Log.getLog(serverName).log(
218: localStrings.getString("service_stop_failed")
219: + ex.toString());
220: }
221: }
222: }
223:
224: /**
225: * Stops jo!
226: */
227: public void stop() throws ServerException {
228: Log.getLog(serverName).log(
229: localStrings.getString("service_shutdown"));
230: jo.stop();
231: toggle.setText(localStrings.getString("start_button"));
232: toggle.setBackground(Color.green);
233: }
234:
235: /**
236: * Starts jo!
237: */
238: public void start() throws ServerException {
239: Log.getLog(serverName).log(
240: localStrings.getString("service_start"));
241: jo.start();
242: toggle.setText(localStrings.getString("stop_button"));
243: toggle.setBackground(Color.red);
244: }
245:
246: /**
247: * Start method.
248: *
249: * @param args first argument shouild be the name of the service.
250: */
251: public static void main(String[] args) throws Exception {
252: try {
253: serverName = args[0];
254: } catch (Exception e) {
255: serverName = "jo";
256: }
257: new JoIgnition(serverName);
258: }
259:
260: }
|