Added: cayenne/sandbox/cayenne-modeler-eclipse-plugin/pom.xml URL: http://svn.apache.org/viewvc/cayenne/sandbox/cayenne-modeler-eclipse-plugin/pom.xml?rev=1102209&view=auto ============================================================================== --- cayenne/sandbox/cayenne-modeler-eclipse-plugin/pom.xml (added) +++ cayenne/sandbox/cayenne-modeler-eclipse-plugin/pom.xml Thu May 12 09:05:47 2011 @@ -0,0 +1,252 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <properties> + <bundle.symbolicName>cayenne-modeler-eclipse-plugin</bundle.symbolicName> + <bundle.namespace>org.apache.cayenne</bundle.namespace> + </properties> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.cayenne</groupId> + <artifactId>cayenne-parent</artifactId> + <version>3.1-SNAPSHOT</version> + </parent> + + <artifactId>cayenne-modeler-eclipse-plugin</artifactId> + + <name>Cayenne Modeler Plugin for Eclipse</name> + <packaging>bundle</packaging> + + <build> + <resources> + <resource> + <targetPath>icons</targetPath> + <directory>icons</directory> + + </resource> + <resource> + <directory>.</directory> + <includes> + <include>plugin.xml</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <version>1.2.1</version> + <extensions>true</extensions> + <configuration> + <manifestLocation>META-INF</manifestLocation> + <instructions> + <Include-Resource>target/classes</Include-Resource> + <Bundle-SymbolicName>${bundle.symbolicName};singleton:=true + </Bundle-SymbolicName> + <Bundle-Version>${pom.version}</Bundle-Version> + <Import-Package> + <!-- exclude packages generated in bundle manifest + automatically and that cause the failure of + bundle compilation + TODO: consider the way of resolving this problem + not by explicit exclusion + --> + !EDU.oswego.cs.dl.util.concurrent, + !bsh, + !com.sun.java.swing.plaf.windows, + !com.werken.xpath, + !javax.jms, + !org.apache.avalon.framework.logger, + !org.apache.bcel.*, + !org.jdom.*, + !org.jivesoftware.smackx.debugger, + !sun.security.action, + + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.ui, + org.eclipse.jdt.launching, + org.eclipse.debug.core, + org.eclipse.ui.ide, + org.eclipse.jdt.core,* + </Import-Package> + <Bundle-Activator>${bundle.namespace}.Activator + </Bundle-Activator> + <Embed-Dependency> + *;scope=compile|runtime|provided;inline=false; + </Embed-Dependency> + <Embed-Directory>target/dependency + </Embed-Directory> + <Embed-StripGroup>true</Embed-StripGroup> + </instructions> + </configuration> + </plugin> + <plugin> + <artifactId>maven-dependency-plugin + </artifactId> + <executions> + <execution> + <id>copy-dependencies</id> + <phase>package</phase> + <goals> + <goal>copy-dependencies</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>1.5</source> + <target>1.5</target> + </configuration> + </plugin> + </plugins> + </build> + + <dependencies> + <!-- Eclipse dependencies --> + <dependency> + <groupId>org.eclipse</groupId> + <artifactId>ui</artifactId> + <version>3.3.0-I20070614-0800</version> + </dependency> + <dependency> + <groupId>org.eclipse.core</groupId> + <artifactId>resources</artifactId> + <version>3.3.0-v20070604</version> + </dependency> + <dependency> + <groupId>org.eclipse.core.runtime</groupId> + <artifactId>compatibility</artifactId> + <version>3.1.200-v20070502</version> + </dependency> + <dependency> + <groupId>org.eclipse</groupId> + <artifactId>jdt</artifactId> + <version>3.3.0-v20070607-1300</version> + </dependency> + + + <!-- Cayenne dependencies --> + <dependency> + <groupId>org.apache.cayenne</groupId> + <artifactId>cayenne-modeler</artifactId> + <version>${version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.cayenne.unpublished</groupId> + <artifactId>cayenne-jdk1.5-unpublished</artifactId> + <version>${version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.cayenne.unpublished</groupId> + <artifactId>cayenne-project-unpublished</artifactId> + <version>${version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.cayenne</groupId> + <artifactId>cayenne-tools</artifactId> + <version>${version}</version> + </dependency> + <dependency> + <groupId>org.apache.cayenne.unpublished</groupId> + <artifactId>cayenne-wocompat-unpublished</artifactId> + <version>${version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.cayenne.unpublished</groupId> + <artifactId>cayenne-di-unpublished</artifactId> + <version>${version}</version> + </dependency> + + <!-- Third-party dependencies --> + <dependency> + <groupId>com.caucho</groupId> + <artifactId>resin-hessian</artifactId> + </dependency> + <dependency> + <groupId>opensymphony</groupId> + <artifactId>oscache</artifactId> + <version>2.3.2</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>jgroups</groupId> + <artifactId>jgroups-all</artifactId> + </dependency> + <dependency> + <groupId>jgoodies</groupId> + <artifactId>looks</artifactId> + </dependency> + <dependency> + <groupId>jgoodies</groupId> + <artifactId>forms</artifactId> + </dependency> + <dependency> + <groupId>jivesoftware</groupId> + <artifactId>smack</artifactId> + <version>2.2.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>jivesoftware</groupId> + <artifactId>smackx</artifactId> + <version>2.2.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>ognl</groupId> + <artifactId>ognl</artifactId> + </dependency> + <dependency> + <groupId>org.scopemvc</groupId> + <artifactId>scopemvc</artifactId> + </dependency> + <dependency> + <groupId>hsqldb</groupId> + <artifactId>hsqldb</artifactId> + </dependency> + <dependency> + <groupId>jgraph</groupId> + <artifactId>jgraph</artifactId> + <version>5.13.0.0</version> + </dependency> + <dependency> + <groupId>net.sf.jedit-syntax</groupId> + <artifactId>jedit-syntax</artifactId> + <version>2.2.2</version> + </dependency> + <dependency> + <groupId>commons-dbcp</groupId> + <artifactId>commons-dbcp</artifactId> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>commons-pool</groupId> + <artifactId>commons-pool</artifactId> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </dependency> + <dependency> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + </dependency> + <dependency> + <groupId>foundrylogic.vpp</groupId> + <artifactId>vpp</artifactId> + </dependency> + <dependency> + <groupId>net.java.dev.inflector</groupId> + <artifactId>inflector</artifactId> + <version>0.7.0</version> + </dependency> + </dependencies> +</project> \ No newline at end of file
Added: cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/Activator.java URL: http://svn.apache.org/viewvc/cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/Activator.java?rev=1102209&view=auto ============================================================================== --- cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/Activator.java (added) +++ cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/Activator.java Thu May 12 09:05:47 2011 @@ -0,0 +1,44 @@ +package org.apache.cayenne; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IPath; +import org.eclipse.ui.plugin.AbstractUIPlugin; + +public class Activator extends AbstractUIPlugin { + + // The shared instance. + private static Activator plugin; + + /** + * The constructor. + */ + public Activator() { + super(); + plugin = this; + + } + + /** + * Returns the shared instance of the plug-in. + */ + public static Activator getDefault() { + return plugin == null ? new Activator() : plugin; + } + + public void updateWorkspace(IPath path) { + + try { + IWorkspace workspace = ResourcesPlugin.getWorkspace(); + IWorkspaceRoot root = workspace.getRoot(); + IProject project = root.getFileForLocation(path).getProject(); + project.refreshLocal(IResource.DEPTH_INFINITE, null); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} \ No newline at end of file Added: cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginActionManager.java URL: http://svn.apache.org/viewvc/cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginActionManager.java?rev=1102209&view=auto ============================================================================== --- cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginActionManager.java (added) +++ cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginActionManager.java Thu May 12 09:05:47 2011 @@ -0,0 +1,25 @@ +package org.apache.cayenne.extentions.modeler; + +import org.apache.cayenne.extentions.modeler.action.PluginExitAction; +import org.apache.cayenne.extentions.modeler.action.PluginProjectAction; +import org.apache.cayenne.modeler.ActionManager; +import org.apache.cayenne.modeler.Application; +import org.apache.cayenne.modeler.action.ExitAction; +import org.apache.cayenne.modeler.action.ProjectAction; + +public class PluginActionManager extends ActionManager { + + public PluginActionManager(Application application) { + super(application); + } + + @Override + protected ExitAction createExitAction(Application application) { + return new PluginExitAction(application); + } + + @Override + protected ProjectAction createProjectAction(Application application) { + return new PluginProjectAction(application); + } +} \ No newline at end of file Added: cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginApplication.java URL: http://svn.apache.org/viewvc/cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginApplication.java?rev=1102209&view=auto ============================================================================== --- cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginApplication.java (added) +++ cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginApplication.java Thu May 12 09:05:47 2011 @@ -0,0 +1,25 @@ +package org.apache.cayenne.extentions.modeler; + +import java.io.File; + +import org.apache.cayenne.modeler.ActionManager; +import org.apache.cayenne.modeler.Application; +import org.apache.cayenne.modeler.CayenneModelerController; + +public class PluginApplication extends Application { + + public PluginApplication(File initialProject) { + super(initialProject); + } + + @Override + protected CayenneModelerController initFrameController() { + return new PluginModelerController(this, initialProject); + + } + + @Override + protected ActionManager initActionManager() { + return new PluginActionManager(this); + } +} \ No newline at end of file Added: cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginMain.java URL: http://svn.apache.org/viewvc/cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginMain.java?rev=1102209&view=auto ============================================================================== --- cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginMain.java (added) +++ cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginMain.java Thu May 12 09:05:47 2011 @@ -0,0 +1,29 @@ +package org.apache.cayenne.extentions.modeler; + +import java.io.File; + +import org.apache.cayenne.modeler.Application; +import org.apache.cayenne.modeler.Main; + +public class PluginMain extends Main { + + public void run(String[]args){ + + configureLogging(); + + // check jdk version + if (!checkJDKVersion()) { + System.exit(1); + } + + File projectFile = projectFileFromArgs(args); + runModeler(projectFile); + } + + + @Override + protected Application initApplication(File projectFile) { + return new PluginApplication(projectFile); + } + +} \ No newline at end of file Added: cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerController.java URL: http://svn.apache.org/viewvc/cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerController.java?rev=1102209&view=auto ============================================================================== --- cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerController.java (added) +++ cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerController.java Thu May 12 09:05:47 2011 @@ -0,0 +1,44 @@ +package org.apache.cayenne.extentions.modeler; + +import java.io.File; + +import javax.swing.WindowConstants; + +import org.apache.cayenne.Activator; +import org.apache.cayenne.modeler.Application; +import org.apache.cayenne.modeler.CayenneModelerController; +import org.apache.cayenne.modeler.CayenneModelerFrame; +import org.apache.cayenne.modeler.action.GenerateCodeAction; +import org.eclipse.core.runtime.Path; + +public class PluginModelerController extends CayenneModelerController { + + public PluginModelerController(Application application, File initialProject) { + super(application, initialProject); + } + + @Override + public void projectSavedAction() { + ((GenerateCodeAction) Application.getInstance().getAction( + GenerateCodeAction.getActionName())) + .performGenerationOnAllDataMaps(); + Activator.getDefault().updateWorkspace( + new Path(projectController.getProject() + .getConfigurationResource().getURL().getPath())); + super.projectSavedAction(); + + } + + @Override + protected void initBindings() { + super.initBindings(); + frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + } + + @Override + protected CayenneModelerFrame initModelerFrame(Application application) { + return new PluginModelerFrame(application.getActionManager()); + } + +} \ No newline at end of file Added: cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerFrame.java URL: http://svn.apache.org/viewvc/cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerFrame.java?rev=1102209&view=auto ============================================================================== --- cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerFrame.java (added) +++ cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerFrame.java Thu May 12 09:05:47 2011 @@ -0,0 +1,72 @@ +package org.apache.cayenne.extentions.modeler; + +import java.awt.Component; + +import javax.swing.AbstractAction; +import javax.swing.JButton; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.JToolBar; + +import org.apache.cayenne.modeler.ActionManager; +import org.apache.cayenne.modeler.CayenneModelerFrame; +import org.apache.cayenne.modeler.action.NewProjectAction; +import org.apache.cayenne.modeler.action.OpenProjectAction; +import org.apache.cayenne.modeler.action.ProjectAction; +import org.apache.cayenne.modeler.util.RecentFileMenu; + +public class PluginModelerFrame extends CayenneModelerFrame { + + public PluginModelerFrame(ActionManager actionManager) { + super(actionManager); + } + + @Override + protected void buildFileMenu(JMenu fileMenu) { + // TODO Auto-generated method stub + super.buildFileMenu(fileMenu); + for (int i = 0; i < fileMenu.getItemCount(); i) { + JMenuItem item = fileMenu.getItem(i); + if (item != null) { + String name = item.getText(); + if (NewProjectAction.getActionName().equals(name) + || OpenProjectAction.getActionName().equals(name) + || ProjectAction.getActionName().equals(name) + || "Recent Projects".equals(name)) { + item.setEnabled(false); + } + + } + } + + } + + @Override + protected void buildProjectToolbar(JToolBar toolBar) { + super.buildProjectToolbar(toolBar); + for (int i = 0; i < toolBar.getComponentCount(); i) { + Component component = toolBar.getComponentAtIndex(i); + if (component != null && component instanceof JButton) { + + AbstractAction action = (AbstractAction) ((JButton) component) + .getAction(); + if (action instanceof NewProjectAction + || action instanceof OpenProjectAction) { + component.setEnabled(false); + } + } + } + } + + @Override + protected RecentFileMenu initRecentFileMenu(String title) { + return new RecentFileMenu(title) { + + @Override + public void recentFileListChanged() { + // nothing to do, only one project cab be opened by modeler + } + + }; + } +} \ No newline at end of file Added: cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginExitAction.java URL: http://svn.apache.org/viewvc/cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginExitAction.java?rev=1102209&view=auto ============================================================================== --- cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginExitAction.java (added) +++ cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginExitAction.java Thu May 12 09:05:47 2011 @@ -0,0 +1,16 @@ +package org.apache.cayenne.extentions.modeler.action; + +import org.apache.cayenne.modeler.Application; +import org.apache.cayenne.modeler.action.ExitAction; + +public class PluginExitAction extends ExitAction { + + public PluginExitAction(Application application) { + super(application); + } + + @Override + protected void applicationShutdown() { + closeProject(false); + } +} \ No newline at end of file Added: cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginProjectAction.java URL: http://svn.apache.org/viewvc/cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginProjectAction.java?rev=1102209&view=auto ============================================================================== --- cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginProjectAction.java (added) +++ cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginProjectAction.java Thu May 12 09:05:47 2011 @@ -0,0 +1,20 @@ +package org.apache.cayenne.extentions.modeler.action; + +import java.awt.event.ActionEvent; + +import org.apache.cayenne.modeler.Application; +import org.apache.cayenne.modeler.action.ProjectAction; + +public class PluginProjectAction extends ProjectAction { + + public PluginProjectAction(Application application) { + super(application); + } + + @Override + public void performAction(ActionEvent e) { + super.performAction(e); + Application.getInstance().getFrameController().getWindow().dispose(); + } + +} \ No newline at end of file Added: cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/launcher/EditorLauncher.java URL: http://svn.apache.org/viewvc/cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/launcher/EditorLauncher.java?rev=1102209&view=auto ============================================================================== --- cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/launcher/EditorLauncher.java (added) +++ cayenne/sandbox/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/launcher/EditorLauncher.java Thu May 12 09:05:47 2011 @@ -0,0 +1,19 @@ +package org.apache.cayenne.launcher; + +import org.apache.cayenne.extentions.modeler.PluginMain; +import org.eclipse.core.runtime.IPath; +import org.eclipse.ui.IEditorLauncher; + +public class EditorLauncher implements IEditorLauncher { + + @SuppressWarnings("static-access") + public void open(IPath file) { + System.out.println("Launch Successful : file Location = " + file.toString()); + + String[] args = new String[] { file.toString() }; + new PluginMain().run(args); + + } + +} \ No newline at end of file