package org.enhydra.jawe; import java.awt.Color; import java.awt.Image; import java.awt.MediaTracker; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileInputStream; import java.net.URL; import java.util.Locale; import java.util.Properties; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; /** * The main editor class. * * @author Sasa Bojanic */ public class JaWE { //CUSTOM public static boolean BASIC_MODE = true; //END CUSTOM static int timeLeft = 10; // in seconds public static void main(String[] args) throws Throwable { System.out.println("Starting JAWE ...."); System.out.println("JaWE -> JaWE is being initialized ..."); String splash = System.getProperty("Splash"); JFrame splashFrame = null; if (splash != null) { splashFrame = new JFrame(); try { URL imageLocation = null; imageLocation = JaWE.class.getClassLoader().getResource(splash.startsWith("/") ? splash.substring(1) : splash); if (imageLocation == null) { imageLocation = new URL(splash); } Image i = Toolkit.getDefaultToolkit().getImage(imageLocation); MediaTracker mediaTracker = new MediaTracker(splashFrame); mediaTracker.addImage(i, 0); mediaTracker.waitForID(0); JLabel icon = new JLabel(new ImageIcon(i)); splashFrame.setUndecorated(true); splashFrame.getContentPane().add(icon); splashFrame.pack(); splashFrame.setLocationRelativeTo(null); splashFrame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } File cfgf = null; System.out.println("JaWE_CONF_HOME=" + JaWEConstants.JAWE_CONF_HOME); if (JaWEConstants.JAWE_CONF_HOME != null) { File mainConfig = new File(JaWEConstants.JAWE_CONF_HOME + "/" + "defaultconfig"); Properties props = new Properties(); if (mainConfig.exists()) { FileInputStream fis = null; try { fis = new FileInputStream(mainConfig); props.load(fis); fis.close(); } catch (Exception ex) { System.err.println("Something went wrong while reading configuration from the file " + mainConfig.getAbsolutePath()); } } String conf_home = JaWEConstants.JAWE_CONF_HOME + "/" + props.getProperty(JaWEConstants.JAWE_CURRENT_CONFIG_HOME); File cfh = new File(conf_home); if (cfh.exists()) { System.setProperty(JaWEConstants.JAWE_CURRENT_CONFIG_HOME, conf_home); if (Utils.checkFileExistence(JaWEManager.TOGWE_BASIC_PROPERTYFILE_NAME) || Utils.checkResourceExistence(JaWEManager.TOGWE_BASIC_PROPERTYFILE_PATH, JaWEManager.TOGWE_BASIC_PROPERTYFILE_NAME)) { cfgf = new File(conf_home + "/" + JaWEManager.TOGWE_BASIC_PROPERTYFILE_NAME); } else { cfgf = new File(conf_home + "/" + JaWEConstants.JAWE_BASIC_PROPERTYFILE_NAME); } } } if (cfgf != null && cfgf.exists()) { JaWEManager.configure(cfgf); } else { JaWEManager.configure(); } // Starting file name String fn = null; if (args != null && args.length > 0) { // check if there is a file that should be open at the startup if(args[0] != null && !args[0].trim().equals("")){ fn = args[0]; } // check if there is a locale is set if(args[1] != null && !args[1].trim().equals("")){ Locale locale = null; String[] temp = args[1].split("_"); if(temp.length == 1){ locale = new Locale(temp[0]); }else if (temp.length == 2){ locale = new Locale(temp[0], temp[1]); }else if (temp.length == 3){ locale = new Locale(temp[0], temp[1], temp[2]); } ResourceManager.setChoosen(locale); } } JaWEManager.getInstance().start(fn); if (splashFrame != null) { splashFrame.setVisible(false); splashFrame.dispose(); } } //CUSTOM public static void setBASIC_MODE(boolean aBASIC_MODE) { BASIC_MODE = aBASIC_MODE; } //END CUSTOM private static class JaWEAboutDialog extends JDialog { JButton okButton; public JaWEAboutDialog(JFrame frame) { super(frame); JPanel main = new JPanel(); main.setBackground(Color.WHITE); main.setLayout(new BoxLayout(main, BoxLayout.Y_AXIS)); okButton = new JButton(" OK "); okButton.setAlignmentX(CENTER_ALIGNMENT); okButton.addActionListener(new ActionHandler()); main.add(JaWESplash.getSplashPanel()); main.add(Box.createVerticalStrut(15)); main.add(okButton); getContentPane().add(main); } private class ActionHandler implements ActionListener { public void actionPerformed(ActionEvent e) { dispose(); } } } public static final int COMMUNITY_VERSION = 0; public static final int DEMO_VERSION = 1; public static final int PROFESSIONAL_VERSION = 2; public static final int JPED_VERSION = 2044; protected static int VERSION = 666; public static int getJaWEVersion() { if (VERSION == -1) { try { Class.forName("org.enhydra.jawe.base.controller.TogWEDemoController"); VERSION = DEMO_VERSION; } catch (Exception ex) { try { Class.forName("org.enhydra.jawe.ProfInfo"); VERSION = PROFESSIONAL_VERSION; } catch (Exception ex2) { VERSION = COMMUNITY_VERSION; } } } return VERSION; } protected static boolean addOnsAvailable = true; public static boolean addOnsAvailable() { try { Class.forName("org.enhydra.jawe.AddOnInfo"); addOnsAvailable = true; } catch (Exception ex) { } return addOnsAvailable; } }