package net.sourceforge.fidocadj;
import java.awt.*;
import java.applet.*;
import javax.swing.*;
import net.sourceforge.fidocadj.globals.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
/** FidoReadApplet.java v.2.0
This is the main file for the FidoCadJ reader applet.
<pre>
This file is part of FidoCadJ.
FidoCadJ is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
FidoCadJ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with FidoCadJ. If not,
@see <a href=http://www.gnu.org/licenses/>http://www.gnu.org/licenses/</a>.
Copyright march 2007-2014 by Davide Bucci
</pre>
@author Davide Bucci
*/
public class FidoCadApplet extends JApplet implements ActionListener
{
// Increment this version number each time an important modification of
// this class has been done.
private static final long serialVersionUID = 10L;
private FidoFrame popFrame;
/** Applet initialization.
*/
public void init()
{
// Here we create the main window object
Button fidoButton = new Button("Launch FidoCadJapplet");
fidoButton.addActionListener(this);
getContentPane().add(fidoButton);
popFrame=new FidoFrame(false, null);
// FidoCadJ will try to determine the current locale configuration
// in order to load the corresponding resource file and show an
// interface in the same language as the host operating system.
popFrame.currentLocale = Locale.getDefault();
// The following code has changed from version 0.20.1.
// This way, it should tolerate systems in which resource file for the
// current locale is not available. The English interface will be shown.
try {
// Try to load the program with the current locale
Globals.messages = new
AccessResources (Utf8ResourceBundle.getBundle("MessagesBundle",
popFrame.currentLocale));
} catch(MissingResourceException mre) {
try {
// If it does not work, try to use the standard English
Globals.messages = new
AccessResources (ResourceBundle.getBundle("MessagesBundle",
new Locale("en", "US")));
System.out.println("No locale available, sorry... "+
"interface will be in English");
} catch(MissingResourceException mre1) {
// Give up!!!
JOptionPane.showMessageDialog(null,
"Unable to find language localization files: " + mre1);
System.exit(1);
}
}
Globals.useNativeFileDialogs=false;
Globals.useMetaForMultipleSelection=false;
if (System.getProperty("os.name").startsWith("Mac")) {
// From what I know, only Mac users expect to use the Command (meta)
// key for shortcuts, while others will use Control.
Globals.shortcutKey=InputEvent.META_MASK;
Globals.useMetaForMultipleSelection=true;
// Standard dialogs are vastly better on MacOSX than the Swing ones
Globals.useNativeFileDialogs=true;
} else {
Globals.shortcutKey=InputEvent.CTRL_MASK;
}
popFrame.init();
}
/** Event handler.
@param evt the event to process.
*/
public void actionPerformed(ActionEvent evt)
{
if(popFrame.isVisible())
popFrame.setVisible(false);
else
popFrame.setVisible(true);
}
}