@@ -20,6 +20,7 @@ import java.awt.event.ActionListener
2020import java.util.Map
2121import javax.swing.JButton
2222import javax.swing.JCheckBox
23+ import javax.swing.JOptionPane
2324import javax.swing.JPanel
2425import javax.swing.JSpinner
2526import javax.swing.JTabbedPane
@@ -33,6 +34,7 @@ import oracle.ide.panels.TraversalException
3334import oracle.javatools.ui.layout.FieldLayoutBuilder
3435import org.utplsql.sqldev.model.preference.PreferenceModel
3536import org.utplsql.sqldev.resources.UtplsqlResources
37+ import org.utplsql.sqldev.snippet.SnippetMerger
3638import org.utplsql.sqldev.ui.common.DirectoryChooser
3739
3840class PreferencePanel extends DefaultTraversablePanel {
@@ -43,6 +45,7 @@ class PreferencePanel extends DefaultTraversablePanel {
4345 val JCheckBox clearScreenCheckBox = new JCheckBox
4446 val JCheckBox autoExecuteCheckBox = new JCheckBox
4547 val JCheckBox checkRunUtplsqlTestCheckBox = new JCheckBox
48+ val JButton importSnippetsButton = new JButton (UtplsqlResources . getString(" PREF_IMPORT_SNIPPETS_BUTTON_LABEL" ))
4649 val JPanel realtimeReporterPanel = new JPanel
4750 val SpinnerNumberModel numberOfRunsInHistoryModel = new SpinnerNumberModel (1 , 1 , 100 , 1 );
4851 val JSpinner numberOfRunsInHistorySpinner = new JSpinner (numberOfRunsInHistoryModel);
@@ -101,6 +104,7 @@ class PreferencePanel extends DefaultTraversablePanel {
101104 runTab. add(
102105 runTab. field. label. withText(UtplsqlResources . getString(" PREF_CHECK_RUN_UTPLSQL_TEST_LABEL" )). component(
103106 checkRunUtplsqlTestCheckBox))
107+ runTab. addRow(importSnippetsButton)
104108 runTab. addVerticalSpring
105109
106110 // realtime reporter group
@@ -200,6 +204,13 @@ class PreferencePanel extends DefaultTraversablePanel {
200204 builder. addVerticalField(" " , tabbedPane)
201205 builder. addVerticalSpring
202206
207+ // register action listener for import snippets button
208+ importSnippetsButton. addActionListener(new ActionListener () {
209+ override actionPerformed(ActionEvent event) {
210+ importSnippets
211+ }
212+ })
213+
203214 // register action listener for create code template button
204215 createCodeTemplatesButton. addActionListener(new ActionListener () {
205216 override actionPerformed(ActionEvent event) {
@@ -216,6 +227,15 @@ class PreferencePanel extends DefaultTraversablePanel {
216227 })
217228 }
218229
230+ private def importSnippets () {
231+ val snippetMerger = new SnippetMerger
232+ snippetMerger. merge
233+ val file = snippetMerger. file. absolutePath
234+ val message = String . format(UtplsqlResources . getString(" PREF_CONFIRM_IMPORT_MESSAGE" ), file)
235+ JOptionPane . showMessageDialog(null , message, UtplsqlResources . getString(" PREF_CONFIRM_IMPORT_TITLE" ),
236+ JOptionPane . INFORMATION_MESSAGE );
237+ }
238+
219239 private def loadCodeTemplates () {
220240 val Map<String , String > map = CodeTemplateUtil . loadFiles()
221241 for (key : map. keySet) {
0 commit comments