/* * DBeaver - Universal Database Manager * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) * * 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.jkiss.dbeaver.ui.controls.lightgrid; import org.eclipse.jface.viewers.IContentProvider; import org.eclipse.swt.graphics.Color; import org.jkiss.code.NotNull; import org.jkiss.code.Nullable; import org.jkiss.dbeaver.model.DBPImage; public interface IGridContentProvider extends IContentProvider { enum ElementState { NONE, EXPANDED, COLLAPSED } int STATE_NONE = 0; int STATE_LINK = 1; int STATE_HYPER_LINK = 2; int STATE_TRANSFORMED = 4; @NotNull Object[] getElements(boolean horizontal); @Nullable Object[] getChildren(Object element); int getSortOrder(@Nullable Object element); ElementState getDefaultState(@NotNull Object element); /** * * @param cellText pre-rendered cell text. Used for cache purposes. */ int getCellState(Object colElement, Object rowElement, @Nullable String cellText); Object getCellValue(Object colElement, Object rowElement, boolean formatString); @NotNull String getCellText(Object colElement, Object rowElement); @Nullable DBPImage getCellImage(Object colElement, Object rowElement); @Nullable Color getCellForeground(Object colElement, Object rowElement); @Nullable Color getCellBackground(Object colElement, Object rowElement); // Resets all cached colors void resetColors(); }