/* * Copyright 2014 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.dashbuilder.displayer.client; import java.util.List; import org.dashbuilder.displayer.DisplayerSettings; import org.dashbuilder.displayer.DisplayerSubType; import org.dashbuilder.displayer.DisplayerType; /** * Main interface for renderer implementations. * * <p>A renderer library must:</p> * <ul> * <li>Perform all the required initializations before any displayer can be drawn</li> * <li>Declare the displayer types & subtypes supported</li> * <li>Take care of the initialization of displayer instances</li> * </ul> */ public interface RendererLibrary { /** * The unique universal identifier of the rederer */ String getUUID(); /** * The renderer display name */ String getName(); /** * Flag indicating if this renderer can act as the default one for the given displayer type. * <p>Default renderers are used when a displayer does not explicitly specifies one</p> */ boolean isDefault(DisplayerType type); /** * The list of supported types */ List<DisplayerType> getSupportedTypes(); /** * The list of supported sub-types */ List<DisplayerSubType> getSupportedSubtypes(DisplayerType displayerType); /** * Initalize a displayer instance with the specified configuration. */ Displayer lookupDisplayer(DisplayerSettings displayer); /** * Draw a list of displayers */ void draw(List<Displayer> displayerList); /** * Re-draw a list of displayers */ void redraw(List<Displayer> displayerList); }