package gdxstudio; import gdxstudio.panel.ConsolePanel; import gdxstudio.panel.StudioPanel; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics2D; import java.awt.SplashScreen; import java.awt.Toolkit; import javax.swing.JFrame; import javax.swing.SwingUtilities; import javax.swing.UIManager; import scene2d.Asset; import web.laf.lite.widget.Register; public class GdxStudio { public static final String version = "0.7.1"; public static void main(String[] args) { /*try { JavaLexer lexer = new JavaLexer(new ANTLRFileStream("C:/JavaParser.java")); JavaParser parser = new JavaParser(new CommonTokenStream(lexer)); parser.addErrorListener(new DiagnosticErrorListener()); parser.setErrorHandler(new DefaultErrorStrategy()); parser.getInterpreter().setPredictionMode(PredictionMode.SLL); parser.compilationUnit(); } catch (IOException e) { e.printStackTrace(); }*/ SwingUtilities.invokeLater(new Runnable() { @Override public void run() { Register.init("gdxstudio"); Content.initProjects(); try{ UIManager.setLookAndFeel("web.laf.lite.ui.WebLookAndFeelLite"); } catch (Throwable e){ e.printStackTrace (); } createSplash(); //Frame.getInstance().pack(); Frame.getInstance().setVisible(true); Frame.getInstance().setExtendedState(JFrame.MAXIMIZED_BOTH); ConsolePanel.redirectSystemStreams(); if(Content.projectExists()){ Asset.loadAsynchronous = false; Asset.setBasePath(Content.getProject()); SceneEditor.reloadAssets = true; // to load assets of new project StudioPanel.updateAssets(); Content.toggleView(2); } else{ Frame.setDisabledProject(); } } }); /*SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new Update().setVisible(true); } });*/ } static void createFrameWithoutSplash(){ Icon.loadIcons(); Frame.getInstance().setIconImage(Icon.icon("icon").getImage()); Frame.getInstance().setTitle("GdxStudio"); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Frame.getInstance().setSize(screenSize); Frame.getInstance().setLocation(0, 0); Frame.getInstance().setLocationRelativeTo(null); Frame.getInstance().initSideBar(); Frame.getInstance().initStatusBar(); Frame.getInstance().initContent(); Frame.getInstance().initToolBar(); } static void createSplash(){ Graphics2D g = null; final SplashScreen splash = SplashScreen.getSplashScreen(); if (splash == null) createFrameWithoutSplash(); else { g = splash.createGraphics(); renderSplashFrame(g, 1, "Initializing"); splash.update(); renderSplashFrame(g, 2, "Loading Icons"); splash.update(); Icon.loadIcons(); renderSplashFrame(g, 3, "Loading Frame"); splash.update(); Frame.getInstance().setIconImage(Icon.icon("icon").getImage()); Frame.getInstance().setTitle("GdxStudio"); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Frame.getInstance().setSize(screenSize); Frame.getInstance().setLocation(0, 0); Frame.getInstance().setLocationRelativeTo(null); renderSplashFrame(g, 4, "Loading Explorer"); splash.update(); renderSplashFrame(g, 5, "Loading SideBar"); splash.update(); Frame.getInstance().initSideBar(); renderSplashFrame(g, 6, "Loading Status Bar"); splash.update(); Frame.getInstance().initStatusBar(); renderSplashFrame(g, 7, "Loading Content"); splash.update(); Frame.getInstance().initContent(); renderSplashFrame(g, 8, "Loading ToolBar"); splash.update(); Frame.getInstance().initToolBar(); renderSplashFrame(g, 9, "Finished"); splash.update(); } } static int height = 200; static int width = 400; static int fontHeight = 12; private static int ind = 8; static void renderSplashFrame(Graphics2D g, int frame, String content) { g.setComposite(AlphaComposite.Src); g.setColor(Color.BLACK); g.setPaintMode(); g.fillRect(0, height - 29, width, 17); g.setColor(Color.RED); ind--; if(ind == 0) ind = 1; for(int i= 0; i < frame; i ++) for(int j= 0; j < i*frame/ind; j ++){ int x = 9 *j; /*if(x > 0 || x < 0) g.setColor(Color.RED); if(x > width/4) g.setColor(Color.ORANGE); if(x > width/2) g.setColor(Color.YELLOW); if(x > 3*width/4) g.setColor(Color.GREEN);*/ g.fillRect(x , height - 28, 8, 8); } g.setColor(Color.ORANGE); for(int i= 0; i < frame; i ++) for(int j= 0; j < i*frame/1.1; j ++) g.fillRect(9 * j , height - 20, 8, 8); g.setColor(Color.BLACK); g.fillRect(0, height - 12, width, fontHeight); g.setColor(Color.WHITE); g.setFont(new Font("Purisa", Font.PLAIN, 13)); g.drawString(content, 0, height - 2); } public static void log(String text){ System.out.println(text); } public static void error(String text){ System.err.println(text); } }