/** * Copyright (c) 2014-2017 by the respective copyright holders. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.eclipse.smarthome.ui.internal.items; import org.eclipse.smarthome.core.items.Item; import org.eclipse.smarthome.core.items.ItemRegistry; import org.eclipse.smarthome.model.core.ModelRepository; import org.eclipse.smarthome.model.items.ItemModel; import org.eclipse.smarthome.model.items.ModelItem; import org.eclipse.smarthome.model.sitemap.Widget; import org.eclipse.smarthome.ui.items.ItemUIProvider; public class GenericItemUIProvider implements ItemUIProvider { private ModelRepository modelRepository = null; private ItemRegistry itemRegistry = null; public void setModelRepository(ModelRepository modelRepository) { this.modelRepository = modelRepository; } public void unsetModelRepository(ModelRepository modelRepository) { this.modelRepository = null; } public void setItemRegistry(ItemRegistry itemRegistry) { this.itemRegistry = itemRegistry; } public void unsetItemRegistry(ItemRegistry itemRegistry) { this.itemRegistry = null; } @Override public String getCategory(String itemName) { ModelItem item = getItem(itemName); return item != null ? item.getIcon() : null; } @Override public String getLabel(String itemName) { if (itemRegistry != null) { Item item = itemRegistry.get(itemName); return item != null ? item.getLabel() : null; } return null; } @Override public Widget getWidget(String itemName) { return null; } @Override public Widget getDefaultWidget(Class<? extends org.eclipse.smarthome.core.items.Item> itemType, String itemName) { return null; } public ModelItem getItem(String itemName) { if (itemName != null && modelRepository != null) { for (String modelName : modelRepository.getAllModelNamesOfType("items")) { ItemModel model = (ItemModel) modelRepository.getModel(modelName); for (ModelItem item : model.getItems()) { if (itemName.equals(item.getName())) return item; } } } return null; } }