001: /* ====================================================================
002: * The JRefactory License, Version 1.0
003: *
004: * Copyright (c) 2001 JRefactory. All rights reserved.
005: *
006: * Redistribution and use in source and binary forms, with or without
007: * modification, are permitted provided that the following conditions
008: * are met:
009: *
010: * 1. Redistributions of source code must retain the above copyright
011: * notice, this list of conditions and the following disclaimer.
012: *
013: * 2. Redistributions in binary form must reproduce the above copyright
014: * notice, this list of conditions and the following disclaimer in
015: * the documentation and/or other materials provided with the
016: * distribution.
017: *
018: * 3. The end-user documentation included with the redistribution,
019: * if any, must include the following acknowledgment:
020: * "This product includes software developed by the
021: * JRefactory (http://www.sourceforge.org/projects/jrefactory)."
022: * Alternately, this acknowledgment may appear in the software itself,
023: * if and wherever such third-party acknowledgments normally appear.
024: *
025: * 4. The names "JRefactory" must not be used to endorse or promote
026: * products derived from this software without prior written
027: * permission. For written permission, please contact seguin@acm.org.
028: *
029: * 5. Products derived from this software may not be called "JRefactory",
030: * nor may "JRefactory" appear in their name, without prior written
031: * permission of Chris Seguin.
032: *
033: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
034: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
035: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
036: * DISCLAIMED. IN NO EVENT SHALL THE CHRIS SEGUIN OR
037: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
038: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
039: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
040: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
041: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
042: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
043: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
044: * SUCH DAMAGE.
045: * ====================================================================
046: *
047: * This software consists of voluntary contributions made by many
048: * individuals on behalf of JRefactory. For more information on
049: * JRefactory, please see
050: * <http://www.sourceforge.org/projects/jrefactory>.
051: */
052: package org.acm.seguin.ide.cafe;
053:
054: import com.symantec.itools.vcafe.openapi.pluginapi.Plugin;
055: import com.symantec.itools.vcafe.openapi.VisualCafe;
056: import java.awt.MenuBar;
057: import java.awt.Menu;
058: import java.awt.MenuItem;
059: import java.io.InputStream;
060: import java.io.OutputStream;
061: import org.acm.seguin.tools.RefactoryInstaller;
062: import org.acm.seguin.util.FileSettings;
063:
064: /**
065: * This class sets up the pretty printer and all the associated menu items.
066: *
067: *@author Chris Seguin
068: *@created August 26, 2000
069: */
070: public class CafeSetup implements Plugin {
071: /**
072: * Gets the PluginInfo attribute of the CafePrettyPrinter object
073: */
074: public void getPluginInfo() {
075: System.out.println("CafePrettyPrinter::getInfo()");
076: }
077:
078: /**
079: * Gets the SubMenu attribute of the CafePrettyPrinter object
080: *
081: *@return The SubMenu value
082: */
083: private Menu getSubMenu() {
084: Menu jrefactoryMenu = new Menu("JRefactory");
085:
086: MenuItem prettyPrinterMenuItem = new MenuItem("P&retty Printer");
087: prettyPrinterMenuItem
088: .addActionListener(new CafePrettyPrinter());
089: jrefactoryMenu.add(prettyPrinterMenuItem);
090:
091: try {
092: MenuItem loadMenuItem = new MenuItem("Extract Method");
093: loadMenuItem.addActionListener(new CafeExtractMethod());
094: jrefactoryMenu.add(loadMenuItem);
095: } catch (Throwable re) {
096: }
097:
098: MenuItem extractMenuItem = new MenuItem("Load Metadata");
099: extractMenuItem.addActionListener(new ReloadActionAdapter());
100: jrefactoryMenu.add(extractMenuItem);
101:
102: /*
103: * MenuItem viewDiagramMenuItem = new MenuItem("View Class Diagram");
104: * viewDiagramMenuItem.setEnabled(false);
105: * jrefactoryMenu.add(viewDiagramMenuItem);
106: * MenuItem printMenuItem = new MenuItem("Print");
107: * printMenuItem.setEnabled(false);
108: * jrefactoryMenu.add(printMenuItem);
109: * Menu zoomMenu = new Menu("Zoom");
110: * jrefactoryMenu.add(zoomMenu);
111: * MenuItem tenMenuItem = new MenuItem("10%");
112: * tenMenuItem.setEnabled(false);
113: * zoomMenu.add(tenMenuItem);
114: * MenuItem twentyfiveMenuItem = new MenuItem("25%");
115: * twentyfiveMenuItem.setEnabled(false);
116: * zoomMenu.add(twentyfiveMenuItem);
117: * MenuItem fiftyMenuItem = new MenuItem("50%");
118: * fiftyMenuItem.setEnabled(false);
119: * zoomMenu.add(fiftyMenuItem);
120: * MenuItem fullMenuItem = new MenuItem("100%");
121: * fullMenuItem.setEnabled(false);
122: * zoomMenu.add(fullMenuItem);
123: */
124: return jrefactoryMenu;
125: }
126:
127: /**
128: * Used to close out this object
129: */
130: public void destroy() {
131: }
132:
133: /**
134: * Initializes Visual Cafe settings
135: */
136: public void init() {
137: String root = System.getProperty("user.home");
138: FileSettings.setSettingsRoot(root);
139:
140: // Make sure everything is installed properly
141: (new RefactoryInstaller(false)).run();
142:
143: VisualCafe vc = VisualCafe.getVisualCafe();
144:
145: // Add sample submenus to Visual Cafe MenuBar
146: MenuBar mb = vc.getMenuBar();
147: Menu subMenu = getSubMenu();
148: mb.add(subMenu);
149: }
150:
151: /**
152: * Restores the state
153: *
154: *@param is The input stream
155: *@param b a boolean if anything has changed
156: */
157: public void restore(InputStream is, boolean b) {
158: }
159:
160: /**
161: * Used to save this object
162: *
163: *@param os the output stream
164: *@param b boolean if it needs to be saved
165: */
166: public void save(OutputStream os, boolean b) {
167: }
168: }
169: // EOF
|