1515 */
1616package org.utplsql.sqldev
1717
18+ import javax.swing.BorderFactory
1819import javax.swing.JCheckBox
20+ import javax.swing.JPanel
21+ import javax.swing.JSpinner
22+ import javax.swing.JTextField
23+ import javax.swing.SpinnerNumberModel
1924import oracle.ide.panels.DefaultTraversablePanel
2025import oracle.ide.panels.TraversableContext
2126import oracle.ide.panels.TraversalException
2227import oracle.javatools.ui.layout.FieldLayoutBuilder
2328import org.utplsql.sqldev.model.preference.PreferenceModel
2429import org.utplsql.sqldev.resources.UtplsqlResources
30+ import javax.swing.JButton
31+ import java.awt.event.ActionEvent
32+ import java.awt.event.ActionListener
2533
2634class PreferencePanel extends DefaultTraversablePanel {
35+ val JPanel runTestPanel = new JPanel ();
2736 val JCheckBox unsharedWorksheetCheckBox = new JCheckBox
2837 val JCheckBox resetPackageCheckBox = new JCheckBox
2938 val JCheckBox clearScreenCheckBox = new JCheckBox
3039 val JCheckBox autoExecuteCheckBox = new JCheckBox
3140 val JCheckBox checkRunUtplsqlTestCheckBox = new JCheckBox
41+ val JPanel generateTestPanel = new JPanel ();
42+ val JTextField testPackagePrefixTextField = new JTextField
43+ val JTextField testPackageSuffixTextField = new JTextField
44+ val JTextField testUnitPrefixTextField = new JTextField
45+ val JTextField testUnitSuffixTextField = new JTextField
46+ val SpinnerNumberModel numberOfTestsPerUnitModel = new SpinnerNumberModel (1 , 1 , 10 , 1 );
47+ val JSpinner numberOfTestsPerUnitSpinner = new JSpinner (numberOfTestsPerUnitModel);
48+ val JCheckBox checkGenerateUtplsqlTestCheckBox = new JCheckBox
49+ val JCheckBox generateCommentsCheckBox = new JCheckBox
50+ val JCheckBox disableTestsCheckBox = new JCheckBox
51+ val JTextField suitePathTextField = new JTextField
52+ val SpinnerNumberModel indentSpacesModel = new SpinnerNumberModel (1 , 1 , 8 , 1 );
53+ val JSpinner indentSpacesSpinner = new JSpinner (indentSpacesModel);
54+ val JPanel oddgenPanel = new JPanel ();
55+ val JTextField rootFolderInOddgenViewTextField = new JTextField
56+ val JCheckBox generateFilesCheckBox = new JCheckBox
57+ val JTextField outputDirectoryTextField = new JTextField
58+ val JButton outputDirectoryBrowse = new JButton ();
3259
3360 new () {
3461 layoutControls()
3562 }
3663
3764 def private layoutControls () {
38- val FieldLayoutBuilder builder = new FieldLayoutBuilder (this )
39- builder. alignLabelsLeft = true
40- builder. add(
41- builder. field. label. withText(UtplsqlResources . getString(" PREF_UNSHARED_WORKSHEET_LABEL" )). component(
65+ // run test group
66+ runTestPanel. border = BorderFactory . createTitledBorder(UtplsqlResources . getString(" MENU_RUN_TEST_LABEL" ))
67+ val FieldLayoutBuilder b1 = new FieldLayoutBuilder (runTestPanel)
68+ b1. alignLabelsLeft = true
69+ b1. add(
70+ b1. field. label. withText(UtplsqlResources . getString(" PREF_UNSHARED_WORKSHEET_LABEL" )). component(
4271 unsharedWorksheetCheckBox))
43- builder . add(
44- builder . field. label. withText(UtplsqlResources . getString(" PREF_RESET_PACKAGE_LABEL" )). component(
72+ b1 . add(
73+ b1 . field. label. withText(UtplsqlResources . getString(" PREF_RESET_PACKAGE_LABEL" )). component(
4574 resetPackageCheckBox))
46- builder . add(
47- builder . field. label. withText(UtplsqlResources . getString(" PREF_CLEAR_SCREEN_LABEL" )). component(
75+ b1 . add(
76+ b1 . field. label. withText(UtplsqlResources . getString(" PREF_CLEAR_SCREEN_LABEL" )). component(
4877 clearScreenCheckBox))
49- builder . add(
50- builder . field. label. withText(UtplsqlResources . getString(" PREF_AUTO_EXECUTE_LABEL" )). component(
78+ b1 . add(
79+ b1 . field. label. withText(UtplsqlResources . getString(" PREF_AUTO_EXECUTE_LABEL" )). component(
5180 autoExecuteCheckBox))
52- builder . add(
53- builder . field. label. withText(UtplsqlResources . getString(" PREF_CHECK_RUN_UTPLSQL_TEST_LABEL" )). component(
81+ b1 . add(
82+ b1 . field. label. withText(UtplsqlResources . getString(" PREF_CHECK_RUN_UTPLSQL_TEST_LABEL" )). component(
5483 checkRunUtplsqlTestCheckBox))
84+ // generate test group
85+ generateTestPanel. border = BorderFactory . createTitledBorder(UtplsqlResources . getString(" MENU_GENERATE_TEST_LABEL" ))
86+ val FieldLayoutBuilder b2 = new FieldLayoutBuilder (generateTestPanel)
87+ b2. alignLabelsLeft = true
88+ b2. add(
89+ b2. field. label. withText(UtplsqlResources . getString(" PREF_TEST_PACKAGE_PREFIX_LABEL" )). component(
90+ testPackagePrefixTextField))
91+ b2. add(
92+ b2. field. label. withText(UtplsqlResources . getString(" PREF_TEST_PACKAGE_SUFFIX_LABEL" )). component(
93+ testPackageSuffixTextField))
94+ b2. add(
95+ b2. field. label. withText(UtplsqlResources . getString(" PREF_TEST_UNIT_PREFIX_LABEL" )). component(
96+ testUnitPrefixTextField))
97+ b2. add(
98+ b2. field. label. withText(UtplsqlResources . getString(" PREF_TEST_UNIT_SUFFIX_LABEL" )). component(
99+ testUnitSuffixTextField))
100+ b2. add(
101+ b2. field. label. withText(UtplsqlResources . getString(" PREF_NUMBER_OF_TESTS_PER_UNIT_LABEL" )). component(
102+ numberOfTestsPerUnitSpinner))
103+ b2. add(
104+ b2. field. label. withText(UtplsqlResources . getString(" PREF_GENERATE_COMMENTS_LABEL" )). component(
105+ generateCommentsCheckBox))
106+ b2. add(
107+ b2. field. label. withText(UtplsqlResources . getString(" PREF_DISABLE_TESTS_LABEL" )). component(
108+ disableTestsCheckBox))
109+ b2. add(
110+ b2. field. label. withText(UtplsqlResources . getString(" PREF_SUITE_PATH_LABEL" )). component(
111+ suitePathTextField))
112+ b2. add(
113+ b2. field. label. withText(UtplsqlResources . getString(" PREF_INDENT_SPACES_LABEL" )). component(
114+ indentSpacesSpinner))
115+ b2. add(
116+ b2. field. label. withText(UtplsqlResources . getString(" PREF_CHECK_GENERATE_UTPLSQL_TEST_LABEL" )). component(
117+ checkGenerateUtplsqlTestCheckBox))
118+ // oddgen group
119+ oddgenPanel. border = BorderFactory . createTitledBorder(" oddgen" )
120+ val FieldLayoutBuilder b3 = new FieldLayoutBuilder (oddgenPanel)
121+ b3. alignLabelsLeft = true
122+ b3. stretchComponentsWithNoButton = true
123+ b3. add(
124+ b3. field. label. withText(UtplsqlResources . getString(" PREF_ROOT_FOLDER_IN_ODDGEN_VIEW_LABEL" )). component(
125+ rootFolderInOddgenViewTextField))
126+ b3. add(
127+ b3. field. label. withText(UtplsqlResources . getString(" PREF_GENERATE_FILES_LABEL" )). component(
128+ generateFilesCheckBox))
129+ b3. add(
130+ b3. field. label. withText(UtplsqlResources . getString(" PREF_OUTPUT_DIRECTORY_LABEL" )). component(
131+ outputDirectoryTextField). button(outputDirectoryBrowse). withText(" Bro&wse" ))
132+
133+ // putting everything together
134+ val FieldLayoutBuilder builder = new FieldLayoutBuilder (this )
135+ builder. alignLabelsLeft = true
136+ builder. addVerticalField(" " , runTestPanel)
137+ builder. addVerticalField(" " , generateTestPanel)
138+ builder. addVerticalField(" " , oddgenPanel)
55139 builder. addVerticalSpring
140+
141+ // register action listener for directory chooser
142+ outputDirectoryBrowse. addActionListener(new ActionListener () {
143+ override actionPerformed(ActionEvent event) {
144+ DirectoryChooser . choose(null , UtplsqlResources . getString(" PREF_OUTPUT_DIRECTORY_LABEL" ),
145+ outputDirectoryTextField)
146+ }
147+ })
56148 }
57149
58150 override onEntry (TraversableContext traversableContext ) {
@@ -62,6 +154,19 @@ class PreferencePanel extends DefaultTraversablePanel {
62154 clearScreenCheckBox. selected = info. clearScreen
63155 autoExecuteCheckBox. selected = info. autoExecute
64156 checkRunUtplsqlTestCheckBox. selected = info. checkRunUtplsqlTest
157+ testPackagePrefixTextField. text = info. testPackagePrefix
158+ testPackageSuffixTextField. text = info. testPackageSuffix
159+ testUnitPrefixTextField. text = info. testUnitPrefix
160+ testUnitSuffixTextField. text = info. testUnitSuffix
161+ numberOfTestsPerUnitSpinner. value = info. numberOfTestsPerUnit
162+ checkGenerateUtplsqlTestCheckBox. selected = info. checkGenerateUtplsqlTest
163+ generateCommentsCheckBox. selected = info. generateComments
164+ disableTestsCheckBox. selected = info. disableTests
165+ suitePathTextField. text = info. suitePath
166+ indentSpacesSpinner. value = info. indentSpaces
167+ rootFolderInOddgenViewTextField. text = info. rootFolderInOddgenView
168+ generateFilesCheckBox. selected = info. generateFiles
169+ outputDirectoryTextField. text = info. outputDirectory
65170 super . onEntry(traversableContext)
66171 }
67172
@@ -72,6 +177,19 @@ class PreferencePanel extends DefaultTraversablePanel {
72177 info. clearScreen = clearScreenCheckBox. selected
73178 info. autoExecute = autoExecuteCheckBox. selected
74179 info. checkRunUtplsqlTest = checkRunUtplsqlTestCheckBox. selected
180+ info. testPackagePrefix = testPackagePrefixTextField. text
181+ info. testPackageSuffix = testPackageSuffixTextField. text
182+ info. testUnitPrefix = testUnitPrefixTextField. text
183+ info. testUnitSuffix = testUnitSuffixTextField. text
184+ info. numberOfTestsPerUnit = numberOfTestsPerUnitSpinner. value as Integer
185+ info. checkGenerateUtplsqlTest = checkGenerateUtplsqlTestCheckBox. selected
186+ info. generateComments = generateCommentsCheckBox. selected
187+ info. disableTests = disableTestsCheckBox. selected
188+ info. suitePath = suitePathTextField. text
189+ info. indentSpaces = indentSpacesSpinner. value as Integer
190+ info. rootFolderInOddgenView = rootFolderInOddgenViewTextField. text
191+ info. generateFiles = generateFilesCheckBox. selected
192+ info. outputDirectory = outputDirectoryTextField. text
75193 super . onExit(traversableContext)
76194 }
77195
0 commit comments