Serious bug-fixing, yo.
This commit is contained in:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user