blob: e8c68145c6ffaf0f683d44ec8ac9e7186c60a1c4 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2013 Formal Mind GmbH and University of Dusseldorf.
* 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
*
* Contributors:
* Lukas Ladenberger - initial API and implementation
******************************************************************************/
package org.eclipse.rmf.reqif10.pror.editor.agilegrid;
import org.agilemore.agilegrid.AgileGrid;
import org.agilemore.agilegrid.SWTResourceManager;
import org.agilemore.agilegrid.SWTX;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.rmf.reqif10.SpecRelation;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Rectangle;
public abstract class AbstractProrSpecCellRenderer extends AbstractProrCellRenderer {
public static Color COLOR_LINK = SWTResourceManager.getColor(240, 240, 240);
public AbstractProrSpecCellRenderer(AgileGrid agileGrid,
AdapterFactory adapterFactory) {
super(agileGrid, adapterFactory);
}
@Override
protected void drawGridLines(GC gc, Rectangle rect, int row, int col) {
Color vBorderColor = COLOR_LINE_LIGHTGRAY;
Color hBorderColor = COLOR_LINE_LIGHTGRAY;
if (agileGrid instanceof ProrAgileGrid) {
ProrAgileGrid grid = (ProrAgileGrid) agileGrid;
if (grid.dndHoverCell != null
&& row == grid.dndHoverCell.row
&& grid.dndHoverDropMode == ProrAgileGrid.DND_DROP_AS_SIBLING) {
hBorderColor = COLOR_LINE_DARKGRAY;
}
}
if ((style & INDICATION_SELECTION_ROW) != 0) {
vBorderColor = COLOR_BGROWSELECTION;
hBorderColor = COLOR_BGROWSELECTION;
}
if ((agileGrid.getStyle() & SWTX.NOT_SHOW_GRID_LINE) == SWTX.NOT_SHOW_GRID_LINE) {
vBorderColor = COLOR_BACKGROUND;
hBorderColor = COLOR_BACKGROUND;
}
ProrAgileGridContentProvider contentProvider = (ProrAgileGridContentProvider) agileGrid
.getContentProvider();
int nextRow = row + 1;
if (nextRow < contentProvider.getRowCount()) {
ProrRow prorRowNext = contentProvider.getProrRow(nextRow);
if (prorRowNext != null
&& prorRowNext.getSpecElement() instanceof SpecRelation)
hBorderColor = COLOR_LINK;
}
drawDefaultCellLine(gc, rect, vBorderColor, hBorderColor);
}
}