@@ -229,28 +229,58 @@ public void changed(final ObservableValue<? extends Project> observable, final P
229229
230230 projectComboBox .getEditor ().textProperty ().addListener (new ChangeListener <String >() {
231231
232+ Boolean isValidProject = true ;
233+
232234 @ Override
233235 public void changed (final ObservableValue <? extends String > observable , final String oldValue ,
234236 final String newValue ) {
235- LOG .debug ("text Changed" );
236237
237238 // ignore selectionChanges
238- if (comboChange == true ) {
239+ if (comboChange ) {
239240 comboChange = false ;
241+ // needed to avoid exception on empty textfield https://bugs.openjdk.java.net/browse/JDK-8081700
242+ Platform .runLater (() -> {
243+ isValidProject = true ;
244+ projectComboBox .getEditor ().selectAll ();
245+ });
246+
240247 return ;
241248 }
249+
250+ // is necessary to not autoselect same Project if Project was selected
251+ if (isValidProject ) {
252+ isValidProject = false ;
253+ projectComboBox .getSelectionModel ().clearSelection ();
254+ }
242255 // needed to avoid exception on empty textfield https://bugs.openjdk.java.net/browse/JDK-8081700
243256 Platform .runLater (() -> {
244- LOG .debug ("Value :" + newValue );
257+ LOG .debug ("Search :" + newValue );
245258 projectComboBox .hide ();
246259 projectComboBox .setItems (model .getAllProjects ().filtered (
247260 (project ) -> ProjectsListViewController .doesProjectMatchSearchFilter (newValue , project )));
248- projectComboBox .show ();
261+ if (projectComboBox .getEditor ().focusedProperty ().get ()) {
262+ projectComboBox .show ();
263+ }
264+
249265 });
250266
251267 }
252268 });
253269
270+ projectComboBox .getEditor ().focusedProperty ().addListener (new ChangeListener <Boolean >() {
271+
272+ @ Override
273+ public void changed (final ObservableValue <? extends Boolean > observable , final Boolean oldIsFocused ,
274+ final Boolean newIsFocused ) {
275+ if (newIsFocused ) {
276+ Platform .runLater (() -> projectComboBox .getEditor ().selectAll ());
277+ } else {
278+ projectComboBox .hide ();
279+ }
280+
281+ }
282+ });
283+
254284 }
255285
256286 public void initializeWith (final Work work ) {
0 commit comments