/* * Copyright (C) 2014 GG-Net GmbH - Oliver Günther. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; If not, see <http://www.gnu.org/licenses/>. */ package eu.ggnet.lucidcalc; import java.util.Arrays; /** * This is a shortcut to add a Formula to a table directly as action * */ public class SFormulaAction extends SFormula implements SAction<Object> { public SFormulaAction(Object... elems) { super(elems); } @Override public Object getValue(int relativeColumnIndex, int relativeRowIndex, int absoluteColumnIndex, int absoluteRowIndex, Object lineModel) { Object[]elements = Arrays.copyOf(super.getElements(),super.getElements().length); for (int i = 0; i < elements.length; i++) { Object elem = elements[i]; if ( elem instanceof SSelfRowReference ) { SSelfRowReference selfRow = (SSelfRowReference)elem; elements[i] = new CCellReferenceAdapter(absoluteRowIndex,selfRow.getColumnIndex()); } } return new SFormula(elements); } @Override public CFormat getFormat(int relativeColumnIndex, int relativeRowIndex, int absoluteColumnIndex, int absoluteRowIndex, Object lineModel) { return null; } }