Update of /cvsroot/xdoclet/xdoclet2/src/ide/idea/src/java/xdoclet/ide/idea
In directory sc8-pr-cvs1:/tmp/cvs-serv20686/src/ide/idea/src/java/xdoclet/ide/idea
Modified Files:
XDocletPlugin.java
Added Files:
ActionID.java XDocletToggle.java toggle.gif
Log Message:
IDEA plugin.
--- NEW FILE: ActionID.java ---
package xdoclet.ide.idea;
/**
* Common Action Ids.
*/
public interface ActionID {
public static final String MAIN_TOOLBAR = "MainToolBar";
public static final String MAIN_MENU = "MainMenu";
public static final String WINDOW_MENU = "WindowMenu";
public static final String WINDOW_MENU_INSPECTION = "XDocletBuild";
}
--- NEW FILE: XDocletToggle.java ---
package xdoclet.ide.idea;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataConstants;
import com.intellij.openapi.actionSystem.ToggleAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.openapi.wm.ToolWindowAnchor;
import com.intellij.openapi.wm.ToolWindowManager;
import javax.swing.*;
import java.util.*;
import xdoclet.gui.swing.BeanContextConfigurationPanel;
import xdoclet.BeanContextSupportEx;
import xdoclet.XDoclet;
import xdoclet.XDocletException;
/**
* Toggle action for XDoclet Build.
*
* @author <a href="mailto:mbo at jcs.be">Mathias Bogaert</a>
* @version $Revision: 1.1 $
*/
public class XDocletToggle extends ToggleAction {
public static final String ID = "XDocletToggleAction";
public final static String XDOCLET_BUILD = "XDoclet Build";
private static final Icon ICON = new
ImageIcon(XDocletToggle.class.getResource("toggle.gif"));
private Map consoles = new HashMap();
private List managers = new ArrayList();
public boolean isSelected(AnActionEvent event) {
Project project = (Project)
event.getDataContext().getData(DataConstants.PROJECT);
return project != null && consoles.get(project) != null;
}
public void setSelected(AnActionEvent event, boolean isSelected) {
Project project = (Project)
event.getDataContext().getData(DataConstants.PROJECT);
if (project != null) {
final ToolWindowManager manager = ToolWindowManager.getInstance(project);
ToolWindow console = (ToolWindow) consoles.get(project);
if (isSelected && console == null) {
BeanContextSupportEx xdocletContainer = new BeanContextSupportEx();
XDoclet xdoclet = new XDoclet();
xdocletContainer.add(xdoclet);
try {
xdoclet.createPlugin("velocity");
xdoclet.createPlugin("jelly");
}
catch (XDocletException e) {
e.printStackTrace();
}
// show window
manager.registerToolWindow(XDOCLET_BUILD,
new BeanContextConfigurationPanel(xdocletContainer),
ToolWindowAnchor.RIGHT);
console = manager.getToolWindow(XDOCLET_BUILD);
if (console != null) {
// Add manager to array to do unregister on finalize
managers.add(manager);
consoles.put(project, console);
console.setIcon(ICON);
console.show(null);
console.activate(null);
}
}
else if (!isSelected && console != null) {
// Hide window
console.hide(null);
manager.unregisterToolWindow(XDOCLET_BUILD);
managers.remove(manager);
consoles.remove(project);
}
}
}
public XDocletToggle() {
super(XDOCLET_BUILD, "Show/Hide " + XDOCLET_BUILD, ICON);
}
public void clear() {
// unregister all created ToolWindows
Iterator iterator = managers.iterator();
while (iterator.hasNext()) {
ToolWindowManager manager = (ToolWindowManager) iterator.next();
manager.unregisterToolWindow(XDOCLET_BUILD);
}
managers.clear();
consoles.clear();
}
}
--- NEW FILE: toggle.gif ---
GIF87a
^�
Index: XDocletPlugin.java
===================================================================
RCS file:
/cvsroot/xdoclet/xdoclet2/src/ide/idea/src/java/xdoclet/ide/idea/XDocletPlugin.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** XDocletPlugin.java 13 Mar 2003 18:25:42 -0000 1.1
--- XDocletPlugin.java 16 Mar 2003 23:59:16 -0000 1.2
***************
*** 1,14 ****
package xdoclet.ide.idea;
! import com.intellij.openapi.components.ProjectComponent;
! import com.intellij.openapi.options.Configurable;
! import com.intellij.openapi.options.ConfigurationException;
!
! import javax.swing.*;
!
! import xdoclet.gui.swing.BeanContextConfigurationPanel;
! import xdoclet.XDoclet;
! import xdoclet.XDocletException;
! import xdoclet.BeanContextSupportEx;
/**
--- 1,10 ----
package xdoclet.ide.idea;
! import com.intellij.openapi.actionSystem.ActionManager;
! import com.intellij.openapi.actionSystem.Anchor;
! import com.intellij.openapi.actionSystem.Constraints;
! import com.intellij.openapi.actionSystem.DefaultActionGroup;
! import com.intellij.openapi.components.ApplicationComponent;
! import com.intellij.openapi.diagnostic.Logger;
/**
***************
*** 18,22 ****
* @version $Revision$
*/
! public class XDocletPlugin implements ProjectComponent, Configurable {
/**
* Method is called after plugin is already created and configured. Plugin can
start to communicate with
--- 14,31 ----
* @version $Revision$
*/
! public class XDocletPlugin implements ApplicationComponent {
! /** Logger */
! private static final Logger log =
Logger.getInstance(XDocletPlugin.class.getName());
!
! private DefaultActionGroup spg;
! private XDocletToggle toggleAction;
!
! public XDocletPlugin() {
! toggleAction = new XDocletToggle();
! spg = new DefaultActionGroup();
! spg.addSeparator();
! spg.add(toggleAction);
! }
!
/**
* Method is called after plugin is already created and configured. Plugin can
start to communicate with
***************
*** 24,103 ****
*/
public void initComponent() {
! System.out.println("SampleProjectPlugin: initComponent");
! }
!
! /**
! * This method is called on plugin disposal.
! */
! public void disposeComponent() {
! System.out.println("SampleProjectPlugin: disposeComponent");
! }
!
! /**
! * Invoked when project is opened.
! */
! public void projectOpened() {
! System.out.println("SampleProjectPlugin: projectOpened");
! }
!
! /**
! * Invoked when project is closed.
! */
! public void projectClosed() {
! System.out.println("SampleProjectPlugin: projectClosed");
! }
!
! /**
! * Returns the name of component
! * @return String representing component name. Use plugin_name.component_name
notation.
! */
! public String getComponentName() {
! return "Sample.SampleProjectPlugin";
! }
!
! //////////////////// Configurable interface
!
! public String getDisplayName() {
! return "XDCLET";
! }
!
! public Icon getIcon() {
! return null;
! }
!
! public String getHelpTopic() {
! return "XDoclet Help";
! }
! public JComponent createComponent() {
! // This should be read from a serialised object or config.
! BeanContextSupportEx xdocletContainer = new BeanContextSupportEx();
! XDoclet xdoclet = new XDoclet();
! xdocletContainer.add( xdoclet );
!
! try {
! xdoclet.createPlugin("velocity");
! xdoclet.createPlugin("jelly");
! } catch (XDocletException e) {
! e.printStackTrace(); //To change body of catch statement use Options |
File Templates.
}
! return new BeanContextConfigurationPanel( xdocletContainer );
}
! public boolean isModified() {
! return false;
! }
! public void apply() throws ConfigurationException {
! System.out.println("SampleProjectPlugin: apply");
! }
! public void reset() {
! System.out.println("SampleProjectPlugin: reset");
}
! public void disposeUIResources() {
! System.out.println("SampleProjectPlugin: disposeUIResources");
}
}
--- 33,82 ----
*/
public void initComponent() {
! final ActionManager actionManager = ActionManager.getInstance();
! // try register action
! if (actionManager.getAction(XDocletToggle.ID) == null) {
! actionManager.registerAction(XDocletToggle.ID, toggleAction);
! }
! // add toggle icon into IntelliJ UI, add to MainToolbar
! DefaultActionGroup mainToolBar = (DefaultActionGroup)
actionManager.getAction(ActionID.MAIN_TOOLBAR);
! if (mainToolBar != null) {
! mainToolBar.add(spg);
! }
! else {
! log.info("Can't find " + ActionID.MAIN_TOOLBAR + " group");
}
! // add to menu "Window"
! DefaultActionGroup menuWindow = (DefaultActionGroup)
actionManager.getAction(ActionID.WINDOW_MENU);
! if (menuWindow != null) {
! menuWindow.add(toggleAction, new Constraints(Anchor.AFTER,
ActionID.WINDOW_MENU_INSPECTION));
! }
! else {
! log.info("Can't find " + ActionID.WINDOW_MENU + " group");
! }
}
! public void disposeComponent() {
! ActionManager actionManager = ActionManager.getInstance();
! // remove toggle icon from InteliJ UI
! DefaultActionGroup mainToolBar = (DefaultActionGroup)
actionManager.getAction(ActionID.MAIN_TOOLBAR);
! if (mainToolBar != null) {
! mainToolBar.remove(spg);
! }
! DefaultActionGroup menuWindow = (DefaultActionGroup)
actionManager.getAction(ActionID.WINDOW_MENU);
! if (menuWindow != null) {
! menuWindow.remove(toggleAction);
! }
! toggleAction.clear();
! if (actionManager.getAction(XDocletToggle.ID) != null) {
! actionManager.unregisterAction(XDocletToggle.ID);
! }
}
! public String getComponentName() {
! return XDocletPlugin.class.getName();
}
}
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
_______________________________________________
xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel