Skip to content

Commit 0ae3be5

Browse files
support execution outside of SQL Developer
1 parent dc2bfb1 commit 0ae3be5

File tree

1 file changed

+34
-6
lines changed

1 file changed

+34
-6
lines changed

sqldev/src/main/java/org/utplsql/sqldev/runner/UtplsqlRunner.xtend

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,15 @@
1515
*/
1616
package org.utplsql.sqldev.runner
1717

18+
import java.awt.Dimension
19+
import java.awt.Toolkit
1820
import java.sql.Connection
1921
import java.text.SimpleDateFormat
2022
import java.util.Date
2123
import java.util.List
2224
import java.util.UUID
2325
import java.util.logging.Logger
26+
import javax.swing.JFrame
2427
import oracle.dbtools.raptor.utils.Connections
2528
import org.utplsql.sqldev.dal.RealtimeReporterDao
2629
import org.utplsql.sqldev.dal.RealtimeReporterEventConsumer
@@ -185,15 +188,40 @@ class UtplsqlRunner implements RealtimeReporterEventConsumer {
185188
}
186189
}
187190

188-
def runTestAsync() {
189-
// show dockable
190-
val dockable = RunnerFactory.dockable as RunnerView
191-
if (dockable === null) {
191+
private def isRunningInSqlDeveloper() {
192+
return connectionName !== null
193+
}
194+
195+
private def initGUI() {
196+
var RunnerView dockable = null
197+
if (runningInSqlDeveloper && (dockable = RunnerFactory.dockable as RunnerView) === null) {
192198
logger.severe('''Error getting utPLSQL dockable. Cannot run utPLSQL test.''')
199+
return false
193200
} else {
194-
RunnerFactory.showDockable;
195-
panel = dockable.runnerPanel
201+
if (runningInSqlDeveloper) {
202+
RunnerFactory.showDockable;
203+
panel = dockable.runnerPanel
204+
} else {
205+
val frame = new JFrame("utPLSQL Runner Panel")
206+
frame.defaultCloseOperation = JFrame.EXIT_ON_CLOSE;
207+
panel = new RunnerPanel
208+
frame.add(panel.getGUI)
209+
val frameSize = new Dimension(500, 500)
210+
frame.minimumSize = frameSize
211+
frame.preferredSize = frameSize
212+
frame.pack
213+
val dim = Toolkit.getDefaultToolkit().getScreenSize();
214+
frame.setLocation(dim.width / 2 - frame.getSize().width / 2, dim.height / 2 - frame.getSize().height / 2);
215+
frame.setVisible(true)
216+
}
196217
initRun
218+
}
219+
return true
220+
}
221+
222+
def runTestAsync() {
223+
// start tests when the GUI has been successfully initialized.
224+
if (initGUI) {
197225
// the producer
198226
val Runnable producer = [|produce]
199227
producerThread = new Thread(producer)

0 commit comments

Comments
 (0)