Serious bug-fixing, yo.
This commit is contained in:
parent
4d77789e78
commit
63d47d8d9c
@ -1,62 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src/main"/>
|
||||
<classpathentry kind="src" path="griffon-app/conf"/>
|
||||
<classpathentry kind="src" path="griffon-app/models"/>
|
||||
<classpathentry kind="src" path="griffon-app/views"/>
|
||||
<classpathentry kind="src" path="griffon-app/controllers"/>
|
||||
<classpathentry kind="src" path="griffon-app/resources"/>
|
||||
<classpathentry kind="src" path="test/integration"/>
|
||||
<classpathentry kind="src" path="test/unit"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/ant/lib/ant.jar"/>
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/swingx-0.9.3.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/swing-worker.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/commons-lang-2.4.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/ant-launcher-1.7.1.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/gant_groovy1.6-1.6.0.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/asm-2.2.3.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/commons-cli-1.0.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/groovy-all-1.6.4.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/swingxbuilder-0.1.6-SNAPSHOT.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/jline-0.9.94.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/svnkit-1.2.0.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/log4j-1.2.15.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/ant-nodeps-1.7.1.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/ant-1.7.1.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/ant-trax-1.7.1.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/commons-logging-1.1.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/ant-junit-1.7.1.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/MultipleGradientPaint.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/spring-2.5.6.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/lib/junit-3.8.2.jar" />
|
||||
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/dist/griffon-rt-0.2.1.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/dist/griffon-resources-0.2.1.jar" />
|
||||
|
||||
<classpathentry kind="var" path="GRIFFON_HOME/dist/griffon-cli-0.2.1.jar" />
|
||||
|
||||
|
||||
<classpathentry kind="output" path="staging/classes"/>
|
||||
</classpath>
|
@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>pit-swing</name>
|
||||
<comment/>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.groovy.core.groovyNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
Binary file not shown.
@ -1,5 +1,6 @@
|
||||
#utf-8
|
||||
#Thu May 27 05:01:16 CDT 2010
|
||||
app.griffon.version=0.3
|
||||
#Griffon Metadata file
|
||||
#Thu Aug 05 10:29:59 CDT 2010
|
||||
app.archetype=default
|
||||
app.griffon.version=0.9
|
||||
app.name=pit-swing
|
||||
app.version=2.5.0
|
||||
app.version=0.1
|
||||
|
@ -1,97 +0,0 @@
|
||||
<project name="pit-swing" default="test">
|
||||
|
||||
<!-- =================================
|
||||
target: clean
|
||||
================================= -->
|
||||
<target name="clean" description="--> Cleans a Griffon application">
|
||||
<griffon>
|
||||
<arg value="clean"/>
|
||||
</griffon>
|
||||
</target>
|
||||
|
||||
<!-- =================================
|
||||
target: package
|
||||
================================= -->
|
||||
<target name="package" description="--> Packages up Griffon artifacts">
|
||||
<griffon>
|
||||
<arg value="package"/>
|
||||
</griffon>
|
||||
</target>
|
||||
|
||||
<!-- =================================
|
||||
target: run-app
|
||||
================================= -->
|
||||
<target name="run-app" description="--> Run a Griffon application in standalone mode">
|
||||
<griffon>
|
||||
<arg value="run-app"/>
|
||||
</griffon>
|
||||
</target>
|
||||
|
||||
<!-- =================================
|
||||
target: debug-app
|
||||
================================= -->
|
||||
<target name="debug-app" description="--> Run a Griffon application in standalone mode with debugging turned on">
|
||||
<griffon>
|
||||
<arg value="run-app"/>
|
||||
<arg value="-debug"/>
|
||||
</griffon>
|
||||
</target>
|
||||
|
||||
<!-- =================================
|
||||
target: run-webstart
|
||||
================================= -->
|
||||
<target name="run-webstart" description="--> Run a Griffon application in webstart mode">
|
||||
<griffon>
|
||||
<arg value="run-webstart"/>
|
||||
</griffon>
|
||||
</target>
|
||||
|
||||
<!-- =================================
|
||||
target: run-applet
|
||||
================================= -->
|
||||
<target name="run-applet" description="--> Run a Griffon application in applet mode">
|
||||
<griffon>
|
||||
<arg value="run-applet"/>
|
||||
</griffon>
|
||||
</target>
|
||||
|
||||
<!-- =================================
|
||||
target: test
|
||||
================================= -->
|
||||
<target name="test" description="--> Run a Griffon applications unit tests">
|
||||
<griffon>
|
||||
<arg value="test-app"/>
|
||||
</griffon>
|
||||
</target>
|
||||
|
||||
<!-- =================================
|
||||
target: dist
|
||||
================================= -->
|
||||
<target name="dist" description="--> Packages up Griffon artifacts in the Production Environment">
|
||||
<griffon>
|
||||
<arg value="prod"/>
|
||||
<arg value="package"/>
|
||||
</griffon>
|
||||
</target>
|
||||
|
||||
<!-- set up the griffon macro -->
|
||||
<property environment="env"/>
|
||||
<property name="griffon.home" value="${env.GRIFFON_HOME}"/>
|
||||
<property name="jdk.home" value="${env.JAVA_HOME}"/>
|
||||
<condition property="griffon" value="griffon.bat">
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<property name="griffon" value="griffon" />
|
||||
<macrodef name="griffon">
|
||||
<element name="griffon-args" implicit="yes"/>
|
||||
<sequential>
|
||||
<exec executable="${griffon.home}/bin/${griffon}" failonerror="true">
|
||||
<env key="JAVA_HOME" value="${jdk.home}"/>
|
||||
<env key="GRIFFON_HOME" value="${griffon.home}"/>
|
||||
<griffon-args/>
|
||||
</exec>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
<!-- end set up the griffon macro -->
|
||||
|
||||
</project>
|
@ -1,22 +1,33 @@
|
||||
application {
|
||||
title="PitSwing"
|
||||
startupGroups=["PIT"]
|
||||
autoShutdown=true
|
||||
title = 'PitSwing'
|
||||
startupGroups = ['PIT']
|
||||
|
||||
// Should Griffon exit when no Griffon created frames are showing?
|
||||
autoShutdown = true
|
||||
|
||||
// If you want some non-standard application class, apply it here
|
||||
//frameClass = 'javax.swing.JFrame'
|
||||
}
|
||||
mvcGroups {
|
||||
NewIssueDialog {
|
||||
model="com.jdbernard.pit.swing.NewIssueDialogModel"
|
||||
controller="com.jdbernard.pit.swing.NewIssueDialogController"
|
||||
view="com.jdbernard.pit.swing.NewIssueDialogView"
|
||||
}
|
||||
ProjectPanel {
|
||||
model="com.jdbernard.pit.swing.ProjectPanelModel"
|
||||
view="com.jdbernard.pit.swing.ProjectPanelView"
|
||||
controller="com.jdbernard.pit.swing.ProjectPanelController"
|
||||
}
|
||||
PIT {
|
||||
model="com.jdbernard.pit.swing.PITModel"
|
||||
view="com.jdbernard.pit.swing.PITView"
|
||||
controller="com.jdbernard.pit.swing.PITController"
|
||||
}
|
||||
// MVC Group for "ProjectPanel"
|
||||
'ProjectPanel' {
|
||||
model = 'com.jdbernard.pit.swing.ProjectPanelModel'
|
||||
view = 'com.jdbernard.pit.swing.ProjectPanelView'
|
||||
controller = 'com.jdbernard.pit.swing.ProjectPanelController'
|
||||
}
|
||||
|
||||
// MVC Group for "NewIssueDialog"
|
||||
'NewIssueDialog' {
|
||||
model = 'com.jdbernard.pit.swing.NewIssueDialogModel'
|
||||
view = 'com.jdbernard.pit.swing.NewIssueDialogView'
|
||||
controller = 'com.jdbernard.pit.swing.NewIssueDialogController'
|
||||
}
|
||||
|
||||
// MVC Group for "PIT"
|
||||
'PIT' {
|
||||
model = 'com.jdbernard.pit.swing.PITModel'
|
||||
view = 'com.jdbernard.pit.swing.PITView'
|
||||
controller = 'com.jdbernard.pit.swing.PITController'
|
||||
}
|
||||
|
||||
}
|
||||
|
135
pit-swing/griffon-app/conf/BuildConfig.groovy
Normal file
135
pit-swing/griffon-app/conf/BuildConfig.groovy
Normal file
@ -0,0 +1,135 @@
|
||||
// key signing information
|
||||
environments {
|
||||
development {
|
||||
signingkey {
|
||||
params {
|
||||
sigfile = 'GRIFFON'
|
||||
keystore = "${basedir}/griffon-app/conf/keys/devKeystore"
|
||||
alias = 'development'
|
||||
storepass = 'BadStorePassword'
|
||||
keypass = 'BadKeyPassword'
|
||||
lazy = true // only sign when unsigned
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
test {
|
||||
griffon {
|
||||
jars {
|
||||
sign = false
|
||||
pack = false
|
||||
}
|
||||
}
|
||||
}
|
||||
production {
|
||||
signingkey {
|
||||
params {
|
||||
sigfile = 'GRIFFON'
|
||||
keystore = 'CHANGE ME'
|
||||
alias = 'CHANGE ME'
|
||||
// NOTE: for production keys it is more secure to rely on key prompting
|
||||
// no value means we will prompt //storepass = 'BadStorePassword'
|
||||
// no value means we will prompt //keypass = 'BadKeyPassword'
|
||||
lazy = false // sign, regardless of existing signatures
|
||||
}
|
||||
}
|
||||
|
||||
griffon {
|
||||
jars {
|
||||
sign = true
|
||||
pack = true
|
||||
destDir = "${basedir}/staging"
|
||||
}
|
||||
webstart {
|
||||
codebase = 'CHANGE ME'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
griffon {
|
||||
memory {
|
||||
//max = '64m'
|
||||
//min = '2m'
|
||||
//maxPermSize = '64m'
|
||||
}
|
||||
jars {
|
||||
sign = false
|
||||
pack = false
|
||||
destDir = "${basedir}/staging"
|
||||
jarName = "${appName}.jar"
|
||||
}
|
||||
extensions {
|
||||
jarUrls = []
|
||||
jnlpUrls = []
|
||||
/*
|
||||
props {
|
||||
someProperty = 'someValue'
|
||||
}
|
||||
resources {
|
||||
linux { // windows, macosx, solaris
|
||||
jars = []
|
||||
nativelibs = []
|
||||
props {
|
||||
someProperty = 'someValue'
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
webstart {
|
||||
codebase = "${new File(griffon.jars.destDir).toURI().toASCIIString()}"
|
||||
jnlp = 'application.jnlp'
|
||||
}
|
||||
applet {
|
||||
jnlp = 'applet.jnlp'
|
||||
html = 'applet.html'
|
||||
}
|
||||
}
|
||||
|
||||
// required for custom environments
|
||||
signingkey {
|
||||
params {
|
||||
def env = griffon.util.Environment.current.name
|
||||
sigfile = 'GRIFFON-' + env
|
||||
keystore = "${basedir}/griffon-app/conf/keys/${env}Keystore"
|
||||
alias = env
|
||||
// storepass = 'BadStorePassword'
|
||||
// keypass = 'BadKeyPassword'
|
||||
lazy = true // only sign when unsigned
|
||||
}
|
||||
}
|
||||
|
||||
griffon.project.dependency.resolution = {
|
||||
// inherit Griffon' default dependencies
|
||||
inherits("global") {
|
||||
}
|
||||
log "warn" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
|
||||
repositories {
|
||||
griffonPlugins()
|
||||
griffonHome()
|
||||
griffonCentral()
|
||||
|
||||
// uncomment the below to enable remote dependency resolution
|
||||
// from public Maven repositories
|
||||
//mavenLocal()
|
||||
//mavenCentral()
|
||||
//mavenRepo "http://snapshots.repository.codehaus.org"
|
||||
//mavenRepo "http://repository.codehaus.org"
|
||||
//mavenRepo "http://download.java.net/maven/2/"
|
||||
//mavenRepo "http://repository.jboss.com/maven2/"
|
||||
}
|
||||
dependencies {
|
||||
// specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.
|
||||
|
||||
// runtime 'mysql:mysql-connector-java:5.1.5'
|
||||
}
|
||||
}
|
||||
|
||||
griffon {
|
||||
doc {
|
||||
logo = '<a href="http://griffon.codehaus.org" target="_blank"><img alt="The Griffon Framework" src="../img/griffon.png" border="0"/></a>'
|
||||
sponsorLogo = "<br/>"
|
||||
footer = "<br/><br/>Made with Griffon (0.9)"
|
||||
}
|
||||
}
|
@ -17,78 +17,3 @@ log4j {
|
||||
}
|
||||
additivity.StackTrace=false
|
||||
}
|
||||
|
||||
// key signing information
|
||||
environments {
|
||||
development {
|
||||
signingkey {
|
||||
params {
|
||||
sigfile = 'GRIFFON'
|
||||
keystore = "${basedir}/griffon-app/conf/keys/devKeystore"
|
||||
alias = 'development'
|
||||
storepass = 'BadStorePassword'
|
||||
keypass = 'BadKeyPassword'
|
||||
lazy = true // only sign when unsigned
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
test {
|
||||
griffon {
|
||||
jars {
|
||||
sign = false
|
||||
pack = false
|
||||
}
|
||||
}
|
||||
}
|
||||
production {
|
||||
signingkey {
|
||||
params {
|
||||
sigfile = 'GRIFFON'
|
||||
keystore = 'CHANGE ME'
|
||||
alias = 'CHANGE ME'
|
||||
// NOTE: for production keys it is more secure to rely on key prompting
|
||||
// no value means we will prompt //storepass = 'BadStorePassword'
|
||||
// no value means we will prompt //keypass = 'BadKeyPassword'
|
||||
lazy = false // sign, regardless of existing signatures
|
||||
}
|
||||
}
|
||||
|
||||
griffon {
|
||||
jars {
|
||||
sign = true
|
||||
pack = true
|
||||
destDir = "${basedir}/staging"
|
||||
}
|
||||
webstart {
|
||||
codebase = 'CHANGE ME'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
griffon {
|
||||
memory {
|
||||
//max = '64m'
|
||||
//min = '2m'
|
||||
//maxPermSize = '64m'
|
||||
}
|
||||
jars {
|
||||
sign = false
|
||||
pack = false
|
||||
destDir = "${basedir}/staging"
|
||||
jarName = "${appName}.jar"
|
||||
}
|
||||
extensions {
|
||||
jarUrls = []
|
||||
jnlpUrls = []
|
||||
}
|
||||
webstart {
|
||||
codebase = "${new File(griffon.jars.destDir).toURI().toASCIIString()}"
|
||||
jnlp = 'application.jnlp'
|
||||
}
|
||||
applet {
|
||||
jnlp = 'applet.jnlp'
|
||||
html = 'applet.html'
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@
|
||||
codebase:'@griffonAppCodebase@',
|
||||
code:'@griffonAppletClass@',
|
||||
archive:'@appletJars@',
|
||||
width:'240', height:'320'} ;
|
||||
width:'@applet.width@', height:'@applet.height@'} ;
|
||||
var parameters = {fontSize:16,
|
||||
java_arguments: "-Djnlp.packEnabled=true",
|
||||
jnlp_href:'@griffonAppCodebase@/applet.jnlp',
|
||||
@ -20,7 +20,7 @@
|
||||
image:'griffon.png',
|
||||
boxmessage:'Loading @griffonAppName@',
|
||||
boxbgcolor:'#FFFFFF', boxfgcolor:'#000000',
|
||||
codebase_lookup: 'false'} ;
|
||||
codebase_lookup: 'false'@applet.script.params@} ;
|
||||
var version = '1.5.0' ;
|
||||
deployJava.runApplet(attributes, parameters, version);
|
||||
</script>
|
||||
@ -28,7 +28,7 @@
|
||||
<APPLET CODEBASE='@griffonAppCodebase@'
|
||||
CODE='@griffonAppletClass@'
|
||||
ARCHIVE='@appletJars@'
|
||||
WIDTH='240' HEIGHT='320'>
|
||||
WIDTH='@applet.width@' HEIGHT='@applet.height@'>
|
||||
<PARAM NAME="java_arguments" VALUE="-Djnlp.packEnabled=true">
|
||||
<PARAM NAME='jnlp_href' VALUE='@griffonAppCodebase@/applet.jnlp'>
|
||||
<PARAM NAME='dragggable' VALUE='true'>
|
||||
@ -37,6 +37,7 @@
|
||||
<PARAM NAME='boxbgcolor' VALUE='#FFFFFF'>
|
||||
<PARAM NAME='boxfgcolor' VALUE='#000000'>
|
||||
<PARAM NAME='codebase_lookup' VALUE='false'>
|
||||
@applet.tag.params@
|
||||
</APPLET>
|
||||
-->
|
||||
</body>
|
||||
|
@ -35,21 +35,25 @@
|
||||
<!--<j2ee-application-client-permissions/>-->
|
||||
</security>
|
||||
<resources>
|
||||
<property name="griffon.runmode" value="applet"/>
|
||||
<property name="jnlp.packEnabled" value="true"/>
|
||||
<j2se version="1.5+" @memoryOptions@/>
|
||||
<!-- auto-added jars follow, griffon-rt, app, and groovy -->
|
||||
@jnlpJars@
|
||||
<!-- Add all extra jars below here, or the app may break -->
|
||||
@jnlpExtensions@
|
||||
@jnlpProperties@
|
||||
</resources>
|
||||
@jnlpResources@
|
||||
<applet-desc
|
||||
documentbase="@griffonAppCodebase@"
|
||||
name="@griffonAppName@Applet"
|
||||
main-class="@griffonAppletClass@"
|
||||
width="320"
|
||||
height="640">
|
||||
width="@applet.width@"
|
||||
height="@applet.height@">
|
||||
<!-- params are ignored when referenced from web page for 6u10 -->
|
||||
<!--<param name="key1" value="value1"/>-->
|
||||
<!--<param name="key2" value="value2"/>-->
|
||||
@applet.tag.params@
|
||||
</applet-desc>
|
||||
</jnlp>
|
||||
|
@ -35,16 +35,20 @@
|
||||
<!--<j2ee-application-client-permissions/>-->
|
||||
</security>
|
||||
<resources>
|
||||
<property name="griffon.runmode" value="webstart"/>
|
||||
<property name="jnlp.packEnabled" value="true"/>
|
||||
<j2se version="1.5+" @memoryOptions@/>
|
||||
<!-- auto-added jars follow, griffon-rt, app, and groovy -->
|
||||
@jnlpJars@
|
||||
<!-- Add all extra jars below here, or the app may break -->
|
||||
@jnlpExtensions@
|
||||
@jnlpProperties@
|
||||
</resources>
|
||||
@jnlpResources@
|
||||
<application-desc main-class="@griffonApplicationClass@">
|
||||
<!-- params are ignored when referenced from web page for 6u10 -->
|
||||
<!--<param name="key1" value="value1"/>-->
|
||||
<!--<param name="key2" value="value2"/>-->
|
||||
@applet.tag.params@
|
||||
</application-desc>
|
||||
</jnlp>
|
||||
|
@ -13,6 +13,8 @@ class PITController {
|
||||
|
||||
void mvcGroupInit(Map args) {
|
||||
|
||||
model.newIssueDialogMVC = buildMVCGroup('NewIssueDialog')
|
||||
|
||||
SwingUtilities.invokeAndWait {
|
||||
model.issueListRenderer = new IssueTableCellRenderer()
|
||||
|
||||
@ -27,27 +29,27 @@ class PITController {
|
||||
|
||||
// look for general config options
|
||||
pitrcFile = new File(pitHome, 'pitrc')
|
||||
if(logDbg) logger.debug("$pitrcFile is " +
|
||||
if (logDbg) logger.debug("$pitrcFile is " +
|
||||
(pitrcFile.exists() ? '' : 'not ') + "present.")
|
||||
|
||||
// load general config (if present)
|
||||
if (pitrcFile.exists()) {
|
||||
pitrcFile.withInputStream() { config.load(it) }
|
||||
if (pitrcFile.exists() && pitrcFile.canRead()) {
|
||||
pitrcFile.withInputStream { config.load(it) }
|
||||
if (logDbg) logger.debug("Loaded pitrc")
|
||||
}
|
||||
|
||||
// look for swing specific config
|
||||
pitswingrcFile = new File(pitHome, 'pitswingrc')
|
||||
if (logDbg) logger.debug("$pitswingrcFile is " +
|
||||
(pitswingrcFile.exists() ? '' : 'not ') + "present.")
|
||||
if (logDbg) logger.debug("$pitswingrcFile is " +
|
||||
(pitswingrcFile.exists() ? '' : 'not ') + "present.")
|
||||
|
||||
// load swing specific config (if present)
|
||||
if (pitswingrcFile.exists()) {
|
||||
pitswingrcFile.withInputStream() { config.load(it) }
|
||||
if(logDbg) logger.debug("Loaded pitswingrc")
|
||||
if (pitswingrcFile.exists() && pitswingrcFile.canRead()) {
|
||||
pitswingrcFile.withInputStream { config.load(it) }
|
||||
if (logDbg) logger.debug("Loaded pitswingrc")
|
||||
}
|
||||
|
||||
// Process Configurable Options
|
||||
// Process configurable options
|
||||
// ----------------------------
|
||||
|
||||
if (logDbg) {
|
||||
@ -59,15 +61,16 @@ class PITController {
|
||||
Category.values().each { category ->
|
||||
def expectedKey = "issue." + category.name().toLowerCase() +
|
||||
".template"
|
||||
if(logDbg) logger.debug("Looking for key: $expectedKey")
|
||||
if (logDbg) logger.debug("Looking for key: $expectedKey")
|
||||
|
||||
config.keySet().each { currentKey ->
|
||||
if (currentKey == expectedKey)
|
||||
model.templates[(category)] =
|
||||
config.getProperty(expectedKey, "")
|
||||
if (currentKey == expectedKey)
|
||||
model.templates[(category)] =
|
||||
config.getProperty(expectedKey, "")
|
||||
if (logDbg) logger.debug("Template for category $category: '" +
|
||||
model.templates[(category)] + "'")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// load custom issueListRenderer
|
||||
@ -76,12 +79,12 @@ class PITController {
|
||||
// load initial repositories
|
||||
if (config.containsKey('initial-repositories')) {
|
||||
def initRepos = config.getProperty('initial-repositories', '')
|
||||
initRepos = initRepos.split(/[;:,]/)
|
||||
initRepos = initRepos.split(/[:;,]/)
|
||||
initRepos.each { repoPath -> loadProject(new File(repoPath)) }
|
||||
if(logDbg) logger.debug("Init repos: '$initRepos'")
|
||||
if (logDbg) logger.debug("Init repos: '$initRepos'")
|
||||
}
|
||||
|
||||
// load custom issue CSS
|
||||
// load custom issue css
|
||||
if (config.containsKey('issue.display.css')) {
|
||||
def issueCSS = config.getProperty('issue.display.css', "")
|
||||
|
||||
@ -89,20 +92,16 @@ class PITController {
|
||||
def cssFile
|
||||
|
||||
// use short-circuit logic to test several possible locations
|
||||
// for a css file
|
||||
if ((cssFile = new File(pitHome, issueCSS)).exists() ||
|
||||
(cssFile = new File(pitHome.parentFile(), issueCSS)).exists() ||
|
||||
(cssFile = new File(issueCSS).exists()))
|
||||
(cssFile = new File(issueCSS)).exists())
|
||||
issueCSS = cssFile.text
|
||||
|
||||
if (logDbg) logger.debug("CS for issue display: $issueCSS")
|
||||
|
||||
if (logDbg) logger.debug("CSS for issue display: $issueCSS")
|
||||
model.issueCSS = issueCSS
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
model.newIssueDialogMVC = buildMVCGroup('NewIssueDialog')
|
||||
}
|
||||
|
||||
void refreshIssues() {
|
||||
@ -111,12 +110,11 @@ class PITController {
|
||||
}
|
||||
}
|
||||
|
||||
def openProject = { evt = null ->
|
||||
def openProject = { evt = null ->
|
||||
if (view.openDialog.showOpenDialog(view.frame) !=
|
||||
JFileChooser.APPROVE_OPTION) return
|
||||
JFileChooser.APPROVE_OPTIONS) return
|
||||
|
||||
loadProject(view.openDialog.selectedFile)
|
||||
|
||||
}
|
||||
|
||||
def loadProject = { File projectDir ->
|
||||
@ -124,7 +122,7 @@ class PITController {
|
||||
|
||||
// if this is not a valid directory, do nothing
|
||||
// TODO: log to the user that this is not a valid directory
|
||||
if (!projectDir.exists() || !projectDir.isDirectory()) return;
|
||||
if (!projectDir.exists() || !projectDir.isDirectory()) return
|
||||
|
||||
// create new ProjectPanel MVC
|
||||
newMVC = buildMVCGroup('ProjectPanel',
|
||||
@ -134,28 +132,30 @@ class PITController {
|
||||
issueCSS: model.issueCSS,
|
||||
rootProject: new FileProject(projectDir))
|
||||
newMVC.model.id = projectDir.name
|
||||
|
||||
|
||||
// if we already have a tab with this id
|
||||
if (model.projectPanelMVCs[(newMVC.model.id)]) {
|
||||
|
||||
// try using the canonical path
|
||||
newMVC.model.id = projectDir.canonicalPath
|
||||
|
||||
// still not unique?
|
||||
if (model.projectPanelMVCs[(newMVC.model.id)]) {
|
||||
|
||||
|
||||
// first time this has happened?
|
||||
if (!model.projectIdMap[(newMVC.model.id)])
|
||||
if (!model.projectIdMap[(newMVC.model.id)])
|
||||
model.projectIdMap[(newMVC.model.id)] = 0
|
||||
|
||||
// no? increment
|
||||
else model.projectIdMap[(newMVC.model.id)] =
|
||||
else model.projectIdMap[(newMVC.model.id)] =
|
||||
model.projectIdMap[(newMVC.model.id)] + 1
|
||||
|
||||
// use our new, unique id
|
||||
newMVC.model.id += "-" + model.projectIdMap[(newMVC.model.id)]
|
||||
newMVC.model.id += "-" + model.projectIdMap[(newMVC.model.id)]
|
||||
}
|
||||
}
|
||||
|
||||
model.projectPanelMVCs[newMVC.model.id] = newMVC
|
||||
model.projectPanelMVCs[(newMVC.model.id)] = newMVC
|
||||
view.mainTabbedPane.addTab(newMVC.model.id, newMVC.view.panel)
|
||||
}
|
||||
|
||||
|
@ -34,17 +34,18 @@ class ProjectPanelController {
|
||||
refreshProject()
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* displayProject
|
||||
* @param project Project to display.
|
||||
*
|
||||
* @param project Project to display
|
||||
*/
|
||||
void displayProject(Project project) {
|
||||
view.issueTextArea.text = ""
|
||||
view.issueTextDisplay.text = ""
|
||||
view.issueTextPanelLayout.show(view.issueTextPanel, "display")
|
||||
void displayProject(Project project) {
|
||||
if (!project) return
|
||||
|
||||
view.issueTextArea.text = ""
|
||||
view.issueTextDisplay.text = ""
|
||||
view.issueTextPanelLayout.show(view.issueTextPanel, 'display')
|
||||
|
||||
// build a new IssueTableModel if none cached
|
||||
if (!model.projectTableModels[(project.name)]) {
|
||||
def itm = new IssueTableModel(project,
|
||||
model.filter ?: model.mainMVC.model.filter)
|
||||
@ -67,7 +68,7 @@ class ProjectPanelController {
|
||||
if (!issue) return
|
||||
|
||||
// hack because binding view.issueTextArea.font to
|
||||
// mainMVC.mode.issueDetailFont causes problems
|
||||
// mainMVC.model.issueDetailFont causes problems
|
||||
if (view.issueTextArea.font != model.mainMVC.model.issueDetailFont)
|
||||
view.issueTextArea.font = model.mainMVC.model.issueDetailFont
|
||||
|
||||
@ -75,10 +76,10 @@ class ProjectPanelController {
|
||||
view.issueTextArea.caretPosition = 0
|
||||
view.issueTextDisplay.text = rst2html(issue.text)
|
||||
view.issueTextDisplay.caretPosition = 0
|
||||
view.issueTextPanelLayout.show(view.issueTextPanel, "display")
|
||||
view.issueTextPanelLayout.show(view.issueTextPanel, 'display')
|
||||
}
|
||||
|
||||
void showProjectPopup(Project project, def x, def y) {
|
||||
void showProejctPopup(Project project, def x, def y) {
|
||||
model.popupProject = project
|
||||
view.projectPopupMenu.show(view.projectTree, x, y)
|
||||
}
|
||||
@ -120,7 +121,7 @@ class ProjectPanelController {
|
||||
|
||||
def project
|
||||
|
||||
if (evt.source == view.newProjectButton)
|
||||
if (evt.source == view.newProjectButton)
|
||||
project = model.selectedProject ?: model.rootProject
|
||||
else project = model.popupProject ?: model.rootProject
|
||||
def newProject = project.createNewProject(name)
|
||||
@ -134,7 +135,7 @@ class ProjectPanelController {
|
||||
|
||||
if (evt.source == view.deleteProjectButton)
|
||||
project = model.selectedProject ?: model.rootProject
|
||||
else project = model.popupProject ?: model.rootModel
|
||||
else project = model.popupProject ?: model.rootProject
|
||||
|
||||
project.delete()
|
||||
|
||||
@ -185,7 +186,7 @@ class ProjectPanelController {
|
||||
}
|
||||
|
||||
String rst2html(String rst) {
|
||||
Document doc // memory model of document
|
||||
Document doc
|
||||
StringWriter outString
|
||||
StringBuilder result = new StringBuilder()
|
||||
|
||||
@ -201,19 +202,18 @@ class ProjectPanelController {
|
||||
|
||||
// java's embeded html is primitive, we need to massage the results
|
||||
outString.toString().eachLine { line ->
|
||||
|
||||
// remove the XML version and encoding, title element,
|
||||
// meta elements
|
||||
|
||||
// remove the XML version and encoding, title element, meta elems
|
||||
if (line =~ /<\?.*\?>/ || line =~ /<meta.*$/ || line =~ /<title.*$/) { return }
|
||||
|
||||
// all other elements, remove all class,xmlns attributes
|
||||
// all other elements, remove all class, xmlns attributes
|
||||
def m = (line =~ /(<\S+)(\s*(class|xmlns)=".*"\s*)*(\/?>.*)/)
|
||||
if (m) line = m[0][1] + m[0][4]
|
||||
|
||||
result.append(line)
|
||||
|
||||
|
||||
// add in the CSS information to the head
|
||||
if (line =~/<head>/) result.append('<style type="text/css">' +
|
||||
if (line =~ /<head>/) result.append('<style type="text/css">' +
|
||||
model.issueCSS + '</style>')
|
||||
}
|
||||
|
||||
|
@ -1,25 +1,20 @@
|
||||
/*
|
||||
* This script is executed inside the EDT, so be sure to
|
||||
* call long running code in another thread.
|
||||
* This script is executed inside the UI thread, so be sure to call
|
||||
* long running code in another thread.
|
||||
*
|
||||
* You have the following options
|
||||
* - SwingBuilder.doOutside { // your code }
|
||||
* - execOutside { // your code }
|
||||
* - execFuture { // your code }
|
||||
* - Thread.start { // your code }
|
||||
* - SwingXBuilder.withWorker( start: true ) {
|
||||
* onInit { // initialization (optional, runs in current thread) }
|
||||
* work { // your code }
|
||||
* onDone { // finish (runs inside EDT) }
|
||||
* }
|
||||
*
|
||||
* You have the following options to run code again inside EDT
|
||||
* - SwingBuilder.doLater { // your code }
|
||||
* - SwingBuilder.edt { // your code }
|
||||
* - SwingUtilities.invokeLater { // your code }
|
||||
* You have the following options to run code again inside the UI thread
|
||||
* - execAsync { // your code }
|
||||
* - execSync { // your code }
|
||||
*/
|
||||
|
||||
import groovy.swing.SwingBuilder
|
||||
import griffon.util.GriffonPlatformHelper
|
||||
import griffon.util.GriffonApplicationHelper
|
||||
import static griffon.util.GriffonApplicationUtils.*
|
||||
|
||||
GriffonPlatformHelper.tweakForNativePlatform(app)
|
||||
SwingBuilder.lookAndFeel('org.pushingpixels.substance.api.skin.SubstanceCremeCoffeeLookAndFeel', 'nimbus', ['metal', [boldFonts: false]])
|
||||
|
@ -1,18 +1,13 @@
|
||||
/*
|
||||
* This script is executed inside the EDT, so be sure to
|
||||
* call long running code in another thread.
|
||||
* This script is executed inside the UI thread, so be sure to call
|
||||
* long running code in another thread.
|
||||
*
|
||||
* You have the following options
|
||||
* - SwingBuilder.doOutside { // your code }
|
||||
* - execOutside { // your code }
|
||||
* - execFuture { // your code }
|
||||
* - Thread.start { // your code }
|
||||
* - SwingXBuilder.withWorker( start: true ) {
|
||||
* onInit { // initialization (optional, runs in current thread) }
|
||||
* work { // your code }
|
||||
* onDone { // finish (runs inside EDT) }
|
||||
* }
|
||||
*
|
||||
* You have the following options to run code again inside EDT
|
||||
* - SwingBuilder.doLater { // your code }
|
||||
* - SwingBuilder.edt { // your code }
|
||||
* - SwingUtilities.invokeLater { // your code }
|
||||
* You have the following options to run code again inside the UI thread
|
||||
* - execAsync { // your code }
|
||||
* - execSync { // your code }
|
||||
*/
|
||||
|
@ -1,18 +1,13 @@
|
||||
/*
|
||||
* This script is executed inside the EDT, so be sure to
|
||||
* call long running code in another thread.
|
||||
* This script is executed inside the UI thread, so be sure to call
|
||||
* long running code in another thread.
|
||||
*
|
||||
* You have the following options
|
||||
* - SwingBuilder.doOutside { // your code }
|
||||
* - execOutside { // your code }
|
||||
* - execFuture { // your code }
|
||||
* - Thread.start { // your code }
|
||||
* - SwingXBuilder.withWorker( start: true ) {
|
||||
* onInit { // initialization (optional, runs in current thread) }
|
||||
* work { // your code }
|
||||
* onDone { // finish (runs inside EDT) }
|
||||
* }
|
||||
*
|
||||
* You have the following options to run code again inside EDT
|
||||
* - SwingBuilder.doLater { // your code }
|
||||
* - SwingBuilder.edt { // your code }
|
||||
* - SwingUtilities.invokeLater { // your code }
|
||||
*/
|
||||
* You have the following options to run code again inside the UI thread
|
||||
* - execAsync { // your code }
|
||||
* - execSync { // your code }
|
||||
*/
|
||||
|
@ -1,18 +1,13 @@
|
||||
/*
|
||||
* This script is executed inside the EDT, so be sure to
|
||||
* call long running code in another thread.
|
||||
* This script is executed inside the UI thread, so be sure to call
|
||||
* long running code in another thread.
|
||||
*
|
||||
* You have the following options
|
||||
* - SwingBuilder.doOutside { // your code }
|
||||
* - execOutside { // your code }
|
||||
* - execFuture { // your code }
|
||||
* - Thread.start { // your code }
|
||||
* - SwingXBuilder.withWorker( start: true ) {
|
||||
* onInit { // initialization (optional, runs in current thread) }
|
||||
* work { // your code }
|
||||
* onDone { // finish (runs inside EDT) }
|
||||
* }
|
||||
*
|
||||
* You have the following options to run code again inside EDT
|
||||
* - SwingBuilder.doLater { // your code }
|
||||
* - SwingBuilder.edt { // your code }
|
||||
* - SwingUtilities.invokeLater { // your code }
|
||||
*/
|
||||
* You have the following options to run code again inside the UI thread
|
||||
* - execAsync { // your code }
|
||||
* - execSync { // your code }
|
||||
*/
|
||||
|
@ -0,0 +1,13 @@
|
||||
/*
|
||||
* This script is executed inside the UI thread, so be sure to call
|
||||
* long running code in another thread.
|
||||
*
|
||||
* You have the following options
|
||||
* - execOutside { // your code }
|
||||
* - execFuture { // your code }
|
||||
* - Thread.start { // your code }
|
||||
*
|
||||
* You have the following options to run code again inside the UI thread
|
||||
* - execAsync { // your code }
|
||||
* - execSync { // your code }
|
||||
*/
|
@ -5,7 +5,6 @@ import com.jdbernard.pit.Status
|
||||
import groovy.beans.Bindable
|
||||
|
||||
class NewIssueDialogModel {
|
||||
|
||||
@Bindable boolean accept
|
||||
String text
|
||||
Category category
|
||||
|
@ -7,26 +7,28 @@ import com.jdbernard.pit.Project
|
||||
import com.jdbernard.pit.Status
|
||||
import groovy.beans.Bindable
|
||||
import java.awt.Font
|
||||
import javax.swing.ImageIcon
|
||||
|
||||
class PITModel {
|
||||
// filter for projects and issues
|
||||
|
||||
// filter for projects and classes
|
||||
Filter filter = new Filter(categories: [],
|
||||
status: [Status.NEW, Status.VALIDATION_REQUIRED])
|
||||
|
||||
def issueListRenderer
|
||||
|
||||
// map of category -> issue template
|
||||
def templates = [:]
|
||||
Map<Category, String> templates = [:]
|
||||
|
||||
def issueCSS = getClass().getResource("/default-issue.css").openStream().text
|
||||
|
||||
def categoryIcons = [:]
|
||||
def statusIcons = [:]
|
||||
String issueCSS = getClass().getResourceAsStream("/default-issue.css").text
|
||||
|
||||
Map<Category, ImageIcon> categoryIcons = [:]
|
||||
Map<Category, ImageIcon> statusIcons = [:]
|
||||
|
||||
def newIssueDialogMVC
|
||||
def projectPanelMVCs = [:]
|
||||
Map projectPanelMVCs = [:]
|
||||
|
||||
def projectIdMap = [:]
|
||||
Map projectIdMap = [:]
|
||||
|
||||
@Bindable issueDetailFont = new Font(Font.MONOSPACED, Font.PLAIN, 10)
|
||||
@Bindable Font issueDetailFont = new Font(Font.MONOSPACED, Font.PLAIN, 10)
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ class ProjectPanelModel {
|
||||
|
||||
String issueCSS = ""
|
||||
|
||||
// cache the ListModels
|
||||
// cache the models
|
||||
def projectTableModels = [:]
|
||||
def issueCellRenderer
|
||||
|
||||
|
@ -61,4 +61,5 @@ dialog = dialog(title: 'New Task...', modal: true, pack: true,
|
||||
},
|
||||
constraints: gbc(gridx: 1, gridy: 5, insets: [5, 5, 5, 5],
|
||||
anchor: GBC.WEST))
|
||||
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import com.jdbernard.pit.Project
|
||||
import com.jdbernard.pit.FileProject
|
||||
import groovy.beans.Bindable
|
||||
import java.awt.BorderLayout as BL
|
||||
import java.awt.Color
|
||||
import java.awt.GridBagConstraints as GBC
|
||||
import javax.swing.DefaultComboBoxModel
|
||||
import javax.swing.DefaultListModel
|
||||
@ -16,7 +17,6 @@ import javax.swing.JFileChooser
|
||||
import javax.swing.JOptionPane
|
||||
import net.miginfocom.swing.MigLayout
|
||||
|
||||
import java.awt.Color
|
||||
|
||||
actions {
|
||||
action(
|
||||
@ -53,20 +53,17 @@ Status.values().each {
|
||||
model.statusIcons[(it)] = imageIcon("/${it.name().toLowerCase()}.png")
|
||||
}
|
||||
|
||||
|
||||
openDialog = fileChooser(fileSelectionMode: JFileChooser.DIRECTORIES_ONLY)
|
||||
|
||||
frame = application(title:'Personal Issue Tracker',
|
||||
frame = application(title: 'Personal Issue Tracker',
|
||||
minimumSize: [400, 200],
|
||||
preferredSize: [800, 500],
|
||||
pack:true,
|
||||
pack: true,
|
||||
locationRelativeTo: null,
|
||||
iconImage: imageIcon('/icon64x64.png').image,
|
||||
iconImages: [imageIcon('/icon64x64.png').image,
|
||||
imageIcon('/icon32x32.png').image,
|
||||
imageIcon('/icon16x16.png').image]
|
||||
) {
|
||||
|
||||
|
||||
// main menu
|
||||
menuBar() {
|
||||
menu("File") {
|
||||
@ -76,12 +73,12 @@ frame = application(title:'Personal Issue Tracker',
|
||||
menuItem(shutdown)
|
||||
}
|
||||
|
||||
menu('View') {
|
||||
menu("View") {
|
||||
menu('Category') {
|
||||
Category.values().each { cat ->
|
||||
checkBoxMenuItem(cat.toString(),
|
||||
selected: model.filter.categories.contains(cat),
|
||||
actionPerformed: { evt ->
|
||||
actionPerformed: {
|
||||
if (model.filter.categories.contains(cat)) {
|
||||
model.filter.categories.remove(cat)
|
||||
evt.source.selected = false
|
||||
@ -120,17 +117,17 @@ frame = application(title:'Personal Issue Tracker',
|
||||
JOptionPane.QUESTION_MESSAGE)
|
||||
if (newSize == null || !newSize.isFloat())
|
||||
JOptionPane.showMessageDialog(frame,
|
||||
"$newSize is not a valid size.",
|
||||
'Change Issue Detail Text Size...',
|
||||
'$newSize is not a valid size.',
|
||||
'Change Issue Detail Size...',
|
||||
JOptionPane.ERROR_MESSAGE)
|
||||
else model.issueDetailFont = model.issueDetailFont
|
||||
.deriveFont(newSize.toFloat())
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
menu('Sort') {
|
||||
menu("Sort") {
|
||||
sortMenuButtonGroup = buttonGroup()
|
||||
checkBoxMenuItem('By ID',
|
||||
checkBoxMenuItem('By ID',
|
||||
buttonGroup: sortMenuButtonGroup,
|
||||
actionPerformed: {
|
||||
model.filter.issueSorter = { it.id }
|
||||
@ -160,6 +157,7 @@ frame = application(title:'Personal Issue Tracker',
|
||||
model.filter.issueSorter = { it.title }
|
||||
controller.refreshIssues()
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,13 +75,13 @@ projectPopupMenu = popupMenu() {
|
||||
menuItem(deleteProjectPop)
|
||||
}
|
||||
|
||||
// popup menu for isses
|
||||
// popup menu for issues
|
||||
issuePopupMenu = popupMenu() {
|
||||
menuItem(newIssue)
|
||||
menuItem(deleteIssuePop)
|
||||
separator()
|
||||
|
||||
menu('Change Category', enabled: bind { model.popupIssue != null }) {
|
||||
menu('Change Category', enabled: bind { model.popupIssue != null }) {
|
||||
Category.values().each { category ->
|
||||
menuItem(category.toString(),
|
||||
icon: model.mainMVC.model.categoryIcons[(category)],
|
||||
@ -91,15 +91,15 @@ issuePopupMenu = popupMenu() {
|
||||
model.popupIssue.category = category
|
||||
controller.refreshIssues()
|
||||
} catch (IOException ioe) {
|
||||
JOptionPane.showMessageDialog(mainMVC.view.frame,
|
||||
ioe.getLocalizedMessage(), 'Change Category',
|
||||
JOptionPane.showMessage(mainMVC.view.frame,
|
||||
ioe.getLocalizedMessage(), "Change Category",
|
||||
JOptionPane.ERROR_MESSAGE)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
menu('Change Status', enabled: bind { model.popupIssue != null }) {
|
||||
menu('Change Status', enabled: bind { model.popupIssue != null}) {
|
||||
Status.values().each { status ->
|
||||
menuItem(status.toString(),
|
||||
icon: model.mainMVC.model.statusIcons[(status)],
|
||||
@ -108,8 +108,8 @@ issuePopupMenu = popupMenu() {
|
||||
try {
|
||||
model.popupIssue.status = status
|
||||
controller.refreshIssues()
|
||||
} catch (IOException ioe) {
|
||||
JOptionPane.showMessageDialog(mainMVC.view.frame,
|
||||
} catch (IOException ioe) {
|
||||
JOptionPane.showMessage(model.mainMVC.view.frame,
|
||||
ioe.getLocalizedMessage(), 'Change Status',
|
||||
JOptionPane.ERROR_MESSAGE)
|
||||
}
|
||||
@ -123,14 +123,14 @@ issuePopupMenu = popupMenu() {
|
||||
def newPriority = JOptionPane.showInputDialog(mainMVC.view.frame,
|
||||
'New priority (0-9)', 'Change Priority...',
|
||||
JOptionPane.QUESTION_MESSAGE)
|
||||
try { model.popupIssue.priority = newPriority.toInteger() }
|
||||
try { model.popupIsse.priority = newPriority.toInteger() }
|
||||
catch (NumberFormatException nfe) {
|
||||
JOptionPane.showMessageDialog(mainMVC.view.frame,
|
||||
'The priority value must be an integer in [0-9].',
|
||||
'Change Priority...', JOptionPane.ERROR_MESSAGE)
|
||||
return
|
||||
} catch (IOException ioe) {
|
||||
JOptionPane.showMessageDialog(mainMVC.view.fraw,
|
||||
JOptionPane.showMessageDialog(model.mainMVC.view.frame,
|
||||
ioe.getLocalizedMessage(), 'Change Priority...',
|
||||
JOptionPane.ERROR_MESSAGE)
|
||||
}
|
||||
@ -140,28 +140,28 @@ issuePopupMenu = popupMenu() {
|
||||
|
||||
// main split view
|
||||
panel = splitPane(orientation: JSplitPane.HORIZONTAL_SPLIT,
|
||||
// dividerLocation: bind(source: model.mainModel, property: dividerLocation),
|
||||
dividerLocation: 200,
|
||||
oneTouchExpandable: true,
|
||||
constraints: gbc(fill: GBC.BOTH, insets: [10,10,10,10],
|
||||
constraints: gbc(fill: GBC.BOTH, insets: [10, 10, 10, 10],
|
||||
weightx: 2, weighty: 2)) {
|
||||
|
||||
// left side (projects tree and buttons)
|
||||
panel(constraints: "left") {
|
||||
// left side (project tree and buttons
|
||||
panel(constraints: 'left') {
|
||||
gridBagLayout()
|
||||
|
||||
// tree view of projects
|
||||
scrollPane(constraints: gbc(fill: GBC.BOTH, gridx: 0, gridy:0,
|
||||
scrollPane(constraints: gbc(fill: GBC.BOTH, gridx: 0, gridy: 0,
|
||||
gridwidth: 2, weightx: 2, weighty: 2)) {
|
||||
treeCellRenderer = new DefaultTreeCellRenderer()
|
||||
treeCellRenderer.leafIcon = treeCellRenderer.closedIcon
|
||||
|
||||
projectTree = tree(cellRenderer: treeCellRenderer,
|
||||
model: bind(source: model, sourceProperty: 'rootProject',
|
||||
sourceValue: {
|
||||
sourceValue: {
|
||||
if (model.rootProject) {
|
||||
def rootNode = new DefaultMutableTreeNode()
|
||||
def flatview = new FlatProjectView('All Issues')
|
||||
flatviews.projects[(model.rootProject.name)] =
|
||||
flatview.projects[(model.rootProject.name)] =
|
||||
model.rootProject
|
||||
rootNode.add(new DefaultMutableTreeNode(flatview))
|
||||
rootNode.add(controller.makeNodes(model.rootProject))
|
||||
@ -178,18 +178,17 @@ panel = splitPane(orientation: JSplitPane.HORIZONTAL_SPLIT,
|
||||
mouseClicked: { evt ->
|
||||
if (evt.button == MouseEvent.BUTTON3) {
|
||||
controller.showProjectPopup(
|
||||
projectTree.getPathForLocation(evt.x, evt.y)
|
||||
?.lastPathComponent?.userObject,
|
||||
projectTree.getPathForLocation(evt.x, evt.y)?.
|
||||
lastPathComponent?.userObject,
|
||||
evt.x, evt.y)
|
||||
}
|
||||
})
|
||||
projectTree.rootVisible = false
|
||||
|
||||
|
||||
projectTree.selectionModel.selectionMode =
|
||||
TreeSelectionModel.SINGLE_TREE_SELECTION
|
||||
}
|
||||
|
||||
// project buttons
|
||||
newProjectButton = button(newProject,
|
||||
constraints: gbc(fill: GBC.NONE, gridx: 0, gridy: 1,
|
||||
anchor: GBC.WEST))
|
||||
@ -198,7 +197,7 @@ panel = splitPane(orientation: JSplitPane.HORIZONTAL_SPLIT,
|
||||
anchor: GBC.WEST))
|
||||
}
|
||||
|
||||
// split between issue list and issue details
|
||||
// split between issues list and issue details
|
||||
splitPane(orientation: JSplitPane.VERTICAL_SPLIT,
|
||||
dividerLocation: 200, constraints: "right") {
|
||||
|
||||
@ -206,7 +205,7 @@ panel = splitPane(orientation: JSplitPane.HORIZONTAL_SPLIT,
|
||||
gridBagLayout()
|
||||
|
||||
scrollPane(constraints: gbc(fill: GBC.BOTH, weightx: 2,
|
||||
weighty: 2, gridx: 0, gridy: 0, gridwidth: 3)) {
|
||||
weighty: 2, gridx: 0, gridy: 0, gridwidth: 3)) {
|
||||
|
||||
issueTable = table(
|
||||
autoCreateRowSorter: true,
|
||||
@ -223,7 +222,7 @@ panel = splitPane(orientation: JSplitPane.HORIZONTAL_SPLIT,
|
||||
translatedPoint.translate(-issueTable.locationOnScreen.@x,
|
||||
-issueTable.locationOnScreen.@y)
|
||||
def row = issueTable.rowAtPoint(translatedPoint)
|
||||
|
||||
|
||||
issueTable.setRowSelectionInterval(row, row)
|
||||
|
||||
controller.showIssuePopup(
|
||||
@ -238,21 +237,6 @@ panel = splitPane(orientation: JSplitPane.HORIZONTAL_SPLIT,
|
||||
controller.displayIssue(controller.getSelectedIssue())
|
||||
}
|
||||
|
||||
/*issueList = list(
|
||||
cellRenderer: model.issueCellRenderer,
|
||||
selectionMode: ListSelectionModel.SINGLE_SELECTION,
|
||||
valueChanged: { evt ->
|
||||
controller.displayIssue(issueList.selectedValue)
|
||||
},
|
||||
mouseClicked: { evt ->
|
||||
if (evt.button == MouseEvent.BUTTON3) {
|
||||
issueList.selectedIndex = issueList.locationToIndex(
|
||||
[evt.x, evt.y] as Point)
|
||||
|
||||
controller.showIssuePopup(
|
||||
issueList.selectedValue, evt.x, evt.y)
|
||||
}
|
||||
})*/
|
||||
}
|
||||
|
||||
wordWrapCheckBox = checkBox('Word wrap',
|
||||
@ -266,7 +250,6 @@ panel = splitPane(orientation: JSplitPane.HORIZONTAL_SPLIT,
|
||||
enabled: bind(source: issueTable.selectionModel,
|
||||
sourceEvent: 'valueChanged',
|
||||
sourceValue: { !issueTable.selectionModel.isSelectionEmpty() }))
|
||||
|
||||
}
|
||||
|
||||
scrollPane(constraints: "bottom",
|
||||
@ -274,45 +257,38 @@ panel = splitPane(orientation: JSplitPane.HORIZONTAL_SPLIT,
|
||||
issueTextPanel = panel {
|
||||
issueTextPanelLayout = cardLayout()
|
||||
|
||||
def leavingEditorClosure = {
|
||||
def issue = controller.getSelectedIssue()
|
||||
if (issue == null) return
|
||||
if (issueTextArea.text != issue.text) {
|
||||
issue.text = issueTextArea.text
|
||||
issueTextDisplay.text = controller.rst2html(
|
||||
issueTextArea.text)
|
||||
}
|
||||
issueTextPanelLayout.show(issueTextPanel, 'display')
|
||||
}
|
||||
|
||||
issueTextArea = textArea(
|
||||
constraints: "editor",
|
||||
constraints: 'editor',
|
||||
wrapStyleWord: true,
|
||||
lineWrap: bind(source: wordWrapCheckBox,
|
||||
sourceProperty: 'selected'),
|
||||
editable: bind( source: issueTable.selectionModel,
|
||||
editable: bind(source: issueTable.selectionModel,
|
||||
sourceEvent: 'valueChanged',
|
||||
sourceValue:
|
||||
{ !issueTable.selectionModel.isSelectionEmpty() }),
|
||||
font: model.mainMVC.model.issueDetailFont,
|
||||
focusGained: {},
|
||||
focusLost: {
|
||||
def issue = controller.getSelectedIssue()
|
||||
if (issue == null) return
|
||||
if (issueTextArea.text != issue.text) {
|
||||
issue.text = issueTextArea.text
|
||||
issueTextDisplay.text = controller.rst2html(
|
||||
issueTextArea.text)
|
||||
}
|
||||
issueTextPanelLayout.show(issueTextPanel, "display")
|
||||
},
|
||||
mouseExited: {
|
||||
def issue = controller.getSelectedIssue()
|
||||
if (issue == null) return
|
||||
if (issueTextArea.text != issue.text) {
|
||||
issue.text = issueTextArea.text
|
||||
issueTextDisplay.text = controller.rst2html(
|
||||
issueTextArea.text)
|
||||
}
|
||||
issueTextPanelLayout.show(issueTextPanel, "display")
|
||||
})
|
||||
|
||||
issueTextDisplay = editorPane(contentType: "text/html",
|
||||
constraints: "display",
|
||||
focusLost: leavingEditorClosure,
|
||||
mouseExited: leavingEditorClosure)
|
||||
|
||||
issueTextDisplay = editorPane(contentType: 'text/html',
|
||||
constraints: 'display',
|
||||
editable: false,
|
||||
preferredSize: [10, 10],
|
||||
mouseClicked: { evt ->
|
||||
mouseClicked: {evt ->
|
||||
if (evt.clickCount > 1)
|
||||
issueTextPanelLayout.show(issueTextPanel, "editor")
|
||||
issueTextPanelLayout.show(issueTextPanel, 'editor')
|
||||
})
|
||||
}
|
||||
|
||||
|
141
pit-swing/griffonw
Normal file
141
pit-swing/griffonw
Normal file
@ -0,0 +1,141 @@
|
||||
#!/bin/bash
|
||||
|
||||
##############################################################################
|
||||
## ##
|
||||
## Griffon wrapper script for UN*X ##
|
||||
## ##
|
||||
##############################################################################
|
||||
|
||||
# Uncomment those lines to set JVM options. GRIFFON_OPTS and JAVA_OPTS can be used together.
|
||||
# GRIFFON_OPTS="$GRIFFON_OPTS -Xmx512"
|
||||
# JAVA_OPTS="$JAVA_OPTS -Xmx512"
|
||||
|
||||
GRIFFON_APP_NAME=Griffon
|
||||
|
||||
warn ( ) {
|
||||
echo "${PROGNAME}: $*"
|
||||
}
|
||||
|
||||
die ( ) {
|
||||
warn "$*"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
esac
|
||||
|
||||
# Attempt to set JAVA_HOME if it's not already set.
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
if $darwin ; then
|
||||
[ -z "$JAVA_HOME" -a -d "/Library/Java/Home" ] && export JAVA_HOME="/Library/Java/Home"
|
||||
[ -z "$JAVA_HOME" -a -d "/System/Library/Frameworks/JavaVM.framework/Home" ] && export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
|
||||
else
|
||||
javaExecutable="`which javac`"
|
||||
[ -z "$javaExecutable" -o "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ] && die "JAVA_HOME not set and cannot find javac to deduce location, please set JAVA_HOME."
|
||||
# readlink(1) is not available as standard on Solaris 10.
|
||||
readLink=`which readlink`
|
||||
[ `expr "$readLink" : '\([^ ]*\)'` = "no" ] && die "JAVA_HOME not set and readlink not available, please set JAVA_HOME."
|
||||
javaExecutable="`readlink -f \"$javaExecutable\"`"
|
||||
javaHome="`dirname \"$javaExecutable\"`"
|
||||
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
|
||||
export JAVA_HOME="$javaHome"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Cygwin, ensure paths are in UNIX format before anything is touched.
|
||||
if $cygwin ; then
|
||||
[ -n "$JAVACMD" ] && JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||
fi
|
||||
|
||||
STARTER_MAIN_CLASS=org.gradle.wrapper.GriffonWrapperMain
|
||||
CLASSPATH=`dirname "$0"`/wrapper/griffon-wrapper.jar
|
||||
WRAPPER_PROPERTIES=`dirname "$0"`/wrapper/griffon-wrapper.properties
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -z "$JAVACMD" ] ; then
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
fi
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "JAVA_HOME is not defined correctly, can not execute: $JAVACMD"
|
||||
fi
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
warn "JAVA_HOME environment variable is not set"
|
||||
fi
|
||||
|
||||
# For Darwin, add GRIFFON_APP_NAME to the JAVA_OPTS as -Xdock:name
|
||||
if $darwin; then
|
||||
JAVA_OPTS="$JAVA_OPTS -Xdock:name=$GRIFFON_APP_NAME"
|
||||
# we may also want to set -Xdock:image
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
JAVA_HOME=`cygpath --path --mixed "$JAVA_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRIFFON_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRIFFON_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
done
|
||||
case $i in
|
||||
(0) set -- ;;
|
||||
(1) set -- "$args0" ;;
|
||||
(2) set -- "$args0" "$args1" ;;
|
||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
"$JAVACMD" $JAVA_OPTS $GRIFFON_OPTS \
|
||||
-classpath "$CLASSPATH" \
|
||||
-Dorg.gradle.wrapper.properties="$WRAPPER_PROPERTIES" \
|
||||
$STARTER_MAIN_CLASS \
|
||||
"$@"
|
126
pit-swing/griffonw.bat
Normal file
126
pit-swing/griffonw.bat
Normal file
@ -0,0 +1,126 @@
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem ##
|
||||
@rem Griffon startup script for Windows ##
|
||||
@rem ##
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem
|
||||
@rem $Revision: 10602 $ $Date: 2008-01-25 02:49:54 +0100 (ven., 25 janv. 2008) $
|
||||
@rem
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
@rem Uncomment those lines to set JVM options. GRIFFON_OPTS and JAVA_OPTS can be used together.
|
||||
@rem set GRIFFON_OPTS=%GRIFFON_OPTS% -Xmx512
|
||||
@rem set JAVA_OPTS=%JAVA_OPTS% -Xmx512
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.\
|
||||
|
||||
@rem Determine the command interpreter to execute the "CD" later
|
||||
set COMMAND_COM="cmd.exe"
|
||||
if exist "%SystemRoot%\system32\cmd.exe" set COMMAND_COM="%SystemRoot%\system32\cmd.exe"
|
||||
if exist "%SystemRoot%\command.com" set COMMAND_COM="%SystemRoot%\command.com"
|
||||
|
||||
@rem Use explicit find.exe to prevent cygwin and others find.exe from being used
|
||||
set FIND_EXE="find.exe"
|
||||
if exist "%SystemRoot%\system32\find.exe" set FIND_EXE="%SystemRoot%\system32\find.exe"
|
||||
if exist "%SystemRoot%\command\find.exe" set FIND_EXE="%SystemRoot%\command\find.exe"
|
||||
|
||||
:check_JAVA_HOME
|
||||
@rem Make sure we have a valid JAVA_HOME
|
||||
if not "%JAVA_HOME%" == "" goto have_JAVA_HOME
|
||||
|
||||
echo.
|
||||
echo ERROR: Environment variable JAVA_HOME has not been set.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
echo.
|
||||
goto end
|
||||
|
||||
:have_JAVA_HOME
|
||||
@rem Validate JAVA_HOME
|
||||
%COMMAND_COM% /C DIR "%JAVA_HOME%" 2>&1 | %FIND_EXE% /I /C "%JAVA_HOME%" >nul
|
||||
if not errorlevel 1 goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME might be set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation if there are problems.
|
||||
echo.
|
||||
|
||||
:init
|
||||
@rem get name of script to launch with full path
|
||||
@rem Get command-line arguments, handling Windowz variants
|
||||
SET _marker=%JAVA_HOME: =%
|
||||
@rem IF NOT "%_marker%" == "%JAVA_HOME%" ECHO JAVA_HOME "%JAVA_HOME%" contains spaces. Please change to a location without spaces if this causes problems.
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
if "%eval[2+2]" == "4" goto 4NT_args
|
||||
|
||||
IF "%_marker%" == "%JAVA_HOME%" goto :win9xME_args
|
||||
|
||||
set _FIXPATH=
|
||||
call :fixpath "%JAVA_HOME%"
|
||||
set JAVA_HOME=%_FIXPATH:~1%
|
||||
|
||||
goto win9xME_args
|
||||
|
||||
:fixpath
|
||||
if not %1.==. (
|
||||
for /f "tokens=1* delims=;" %%a in (%1) do (
|
||||
call :shortfilename "%%a" & call :fixpath "%%b"
|
||||
)
|
||||
)
|
||||
goto :EOF
|
||||
:shortfilename
|
||||
for %%i in (%1) do set _FIXPATH=%_FIXPATH%;%%~fsi
|
||||
goto :EOF
|
||||
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
goto execute
|
||||
|
||||
:4NT_args
|
||||
@rem Get arguments from the 4NT Shell from JP Software
|
||||
set CMD_LINE_ARGS=%$
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set STARTER_MAIN_CLASS=org.gradle.wrapper.GriffonWrapperMain
|
||||
set CLASSPATH=%DIRNAME%\wrapper\griffon-wrapper.jar
|
||||
set WRAPPER_PROPERTIES=%DIRNAME%\wrapper\griffon-wrapper.properties
|
||||
set JAVA_EXE=%JAVA_HOME%\bin\java.exe
|
||||
|
||||
set GRIFFON_OPTS=%JAVA_OPTS% %GRIFFON_OPTS% -Dorg.gradle.wrapper.properties="%WRAPPER_PROPERTIES%"
|
||||
|
||||
"%JAVA_EXE%" %GRIFFON_OPTS% -classpath "%CLASSPATH%" %STARTER_MAIN_CLASS% %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
if not "%OS%"=="Windows_NT" echo 1 > nul | choice /n /c:1
|
||||
|
||||
rem Set variable GRIFFON_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRIFFON_EXIT_CONSOLE%" exit "%ERRORLEVEL%"
|
||||
exit /b "%ERRORLEVEL%"
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
@ -1,43 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module relativePaths="true" type="GRIFFON_MODULE" version="4">
|
||||
<component name="FacetManager">
|
||||
<facet type="Griffon" name="Griffon">
|
||||
<configuration />
|
||||
</facet>
|
||||
<!--
|
||||
<facet type="Spring" name="Spring">
|
||||
<configuration>
|
||||
<fileset id="Griffon" name="Griffon" removed="false">
|
||||
<file>file://$MODULE_DIR$/web-app/WEB-INF/applicationContext.xml</file>
|
||||
</fileset>
|
||||
</configuration>
|
||||
</facet>
|
||||
-->
|
||||
</component>
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/griffon-app/conf" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/griffon-app/models" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/griffon-app/views" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/griffon-app/controllers" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/griffon-app/lifecycle" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/test/integration" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/test/unit" isTestSource="true" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="Griffon 0.3" level="project" />
|
||||
<orderEntry type="module-library">
|
||||
<library name="Griffon User Library">
|
||||
<CLASSES>
|
||||
<root url="file://$MODULE_DIR$/lib" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
<jarDirectory url="file://$MODULE_DIR$/lib" recursive="false" />
|
||||
</library>
|
||||
</orderEntry>
|
||||
</component>
|
||||
</module>
|
@ -1,59 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project relativePaths="false" version="4">
|
||||
<component name="ProjectFileVersion" converted="true" />
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/pit-swing.iml" filepath="$PROJECT_DIR$/pit-swing.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_5" assert-keyword="true" jdk-15="true" project-jdk-name="1.6" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
<component name="libraryTable">
|
||||
<library name="Griffon 0.3">
|
||||
<CLASSES>
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/svnkit-1.2.0.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/ant-junit-1.8.0.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/ant-launcher-1.8.0.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/ant-trax-1.8.0.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/ant-nodeps-1.8.0.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/ant-1.8.0.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/jline-0.9.94.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/commons-logging-1.1.1.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/spring-2.5.6.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/gant_groovy1.6-1.6.0.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/junit-4.8.1.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/log4j-1.2.15.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/asm-3.2.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/groovy-all-1.7.1.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/commons-cli-1.2.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/lib/commons-lang-2.4.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/dist/griffon-resources-0.3.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/dist/griffon-cli-0.3.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/dist/griffon-scripts-0.3.jar!/" />
|
||||
|
||||
<root url="jar:///home/jdbernard/programs/griffon/dist/griffon-rt-0.3.jar!/" />
|
||||
|
||||
|
||||
</CLASSES>
|
||||
</library>
|
||||
</component>
|
||||
</project>
|
@ -1,65 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project relativePaths="false" version="4">
|
||||
<component name="ProjectPane">
|
||||
<subPane>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="pit-swing" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="pit-swing" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="pit-swing" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
</subPane>
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator currentView="ProjectPane" proportions="0.5" version="1" splitterProportion="0.5">
|
||||
<flattenPackages />
|
||||
<showMembers />
|
||||
<showModules />
|
||||
<showLibraryContents />
|
||||
<hideEmptyPackages />
|
||||
<abbreviatePackageNames />
|
||||
<showStructure ProjectPane="false" />
|
||||
<autoscrollToSource />
|
||||
<autoscrollFromSource />
|
||||
<sortByType />
|
||||
</navigator>
|
||||
</component>
|
||||
<!--
|
||||
<component name="RunManager" selected="Griffon Application.Griffon:pit-swing">
|
||||
<configuration default="false" name="Griffon:pit-swing" type="GriffonRunConfigurationType" factoryName="Griffon Application">
|
||||
<module name="pit-swing" />
|
||||
<setting name="vmparams" value="" />
|
||||
<setting name="griffonparams" value="" />
|
||||
<setting name="hostik" value="localhost" />
|
||||
<setting name="port" value="8080" />
|
||||
<setting name="jndi" value="false" />
|
||||
<setting name="recomp" value="false" />
|
||||
<setting name="recompileFreq" value="3" />
|
||||
<setting name="launchBrowser" value="true" />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method>
|
||||
<option name="Make" value="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
<list size="1">
|
||||
<item index="0" class="java.lang.String" itemvalue="Griffon Application.Griffon:pit-swing" />
|
||||
</list>
|
||||
</component>
|
||||
-->
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="10" y="10" width="1260" height="984" extended-state="0" />
|
||||
<editor active="false" />
|
||||
<layout>
|
||||
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.25" sideWeight="0.6623068" order="0" side_tool="false" />
|
||||
</layout>
|
||||
</component>
|
||||
</project>
|
@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.codehaus.griffon.GriffonMain"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
|
||||
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER" javaProject="pit-swing" path="1" type="4"/> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry id="org.eclipse.jdt.launching.classpathentry.defaultClasspath"> <memento exportedEntriesOnly="false" project="pit-swing"/> </runtimeClasspathEntry> "/>
|
||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/pit-swing" path="3" type="2"/> "/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="pit-swing"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dbase.dir=${project_loc} -Dgriffon.env=development"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/pit-swing"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
||||
</launchConfiguration>
|
@ -1,73 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>documents</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>filename</key>
|
||||
<string>pit-swing.launch</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>filename</key>
|
||||
<string>build.xml</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>griffon-app</string>
|
||||
<key>regexFolderFilter</key>
|
||||
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
|
||||
<key>sourceDirectory</key>
|
||||
<string>griffon-app</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>test</string>
|
||||
<key>regexFolderFilter</key>
|
||||
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
|
||||
<key>sourceDirectory</key>
|
||||
<string>test</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>lib</string>
|
||||
<key>regexFolderFilter</key>
|
||||
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
|
||||
<key>sourceDirectory</key>
|
||||
<string>lib</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>scripts</string>
|
||||
<key>regexFolderFilter</key>
|
||||
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
|
||||
<key>sourceDirectory</key>
|
||||
<string>scripts</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>src</string>
|
||||
<key>regexFolderFilter</key>
|
||||
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
|
||||
<key>sourceDirectory</key>
|
||||
<string>src</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>web-app</string>
|
||||
<key>regexFolderFilter</key>
|
||||
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
|
||||
<key>sourceDirectory</key>
|
||||
<string>web-app</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>fileHierarchyDrawerWidth</key>
|
||||
<integer>200</integer>
|
||||
<key>metaData</key>
|
||||
<dict/>
|
||||
<key>showFileHierarchyDrawer</key>
|
||||
<true/>
|
||||
<key>windowFrame</key>
|
||||
<string>{{237, 127}, {742, 553}}</string>
|
||||
</dict>
|
||||
</plist>
|
File diff suppressed because it is too large
Load Diff
@ -1,33 +0,0 @@
|
||||
package com.jdbernard.pit.swing
|
||||
|
||||
|
||||
|
||||
import org.fest.swing.fixture.*
|
||||
import griffon.test.FestSwingTestCase
|
||||
|
||||
import javax.swing.JDialog
|
||||
|
||||
class NewIssueDialogTestTests extends FestSwingTestCase {
|
||||
// instance variables:
|
||||
// app - current application
|
||||
// window - value returned from initWindow()
|
||||
// defaults to app.appFrames[0]
|
||||
|
||||
JDialog newIssueDialog
|
||||
|
||||
void testSomething() {
|
||||
|
||||
}
|
||||
|
||||
protected void onSetUp() throws Exception {
|
||||
println app.appFrames
|
||||
}
|
||||
|
||||
protected void onTearDown() throws Exception { }
|
||||
|
||||
/*
|
||||
protected FrameFixture initWindow() {
|
||||
return new FrameFixture(app.appFrames[0])
|
||||
}
|
||||
*/
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
import griffon.util.IGriffonApplication
|
||||
|
||||
class NewIssueDialogTests extends GroovyTestCase {
|
||||
|
||||
IGriffonApplication app
|
||||
|
||||
void testSomething() {
|
||||
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
import griffon.util.IGriffonApplication
|
||||
|
||||
class PITTests extends GroovyTestCase {
|
||||
|
||||
IGriffonApplication app
|
||||
|
||||
void testSomething() {
|
||||
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
import griffon.util.IGriffonApplication
|
||||
|
||||
class PitSwingTests extends GroovyTestCase {
|
||||
|
||||
IGriffonApplication app
|
||||
|
||||
void testSomething() {
|
||||
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
import griffon.util.IGriffonApplication
|
||||
|
||||
class ProjectPanelTests extends GroovyTestCase {
|
||||
|
||||
IGriffonApplication app
|
||||
|
||||
void testSomething() {
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package pit.swing
|
||||
|
||||
import griffon.core.GriffonApplication
|
||||
import griffon.test.*
|
||||
|
||||
class NewIssueDialogTests extends GriffonUnitTestCase {
|
||||
GriffonApplication app
|
||||
|
||||
protected void setUp() {
|
||||
super.setUp()
|
||||
}
|
||||
|
||||
protected void tearDown() {
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
void testSomething() {
|
||||
|
||||
}
|
||||
}
|
20
pit-swing/test/integration/pit/swing/PITests.groovy
Normal file
20
pit-swing/test/integration/pit/swing/PITests.groovy
Normal file
@ -0,0 +1,20 @@
|
||||
package pit.swing
|
||||
|
||||
import griffon.core.GriffonApplication
|
||||
import griffon.test.*
|
||||
|
||||
class PITests extends GriffonUnitTestCase {
|
||||
GriffonApplication app
|
||||
|
||||
protected void setUp() {
|
||||
super.setUp()
|
||||
}
|
||||
|
||||
protected void tearDown() {
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
void testSomething() {
|
||||
|
||||
}
|
||||
}
|
20
pit-swing/test/integration/pit/swing/PitSwingTests.groovy
Normal file
20
pit-swing/test/integration/pit/swing/PitSwingTests.groovy
Normal file
@ -0,0 +1,20 @@
|
||||
package pit.swing
|
||||
|
||||
import griffon.core.GriffonApplication
|
||||
import griffon.test.*
|
||||
|
||||
class PitSwingTests extends GriffonUnitTestCase {
|
||||
GriffonApplication app
|
||||
|
||||
protected void setUp() {
|
||||
super.setUp()
|
||||
}
|
||||
|
||||
protected void tearDown() {
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
void testSomething() {
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package pit.swing
|
||||
|
||||
import griffon.core.GriffonApplication
|
||||
import griffon.test.*
|
||||
|
||||
class ProjectPanelTests extends GriffonUnitTestCase {
|
||||
GriffonApplication app
|
||||
|
||||
protected void setUp() {
|
||||
super.setUp()
|
||||
}
|
||||
|
||||
protected void tearDown() {
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
void testSomething() {
|
||||
|
||||
}
|
||||
}
|
BIN
pit-swing/wrapper/griffon-wrapper.jar
Normal file
BIN
pit-swing/wrapper/griffon-wrapper.jar
Normal file
Binary file not shown.
8
pit-swing/wrapper/griffon-wrapper.properties
Normal file
8
pit-swing/wrapper/griffon-wrapper.properties
Normal file
@ -0,0 +1,8 @@
|
||||
distributionBase=GRIFFON_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRIFFON_USER_HOME
|
||||
distributionVersion=0.9
|
||||
zipStorePath=wrapper/dists
|
||||
urlRoot=http\://dist.codehaus.org/griffon
|
||||
distributionName=griffon
|
||||
distributionClassifier=bin
|
@ -1 +1 @@
|
||||
application.version=2.5.0
|
||||
application.version=2.5.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user