private boolean alreadyUsed(String url) { for (EditorItem item : super.getEditorItems()) { if (item.getValue().equals(url)) { return true; } } return false; }
private String getUrl(EditorItem source) { URL url = EditorUtils.getUrl(source.getValue(), fxmlFileLocation); if (url == null) { return null; } String urlStr = url.toExternalForm(); return urlStr; }
@SuppressWarnings("unchecked") @Override public void setValue(Object value) { if (value == null) { reset(); return; } assert value instanceof List; if (((List) value).isEmpty()) { reset(); return; } // Warning : value is the editing list. // We do not want to set the valueProperty() to editing list setValueGeneric(value); if (isSetValueDone()) { return; } type = getType((List<String>) value); updateMenuItems(); Iterator<EditorItem> itemsIter = new ArrayList<>(getEditorItems()).iterator(); for (String item : (List<String>) value) { item = item.trim(); if (item.isEmpty()) { continue; } EditorItem editorItem; if (itemsIter.hasNext()) { // re-use the current items first editorItem = itemsIter.next(); } else { // additional items required editorItem = addItem(new StylesheetItem(this, item)); } editorItem.setValue(item); } // Empty the remaining items, if needed while (itemsIter.hasNext()) { EditorItem editorItem = itemsIter.next(); removeItem(editorItem); } switchToItemList(); }
@Override public Object getValue() { List<String> value = FXCollections.observableArrayList(); // Group all the item values in a list for (EditorItem stylesheetItem : getEditorItems()) { String itemValue = stylesheetItem.getValue(); if (itemValue.isEmpty()) { continue; } value.add(itemValue); } if (value.isEmpty()) { // no stylesheet return super.getPropertyMeta().getDefaultValueObject(); } else { type = getType(value); return value; } }