0001: /*
0002: * Manager.java Copyright (c) 2006,07 Swaroop Belur
0003: *
0004: * This program is free software; you can redistribute it and/or
0005: * modify it under the terms of the GNU General Public License
0006: * as published by the Free Software Foundation; either version 2
0007: * of the License, or (at your option) any later version.
0008:
0009: * This program is distributed in the hope that it will be useful,
0010: * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0012: * GNU General Public License for more details.
0013:
0014: * You should have received a copy of the GNU General Public License
0015: * along with this program; if not, write to the Free Software
0016: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
0017: *
0018: */
0019:
0020: package net.sf.jdec.ui.core;
0021:
0022: import java.awt.Component;
0023: import java.awt.Insets;
0024: import java.io.File;
0025: import java.util.ArrayList;
0026:
0027: import javax.swing.Icon;
0028: import javax.swing.ImageIcon;
0029: import javax.swing.JButton;
0030: import javax.swing.JFrame;
0031: import javax.swing.JLabel;
0032: import javax.swing.JMenuItem;
0033: import javax.swing.JSeparator;
0034: import javax.swing.JTabbedPane;
0035: import javax.swing.KeyStroke;
0036: import javax.swing.SwingConstants;
0037: import javax.swing.plaf.multi.MultiTabbedPaneUI;
0038:
0039: import net.sf.jdec.ui.config.DecompilerConfigDetails;
0040: import net.sf.jdec.ui.config.UIConfig;
0041: import net.sf.jdec.ui.event.ActionItemListener;
0042: import net.sf.jdec.ui.event.ImageListener;
0043: import net.sf.jdec.ui.event.TabChangeLstener;
0044: import net.sf.jdec.ui.main.UILauncher;
0045: import net.sf.jdec.ui.util.Java;
0046: import net.sf.jdec.ui.util.Javac;
0047: import net.sf.jdec.ui.util.Preferences;
0048: import net.sf.jdec.ui.util.RecentFileList;
0049: import net.sf.jdec.ui.util.SystemProperties;
0050: import net.sf.jdec.ui.util.UIUtil;
0051: import net.sf.jdec.ui.util.editor.TextEditor;
0052: import net.sf.jdec.ui.util.Welcome;
0053:
0054: /**
0055: * @author swaroop belur
0056: * Class Name:/ Manager
0057: * Purpose:/ to Register/ UnRegister componenets on the fly
0058: * Manager is the authority which decides which component
0059: * gets rendered in the UI finally.
0060: *
0061: * This is a singleton class
0062: *
0063: */
0064: public class Manager {
0065:
0066: private volatile boolean showProgressBar = false;
0067: private static Manager manager = null;
0068: ArrayList registeredComponents = new ArrayList();
0069: ArrayList UnRegisteredComponents = new ArrayList();
0070: private ArrayList allUIComponents = new ArrayList();
0071: private ToolbarItem file = null;
0072: private ToolbarItem edit = null;
0073: private ToolbarItem view = null;
0074: private ToolbarItem diffview = null;
0075: private ToolbarItem config = null;
0076: private ToolbarItem window = null;
0077: private ToolbarItem help = null;
0078: private ToolbarItem abt = null;
0079: private ToolbarItem util = null;
0080: private ToolbarItem srch = null;
0081:
0082: private Manager() {
0083:
0084: }
0085:
0086: public static Manager getManager() {
0087: if (manager == null) {
0088: manager = new Manager();
0089: return manager;
0090: } else {
0091: return manager;
0092: }
0093: }
0094:
0095: public void registerComponenet(UIObject component) {
0096: if (component != null) {
0097: registeredComponents.add(component);
0098: validateComponent(component);
0099: }
0100:
0101: }
0102:
0103: public void UnRegisterComponenet(UIObject component) {
0104: if (component != null) {
0105: UnRegisteredComponents.add(component);
0106: invalidateComponent(component);
0107: }
0108: }
0109:
0110: private void validateComponent(UIObject component) {
0111: //UnRegisteredComponents.remove(component);
0112: for (int s = 0; s < UnRegisteredComponents.size(); s++) {
0113: Object current = UnRegisteredComponents.get(s);
0114: if (current == component) {
0115: UnRegisteredComponents.set(s, null);
0116: }
0117: }
0118: }
0119:
0120: private void invalidateComponent(UIObject component) {
0121: //registeredComponents.remove(component);
0122:
0123: for (int s = 0; s < registeredComponents.size(); s++) {
0124: Object current = registeredComponents.get(s);
0125: if (current == component) {
0126: registeredComponents.set(s, null);
0127: }
0128: }
0129:
0130: }
0131:
0132: static UIUtil u;
0133:
0134: static {
0135:
0136: u = UIUtil.getUIUtil();
0137: }
0138:
0139: public void createAllComponents(UIObserver observer) {
0140: // Step1 Get the Main Frame
0141: MainFrame mainFrame = new MainFrame();
0142:
0143: // Step2 Get the menuBar
0144: ToolBar bar = new ToolBar();
0145: // Now Create All menus Here
0146: createAllMenusItems(bar);
0147:
0148: createActionItems();
0149:
0150: AuxToolBar aux = createAuxbar(null);
0151: //FileInfoFrame frame,JDecStatusFrame statusFrame,JarTree treeFrame,OutputFrame outputframe,Console consoleFrame)
0152: //Step 4 Create All Components needed by splitPane
0153:
0154: FileInfoFrame info = new FileInfoFrame();
0155:
0156: JdecStatusFrame status = new JdecStatusFrame();
0157: JdecTree dirtree = new JdecTree();
0158: JTabbedPane drives = new JTabbedPane(SwingConstants.BOTTOM);
0159: drives.addTab("Dir", dirtree); // Dir-->string used elsewhere
0160: drives.addTab("Jar", new JLabel("Jar File Viewer..."));
0161: String message = "Users Favorite Folders will be shown here";
0162: //message+="\n";
0163: String message2 = "[Utilities-->Edit Favorite List]";// for Adding New Favorites";
0164:
0165: if (UILauncher.getUIConfigRef().currentFavoriteList().size() == 0)
0166: drives.addTab("Favorite Folders", new JLabel(message2));
0167: else {
0168: JdecTree jarExploded = new JdecTree(UILauncher
0169: .getUIConfigRef().getFavoriteListAsArray());
0170: drives.addTab("Favorite Folders", jarExploded);
0171: }
0172: drives.addTab("Class Structure", new JLabel(
0173: "Class Structure will be shown here"));
0174: //drives.addTab("Class Structure",new JLabel("Class Structure Viewer..."));
0175: //drives.addTab("Jdec Project",new JLabel("Project Details"));
0176: drives.doLayout();
0177: drives.validate();
0178: drives.setEnabled(true);
0179: drives.setVisible(true);
0180: drives.setSelectedIndex(0);
0181:
0182: OutputFrame output = new OutputFrame(observer,
0183: "Use This Window To Do Your Editing...", "plain");
0184: //DecompilerConfigDetails decompilerConfig=new DecompilerConfigDetails(u);
0185: //output.setConfigTable(decompilerConfig);
0186: Console console = new Console();
0187:
0188: // Componenets of Tabbed Pane in the Right Halh of Pane
0189:
0190: OutputFrame DISoutput = new OutputFrame(observer,
0191: "Disassmebled Output will be shown here...", "plain");
0192: OutputFrame DECoutput = new OutputFrame(observer,
0193: "Decompiled Output will be shown here...", "style");
0194: decoutputframe = DECoutput;
0195: OutputFrame COMBoutput = new OutputFrame(
0196: observer,
0197: "For Jvm blocks and corresponding Source code statements ....",
0198: "plain");
0199: //OutputFrame =new OutputFrame(observer);
0200: java.lang.String startupwel = UIConfig.getUIConfig().getPref(
0201: "ShowWelcomeAtStartUp");
0202: Welcome welcome = null;
0203:
0204: if (startupwel == null || startupwel.equalsIgnoreCase("true")) {
0205: welcome = new Welcome("Welcome", UIUtil.getUIUtil()
0206: .showConfigWindowOnStartUp());
0207:
0208: }
0209: java.lang.String prefix = "imgs" + File.separator;
0210: File img = new File(prefix + "close.gif");
0211: Icon icon = new ImageIcon(img.getAbsolutePath());
0212: UIUtil.jdecFolder = img.getAbsolutePath();
0213: JLabel labIcon = new JLabel();
0214: labIcon.setIcon(icon);
0215: //labIcon.addMouseListener()
0216:
0217: JTabbedPane tabs = new JTabbedPane(SwingConstants.TOP);
0218: tabs.setUI(new MultiTabbedPaneUI());
0219: tabs.addTab("Jdec Editor Window", output.getComponent());
0220: tabs.addTab("Disassembled Output", DISoutput.getComponent());
0221: tabs.addTab("Decompiled Output", DECoutput.getComponent());
0222: if (welcome != null) {
0223: tabs.addTab("Jdec Welcome", welcome);
0224: tabs.setSelectedComponent(welcome);
0225: }
0226: tabs.addChangeListener(TabChangeLstener.getListener());
0227: if (UIUtil.getUIUtil().showConfigWindowOnStartUp()) {
0228:
0229: DecompilerConfigDetails config = new DecompilerConfigDetails(
0230: UILauncher.getUIutil());
0231: if (tabs.indexOfTab("Jdec Configuration") != -1)
0232: tabs.remove(tabs.indexOfTab("Jdec Configuration"));
0233: tabs.addTab("Jdec Configuration", config);
0234: if (welcome == null) {
0235: tabs.setSelectedComponent(config);
0236: }
0237:
0238: }
0239:
0240: // Create the splitter
0241: Splitter splitPane = new Splitter(info, status, drives, tabs,
0242: console);
0243: setSplitterRef(splitPane);
0244: registerSplitPaneItem(info);
0245: //registerSplitPaneItem(status);
0246: registerSplitPaneItem(drives);
0247: //System.out.println(output + " oUTPUT1");
0248: registerSplitPaneItem(tabs);
0249: registerSplitPaneItem(console);
0250:
0251: // Store All References
0252: allUIComponents.add(mainFrame);
0253: allUIComponents.add(bar);
0254: allUIComponents.add(aux);
0255: allUIComponents.add(splitPane);
0256:
0257: //JEditorPane jedp1=(JEditorPane)((JScrollPane)output.getComponent()).getViewport().getView();
0258: /*jedp1.addMouseListener(new MouseAdapter() {
0259:
0260: public void mouseClicked(MouseEvent e)
0261: {
0262: JPopupMenu popup=new JPopupMenu();
0263: popup.setBounds(e.getX(),e.getY(),300,300);
0264: popup.add("Hello");
0265: popup.setVisible( true);
0266: }
0267: });*/
0268:
0269: if (welcome != null) {
0270: UILauncher.welcomeCreated = true;
0271: }
0272:
0273: }
0274:
0275: private AuxToolBar createAuxbar(AuxToolBar aux) {
0276: // Step 3 Create Auxilliary Bar
0277: // Create Aux ToolBar
0278: if (aux == null)
0279: aux = new AuxToolBar();
0280: ImageListener imgl = new ImageListener();
0281: // Create All components needed By Aux bar
0282: java.lang.String fsep = File.separator;
0283: java.lang.String prefix = "imgs" + fsep;
0284: //File img=new File(prefix+"start.gif");
0285: File img = new File(prefix + "Run.gif");
0286: File l = new File(".");
0287: String s[] = l.list();
0288:
0289: //System.out.println(img.getAbsolutePath());
0290: JButton run = new JButton(new ImageIcon(img.getAbsolutePath()));
0291: run.setActionCommand("RunJDec");
0292: run.setToolTipText("Run Jdec");
0293: run.addActionListener(imgl);
0294: run.setMargin(new Insets(0, 0, 0, 0));
0295:
0296: img = new File(prefix + "Save.gif");
0297: JButton save = new JButton(new ImageIcon(img.getAbsolutePath()));
0298: save.setActionCommand("Save");
0299: save.addActionListener(imgl);
0300: save.setToolTipText("Save Work");
0301: save.setMargin(new Insets(0, 0, 0, 0));
0302:
0303: img = new File(prefix + "newtask.gif");
0304:
0305: JButton newTask = new JButton(new ImageIcon(img
0306: .getAbsolutePath()));
0307: newTask.setToolTipText("New Jdec Task");
0308: newTask.setActionCommand("NewTask");
0309: newTask.addActionListener(imgl);
0310: newTask.setMargin(new Insets(0, 0, 0, 0));
0311:
0312: img = new File(prefix + "newtask.gif");
0313:
0314: JButton format = new JButton("Format Code...(If reqd)");
0315: format
0316: .setToolTipText("Use this if you feel the default formatting was not good enough....");
0317: format.setActionCommand("Format");
0318: format.addActionListener(imgl);
0319: format.setMargin(new Insets(0, 0, 0, 0));
0320:
0321: img = new File(prefix + "tip.gif");
0322: JButton tip = new JButton(new ImageIcon(img.getAbsolutePath()));
0323: tip.setToolTipText("Show Tip");
0324: tip.setActionCommand("tip");
0325: tip.addActionListener(imgl);
0326: tip.setMargin(new Insets(0, 0, 0, 0));
0327:
0328: img = new File(prefix + "edit.gif");
0329: JButton edit = new JButton(new ImageIcon(img.getAbsolutePath()));
0330: edit.setToolTipText("Edit Output in Editor");
0331: edit.setActionCommand("editin");
0332: edit.addActionListener(imgl);
0333: edit.setMargin(new Insets(0, 0, 0, 0));
0334:
0335: img = new File(prefix + "close.gif");
0336:
0337: JButton close = new JButton(
0338: new ImageIcon(img.getAbsolutePath()));
0339: close.setToolTipText("Close Jdec UI");
0340: close.setActionCommand("close");
0341: close.addActionListener(imgl);
0342: close.setMargin(new Insets(0, 0, 0, 0));
0343:
0344: img = new File(prefix + "clear2.gif");
0345: JButton clear = new JButton(
0346: new ImageIcon(img.getAbsolutePath()));
0347: clear.setToolTipText("Clear console frame");
0348: clear.setActionCommand("clear");
0349: clear.addActionListener(imgl);
0350: clear.setMargin(new Insets(0, 0, 0, 0));
0351:
0352: img = new File(prefix + "bin.gif");
0353:
0354: JButton binary = new JButton(new ImageIcon(img
0355: .getAbsolutePath()));
0356: binary.setToolTipText("Show Binary Form of The Class File");
0357: binary.setActionCommand("binary");
0358: binary.addActionListener(imgl);
0359: binary.setMargin(new Insets(0, 0, 0, 0));
0360:
0361: img = new File(prefix + "home2.gif");
0362: //img=new File("c:\\go.gif");
0363: /*JButton go=new JButton(new ImageIcon(img.getAbsolutePath()));
0364: go.setToolTipText("Open Browser");
0365: go.setActionCommand("go");
0366: go.addActionListener(imgl);*/
0367:
0368: img = new File(prefix + "Refresh2.gif");
0369:
0370: JButton refresh = new JButton(new ImageIcon(img
0371: .getAbsolutePath()));
0372: refresh.setToolTipText("Refresh");
0373: refresh.setActionCommand("refresh");
0374: refresh.addActionListener(imgl);
0375: refresh.setMargin(new Insets(0, 0, 0, 0));
0376:
0377: String os = System.getProperty("os.name");
0378: //System.out.println(os);
0379: boolean unix = true;
0380: if (os.indexOf("Windows") != -1) {
0381: unix = false;
0382: }
0383: if (os.indexOf("win") != -1 && unix) {
0384: unix = false;
0385: }
0386: if (os.indexOf("Win") == -1 && unix) {
0387: unix = false;
0388: }
0389: if (unix == false) {
0390: addAuxComponent(aux, Manager.auxlabel);
0391: addAuxComponent(aux, newTask);
0392: } else {
0393: addAuxComponent(aux, new JLabel(" "));
0394: addAuxComponent(aux, Manager.auxlabel);
0395: addAuxComponent(aux, newTask);
0396: }
0397: /*addAuxComponent(aux,new JLabel(" "));
0398: addAuxComponent(aux,new JLabel(" "));
0399: addAuxComponent(aux,binary);
0400: addAuxComponent(aux,new JLabel(" "));
0401: addAuxComponent(aux,new JLabel(" "));*/
0402: /*addAuxComponent(aux,open);
0403: addAuxComponent(aux,new JLabel(" "));
0404: addAuxComponent(aux,new JLabel(" "));*/
0405: addAuxComponent(aux, new JLabel(" "));
0406: addAuxComponent(aux, new JLabel(" "));
0407: addAuxComponent(aux, run);
0408: // /addAuxComponent(aux,stop);
0409: addAuxComponent(aux, new JLabel(" "));
0410: addAuxComponent(aux, new JLabel(" "));
0411: addAuxComponent(aux, save);
0412: addAuxComponent(aux, new JLabel(" "));
0413: addAuxComponent(aux, new JLabel(" "));
0414: addAuxComponent(aux, refresh);
0415: addAuxComponent(aux, new JLabel(" "));
0416: addAuxComponent(aux, new JLabel(" "));
0417: addAuxComponent(aux, new JLabel(" "));
0418: addAuxComponent(aux, new JLabel(" "));
0419: addAuxComponent(aux, edit);
0420: addAuxComponent(aux, new JLabel(" "));
0421: addAuxComponent(aux, new JLabel(" "));
0422:
0423: //addAuxComponent(aux,editor);
0424: //addAuxComponent(aux,clear);
0425: /*addAuxComponent(aux,new JLabel(" "));
0426: addAuxComponent(aux,new JLabel(" "));
0427: addAuxComponent(aux,new JLabel(" "));
0428: addAuxComponent(aux,new JLabel(" "));*/
0429:
0430: //addAuxComponent(aux,home);
0431: addAuxComponent(aux, new JLabel(" "));
0432: addAuxComponent(aux, new JLabel(" "));
0433:
0434: //addAuxComponent(aux,print);
0435: //addAuxComponent(aux,new JLabel(" "));
0436: //addAuxComponent(aux,new JLabel(" "));
0437: //addAuxComponent(aux,search);
0438: //addAuxComponent(aux,mail);
0439: //addAuxComponent(aux,new JLabel(" "));
0440: //addAuxComponent(aux,new JLabel(" "));
0441: img = new File(prefix + "home2.gif");
0442:
0443: JButton go = new JButton(new ImageIcon(img.getAbsolutePath()));
0444: go.setToolTipText("Open Browser(Jdec Home)");
0445: go.setActionCommand("go");
0446: go.addActionListener(imgl);
0447: go.setMargin(new Insets(0, 0, 0, 0));
0448:
0449: addAuxComponent(aux, go);
0450: addAuxComponent(aux, new JLabel(" "));
0451: addAuxComponent(aux, new JLabel(" "));
0452: addAuxComponent(aux, new JLabel(" "));
0453: addAuxComponent(aux, new JLabel(" "));
0454: addAuxComponent(aux, new JLabel(" "));
0455: addAuxComponent(aux, new JLabel(" "));
0456:
0457: img = new File(prefix + "back3.gif");
0458: back = new JButton(new ImageIcon(img.getAbsolutePath()));
0459: back.setToolTipText("Show previous decompiled File");
0460: back.setActionCommand("back");
0461: back.addActionListener(imgl);
0462: back.setMargin(new Insets(0, 0, 0, 0));
0463: //back.setEnabled(false);
0464:
0465: img = new File(prefix + "forward3.gif");
0466: fwd = new JButton(new ImageIcon(img.getAbsolutePath()));
0467: fwd.setToolTipText("Show next decompiled File");
0468: fwd.setActionCommand("forward");
0469: fwd.addActionListener(imgl);
0470: fwd.setMargin(new Insets(0, 0, 0, 0));
0471:
0472: img = new File(prefix + "nextdiff.gif");
0473: nextd = new JButton(new ImageIcon(img.getAbsolutePath()));
0474: nextd.setToolTipText("Next diff");
0475: nextd.setActionCommand("Nextdiff");
0476: nextd.addActionListener(imgl);
0477: nextd.setMargin(new Insets(0, 0, 0, 0));
0478:
0479: img = new File(prefix + "prevdiff.gif");
0480: prevd = new JButton(new ImageIcon(img.getAbsolutePath()));
0481: prevd.setToolTipText("Prev diff");
0482: prevd.setActionCommand("Prevdiff");
0483: prevd.addActionListener(imgl);
0484: prevd.setMargin(new Insets(0, 0, 0, 0));
0485: //fwd.setEnabled(false);
0486:
0487: addAuxComponent(aux, back);
0488: addAuxComponent(aux, new JLabel(" "));
0489: addAuxComponent(aux, new JLabel(" "));
0490: addAuxComponent(aux, new JLabel(" "));
0491: addAuxComponent(aux, new JLabel(" "));
0492: addAuxComponent(aux, new JLabel(" "));
0493: addAuxComponent(aux, new JLabel(" "));
0494: addAuxComponent(aux, fwd);
0495: addAuxComponent(aux, new JLabel(" "));
0496: addAuxComponent(aux, new JLabel(" "));
0497: addAuxComponent(aux, new JLabel(" "));
0498: addAuxComponent(aux, new JLabel(" "));
0499: addAuxComponent(aux, new JLabel(" "));
0500: addAuxComponent(aux, new JLabel(" "));
0501: addAuxComponent(aux, format);
0502: // addAuxComponent(aux,new JLabel(" "));
0503: // addAuxComponent(aux,nextd);
0504: // addAuxComponent(aux,new JLabel(" "));
0505: // addAuxComponent(aux,prevd);
0506: if (unix == false)
0507: shiftHelpButtonsToRight(aux);
0508: else
0509: shiftHelpButtonsToRightForUnix(aux);
0510:
0511: addAuxComponent(aux, tip);
0512: addAuxComponent(aux, new JLabel(" "));
0513: addAuxComponent(aux, new JLabel(" "));
0514: //addAuxComponent(aux,tech);
0515: /*addAuxComponent(aux,jdec);
0516: addAuxComponent(aux,new JLabel(" "));
0517: addAuxComponent(aux,new JLabel(" "));
0518: addAuxComponent(aux,sound);
0519: addAuxComponent(aux,new JLabel(" "));
0520: addAuxComponent(aux,new JLabel(" "));*/
0521: //addAuxComponent(aux,empty);
0522: addAuxComponent(aux, close);
0523: return aux;
0524:
0525: }
0526:
0527: public void removeFromAllUICompList(UIObject component) {
0528: if (component != null) {
0529: for (int s = 0; s < allUIComponents.size(); s++) {
0530: Object current = allUIComponents.get(s);
0531: if (current == component) {
0532: allUIComponents.set(s, null);
0533: }
0534: }
0535: }
0536:
0537: }
0538:
0539: public void addToAllUICompList(UIObject obj) {
0540:
0541: allUIComponents.add(obj);
0542:
0543: }
0544:
0545: public void regitser() // Modify This Function later if registering/unregistering of components is to be implemented
0546: {
0547: for (int s = 0; s < allUIComponents.size(); s++) {
0548: UIObject c = (UIObject) allUIComponents.get(s);
0549: registerComponenet(c);
0550:
0551: }
0552:
0553: }
0554:
0555: public ArrayList getRegisteredComponents() {
0556: return registeredComponents;
0557: }
0558:
0559: public void reCreateAuxbar(AuxToolBar aux) {
0560: aux.getAuxBar().removeAll();
0561: createAuxbar(aux);
0562: /*ImageListener imgl=new ImageListener();
0563: // Create All components needed By Aux bar
0564: java.lang.String fsep=File.separator;
0565: java.lang.String prefix="imgs"+fsep;
0566: File img=new File(prefix+"start.gif");
0567:
0568: JButton run=new JButton(new ImageIcon(img.getAbsolutePath()));
0569: run.setActionCommand("RunJDec");
0570: run.setToolTipText("Run Jdec");
0571: run.addActionListener(imgl);
0572: run.setMargin(new Insets(0,0,0,0));
0573:
0574: img=new File(prefix+"save.gif");
0575: JButton save=new JButton(new ImageIcon(img.getAbsolutePath()));
0576: save.setActionCommand("Save");
0577: save.addActionListener(imgl);
0578: save.setToolTipText("Save Work");
0579: save.setMargin(new Insets(0,0,0,0));
0580:
0581: img=new File(prefix+"home2.gif");//gryhome.gif");
0582: JButton home=new JButton(new ImageIcon(img.getAbsolutePath()));
0583: home.setToolTipText("Jdec Home");
0584: home.setActionCommand("Home");
0585: home.addActionListener(imgl);
0586: home.setMargin(new Insets(0,0,0,0));
0587:
0588: img=new File(prefix+"grymail.gif");
0589: JButton mail=new JButton(new ImageIcon(img.getAbsolutePath()));
0590: mail.setToolTipText("Send Mail");
0591: mail.setActionCommand("Send Mail");
0592: mail.addActionListener(imgl);
0593:
0594:
0595: img=new File(prefix+"search.gif");
0596: JButton search=new JButton(new ImageIcon(img.getAbsolutePath()));
0597: search.setToolTipText("Search");
0598: search.setActionCommand("Search");
0599: search.addActionListener(imgl);
0600:
0601:
0602: img=new File(prefix+"open.gif");
0603: JButton open=new JButton(new ImageIcon(img.getAbsolutePath()));
0604: open.setToolTipText("Open File");
0605: open.setActionCommand("Open");
0606: open.addActionListener(imgl);
0607: open.setMargin(new Insets(0,0,0,0));
0608:
0609: img=new File(prefix+"Computer.gif");
0610: JButton fs=new JButton(new ImageIcon(img.getAbsolutePath()));
0611: fs.setToolTipText("Show File System");
0612: fs.setActionCommand("FileSystem");
0613: fs.addActionListener(imgl);
0614:
0615:
0616: img=new File(prefix+"Help.gif");
0617: JButton help=new JButton(new ImageIcon(img.getAbsolutePath()));
0618: help.setToolTipText("Show Help");
0619: help.setActionCommand("Help");
0620: help.addActionListener(imgl);
0621: help.setMargin(new Insets(0,0,0,0));
0622:
0623:
0624:
0625: img=new File(prefix+"newtask.gif");
0626: JButton newTask=new JButton(new ImageIcon(img.getAbsolutePath()));
0627: newTask.setToolTipText("New Jdec Task");
0628: newTask.setActionCommand("NewTask");
0629: newTask.addActionListener(imgl);
0630: newTask.setMargin(new Insets(0,0,0,0));
0631:
0632:
0633:
0634: img=new File(prefix+"cofee.gif");
0635: JButton tech=new JButton(new ImageIcon(img.getAbsolutePath()));
0636: tech.setToolTipText("Technology");
0637: tech.setActionCommand("tech");
0638: tech.addActionListener(imgl);
0639:
0640:
0641: img=new File(prefix+"Tip.gif");
0642: JButton tip=new JButton(new ImageIcon(img.getAbsolutePath()));
0643: tip.setToolTipText("Show Tip");
0644: tip.setActionCommand("tip");
0645: tip.addActionListener(imgl);
0646: tip.setMargin(new Insets(0,0,0,0));
0647:
0648:
0649: img=new File(prefix+"stop.gif");
0650: JButton stop=new JButton(new ImageIcon(img.getAbsolutePath()));
0651: stop.setToolTipText("Terminate Jdec");
0652: stop.setActionCommand("Stop");
0653: stop.addActionListener(imgl);
0654:
0655:
0656: /*img=new File(prefix+"print.gif");
0657: JButton print=new JButton(new ImageIcon(img.getAbsolutePath()));
0658: print.setToolTipText("Print..");
0659: print.setActionCommand("print");
0660: print.addActionListener(imgl);
0661:
0662: //img=new File(prefix+"edit.gif");
0663: img=new File("c:/temp.gif");
0664: JButton edit=new JButton(new ImageIcon("c:/temp.gif"));
0665: edit.setToolTipText("Edit Output in Editor");
0666: edit.setActionCommand("editin");
0667: edit.addActionListener(imgl);
0668: edit.setMargin(new Insets(0,0,0,0));
0669:
0670:
0671: //img=new File(prefix+"close.gif");
0672: img=new File(prefix+"close.gif");
0673: JButton close=new JButton(new ImageIcon(img.getAbsolutePath()));
0674: close.setToolTipText("Close Jdec UI");
0675: close.setActionCommand("close");
0676: close.addActionListener(imgl);
0677: close.setMargin(new Insets(0,0,0,0));
0678:
0679: img=new File(prefix+"clear2.gif");
0680: JButton clear=new JButton(new ImageIcon(img.getAbsolutePath()));
0681: clear.setToolTipText("Clear console frame");
0682: clear.setActionCommand("clear");
0683: clear.addActionListener(imgl);
0684: clear.setMargin(new Insets(0,0,0,0));
0685:
0686:
0687: img=new File(prefix+"editor.gif");
0688: JButton editor=new JButton(new ImageIcon(img.getAbsolutePath()));
0689: editor.setToolTipText("Open Separate Editor");
0690: editor.setActionCommand("editor");
0691: editor.addActionListener(imgl);
0692: editor.setMargin(new Insets(0,0,0,0));
0693:
0694: img=new File(prefix+"sound.gif");
0695: JButton sound=new JButton(new ImageIcon(img.getAbsolutePath()));
0696: sound.setToolTipText("Describe Me");
0697: sound.setActionCommand("sound");
0698: sound.addActionListener(imgl);
0699:
0700: img=new File(prefix+"binary.gif");
0701: JButton binary=new JButton(new ImageIcon(img.getAbsolutePath()));
0702: binary.setToolTipText("Show Binary Form of The Class File");
0703: binary.setActionCommand("binary");
0704: binary.addActionListener(imgl);
0705: binary.setMargin(new Insets(0,0,0,0));
0706:
0707: img=new File(prefix+"home2.gif");
0708: JButton go=new JButton(new ImageIcon(img.getAbsolutePath()));
0709: go.setToolTipText("Open Browser");
0710: go.setActionCommand("go");
0711: go.addActionListener(imgl);
0712: go.setMargin(new Insets(0,0,0,0));
0713:
0714:
0715: img=new File(prefix+"Refresh2.gif");
0716: JButton refresh=new JButton(new ImageIcon(img.getAbsolutePath()));
0717: refresh.setToolTipText("Refresh");
0718: refresh.setActionCommand("refresh");
0719: refresh.addActionListener(imgl);
0720: refresh.setMargin(new Insets(0,0,0,0));
0721:
0722:
0723: img=new File(prefix+"jdec.gif");
0724: JButton jdec=new JButton(new ImageIcon(img.getAbsolutePath()));
0725: jdec.setToolTipText("Teach me How Decompiler works");
0726: jdec.setActionCommand("jdec");
0727: jdec.addActionListener(imgl);
0728:
0729:
0730: // JButton empty=new JButton(new ImageIcon("e://sbelur/Images/whexpbar.gif"));
0731: //empty.setToolTipText("Teach me How Decompiler works");
0732:
0733:
0734:
0735: String os=System.getProperty("os.name");
0736: boolean unix=true;
0737: if(os.indexOf("Windows")!=-1)
0738: {
0739: unix=false;
0740: }
0741: if(os.indexOf("win")!=-1 && unix)
0742: {
0743: unix=false;
0744: }
0745: if(os.indexOf("Win")==-1 && unix)
0746: {
0747: unix=false;
0748: }
0749: if(unix==false)
0750: {
0751: addAuxComponent(aux,Manager.auxlabel);
0752: addAuxComponent(aux,newTask);
0753: }
0754: else
0755: {
0756: addAuxComponent(aux,new JLabel(" "));
0757: addAuxComponent(aux,Manager.auxlabel);
0758: addAuxComponent(aux,newTask);
0759: }
0760: /*addAuxComponent(aux,new JLabel(" "));
0761: addAuxComponent(aux,new JLabel(" "));
0762: addAuxComponent(aux,binary);
0763: addAuxComponent(aux,new JLabel(" "));
0764: addAuxComponent(aux,new JLabel(" "));
0765: /*addAuxComponent(aux,open);
0766: addAuxComponent(aux,new JLabel(" "));
0767: addAuxComponent(aux,new JLabel(" "));
0768: addAuxComponent(aux,new JLabel(" "));
0769: addAuxComponent(aux,new JLabel(" "));
0770: addAuxComponent(aux,run);
0771: // /addAuxComponent(aux,stop);
0772: addAuxComponent(aux,new JLabel(" "));
0773: addAuxComponent(aux,new JLabel(" "));
0774: addAuxComponent(aux,save);
0775: addAuxComponent(aux,new JLabel(" "));
0776: addAuxComponent(aux,new JLabel(" "));
0777: addAuxComponent(aux,refresh);
0778: addAuxComponent(aux,new JLabel(" "));
0779: addAuxComponent(aux,new JLabel(" "));
0780: addAuxComponent(aux,new JLabel(" "));
0781: addAuxComponent(aux,new JLabel(" "));
0782: addAuxComponent(aux,edit);
0783: addAuxComponent(aux,new JLabel(" "));
0784: addAuxComponent(aux,new JLabel(" "));
0785:
0786: //addAuxComponent(aux,editor);
0787: /*addAuxComponent(aux,clear);
0788: addAuxComponent(aux,new JLabel(" "));
0789: addAuxComponent(aux,new JLabel(" "));
0790: addAuxComponent(aux,new JLabel(" "));
0791: addAuxComponent(aux,new JLabel(" "));
0792: addAuxComponent(aux,home);
0793: addAuxComponent(aux,new JLabel(" "));
0794: addAuxComponent(aux,new JLabel(" "));
0795: //addAuxComponent(aux,print);
0796: addAuxComponent(aux,new JLabel(" "));
0797: addAuxComponent(aux,new JLabel(" "));
0798: //addAuxComponent(aux,search);
0799: //addAuxComponent(aux,mail);
0800: addAuxComponent(aux,new JLabel(" "));
0801: addAuxComponent(aux,new JLabel(" "));
0802: addAuxComponent(aux,go);
0803: if(unix==false)
0804: shiftHelpButtonsToRight(aux);
0805: else
0806: shiftHelpButtonsToRightForUnix(aux);
0807:
0808: addAuxComponent(aux,tip);
0809: addAuxComponent(aux,new JLabel(" "));
0810: addAuxComponent(aux,new JLabel(" "));
0811: //addAuxComponent(aux,tech);
0812: /*addAuxComponent(aux,jdec);
0813: addAuxComponent(aux,new JLabel(" "));
0814: addAuxComponent(aux,new JLabel(" "));
0815: addAuxComponent(aux,sound);
0816: addAuxComponent(aux,new JLabel(" "));
0817: addAuxComponent(aux,new JLabel(" "));
0818: //addAuxComponent(aux,empty);
0819: addAuxComponent(aux,close);*/
0820:
0821: }
0822:
0823: private void createAllMenusItems(ToolBar bar) {
0824: ToolbarItem file = new ToolbarItem("File ");
0825: file.getItem().setMnemonic('f');
0826: setFileMenu(file);
0827: ToolbarItem edit = new ToolbarItem("Edit ");
0828: edit.getItem().setMnemonic('e');
0829: setEditMenu(edit);
0830: ToolbarItem srch = new ToolbarItem("Search ");
0831: srch.getItem().setMnemonic('s');
0832: setSearchMenu(srch);
0833: ToolbarItem view = new ToolbarItem("View ");
0834: view.getItem().setMnemonic('v');
0835: setViewMenu(view);
0836: ToolbarItem diffview = new ToolbarItem("Diff View");
0837: diffview.getItem().setMnemonic('d');
0838: setDiffViewMenu(diffview);
0839: ToolbarItem config = new ToolbarItem("Configuration ");
0840: config.getItem().setMnemonic('c');
0841: setConfigMenu(config);
0842:
0843: ToolbarItem window = new ToolbarItem("Window");
0844: window.getItem().setMnemonic('w');
0845: setWindowMenu(window);
0846:
0847: ToolbarItem util = new ToolbarItem("Utilities ");
0848:
0849: util.getItem().setMnemonic('u');
0850: setUtilMenu(util);
0851: ToolbarItem help = new ToolbarItem("Help ");
0852: help.getItem().setMnemonic('h');
0853: setHelpMenu(help);
0854: ToolbarItem abt = new ToolbarItem("About ");
0855: abt.getItem().setMnemonic('a');
0856: setAbtMenu(abt);
0857: ToolbarItem space = new ToolbarItem(" ");
0858:
0859: bar.getBar().add(file.getItem());
0860:
0861: bar.getBar().add(space.getItem());
0862: bar.getBar().add(space.getItem());
0863:
0864: bar.getBar().add(edit.getItem());
0865:
0866: bar.getBar().add(space.getItem());
0867: bar.getBar().add(space.getItem());
0868:
0869: bar.getBar().add(srch.getItem());
0870:
0871: bar.getBar().add(space.getItem());
0872: bar.getBar().add(space.getItem());
0873:
0874: bar.getBar().add(view.getItem());
0875:
0876: bar.getBar().add(space.getItem());
0877: bar.getBar().add(space.getItem());
0878:
0879: /*bar.getBar().add(diffview.getItem());
0880:
0881: bar.getBar().add(space.getItem());
0882: bar.getBar().add(space.getItem());*/
0883:
0884: bar.getBar().add(config.getItem());
0885:
0886: bar.getBar().add(space.getItem());
0887: bar.getBar().add(space.getItem());
0888:
0889: bar.getBar().add(window.getItem());
0890:
0891: bar.getBar().add(space.getItem());
0892: bar.getBar().add(space.getItem());
0893:
0894: bar.getBar().add(util.getItem());
0895:
0896: bar.getBar().add(space.getItem());
0897: bar.getBar().add(space.getItem());
0898:
0899: bar.getBar().add(help.getItem());
0900:
0901: bar.getBar().add(space.getItem());
0902: bar.getBar().add(space.getItem());
0903:
0904: bar.getBar().add(abt.getItem());
0905:
0906: }
0907:
0908: private void createActionItems() {
0909:
0910: if (this .file != null) {
0911: ActionItem New = new ActionItem("New Decompiler task...");
0912: ActionItem Open = new ActionItem("Open File...");
0913: ActionItem newJava = new ActionItem("New Java File...");
0914: ActionItem refresh = new ActionItem("Refresh...");
0915: ActionItem save = new ActionItem("Save");
0916: ActionItem saveas = new ActionItem("SaveAs");
0917: ActionItem viewJava = new ActionItem("View Java File");
0918: //ActionItem print=new ActionItem("Print...");
0919: //ActionItem preview=new ActionItem("Print Preview...");
0920: ActionItem recent = new ActionItem("Show Recent File(s)...");
0921: ActionItem close = new ActionItem("Close UI...");
0922:
0923: this .file.getItem().add(New.getItem());
0924: //this.file.getItem().add(Open.getItem());
0925: this .file.getItem().add(newJava.getItem());
0926: this .file.getItem().add(viewJava.getItem());
0927: this .file.getItem().add(refresh.getItem());
0928: this .file.getItem().add(save.getItem());
0929: this .file.getItem().add(saveas.getItem());
0930: //this.file.getItem().add(print.getItem());
0931: //this.file.getItem().add(preview.getItem());
0932: this .file.getItem().add(recent.getItem());
0933: this .file.getItem().add(new JSeparator());
0934: this .file.getItem().add(close.getItem());
0935:
0936: New.getItem().setAccelerator(
0937: KeyStroke.getKeyStroke("ctrl N"));
0938: newJava.getItem().setAccelerator(
0939: KeyStroke.getKeyStroke("ctrl J"));
0940: viewJava.getItem().setAccelerator(
0941: KeyStroke.getKeyStroke("ctrl shift V"));
0942: refresh.getItem().setAccelerator(
0943: KeyStroke.getKeyStroke("ctrl R"));
0944: save.getItem().setAccelerator(
0945: KeyStroke.getKeyStroke("ctrl S"));
0946: recent.getItem().setAccelerator(
0947: KeyStroke.getKeyStroke("ctrl shift R"));
0948: close.getItem().setAccelerator(
0949: KeyStroke.getKeyStroke("ctrl Q"));
0950: }
0951: if (this .edit != null) {
0952: ActionItem copy = new ActionItem("Copy...");
0953: ActionItem cut = new ActionItem("Cut...");
0954: ActionItem paste = new ActionItem("Paste...");
0955: ActionItem selectAll = new ActionItem("Select All...");
0956: ActionItem pref = new ActionItem("Preferences...");
0957: ActionItem archsettings = new ActionItem(
0958: "Archive settings...");
0959: this .edit.getItem().add(copy.getItem());
0960: this .edit.getItem().add(cut.getItem());
0961: this .edit.getItem().add(paste.getItem());
0962: this .edit.getItem().add(selectAll.getItem());
0963: this .edit.getItem().add(new JSeparator());
0964: this .edit.getItem().add(pref.getItem());
0965: this .edit.getItem().add(archsettings.getItem());
0966:
0967: copy.getItem().setAccelerator(
0968: KeyStroke.getKeyStroke("ctrl C"));
0969: cut.getItem().setAccelerator(
0970: KeyStroke.getKeyStroke("ctrl X"));
0971: paste.getItem().setAccelerator(
0972: KeyStroke.getKeyStroke("ctrl V"));
0973: selectAll.getItem().setAccelerator(
0974: KeyStroke.getKeyStroke("ctrl A"));
0975: pref.getItem().setAccelerator(
0976: KeyStroke.getKeyStroke("ctrl P"));
0977:
0978: }
0979: if (this .srch != null) {
0980: ActionItem find = new ActionItem("Find ...");
0981: ActionItem rep = new ActionItem("Replace..");
0982:
0983: this .srch.getItem().add(find.getItem());
0984: find.getItem().setAccelerator(
0985: KeyStroke.getKeyStroke("ctrl F"));
0986: }
0987:
0988: if (this .view != null) {
0989: ActionItem excp = new ActionItem(
0990: "Exception Table Details...");
0991: ActionItem cp = new ActionItem("Constant Pool...");
0992: ActionItem line = new ActionItem(
0993: "Class Line Number Info...");
0994: ActionItem local = new ActionItem(
0995: "Class Local Variables...");
0996: ActionItem ginfo = new ActionItem(
0997: "Class General Information...");
0998: this .view.getItem().add(ginfo.getItem());
0999: this .view.getItem().add(cp.getItem());
1000: //this.view.getItem().add(excp.getItem());
1001: this .view.getItem().add(local.getItem());
1002: this .view.getItem().add(new JSeparator());
1003: ToolbarItem logs = new ToolbarItem("Log Files");
1004: ActionItem uilog = new ActionItem("Open UI LogFile");
1005: ActionItem declog = new ActionItem(
1006: "Open Decompiler LogFile");
1007: ActionItem both = new ActionItem(
1008: "Open Both in Separate Tabs");
1009: ActionItem methods = new ActionItem(
1010: "Show Methods For Current Class");
1011: currentmethods = methods;
1012: methods.getItem().setActionCommand("showmethods");
1013: logs.getItem().add(uilog.getItem());
1014: logs.getItem().add(declog.getItem());
1015: logs.getItem().add(new JSeparator());
1016: logs.getItem().add(both.getItem());
1017: logs.getItem().add(new JSeparator());
1018: this .view.getItem().add(methods.getItem());
1019: this .view.getItem().add(new JSeparator());
1020: this .view.getItem().add(logs.getItem());
1021: excp.getItem().setAccelerator(
1022: KeyStroke.getKeyStroke("ctrl E"));
1023: cp.getItem().setAccelerator(
1024: KeyStroke.getKeyStroke("ctrl shift C"));
1025: //line.getItem().setAccelerator(KeyStroke.getKeyStroke("ctrl shift C"));
1026: local.getItem().setAccelerator(
1027: KeyStroke.getKeyStroke("ctrl shift L"));
1028: ginfo.getItem().setAccelerator(
1029: KeyStroke.getKeyStroke("ctrl shift G"));
1030: uilog.getItem().setAccelerator(
1031: KeyStroke.getKeyStroke("ctrl shift U"));
1032: declog.getItem().setAccelerator(
1033: KeyStroke.getKeyStroke("ctrl shift D"));
1034: both.getItem().setAccelerator(
1035: KeyStroke.getKeyStroke("ctrl shift B"));
1036: methods.getItem().setAccelerator(
1037: KeyStroke.getKeyStroke("ctrl M"));
1038:
1039: }
1040:
1041: if (this .diffview != null) {
1042: ActionItem all = new ActionItem("Show All ...");
1043: all.getItem().setActionCommand("showall");
1044: ActionItem differ = new ActionItem("Show Just Differences");
1045: differ.getItem().setActionCommand("showdiff");
1046: ActionItem match = new ActionItem("Show Just Matching");
1047: match.getItem().setActionCommand("showmatch");
1048: ActionItem colorf = new ActionItem(
1049: "Change Color/Font Configuration");
1050: colorf.getItem().setActionCommand("changecolorfnt");
1051:
1052: this .diffview.getItem().add(all.getItem());
1053: this .diffview.getItem().add(differ.getItem());
1054: this .diffview.getItem().add(match.getItem());
1055: this .diffview.getItem().add(new JSeparator());
1056: this .diffview.getItem().add(colorf.getItem());
1057:
1058: }
1059:
1060: if (this .window != null) {
1061: ActionItem hideConfig = new ActionItem("Reset Tabs...");
1062: ToolbarItem console = new ToolbarItem("Console");
1063: ActionItem hideConsole = new ActionItem("Hide Console");
1064: ActionItem showConsole = new ActionItem("Show Console");
1065: ActionItem hideConfig2 = new ActionItem(
1066: "Hide All Configuration Tabs...");
1067: console.getItem().add(showConsole.getItem());
1068: console.getItem().add(hideConsole.getItem());
1069: this .window.getItem().add(console.getItem());
1070: this .window.getItem().add(hideConfig.getItem());
1071: }
1072:
1073: if (this .config != null) {
1074: ActionItem config = new ActionItem(
1075: "Jdec(Decompiler) Configuration ...");
1076: ToolbarItem look = new ToolbarItem("UI Look And Feel...");
1077:
1078: ActionItem extraConfig = new ActionItem(
1079: "Jdec(Decompiler) Filters");
1080: extraConfig.getItem().setActionCommand("extra");
1081:
1082: ActionItem syn = new ActionItem("Syntax and Coloring");
1083:
1084: //this.config.getItem().add(look.getItem());
1085: this .config.getItem().add(config.getItem());
1086: this .config.getItem().add(config.getItem());
1087: this .config.getItem().add(extraConfig.getItem());
1088: this .config.getItem().add(syn.getItem());
1089: //this.config.getItem().add(new JSeparator());
1090:
1091: // Look and Feel Items
1092: ActionItem gtk = new ActionItem("GTKLookAndFeel");
1093: ActionItem windows = new ActionItem("WindowsLookAndFeel");
1094: ActionItem metal = new ActionItem("MetalLookAndFeel");
1095: ActionItem motif = new ActionItem("MotifLookAndFeel");
1096:
1097: look.getItem().add(gtk.getItem());
1098: look.getItem().add(windows.getItem());
1099: look.getItem().add(metal.getItem());
1100: look.getItem().add(motif.getItem());
1101:
1102: config.getItem().setAccelerator(
1103: KeyStroke.getKeyStroke("alt shift A"));
1104: //setproject.getItem().setAccelerator(KeyStroke.getKeyStroke("alt shift P"));
1105: gtk.getItem().setAccelerator(
1106: KeyStroke.getKeyStroke("shift G"));
1107: windows.getItem().setAccelerator(
1108: KeyStroke.getKeyStroke("shift W"));
1109: metal.getItem().setAccelerator(
1110: KeyStroke.getKeyStroke("shift M"));
1111: motif.getItem().setAccelerator(
1112: KeyStroke.getKeyStroke("shift O"));
1113:
1114: }
1115: if (this .util != null) {
1116: //ActionItem browser=new ActionItem("Open Simple Web browser ...");
1117: //ActionItem wpr=new ActionItem("Open Simple Word Processor ...");
1118: ActionItem sed = new ActionItem("Open Simple Editor...");
1119: ActionItem ced = new ActionItem("Show In Custom Editor....");
1120: ced.getItem().setActionCommand("customed");
1121:
1122: //ActionItem cal=new ActionItem("Open Simple Calculator...");
1123: ActionItem javac = new ActionItem("Compile Java...");
1124: ActionItem java = new ActionItem("Run Java Application...");
1125: ActionItem findj = new ActionItem("Find Jar");
1126: //ActionItem jar=new ActionItem("Create Jar...");
1127: ActionItem clipb = new ActionItem("Show Clipboard");
1128: ActionItem props = new ActionItem("System Properties");
1129: ActionItem home = new ActionItem("GoTo User Home Folder");
1130: proj = new ToolbarItem("Favorite list");
1131: proj.getItem().addActionListener(
1132: ActionItemListener.getListener());
1133: ArrayList list = UIUtil.getUIUtil().getFavoriteList();
1134: if (list.size() == 0) {
1135: proj.getItem().add(new JMenuItem("Empty"));
1136: } else {
1137: proj.getItem().removeAll();
1138: for (int x = 0; x < list.size(); x++) {
1139: String t = (String) list.get(x);
1140: JMenuItem m = new JMenuItem(t);
1141: Manager.getManager().proj.getItem().add(m);
1142:
1143: }
1144:
1145: }
1146: ActionItem setproject = new ActionItem("Edit Favorite List");
1147: ActionItem clear = new ActionItem("Clear History");
1148: ActionItem javadoc = new ActionItem("Javadoc");
1149: //ActionItem Zip=new ActionItem("Zip/Unzip Files");
1150: ActionItem find = new ActionItem("Find Target");
1151: ActionItem systime = new ActionItem("Show System Time");
1152: ActionItem unshow = new ActionItem("Hide System Time");
1153:
1154: sed.getItem().setAccelerator(
1155: KeyStroke.getKeyStroke("alt shift E"));
1156: javac.getItem().setAccelerator(
1157: KeyStroke.getKeyStroke("alt shift C"));
1158: java.getItem().setAccelerator(
1159: KeyStroke.getKeyStroke("alt shift R"));
1160: clipb.getItem().setAccelerator(
1161: KeyStroke.getKeyStroke("alt shift B"));
1162: props.getItem().setAccelerator(
1163: KeyStroke.getKeyStroke("alt shift S"));
1164: home.getItem().setAccelerator(
1165: KeyStroke.getKeyStroke("alt shift H"));
1166: //proj.getItem().setAccelerator(KeyStroke.getKeyStroke("alt shift G"));
1167: //setproject.getItem().setAccelerator(KeyStroke.getKeyStroke("alt shift P"));
1168: clear.getItem().setAccelerator(
1169: KeyStroke.getKeyStroke("alt shift W"));
1170: javadoc.getItem().setAccelerator(
1171: KeyStroke.getKeyStroke("alt shift J"));
1172: find.getItem().setAccelerator(
1173: KeyStroke.getKeyStroke("alt shift F"));
1174: systime.getItem().setAccelerator(
1175: KeyStroke.getKeyStroke("alt shift T"));
1176: unshow.getItem().setAccelerator(
1177: KeyStroke.getKeyStroke("alt shift U"));
1178:
1179: // this.util.getItem().add(browser.getItem());
1180: //this.util.getItem().add(wpr.getItem());
1181: this .util.getItem().add(sed.getItem());
1182: this .util.getItem().add(ced.getItem());
1183: //this.util.getItem().add(syn.getItem());
1184: //sed.getItem().addActionListener(new ActionItemListener());
1185: this .util.getItem().add(new JSeparator());
1186: //this.util.getItem().add(cal.getItem());
1187: this .util.getItem().add(clipb.getItem());
1188: this .util.getItem().add(props.getItem());
1189: this .util.getItem().add(new JSeparator());
1190: this .util.getItem().add(home.getItem());
1191: this .util.getItem().add(proj.getItem());
1192: this .util.getItem().add(setproject.getItem());
1193: this .util.getItem().add(new JSeparator());
1194: //this.util.getItem().add(clear.getItem());
1195: //this.util.getItem().add(Zip.getItem());
1196: this .util.getItem().add(find.getItem());
1197: this .util.getItem().add(new JSeparator());
1198:
1199: this .util.getItem().add(systime.getItem());
1200: this .util.getItem().add(unshow.getItem());
1201: this .util.getItem().add(new JSeparator());
1202:
1203: this .util.getItem().add(javac.getItem());
1204: this .util.getItem().add(java.getItem());
1205: this .util.getItem().add(findj.getItem());
1206: //this.util.getItem().add(jar.getItem());
1207: //this.util.getItem().add(javadoc.getItem());
1208:
1209: java.lang.String projPath = UILauncher.getUIutil()
1210: .getUserProjFol();
1211: /*if(projPath==null || projPath.trim().length()==0)
1212: {
1213: proj.getItem().setEnabled(false);
1214: }*/
1215:
1216: }
1217: if (this .help != null) {
1218: ActionItem tips = new ActionItem("Show Jdec Tips...");
1219: ActionItem full = new ActionItem("Open Full help");
1220: full.getItem().setActionCommand("fullHelp");
1221: ActionItem keys = new ActionItem("Key Assist");
1222:
1223: ActionItem howToUse = new ActionItem(
1224: "Learn How to Use Jdec In 2 mins...");
1225: howToUse.getItem().setActionCommand("TwoMins");
1226: ActionItem insights = new ActionItem(
1227: "Some Insights on Decompiler...");
1228:
1229: //this.help.getItem().add(howToUse.getItem());
1230: this .help.getItem().add(full.getItem());
1231: this .help.getItem().add(new JSeparator());
1232: this .help.getItem().add(tips.getItem());
1233: this .help.getItem().add(keys.getItem());
1234: tips.getItem().setActionCommand("jdec_tips");
1235: keys.getItem().setActionCommand("keys");
1236: keys.getItem().setAccelerator(
1237: KeyStroke.getKeyStroke("ctrl shift F"));
1238: //this.help.getItem().add(insights.getItem());
1239: tips.getItem().setAccelerator(
1240: KeyStroke.getKeyStroke("ctrl T"));
1241:
1242: }
1243: if (this .abt != null) {
1244: ActionItem whatIs = new ActionItem("What Is Jdec ?");
1245: ActionItem feedbck = new ActionItem("Send Feedback");
1246: ActionItem licence = new ActionItem("View Licence Info");
1247: licence.getItem().setActionCommand("ViewLicenceInfo");
1248: ActionItem submit = new ActionItem(
1249: "How Do I Submit a bug ?");
1250: submit.getItem().setActionCommand("bugsubmit");
1251:
1252: ActionItem wc = new ActionItem("Welcome");
1253: wc.getItem().setActionCommand("welcome");
1254: ActionItem contribute = new ActionItem(
1255: "Finally ... How Do I Contribute to Jdec");
1256: contribute.getItem().setActionCommand("contr");
1257: this .abt.getItem().add(whatIs.getItem());
1258: this .abt.getItem().add(wc.getItem());
1259: this .abt.getItem().add(licence.getItem());
1260: this .abt.getItem().add(new JSeparator());
1261: this .abt.getItem().add(submit.getItem());
1262: this .abt.getItem().add(feedbck.getItem());
1263:
1264: }
1265:
1266: }
1267:
1268: private void setFileMenu(ToolbarItem file) {
1269: this .file = file;
1270: }
1271:
1272: private void setEditMenu(ToolbarItem edit) {
1273: this .edit = edit;
1274: }
1275:
1276: private void setViewMenu(ToolbarItem view) {
1277: this .view = view;
1278: }
1279:
1280: private void setDiffViewMenu(ToolbarItem view) {
1281: this .diffview = view;
1282: }
1283:
1284: private void setWindowMenu(ToolbarItem window) {
1285: this .window = window;
1286: }
1287:
1288: private void setConfigMenu(ToolbarItem config) {
1289: this .config = config;
1290: }
1291:
1292: private void setUtilMenu(ToolbarItem util) {
1293: this .util = util;
1294: }
1295:
1296: private void setHelpMenu(ToolbarItem help) {
1297: this .help = help;
1298: }
1299:
1300: private void setAbtMenu(ToolbarItem abt) {
1301: this .abt = abt;
1302: }
1303:
1304: private void setSearchMenu(ToolbarItem srch) {
1305: this .srch = srch;
1306: }
1307:
1308: private void addAuxComponent(AuxToolBar aux, Component c) {
1309: aux.getAuxBar().add(c);
1310: }
1311:
1312: private void shiftHelpButtonsToRightForUnix(AuxToolBar aux) {
1313: addAuxComponent(aux, new JLabel(" "));
1314: addAuxComponent(aux, new JLabel(" "));
1315: //addAuxComponent(aux,fs);
1316: //addAuxComponent(aux,help);
1317: addAuxComponent(aux, new JLabel(" "));
1318: addAuxComponent(aux, new JLabel(" "));
1319: addAuxComponent(aux, new JLabel(" "));
1320: addAuxComponent(aux, new JLabel(" "));
1321: addAuxComponent(aux, new JLabel(" "));
1322: addAuxComponent(aux, new JLabel(" "));
1323: addAuxComponent(aux, new JLabel(" "));
1324: addAuxComponent(aux, new JLabel(" "));
1325: addAuxComponent(aux, new JLabel(" "));
1326: addAuxComponent(aux, new JLabel(" "));
1327: addAuxComponent(aux, new JLabel(" "));
1328: addAuxComponent(aux, new JLabel(" "));
1329: addAuxComponent(aux, new JLabel(" "));
1330: addAuxComponent(aux, new JLabel(" "));
1331: addAuxComponent(aux, new JLabel(" "));
1332: addAuxComponent(aux, new JLabel(" "));
1333: addAuxComponent(aux, new JLabel(" "));
1334: addAuxComponent(aux, new JLabel(" "));
1335: addAuxComponent(aux, new JLabel(" "));
1336: addAuxComponent(aux, new JLabel(" "));
1337: addAuxComponent(aux, new JLabel(" "));
1338: addAuxComponent(aux, new JLabel(" "));
1339: addAuxComponent(aux, new JLabel(" "));
1340: addAuxComponent(aux, new JLabel(" "));
1341: addAuxComponent(aux, new JLabel(" "));
1342: addAuxComponent(aux, new JLabel(" "));
1343: addAuxComponent(aux, new JLabel(" "));
1344: addAuxComponent(aux, new JLabel(" "));
1345:
1346: }
1347:
1348: private void shiftHelpButtonsToRight(AuxToolBar aux) {
1349: addAuxComponent(aux, new JLabel(" "));
1350: addAuxComponent(aux, new JLabel(" "));
1351: //addAuxComponent(aux,fs);
1352: //addAuxComponent(aux,help);
1353: addAuxComponent(aux, new JLabel(" "));
1354: addAuxComponent(aux, new JLabel(" "));
1355: addAuxComponent(aux, new JLabel(" "));
1356: addAuxComponent(aux, new JLabel(" "));
1357: addAuxComponent(aux, new JLabel(" "));
1358: addAuxComponent(aux, new JLabel(" "));
1359: addAuxComponent(aux, new JLabel(" "));
1360: addAuxComponent(aux, new JLabel(" "));
1361: addAuxComponent(aux, new JLabel(" "));
1362: addAuxComponent(aux, new JLabel(" "));
1363: addAuxComponent(aux, new JLabel(" "));
1364: addAuxComponent(aux, new JLabel(" "));
1365: addAuxComponent(aux, new JLabel(" "));
1366: addAuxComponent(aux, new JLabel(" "));
1367: addAuxComponent(aux, new JLabel(" "));
1368: addAuxComponent(aux, new JLabel(" "));
1369: addAuxComponent(aux, new JLabel(" "));
1370: addAuxComponent(aux, new JLabel(" "));
1371: addAuxComponent(aux, new JLabel(" "));
1372: addAuxComponent(aux, new JLabel(" "));
1373: addAuxComponent(aux, new JLabel(" "));
1374: addAuxComponent(aux, new JLabel(" "));
1375: addAuxComponent(aux, new JLabel(" "));
1376: addAuxComponent(aux, new JLabel(" "));
1377: addAuxComponent(aux, new JLabel(" "));
1378: addAuxComponent(aux, new JLabel(" "));
1379: addAuxComponent(aux, new JLabel(" "));
1380: addAuxComponent(aux, new JLabel(" "));
1381: addAuxComponent(aux, new JLabel(" "));
1382: addAuxComponent(aux, new JLabel(" "));
1383: addAuxComponent(aux, new JLabel(" "));
1384: addAuxComponent(aux, new JLabel(" "));
1385: addAuxComponent(aux, new JLabel(" "));
1386: addAuxComponent(aux, new JLabel(" "));
1387: addAuxComponent(aux, new JLabel(" "));
1388: addAuxComponent(aux, new JLabel(" "));
1389: addAuxComponent(aux, new JLabel(" "));
1390: addAuxComponent(aux, new JLabel(" "));
1391: addAuxComponent(aux, new JLabel(" "));
1392: addAuxComponent(aux, new JLabel(" "));
1393: addAuxComponent(aux, new JLabel(" "));
1394: addAuxComponent(aux, new JLabel(" "));
1395: addAuxComponent(aux, new JLabel(" "));
1396: addAuxComponent(aux, new JLabel(" "));
1397: addAuxComponent(aux, new JLabel(" "));
1398: addAuxComponent(aux, new JLabel(" "));
1399: addAuxComponent(aux, new JLabel(" "));
1400: addAuxComponent(aux, new JLabel(" "));
1401: addAuxComponent(aux, new JLabel(" "));
1402: addAuxComponent(aux, new JLabel(" "));
1403: addAuxComponent(aux, new JLabel(" "));
1404: addAuxComponent(aux, new JLabel(" "));
1405: addAuxComponent(aux, new JLabel(" "));
1406: addAuxComponent(aux, new JLabel(" "));
1407: addAuxComponent(aux, new JLabel(" "));
1408: addAuxComponent(aux, new JLabel(" "));
1409: addAuxComponent(aux, new JLabel(" "));
1410: addAuxComponent(aux, new JLabel(" "));
1411: addAuxComponent(aux, new JLabel(" "));
1412: addAuxComponent(aux, new JLabel(" "));
1413: addAuxComponent(aux, new JLabel(" "));
1414: addAuxComponent(aux, new JLabel(" "));
1415: addAuxComponent(aux, new JLabel(" "));
1416: addAuxComponent(aux, new JLabel(" "));
1417: addAuxComponent(aux, new JLabel(" "));
1418: addAuxComponent(aux, new JLabel(" "));
1419: addAuxComponent(aux, new JLabel(" "));
1420: addAuxComponent(aux, new JLabel(" "));
1421: addAuxComponent(aux, new JLabel(" "));
1422: addAuxComponent(aux, new JLabel(" "));
1423: addAuxComponent(aux, new JLabel(" "));
1424: addAuxComponent(aux, new JLabel(" "));
1425: addAuxComponent(aux, new JLabel(" "));
1426: addAuxComponent(aux, new JLabel(" "));
1427: addAuxComponent(aux, new JLabel(" "));
1428: addAuxComponent(aux, new JLabel(" "));
1429: addAuxComponent(aux, new JLabel(" "));
1430: addAuxComponent(aux, new JLabel(" "));
1431: addAuxComponent(aux, new JLabel(" "));
1432: addAuxComponent(aux, new JLabel(" "));
1433: addAuxComponent(aux, new JLabel(" "));
1434: addAuxComponent(aux, new JLabel(" "));
1435: addAuxComponent(aux, new JLabel(" "));
1436: addAuxComponent(aux, new JLabel(" "));
1437: addAuxComponent(aux, new JLabel(" "));
1438: addAuxComponent(aux, new JLabel(" "));
1439: addAuxComponent(aux, new JLabel(" "));
1440: addAuxComponent(aux, new JLabel(" "));
1441: addAuxComponent(aux, new JLabel(" "));
1442: addAuxComponent(aux, new JLabel(" "));
1443: addAuxComponent(aux, new JLabel(" "));
1444: addAuxComponent(aux, new JLabel(" "));
1445: addAuxComponent(aux, new JLabel(" "));
1446: addAuxComponent(aux, new JLabel(" "));
1447: addAuxComponent(aux, new JLabel(" "));
1448: addAuxComponent(aux, new JLabel(" "));
1449: addAuxComponent(aux, new JLabel(" "));
1450: addAuxComponent(aux, new JLabel(" "));
1451: addAuxComponent(aux, new JLabel(" "));
1452: addAuxComponent(aux, new JLabel(" "));
1453: addAuxComponent(aux, new JLabel(" "));
1454: addAuxComponent(aux, new JLabel(" "));
1455: addAuxComponent(aux, new JLabel(" "));
1456: addAuxComponent(aux, new JLabel(" "));
1457: addAuxComponent(aux, new JLabel(" "));
1458: addAuxComponent(aux, new JLabel(" "));
1459: addAuxComponent(aux, new JLabel(" "));
1460: addAuxComponent(aux, new JLabel(" "));
1461: addAuxComponent(aux, new JLabel(" "));
1462:
1463: }
1464:
1465: private ArrayList allSplitPaneItems = new ArrayList();
1466:
1467: public void registerSplitPaneItem(Object item) {
1468:
1469: allSplitPaneItems.add(item);
1470:
1471: }
1472:
1473: public void nullifySplitPaneItems() {
1474:
1475: for (int s = 0; s < allSplitPaneItems.size(); s++) {
1476: allSplitPaneItems.set(s, null);
1477: }
1478:
1479: }
1480:
1481: public ArrayList getCurrentSplitPaneComponents() {
1482:
1483: return allSplitPaneItems;
1484: }
1485:
1486: public void updateSplitPaneItems(ArrayList update) {
1487: allSplitPaneItems = new ArrayList(update);
1488: getSplitterRef().recreateSplitter(allSplitPaneItems);
1489:
1490: }
1491:
1492: public static void resetOutputFrame(java.lang.String type) {
1493: UIObserver observer = UILauncher.getObserver();
1494: if (observer != null) {
1495: observer.resetOutputFrame(type);
1496: }
1497: }
1498:
1499: public void setSplitterRef(Splitter splitPane) {
1500: SplitterRef = splitPane;
1501: }
1502:
1503: private Splitter SplitterRef = null;
1504:
1505: public Splitter getSplitterRef() {
1506: return SplitterRef;
1507: }
1508:
1509: static TextEditor editor = null;
1510:
1511: public static TextEditor getEditor() {
1512: return editor;
1513: }
1514:
1515: public static void setEditor(TextEditor editor) {
1516: Manager.editor = editor;
1517: }
1518:
1519: public volatile boolean showTime = false;
1520:
1521: public void setSystemPropRef(SystemProperties prop) {
1522: this .prop = prop;
1523: }
1524:
1525: SystemProperties prop = null;
1526:
1527: public SystemProperties getSystemPropertyRef() {
1528: return prop;
1529: }
1530:
1531: private RecentFileList recentFilelistRef = null;
1532:
1533: public void setRecentFileRef(RecentFileList ref) {
1534: recentFilelistRef = ref;
1535: }
1536:
1537: public RecentFileList getRecentFileListRef() {
1538: return recentFilelistRef;
1539: }
1540:
1541: public void setPreferencesRef(Preferences prefs) {
1542: pref = prefs;
1543: }
1544:
1545: public Preferences getPrefRef() {
1546: return pref;
1547: }
1548:
1549: public void setJavacRef(Javac javac) {
1550: this .javac = javac;
1551: }
1552:
1553: public void setJavaRef(Java java) {
1554: javaRef = java;
1555: }
1556:
1557: private Java javaRef;
1558: private Preferences pref = null;
1559: private Javac javac = null;
1560:
1561: public ArrayList getAllUIComponents() {
1562: return allUIComponents;
1563: }
1564:
1565: private boolean versionprogressbar = false;
1566:
1567: /**
1568: * @return Returns the showProgressBar.
1569: */
1570: public boolean isShowProgressBar() {
1571: return showProgressBar;
1572: }
1573:
1574: /**
1575: * @param showProgressBar The showProgressBar to set.
1576: */
1577: public void setShowProgressBar(boolean showProgressBar) {
1578: this .showProgressBar = showProgressBar;
1579: }
1580:
1581: public void setStatusThread(Thread t) {
1582: status = t;
1583: }
1584:
1585: public Thread getStatusThread() {
1586: return status;
1587: }
1588:
1589: private Thread status = null;
1590: private JFrame statusFrame = null;
1591:
1592: public void setStatusFrame(JFrame t) {
1593: statusFrame = t;
1594: }
1595:
1596: public JFrame getStatusFrame() {
1597: return statusFrame;
1598: }
1599:
1600: Thread worker = null;
1601: Thread statusThread = null;
1602:
1603: public void setWorkerThreadRef(Thread t) {
1604: worker = t;
1605:
1606: }
1607:
1608: public void setStatusThreadRef(Thread t) {
1609: statusThread = t;
1610:
1611: }
1612:
1613: public Thread getStatusThreadRef() {
1614: return statusThread;
1615: }
1616:
1617: /**
1618: * @return Returns the worker.
1619: */
1620: public Thread getWorker() {
1621: return worker;
1622: }
1623:
1624: public JButton fwd = null;
1625: public JButton back = null;
1626: public JButton nextd = null;
1627: public JButton prevd = null;
1628: public static JLabel auxlabel = new JLabel("");
1629: public ToolbarItem proj;
1630:
1631: public boolean isVersionprogressbar() {
1632: return versionprogressbar;
1633: }
1634:
1635: public void setVersionprogressbar(boolean versionprogressbar) {
1636: this .versionprogressbar = versionprogressbar;
1637: }
1638:
1639: public ActionItem currentmethods = null;
1640: public OutputFrame decoutputframe = null;
1641: }
|