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;
   }
 }