1 19 20 package edu.umd.cs.findbugs.gui2; 21 22 import java.io.File ; 23 import java.io.IOException ; 24 import java.lang.management.ManagementFactory ; 25 import java.lang.management.ThreadMXBean ; 26 import java.lang.reflect.Method ; 27 import java.util.ArrayList ; 28 import java.util.Iterator ; 29 30 import javax.swing.JOptionPane ; 31 import javax.swing.UIManager ; 32 33 import org.dom4j.DocumentException; 34 35 import com.apple.eawt.Application; 36 37 import edu.umd.cs.findbugs.BugInstance; 38 import edu.umd.cs.findbugs.DetectorFactory; 39 import edu.umd.cs.findbugs.DetectorFactoryCollection; 40 import edu.umd.cs.findbugs.FindBugs; 41 import edu.umd.cs.findbugs.Project; 42 import edu.umd.cs.findbugs.SortedBugCollection; 43 import edu.umd.cs.findbugs.SystemProperties; 44 import edu.umd.cs.findbugs.config.UserPreferences; 45 import edu.umd.cs.findbugs.gui.FindBugsFrame; 46 47 54 public class Driver { 55 56 private static float fontSize = 12; 57 private static boolean docking = true; 58 private static SplashFrame splash; 59 60 public static void main(String [] args) throws Exception { 61 if (SystemProperties.getProperty("os.name").startsWith("Mac")) 62 { 63 System.setProperty("apple.laf.useScreenMenuBar","true"); 64 System.setProperty("com.apple.mrj.application.apple.menu.about.name", "FindBugs"); 65 Debug.println("Mac OS detected"); 66 } 67 68 splash = new SplashFrame(); 69 splash.setVisible(true); 70 71 72 try { 73 Class.forName("net.infonode.docking.DockingWindow"); 74 Class.forName("edu.umd.cs.findbugs.gui2.DockLayout"); 75 } catch (Exception e) { 76 docking = false; 77 } 78 for(int i = 0; i < args.length; i++){ 79 if((args[i].equals("-f")) && (i+1 < args.length)){ 80 float num = 0; 81 try{ 82 i++; 83 num = Integer.valueOf(args[i]); 84 } 85 catch(NumberFormatException exc){ 86 num = fontSize; 87 } 88 fontSize = num; 89 } 90 91 if(args[i].startsWith("--font=")){ 92 float num = 0; 93 try{ 94 num = Integer.valueOf(args[i].substring("--font=".length())); 95 } 96 catch(NumberFormatException exc){ 97 num = fontSize; 98 } 99 fontSize = num; 100 } 101 102 if(args[i].equals("-clear")){ 103 GUISaveState.clear(); 104 System.exit(0); 105 } 106 107 if (args[i].equals("-d") || args[i].equals("--nodock")) 108 docking = false; 109 } 110 111 try { 112 GUISaveState.loadInstance(); 113 } catch (RuntimeException e) { 114 GUISaveState.clear(); 115 e.printStackTrace(); 116 } 117 118 DetectorFactoryCollection.instance(); 120 121 126 FindBugsLayoutManagerFactory factory; 127 128 if (isDocking()) 129 factory = new FindBugsLayoutManagerFactory("edu.umd.cs.findbugs.gui2.DockLayout"); 130 else 131 factory = new FindBugsLayoutManagerFactory(SplitLayout.class.getName()); 132 MainFrame.makeInstance(factory); 133 134 splash.setVisible(false); 135 splash.dispose(); 136 } 137 138 public static void removeSplashScreen() { 139 splash.setVisible(false); 140 splash.dispose(); 141 } 142 public static boolean isDocking() 143 { 144 return docking; 145 } 146 147 public static float getFontSize(){ 148 return fontSize; 149 } 150 } | Popular Tags |