@Override public void updateItem(LibraryListItem item, boolean empty) { super.updateItem(item, empty); setText(null); if (!empty && item != null) { updateLayout(item); if (item.getLibItem() != null) { // A qualifier needed to discriminate items is kept in the ID: // this applies to orientation as well as empty qualifiers. // FX8 qualifier is not kept as there's no ambiguity there. String id = item.getLibItem().getName(); if (id.contains(BuiltinLibrary.getFX8Qualifier())) { id = id.substring(0, id.indexOf(BuiltinLibrary.getFX8Qualifier())); } // If QE were about to test a localized version the ID should // remain unchanged. if (id.contains(BuiltinLibrary.getEmptyQualifier())) { id = id.replace(BuiltinLibrary.getEmptyQualifier(), EMPTY_QUALIFIER_ID); } graphic.setId(id); // for QE } setGraphic(graphic); } else { setGraphic(null); } }
private void handleMouseEvent(MouseEvent me) { // Handle cursor final Scene scene = getScene(); if (scene == null) { return; } // When another window is focused (just like the preview window), // we use default cursor if (scene.getWindow() != null && !scene.getWindow().isFocused()) { setCursor(Cursor.DEFAULT); return; } final LibraryListItem listItem = getItem(); ILibraryItem item = null; if (listItem != null) { item = listItem.getLibItem(); } boolean isSection = false; if (listItem != null && listItem.getSectionName() != null) { isSection = true; } if (me.getEventType() == MouseEvent.MOUSE_ENTERED) { if (isEmpty() || isSection) { setCursor(Cursor.DEFAULT); } else { setCursor(Cursor.OPEN_HAND); } } else if (me.getEventType() == MouseEvent.MOUSE_PRESSED) { if (isEmpty() || isSection) { setCursor(Cursor.DEFAULT); } else { setCursor(Cursor.CLOSED_HAND); } } else if (me.getEventType() == MouseEvent.MOUSE_RELEASED) { if (isEmpty() || isSection) { setCursor(Cursor.DEFAULT); } else { setCursor(Cursor.OPEN_HAND); } } else if (me.getEventType() == MouseEvent.MOUSE_EXITED) { setCursor(Cursor.DEFAULT); } else if (me.getEventType() == MouseEvent.MOUSE_CLICKED) { // On double click ask for addition of the drag able item on Content if (me.getClickCount() == 2 && me.getButton() == MouseButton.PRIMARY) { if (!isEmpty() && !isSection && item != null) { if (editorController.canPerformInsert(item)) { editorController.performInsert(item); } } } } }
private void updateLayout(LibraryListItem listItem) { assert listItem != null; if (listItem.getLibItem() != null) { final ILibraryItem item = listItem.getLibItem(); // The classname shall be space character free (it is an API name). // If there is a space character then it means a qualifier comes // right after. String classname = getClassName(item.getName()); iconImageView.setManaged(true); classNameLabel.setManaged(true); qualifierLabel.setManaged(true); sectionLabel.setManaged(false); iconImageView.setVisible(true); classNameLabel.setVisible(true); qualifierLabel.setVisible(true); sectionLabel.setVisible(false); classNameLabel.setText(classname); qualifierLabel.setText(getQualifier(item.getName())); // getIconURL can return null, this is deliberate. URL iconURL = item.getIconURL(); // Use missing icon if (iconURL == null) { iconURL = missingIconURL; } iconImageView.setImage(new Image(iconURL.toExternalForm())); } else if (listItem.getSectionName() != null) { iconImageView.setManaged(false); classNameLabel.setManaged(false); qualifierLabel.setManaged(false); sectionLabel.setManaged(true); iconImageView.setVisible(false); classNameLabel.setVisible(false); qualifierLabel.setVisible(false); sectionLabel.setVisible(true); sectionLabel.setText(listItem.getSectionName()); } }