@@ -82,7 +82,7 @@ public SqlConsolePane(SqlConnector sqlConnector) {
8282 listeners = new ArrayList <>();
8383
8484 queryTabPane = new TabPane ();
85- DraggingTabPaneSupport draggingSupport = new DraggingTabPaneSupport ("/icons/thunder.png" );
85+ var draggingSupport = new DraggingTabPaneSupport ("/icons/thunder.png" );
8686 draggingSupport .addSupport (queryTabPane );
8787 newConsoleTab = new Tab ("" );
8888 newConsoleTab .setGraphic (JavaFXUtils .createIcon ("/icons/add.png" ));
@@ -118,7 +118,7 @@ public SqlConsolePane(SqlConnector sqlConnector) {
118118 queryTabPane .getSelectionModel ().selectedItemProperty ().addListener (
119119 (ov , oldTab , newTab ) -> {
120120 if (newTab .getContent () != null ) {
121- CodeArea codeArea = (oldTab .getContent () != null ) ? ((VirtualizedScrollPane <CodeArea >) oldTab .getContent ()).getContent ()
121+ var codeArea = (oldTab .getContent () != null ) ? ((VirtualizedScrollPane <CodeArea >) oldTab .getContent ()).getContent ()
122122 : null ;
123123
124124 if (codeArea instanceof TextAnalyzer ) {
@@ -153,10 +153,10 @@ public SqlConsolePane(SqlConnector sqlConnector) {
153153 });
154154
155155 this .setOnDragDropped (event -> {
156- Dragboard db = event .getDragboard ();
157- boolean success = false ;
156+ var db = event .getDragboard ();
157+ var success = false ;
158158 if (db .hasFiles ()) {
159- File file = db .getFiles ().get (0 );
159+ var file = db .getFiles ().get (0 );
160160 SqlConsolePane .this .openNewFileTab (file );
161161 success = true ;
162162 }
@@ -175,11 +175,11 @@ public void destroySplitPane() {
175175
176176 @ SuppressWarnings ("unchecked" )
177177 private void addTab () {
178- Tab selectedTab = queryTabPane .getSelectionModel ().getSelectedItem ();
178+ var selectedTab = queryTabPane .getSelectionModel ().getSelectedItem ();
179179 if (selectedTab == newConsoleTab ) {
180180 this .openNewSqlConsoleTab ();
181181 } else {
182- CodeArea codeArea = ((VirtualizedScrollPane <CodeArea >) selectedTab .getContent ()).getContent ();
182+ var codeArea = ((VirtualizedScrollPane <CodeArea >) selectedTab .getContent ()).getContent ();
183183 if (codeArea instanceof CSqlCodeArea ) {
184184 codeAreaRef = (CSqlCodeArea ) codeArea ;
185185 }
@@ -197,23 +197,28 @@ private void showFileSearchPopOver() {
197197
198198 createFileSearchPopover ();
199199
200- Bounds boundsInScene = this .localToScreen (this .getBoundsInLocal ());
200+ var boundsInScene = this .localToScreen (this .getBoundsInLocal ());
201201 fileSearchPopOver .show (toolbar , boundsInScene .getMaxX () - 620 ,
202202 boundsInScene .getMinY ());
203203 }
204204
205205 private void openNewSqlConsoleTab () {
206- CSqlCodeArea sqlCodeArea = new CSqlCodeArea ();
206+ var sqlCodeArea = new CSqlCodeArea ();
207207 sqlCodeArea .wrapTextProperty ().bind (this .wrapTextCheckBox .selectedProperty ());
208208 sqlCodeArea .showLinesProperty ().bind (this .showLinesCheckBox .selectedProperty ());
209209 sqlCodeArea .autoCompleteProperty ().bind (this .autoCompleteOnTypeCheckBox .selectedProperty ());
210210
211211 sqlCodeArea .setRunAction (this ::executeButtonAction );
212212 sqlCodeArea .addEventHandler (SimpleEvent .EVENT_TYPE , simpleEvent -> SqlConsolePane .this .changed ());
213213
214- VirtualizedScrollPane <CodeArea > scrollPane = new VirtualizedScrollPane <>(sqlCodeArea );
215- Tab newTab = new Tab ("query " + queryTabPane .getTabs ().size (), scrollPane );
216- newTab .setOnClosed (event -> sqlCodeArea .stopTextAnalyzerDaemon ());
214+ var scrollPane = new VirtualizedScrollPane <>(sqlCodeArea );
215+ var newTab = new Tab ("query " + queryTabPane .getTabs ().size (), scrollPane );
216+
217+ var closeTabItem = new MenuItem ("Close Tab" , JavaFXUtils .createIcon ("/icons/minus.png" ));
218+ closeTabItem .setOnAction (event -> newTab .getTabPane ().getTabs ().remove (newTab ));
219+
220+ newTab .setContextMenu (new ContextMenu (closeTabItem ));
221+ newTab .setOnClosed (event -> sqlCodeArea .stopTextAnalyzerDaemon ());
217222
218223 queryTabPane .getTabs ().add (newTab );
219224 queryTabPane .getSelectionModel ().select (newTab );
0 commit comments