From 409d6576c57accdd0a9f4480bf55d3c93843dc8c Mon Sep 17 00:00:00 2001 From: Ksenia Date: Fri, 12 Feb 2010 10:31:18 +0200 Subject: [PATCH] Research: eclipse plugin for opening cayenne modeler --- .../cayenne-modeler-eclipse-plugin/.classpath | 8 + modeler/cayenne-modeler-eclipse-plugin/.project | 34 +++ .../.settings/org.eclipse.jdt.core.prefs | 12 + .../.settings/org.maven.ide.eclipse.prefs | 9 + .../META-INF/MANIFEST.MF | 218 +++++++++++++++++ .../build.properties | 8 + .../icons/cayenne.png | Bin 0 -> 863 bytes .../cayenne-modeler-eclipse-plugin/plugin.xml | 10 + modeler/cayenne-modeler-eclipse-plugin/pom.xml | 256 ++++++++++++++++++++ .../main/java/org/apache/cayenne/Activator.java | 44 ++++ .../extentions/modeler/PluginActionManager.java | 25 ++ .../extentions/modeler/PluginApplication.java | 25 ++ .../cayenne/extentions/modeler/PluginMain.java | 29 +++ .../modeler/PluginModelerController.java | 44 ++++ .../extentions/modeler/PluginModelerFrame.java | 72 ++++++ .../modeler/action/PluginExitAction.java | 16 ++ .../modeler/action/PluginProjectAction.java | 20 ++ .../apache/cayenne/launcher/EditorLauncher.java | 19 ++ .../org/apache/cayenne/modeler/action/ActionManager.java | 12 +- .../org/apache/cayenne/modeler/Application.java | 12 +- .../cayenne/modeler/CayenneModelerController.java | 6 +- .../cayenne/modeler/CayenneModelerFrame.java | 58 +++-- .../main/java/org/apache/cayenne/modeler/Main.java | 6 +- .../apache/cayenne/modeler/action/ExitAction.java | 8 +- .../cayenne/modeler/action/GenerateCodeAction.java | 10 + .../cayenne/modeler/util/CayenneController.java | 4 +- 26 files changed, 934 insertions(+), 31 deletions(-) create mode 100644 modeler/cayenne-modeler-eclipse-plugin/.classpath create mode 100644 modeler/cayenne-modeler-eclipse-plugin/.project create mode 100644 modeler/cayenne-modeler-eclipse-plugin/.settings/org.eclipse.jdt.core.prefs create mode 100644 modeler/cayenne-modeler-eclipse-plugin/.settings/org.maven.ide.eclipse.prefs create mode 100644 modeler/cayenne-modeler-eclipse-plugin/META-INF/MANIFEST.MF create mode 100644 modeler/cayenne-modeler-eclipse-plugin/build.properties create mode 100644 modeler/cayenne-modeler-eclipse-plugin/icons/cayenne.png create mode 100644 modeler/cayenne-modeler-eclipse-plugin/plugin.xml create mode 100644 modeler/cayenne-modeler-eclipse-plugin/pom.xml create mode 100644 modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/Activator.java create mode 100644 modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginActionManager.java create mode 100644 modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginApplication.java create mode 100644 modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginMain.java create mode 100644 modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerController.java create mode 100644 modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerFrame.java create mode 100644 modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginExitAction.java create mode 100644 modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginProjectAction.java create mode 100644 modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/launcher/EditorLauncher.java diff --git a/modeler/cayenne-modeler-eclipse-plugin/.classpath b/modeler/cayenne-modeler-eclipse-plugin/.classpath new file mode 100644 index 0000000..dda9efa --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/modeler/cayenne-modeler-eclipse-plugin/.project b/modeler/cayenne-modeler-eclipse-plugin/.project new file mode 100644 index 0000000..1b39063 --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/.project @@ -0,0 +1,34 @@ + + + cayenne-modeler-eclipse-plugin + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.maven.ide.eclipse.maven2Builder + + + + + + org.maven.ide.eclipse.maven2Nature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/modeler/cayenne-modeler-eclipse-plugin/.settings/org.eclipse.jdt.core.prefs b/modeler/cayenne-modeler-eclipse-plugin/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..1364de0 --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Mon Feb 08 18:07:21 EET 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/modeler/cayenne-modeler-eclipse-plugin/.settings/org.maven.ide.eclipse.prefs b/modeler/cayenne-modeler-eclipse-plugin/.settings/org.maven.ide.eclipse.prefs new file mode 100644 index 0000000..05f3f3e --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/.settings/org.maven.ide.eclipse.prefs @@ -0,0 +1,9 @@ +#Mon Feb 08 17:18:02 EET 2010 +activeProfiles= +eclipse.preferences.version=1 +fullBuildGoals=process-test-resources +includeModules=false +resolveWorkspaceProjects=true +resourceFilterGoals=process-resources resources\:testResources +skipCompilerPlugin=true +version=1 diff --git a/modeler/cayenne-modeler-eclipse-plugin/META-INF/MANIFEST.MF b/modeler/cayenne-modeler-eclipse-plugin/META-INF/MANIFEST.MF new file mode 100644 index 0000000..75c736c --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/META-INF/MANIFEST.MF @@ -0,0 +1,218 @@ +Manifest-Version: 1.0 +Built-By: ksenia +Bundle-Activator: org.apache.cayenne.Activator +Created-By: Apache Maven Bundle Plugin +Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt +Import-Package: .,javax.accessibility,javax.crypto,javax.crypto.spec,j + avax.imageio,javax.management,javax.naming,javax.naming.directory,jav + ax.naming.spi,javax.net,javax.net.ssl,javax.security.cert,javax.servl + et,javax.servlet.http,javax.servlet.jsp,javax.servlet.jsp.tagext,java + x.sql,javax.swing,javax.swing.border,javax.swing.event,javax.swing.fi + lechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.swing.plaf.me + tal,javax.swing.table,javax.swing.text,javax.swing.text.rtf,javax.swi + ng.tree,javax.swing.undo,javax.xml.parsers,javax.xml.transform,javax. + xml.transform.dom,javax.xml.transform.sax,javax.xml.transform.stream, + junit.framework,junit.swingui,junit.textui,org.apache.log4j,org.apach + e.log4j.net,org.apache.tools.ant,org.apache.tools.ant.filters,org.apa + che.tools.ant.taskdefs,org.apache.tools.ant.types,org.apache.tools.an + t.types.selectors,org.apache.tools.ant.util,org.eclipse.core.expressi + ons,org.eclipse.core.filesystem,org.eclipse.core.filesystem.provider, + org.eclipse.core.internal.preferences,org.eclipse.core.internal.runti + me;common=split,org.eclipse.core.resources,org.eclipse.core.runtime;r + egistry=split,org.eclipse.core.runtime.content,org.eclipse.core.runti + me.jobs,org.eclipse.core.runtime.preferences,org.eclipse.debug.core,o + rg.eclipse.jdt.core,org.eclipse.jdt.launching,org.eclipse.jface.prefe + rence,org.eclipse.jface.resource,org.eclipse.osgi.service.resolver;ve + rsion="1.1",org.eclipse.osgi.util;version="1.1",org.eclipse.ui,org.ec + lipse.ui.ide,org.eclipse.ui.internal.util,org.eclipse.ui.plugin,org.e + clipse.update.configurator,org.osgi.framework;version="1.4",org.osgi. + service.prefs;version="1.1",org.w3c.dom,org.xml.sax,org.xml.sax.helpe + rs +Embed-StripGroup: true +Bnd-LastModified: 1265965345772 +Bundle-Version: 3.1.0.SNAPSHOT +Ignore-Package: org.apache.avalon.framework.logger,org.apache.bcel.gen + eric,EDU.oswego.cs.dl.util.concurrent,org.jdom,com.sun.java.swing.pla + f.windows,org.apache.bcel.classfile,com.werken.xpath,org.jdom.input,b + sh,org.jivesoftware.smackx.debugger,org.jdom.output,javax.jms,sun.sec + urity.action +Bundle-Name: Cayenne Modeler Plugin for Eclipse +Bundle-Description: Apache Cayenne is a powerful, full-featured, and o + pen source Java framework, plus developer tools, that provides Objec + t Relational Mapping (ORM) and remoting services for persistence. T + he software is licensed under the Apache License. +Bundle-ClassPath: .,target/dependency/jdt-3.3.0-v20070607-1300.jar,tar + get/dependency/jgroups-all-2.2.7.jar,target/dependency/inflector-0.7. + 0.jar,target/dependency/cayenne-modeler-3.1-SNAPSHOT.jar,target/depen + dency/compatibility-3.1.200-v20070502.jar,target/dependency/smack-2.2 + .1.jar,target/dependency/hsqldb-1.8.0.4.jar,target/dependency/jedit-s + yntax-2.2.2.jar,target/dependency/looks-1.3.1.jar,target/dependency/c + ayenne-jdk1.5-unpublished-3.1-SNAPSHOT.jar,target/dependency/commons- + collections-3.1.jar,target/dependency/cayenne-wocompat-unpublished-3. + 1-SNAPSHOT.jar,target/dependency/cayenne-project-unpublished-3.1-SNAP + SHOT.jar,target/dependency/cayenne-tools-3.1-SNAPSHOT.jar,target/depe + ndency/ashwood-2.0.jar,target/dependency/commons-dbcp-1.2.1.jar,targe + t/dependency/cayenne-di-unpublished-3.1-SNAPSHOT.jar,target/dependenc + y/vpp-2.2.1.jar,target/dependency/commons-logging-1.1.jar,target/depe + ndency/resources-3.3.0-v20070604.jar,target/dependency/oscache-2.3.2. + jar,target/dependency/ui-3.3.0-I20070614-0800.jar,target/dependency/o + gnl-2.6.7.jar,target/dependency/scopemvc-1.0.1.jar,target/dependency/ + jgraph-5.13.0.0.jar,target/dependency/forms-1.0.5.jar,target/dependen + cy/commons-pool-1.2.jar,target/dependency/smackx-2.2.1.jar,target/dep + endency/resin-hessian-3.1.6.jar +Build-Jdk: 1.5.0_18 +Private-Package: ant_tasks,bin,cheatsheets,com.caucho.burlap.client,co + m.caucho.burlap.io,com.caucho.burlap.server,com.caucho.hessian,com.ca + ucho.hessian.client,com.caucho.hessian.io,com.caucho.hessian.jmx,com. + caucho.hessian.micro,com.caucho.hessian.mux,com.caucho.hessian.securi + ty,com.caucho.hessian.server,com.caucho.hessian.test,com.caucho.hessi + an.util,com.caucho.services.client,com.caucho.services.message,com.ca + ucho.services.name,com.caucho.services.server,com.jcraft.jzlib,com.jg + oodies.forms.builder,com.jgoodies.forms.debug,com.jgoodies.forms.fact + ories,com.jgoodies.forms.layout,com.jgoodies.forms.util,com.jgoodies. + looks,com.jgoodies.looks.common,com.jgoodies.looks.plastic,com.jgoodi + es.looks.plastic.icons,com.jgoodies.looks.plastic.theme,com.jgoodies. + looks.windows,com.jgoodies.looks.windows.icons,com.jgoodies.looks.win + dows.icons.xp,com.jgraph.algebra,com.jgraph.algebra.cost,com.jgraph.c + omponents.labels,com.jgraph.io.svg,com.jgraph.layout,com.jgraph.layou + t.graph,com.jgraph.layout.hierarchical,com.jgraph.layout.hierarchical + .model,com.jgraph.layout.organic,com.jgraph.layout.routing,com.jgraph + .layout.simple,com.jgraph.layout.tree,com.jgraph.navigation,com.jgrap + h.util,com.opensymphony.oscache.base,com.opensymphony.oscache.base.al + gorithm,com.opensymphony.oscache.base.events,com.opensymphony.oscache + .base.persistence,com.opensymphony.oscache.extra,com.opensymphony.osc + ache.general,com.opensymphony.oscache.plugins.clustersupport,com.open + symphony.oscache.plugins.diskpersistence,com.opensymphony.oscache.uti + l,com.opensymphony.oscache.web,com.opensymphony.oscache.web.filter,co + m.opensymphony.oscache.web.tag,foundrylogic.vpp,foundrylogic.vpp.log, + icons,icons.full.dlcl16,icons.full.dtool16,icons.full.elcl16,icons.fu + ll.etool16,icons.full.eview16,icons.full.obj16,icons.full.ovr16,icons + .full.pointer,icons.full.progress,icons.full.wizban,images.topiclabel + ,intro,intro.css,ognl,org.apache.cayenne,org.apache.cayenne.access,or + g.apache.cayenne.access.dbsync,org.apache.cayenne.access.event,org.ap + ache.cayenne.access.jdbc,org.apache.cayenne.access.select,org.apache. + cayenne.access.trans,org.apache.cayenne.access.types,org.apache.cayen + ne.access.util,org.apache.cayenne.cache,org.apache.cayenne.conf,org.a + pache.cayenne.configuration,org.apache.cayenne.configuration.event,or + g.apache.cayenne.conn,org.apache.cayenne.dba,org.apache.cayenne.dba.d + b2,org.apache.cayenne.dba.derby,org.apache.cayenne.dba.frontbase,org. + apache.cayenne.dba.h2,org.apache.cayenne.dba.hsqldb,org.apache.cayenn + e.dba.ingres,org.apache.cayenne.dba.mysql,org.apache.cayenne.dba.open + base,org.apache.cayenne.dba.oracle,org.apache.cayenne.dba.postgres,or + g.apache.cayenne.dba.sqlite,org.apache.cayenne.dba.sqlserver,org.apac + he.cayenne.dba.sybase,org.apache.cayenne.di,org.apache.cayenne.di.spi + ,org.apache.cayenne.ejbql,org.apache.cayenne.ejbql.parser,org.apache. + cayenne.event,org.apache.cayenne.exp,org.apache.cayenne.exp.parser,or + g.apache.cayenne.extentions.modeler,org.apache.cayenne.extentions.mod + eler.action,org.apache.cayenne.gen,org.apache.cayenne.graph,org.apach + e.cayenne.launcher,org.apache.cayenne.map,org.apache.cayenne.map.even + t,org.apache.cayenne.map.naming,org.apache.cayenne.merge,org.apache.c + ayenne.modeler,org.apache.cayenne.modeler.action,org.apache.cayenne.m + odeler.dialog,org.apache.cayenne.modeler.dialog.autorelationship,org. + apache.cayenne.modeler.dialog.codegen,org.apache.cayenne.modeler.dial + og.datadomain,org.apache.cayenne.modeler.dialog.datamap,org.apache.ca + yenne.modeler.dialog.db,org.apache.cayenne.modeler.dialog.objentity,o + rg.apache.cayenne.modeler.dialog.pref,org.apache.cayenne.modeler.dial + og.query,org.apache.cayenne.modeler.dialog.validator,org.apache.cayen + ne.modeler.editor,org.apache.cayenne.modeler.editor.datanode,org.apac + he.cayenne.modeler.editor.dbentity,org.apache.cayenne.modeler.event,o + rg.apache.cayenne.modeler.graph,org.apache.cayenne.modeler.graph.acti + on,org.apache.cayenne.modeler.images,org.apache.cayenne.modeler.pref, + org.apache.cayenne.modeler.undo,org.apache.cayenne.modeler.util,org.a + pache.cayenne.modeler.util.combo,org.apache.cayenne.pref,org.apache.c + ayenne.project,org.apache.cayenne.project.validator,org.apache.cayenn + e.project2,org.apache.cayenne.project2.upgrade,org.apache.cayenne.pro + ject2.upgrade.v6,org.apache.cayenne.project2.validate,org.apache.caye + nne.query,org.apache.cayenne.reflect,org.apache.cayenne.reflect.gener + ic,org.apache.cayenne.reflect.valueholder,org.apache.cayenne.remote,o + rg.apache.cayenne.remote.hessian,org.apache.cayenne.remote.hessian.se + rvice,org.apache.cayenne.remote.service,org.apache.cayenne.resource,o + rg.apache.cayenne.runtime,org.apache.cayenne.schema.3.0,org.apache.ca + yenne.swing,org.apache.cayenne.swing.components.textpane,org.apache.c + ayenne.swing.components.textpane.style,org.apache.cayenne.swing.compo + nents.textpane.syntax,org.apache.cayenne.swing.control,org.apache.cay + enne.tools,org.apache.cayenne.util,org.apache.cayenne.validation,org. + apache.cayenne.wocompat,org.apache.cayenne.wocompat.parser,org.apache + .cayenne.xml,org.apache.commons.collections,org.apache.commons.collec + tions.bag,org.apache.commons.collections.bidimap,org.apache.commons.c + ollections.buffer,org.apache.commons.collections.collection,org.apach + e.commons.collections.comparators,org.apache.commons.collections.func + tors,org.apache.commons.collections.iterators,org.apache.commons.coll + ections.keyvalue,org.apache.commons.collections.list,org.apache.commo + ns.collections.map,org.apache.commons.collections.set,org.apache.comm + ons.dbcp,org.apache.commons.dbcp.cpdsadapter,org.apache.commons.dbcp. + datasources,org.apache.commons.jocl,org.apache.commons.logging,org.ap + ache.commons.logging.impl,org.apache.commons.pool,org.apache.commons. + pool.impl,org.apache.log,org.apache.log.filter,org.apache.log.format, + org.apache.log.output,org.apache.log.output.db,org.apache.log.output. + io,org.apache.log.output.io.rotate,org.apache.log.output.jms,org.apac + he.log.output.net,org.apache.log.util,org.apache.oro.io,org.apache.or + o.text,org.apache.oro.text.awk,org.apache.oro.text.perl,org.apache.or + o.text.regex,org.apache.oro.util,org.apache.velocity,org.apache.veloc + ity.anakia,org.apache.velocity.app,org.apache.velocity.app.event,org. + apache.velocity.app.tools,org.apache.velocity.context,org.apache.velo + city.convert,org.apache.velocity.exception,org.apache.velocity.io,org + .apache.velocity.runtime,org.apache.velocity.runtime.compiler,org.apa + che.velocity.runtime.configuration,org.apache.velocity.runtime.defaul + ts,org.apache.velocity.runtime.directive,org.apache.velocity.runtime. + exception,org.apache.velocity.runtime.log,org.apache.velocity.runtime + .parser,org.apache.velocity.runtime.parser.node,org.apache.velocity.r + untime.resource,org.apache.velocity.runtime.resource.loader,org.apach + e.velocity.runtime.visitor,org.apache.velocity.servlet,org.apache.vel + ocity.test,org.apache.velocity.test.misc,org.apache.velocity.test.pro + vider,org.apache.velocity.test.view,org.apache.velocity.texen,org.apa + che.velocity.texen.ant,org.apache.velocity.texen.defaults,org.apache. + velocity.texen.util,org.apache.velocity.util,org.apache.velocity.util + .introspection,org.eclipse.core.boot,org.eclipse.core.internal.boot,o + rg.eclipse.core.internal.compatibility,org.eclipse.core.internal.dtre + e,org.eclipse.core.internal.events,org.eclipse.core.internal.localsto + re,org.eclipse.core.internal.model,org.eclipse.core.internal.plugins, + org.eclipse.core.internal.properties,org.eclipse.core.internal.proper + tytester,org.eclipse.core.internal.refresh,org.eclipse.core.internal. + resources,org.eclipse.core.internal.resources.mapping,org.eclipse.cor + e.internal.utils,org.eclipse.core.internal.watson,org.eclipse.core.re + sources,org.eclipse.core.resources.mapping,org.eclipse.core.resources + .refresh,org.eclipse.core.resources.team,org.eclipse.core.runtime.mod + el,org.eclipse.ui.internal,org.hsqldb,org.hsqldb.index,org.hsqldb.jdb + c,org.hsqldb.lib,org.hsqldb.lib.java,org.hsqldb.persist,org.hsqldb.re + sources,org.hsqldb.rowio,org.hsqldb.scriptio,org.hsqldb.store,org.hsq + ldb.types,org.hsqldb.util,org.jgraph,org.jgraph.event,org.jgraph.grap + h,org.jgraph.plaf,org.jgraph.plaf.basic,org.jgraph.util,org.jgroups,o + rg.jgroups.blocks,org.jgroups.conf,org.jgroups.debug,org.jgroups.demo + s,org.jgroups.demos.applets,org.jgroups.demos.wb,org.jgroups.ensemble + ,org.jgroups.persistence,org.jgroups.protocols,org.jgroups.protocols. + pbcast,org.jgroups.protocols.ring,org.jgroups.service,org.jgroups.ser + vice.lease,org.jgroups.stack,org.jgroups.tests,org.jgroups.tests.adap + t,org.jgroups.tests.adaptjms,org.jgroups.tests.adapttcp,org.jgroups.t + ests.adaptudp,org.jgroups.tests.perf,org.jgroups.tests.perf.transport + s,org.jgroups.tests.stack,org.jgroups.util,org.jivesoftware.smack,org + .jivesoftware.smack.debugger,org.jivesoftware.smack.filter,org.jiveso + ftware.smack.packet,org.jivesoftware.smack.provider,org.jivesoftware. + smack.sasl,org.jivesoftware.smack.util,org.jivesoftware.smackx,org.ji + vesoftware.smackx.bookmark,org.jivesoftware.smackx.filetransfer,org.j + ivesoftware.smackx.muc,org.jivesoftware.smackx.packet,org.jivesoftwar + e.smackx.provider,org.jivesoftware.smackx.search,org.jvnet.inflector, + org.jvnet.inflector.lang.en,org.jvnet.inflector.lang.it,org.jvnet.inf + lector.rule,org.objectstyle.ashwood.dbutil,org.objectstyle.ashwood.fu + nction,org.objectstyle.ashwood.graph,org.objectstyle.ashwood.graph.ac + cess,org.objectstyle.ashwood.graph.convert,org.objectstyle.ashwood.gr + aph.graphml,org.objectstyle.ashwood.graph.layout,org.objectstyle.ashw + ood.predicate,org.objectstyle.ashwood.random,org.objectstyle.ashwood. + util,org.scopemvc.controller.basic,org.scopemvc.controller.servlet,or + g.scopemvc.controller.servlet.jsp,org.scopemvc.controller.servlet.xml + ,org.scopemvc.controller.swing,org.scopemvc.core,org.scopemvc.images, + org.scopemvc.model.basic,org.scopemvc.model.beans,org.scopemvc.model. + collection,org.scopemvc.model.util,org.scopemvc.util,org.scopemvc.uti + l.convertor,org.scopemvc.view.awt,org.scopemvc.view.servlet,org.scope + mvc.view.servlet.jsp,org.scopemvc.view.servlet.xml,org.scopemvc.view. + swing,org.scopemvc.view.util,org.syntax.jedit,org.syntax.jedit.tokenm + arker,org.xmlpull.mxp1,org.xmlpull.v1,pref,target.dependency,template + s.v1_2 +Bundle-DocURL: http://cayenne.apache.org/ +Embed-Directory: target/dependency +Bundle-Vendor: Apache Cayenne +Bundle-ManifestVersion: 2 +Bundle-SymbolicName: cayenne-modeler-eclipse-plugin;singleton:=true +Tool: Bnd-0.0.238 +Embed-Dependency: *;scope=compile|runtime|provided;inline=false; + diff --git a/modeler/cayenne-modeler-eclipse-plugin/build.properties b/modeler/cayenne-modeler-eclipse-plugin/build.properties new file mode 100644 index 0000000..1670890 --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/build.properties @@ -0,0 +1,8 @@ +source.. = src/main/java/,\ + +output.. = target/classes/ +bin.includes = plugin.xml,\ + META-INF/,\ + .,\ + target/dependency/ + diff --git a/modeler/cayenne-modeler-eclipse-plugin/icons/cayenne.png b/modeler/cayenne-modeler-eclipse-plugin/icons/cayenne.png new file mode 100644 index 0000000000000000000000000000000000000000..b758ceaace0acabbd1be9307a0dbd2c9156df1df GIT binary patch literal 863 zcmV-l1EBngP)3Vob~pRKlgUo@CvLMzn>9AJ=|zRsCQxXS{93Gf+Rj=1QIgayyRJB@VadB~3)d~|oo#B_6A3cr>cfbE1P_Na! zdH2yWs7j^6!omU-0ob}{@1{>H6SCwXs|#lVRMwtl~vFVCLj;?EbDx_O<;lNTBL<`~0Ym+ASUk;3N< zsF|5*Cda?y=9Amera{f;1GAMIxeWVvhw;6lC=HnucSq%lqX#%K(P%T%0Mj3)nqdRqbXv;0nEo0h3A5-Ivl3!ttcx;BIL>e6v_`7DJYd- z?OGXE2_PqPX@NBHaeo~3bO2+01NpMpem2C4p%5(tA*?=$piL9q(S}~#1uNU3OYaaz981NMsiPu$!rgj8EhoG%XLs_^$N8mD>j>61YHz}``#ilTR4|b zkYD2`_^6-smLRP|VOH!9VGK$DIy<0Ua?1wN*$L&HFt`P}#ZkLB%H^mek{oRg5?kjd z+T+9O4-oBDJo8dn03Aiiz6Q2!MZfwQ9D73`JC*^(q8DeuXyU9d%*IlH^k9IZyg zeFygLMY|CK4N@c z+NZ@f84DecQx#oJL^v0ZFsgjKu&IY9#x_y2mzDv#yBjTbwOI99XJxRP40I}iok}sE zOmZugR22Ek%eHqhaR45gh4?wwk#otv#QN@uHm6 pokoh=*RFGV{4@T(bH}@t_W_vDb|QvvWOo1n002ovPDHLkV1gugo$vqv literal 0 HcmV?d00001 diff --git a/modeler/cayenne-modeler-eclipse-plugin/plugin.xml b/modeler/cayenne-modeler-eclipse-plugin/plugin.xml new file mode 100644 index 0000000..9688163 --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/plugin.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/modeler/cayenne-modeler-eclipse-plugin/pom.xml b/modeler/cayenne-modeler-eclipse-plugin/pom.xml new file mode 100644 index 0000000..484f4db --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/pom.xml @@ -0,0 +1,256 @@ + + + cayenne-modeler-eclipse-plugin + org.apache.cayenne + + 4.0.0 + + org.apache.cayenne + cayenne-parent + 3.1-SNAPSHOT + + + cayenne-modeler-eclipse-plugin + + Cayenne Modeler Plugin for Eclipse + bundle + + + + + icons + icons + + + + . + + plugin.xml + + + + + + org.apache.felix + maven-bundle-plugin + 1.2.1 + true + + META-INF + + target/classes + ${bundle.symbolicName};singleton:=true + + ${pom.version} + + + !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,* + + ${bundle.namespace}.Activator + + + *;scope=compile|runtime|provided;inline=false; + + target/dependency + + true + + + + + maven-dependency-plugin + + + + copy-dependencies + package + + copy-dependencies + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.5 + 1.5 + + + + + + + + + org.eclipse + ui + 3.3.0-I20070614-0800 + + + org.eclipse.core + resources + 3.3.0-v20070604 + + + org.eclipse.core.runtime + compatibility + 3.1.200-v20070502 + + + org.eclipse + jdt + 3.3.0-v20070607-1300 + + + + + + org.apache.cayenne + cayenne-modeler + ${version} + provided + + + org.apache.cayenne.unpublished + cayenne-jdk1.5-unpublished + ${version} + provided + + + org.apache.cayenne.unpublished + cayenne-project-unpublished + ${version} + provided + + + org.apache.cayenne + cayenne-tools + ${version} + + + org.apache.cayenne.unpublished + cayenne-wocompat-unpublished + ${version} + provided + + + org.apache.cayenne.unpublished + cayenne-di-unpublished + ${version} + + + + + com.caucho + resin-hessian + + + opensymphony + oscache + 2.3.2 + provided + + + jgroups + jgroups-all + + + jgoodies + looks + + + jgoodies + forms + + + jivesoftware + smack + 2.2.1 + provided + + + jivesoftware + smackx + 2.2.1 + provided + + + ognl + ognl + + + org.scopemvc + scopemvc + + + hsqldb + hsqldb + + + org.objectstyle.ashwood + ashwood + + + jgraph + jgraph + 5.13.0.0 + + + net.sf.jedit-syntax + jedit-syntax + 2.2.2 + + + commons-dbcp + commons-dbcp + compile + + + commons-pool + commons-pool + compile + + + commons-logging + commons-logging + + + commons-collections + commons-collections + + + foundrylogic.vpp + vpp + + + net.java.dev.inflector + inflector + 0.7.0 + + + diff --git a/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/Activator.java b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/Activator.java new file mode 100644 index 0000000..8702bb2 --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/Activator.java @@ -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 diff --git a/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginActionManager.java b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginActionManager.java new file mode 100644 index 0000000..2b93296 --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginActionManager.java @@ -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); + } +} diff --git a/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginApplication.java b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginApplication.java new file mode 100644 index 0000000..7dfca9c --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginApplication.java @@ -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); + } +} diff --git a/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginMain.java b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginMain.java new file mode 100644 index 0000000..75fd5ef --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginMain.java @@ -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); + } + +} diff --git a/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerController.java b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerController.java new file mode 100644 index 0000000..ed3fbbf --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerController.java @@ -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()); + } + +} diff --git a/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerFrame.java b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerFrame.java new file mode 100644 index 0000000..4b8b0f2 --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/PluginModelerFrame.java @@ -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 + } + + }; + } +} diff --git a/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginExitAction.java b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginExitAction.java new file mode 100644 index 0000000..3a43267 --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginExitAction.java @@ -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); + } +} diff --git a/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginProjectAction.java b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginProjectAction.java new file mode 100644 index 0000000..c65fbd1 --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/extentions/modeler/action/PluginProjectAction.java @@ -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(); + } + +} diff --git a/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/launcher/EditorLauncher.java b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/launcher/EditorLauncher.java new file mode 100644 index 0000000..bc7fb1d --- /dev/null +++ b/modeler/cayenne-modeler-eclipse-plugin/src/main/java/org/apache/cayenne/launcher/EditorLauncher.java @@ -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); + + } + +} diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ActionManager.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ActionManager.java index 11a9b3f..8846ad9 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ActionManager.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ActionManager.java @@ -187,7 +187,7 @@ public class ActionManager { public ActionManager(Application application) { this.actionMap = new HashMap(40); - registerAction(new ProjectAction(application)); + registerAction(createProjectAction(application)); registerAction(new NewProjectAction(application)).setAlwaysOn(true); registerAction(new OpenProjectAction(application)).setAlwaysOn(true); registerAction(new ImportDataMapAction(application)); @@ -232,7 +232,7 @@ public class ActionManager { registerAction(new AboutAction(application)).setAlwaysOn(true); registerAction(new DocumentationAction(application)).setAlwaysOn(true); registerAction(new ConfigurePreferencesAction(application)).setAlwaysOn(true); - registerAction(new ExitAction(application)).setAlwaysOn(true); + registerAction(createExitAction(application)).setAlwaysOn(true); registerAction(new NavigateBackwardAction(application)).setAlwaysOn(true); registerAction(new NavigateForwardAction(application)).setAlwaysOn(true); // search action registered @@ -411,4 +411,12 @@ public class ActionManager { map.put(TransferHandler.getPasteAction().getValue(Action.NAME), getAction(PasteAction.getActionName())); } + + protected ExitAction createExitAction(Application application) { + return new ExitAction(application); + } + + protected ProjectAction createProjectAction(Application application) { + return new ProjectAction(application); + } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java index eff6c0a..1612221 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java @@ -214,11 +214,11 @@ public class Application { // init actions before the frame, as it will attempt to build menus out of // actions. - this.actionManager = new ActionManager(this); + this.actionManager = initActionManager(); this.undoManager = new org.apache.cayenne.modeler.undo.CayenneUndoManager(this); // ...create main frame - this.frameController = new CayenneModelerController(this, initialProject); + this.frameController = initFrameController(); // update Scope to work nicely with main frame ViewContext.setGlobalContext(new ModelerContext(frameController.getFrame())); @@ -423,4 +423,12 @@ public class Application { public void setQuittingApplication(boolean isQuittingApplication) { this.isQuittingApplication = isQuittingApplication; } + + protected CayenneModelerController initFrameController() { + return new CayenneModelerController(this, initialProject); + } + + protected ActionManager initActionManager() { + return new ActionManager(this); + } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java index 8e3587d..97e5f68 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java @@ -63,7 +63,7 @@ public class CayenneModelerController extends CayenneController { super(application); this.initialProject = initialProject; - this.frame = new CayenneModelerFrame(application.getActionManager()); + this.frame = initModelerFrame(application); this.projectController = new ProjectController(this); } @@ -343,4 +343,8 @@ public class CayenneModelerController extends CayenneController { getLastDirectory().setDirectory(new File(newPath)); frame.fireRecentFileListChanged(); } + + protected CayenneModelerFrame initModelerFrame(Application application) { + return new CayenneModelerFrame(application.getActionManager()); + } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java index 3ea2613..e006329 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java @@ -186,15 +186,7 @@ public class CayenneModelerFrame extends JFrame implements DataNodeDisplayListen helpMenu.setMnemonic(KeyEvent.VK_H); } - fileMenu.add(getAction(NewProjectAction.getActionName()).buildMenu()); - fileMenu.add(getAction(OpenProjectAction.getActionName()).buildMenu()); - fileMenu.add(getAction(ProjectAction.getActionName()).buildMenu()); - fileMenu.add(getAction(ImportDataMapAction.getActionName()).buildMenu()); - fileMenu.addSeparator(); - fileMenu.add(getAction(SaveAction.getActionName()).buildMenu()); - fileMenu.add(getAction(SaveAsAction.getActionName()).buildMenu()); - fileMenu.add(getAction(RevertAction.getActionName()).buildMenu()); - fileMenu.addSeparator(); + buildFileMenu(fileMenu); editMenu.add(getAction(UndoAction.getActionName()).buildMenu()); editMenu.add(getAction(RedoAction.getActionName()).buildMenu()); @@ -202,16 +194,6 @@ public class CayenneModelerFrame extends JFrame implements DataNodeDisplayListen editMenu.add(getAction(CopyAction.getActionName()).buildMenu()); editMenu.add(getAction(PasteAction.getActionName()).buildMenu()); - recentFileMenu = new RecentFileMenu("Recent Projects"); - addRecentFileListListener(recentFileMenu); - fileMenu.add(recentFileMenu); - - // Mac OS X doesn't use File->Exit, it uses CayenneModeler->Quit (command-Q) - if (OperatingSystem.getOS() != OperatingSystem.MAC_OS_X) { - fileMenu.addSeparator(); - fileMenu.add(getAction(ExitAction.getActionName()).buildMenu()); - } - projectMenu.add(getAction(ValidateAction.getActionName()).buildMenu()); projectMenu.addSeparator(); projectMenu.add(getAction(CreateNodeAction.getActionName()).buildMenu()); @@ -279,6 +261,28 @@ public class CayenneModelerFrame extends JFrame implements DataNodeDisplayListen setJMenuBar(menuBar); } + protected void buildFileMenu(JMenu fileMenu) { + fileMenu.add(getAction(NewProjectAction.getActionName()).buildMenu()); + fileMenu.add(getAction(OpenProjectAction.getActionName()).buildMenu()); + fileMenu.add(getAction(ProjectAction.getActionName()).buildMenu()); + fileMenu.add(getAction(ImportDataMapAction.getActionName()).buildMenu()); + fileMenu.addSeparator(); + fileMenu.add(getAction(SaveAction.getActionName()).buildMenu()); + fileMenu.add(getAction(SaveAsAction.getActionName()).buildMenu()); + fileMenu.add(getAction(RevertAction.getActionName()).buildMenu()); + fileMenu.addSeparator(); + + recentFileMenu = initRecentFileMenu("Recent Projects"); + addRecentFileListListener(recentFileMenu); + fileMenu.add(recentFileMenu); + + // Mac OS X doesn't use File->Exit, it uses CayenneModeler->Quit (command-Q) + if (OperatingSystem.getOS() != OperatingSystem.MAC_OS_X) { + fileMenu.addSeparator(); + fileMenu.add(getAction(ExitAction.getActionName()).buildMenu()); + } + } + /** * Selects/deselects menu item, depending on status of log console */ @@ -360,9 +364,7 @@ public class CayenneModelerFrame extends JFrame implements DataNodeDisplayListen protected void initToolbar() { JToolBar toolBar = new JToolBar(); - toolBar.add(getAction(NewProjectAction.getActionName()).buildButton()); - toolBar.add(getAction(OpenProjectAction.getActionName()).buildButton()); - toolBar.add(getAction(SaveAction.getActionName()).buildButton()); + buildProjectToolbar(toolBar); toolBar.addSeparator(); toolBar.add(getAction(RemoveAction.getActionName()).buildButton()); @@ -449,6 +451,12 @@ public class CayenneModelerFrame extends JFrame implements DataNodeDisplayListen getContentPane().add(toolBar, BorderLayout.NORTH); } + protected void buildProjectToolbar(JToolBar toolBar) { + toolBar.add(getAction(NewProjectAction.getActionName()).buildButton()); + toolBar.add(getAction(OpenProjectAction.getActionName()).buildButton()); + toolBar.add(getAction(SaveAction.getActionName()).buildButton()); + } + public void currentDataNodeChanged(DataNodeDisplayEvent e) { actionManager.dataNodeSelected(); } @@ -537,4 +545,10 @@ public class CayenneModelerFrame extends JFrame implements DataNodeDisplayListen recentFileListener.recentFileListChanged(); } } + + protected RecentFileMenu initRecentFileMenu(String title) { + return new RecentFileMenu(title); + } + + } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Main.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Main.java index 1ee8abb..145d5f6 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Main.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Main.java @@ -106,7 +106,7 @@ public class Main { // set up UI configureLookAndFeel(); - Application.instance = new Application(projectFile); + Application.instance = initApplication(projectFile); // start frame and load project from EventDispatchThread... Runnable runnable = new Runnable() { @@ -301,4 +301,8 @@ public class Main { return CayenneUserDir.getInstance().resolveFile("modeler.log"); } + + protected Application initApplication(File projectFile) { + return new Application(projectFile); + } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java index c85bcb0..eb7c6c4 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java @@ -55,8 +55,7 @@ public class ExitAction extends ProjectAction { CayennePreferenceForProject.removeNewPreferences(); - // goodbye - System.exit(0); + applicationShutdown(); } /** @@ -65,4 +64,9 @@ public class ExitAction extends ProjectAction { public boolean enableForPath(ProjectPath path) { return true; } + + protected void applicationShutdown() { + // goodbye + System.exit(0); + } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/GenerateCodeAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/GenerateCodeAction.java index 3fd53d8..e793450 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/GenerateCodeAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/GenerateCodeAction.java @@ -21,6 +21,7 @@ package org.apache.cayenne.modeler.action; import java.awt.event.ActionEvent; +import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.map.DataMap; import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.dialog.codegen.CodeGeneratorController; @@ -59,4 +60,13 @@ public class GenerateCodeAction extends CayenneAction { return path.firstInstanceOf(DataMap.class) != null; } + + public void performGenerationOnAllDataMaps() { + for(DataMap dataMap:((DataChannelDescriptor)getProjectController().getProject().getRootNode()).getDataMaps()){ + if (dataMap != null) { + new CodeGeneratorController(getApplication().getFrameController(), dataMap) + .startup(); + } + } + } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java index 184f4a7..d79f951 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java @@ -56,7 +56,9 @@ public abstract class CayenneController implements BoundComponent { protected PropertyChangeSupport propertyChangeSupport; public CayenneController(CayenneController parent) { - this.application = (parent != null) ? parent.getApplication() : null; + if(parent!=null){ + this.application = parent.getApplication(); + } this.parent = parent; } -- 1.6.0.6