package ro.nextreports.designer.action.report.layout.cell;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import ro.nextreports.designer.BandUtil;
import ro.nextreports.designer.Globals;
import ro.nextreports.designer.LayoutHelper;
import ro.nextreports.designer.ReportGrid;
import ro.nextreports.designer.grid.SelectionModel;
import ro.nextreports.designer.util.I18NSupport;
import ro.nextreports.engine.band.BandElement;
import ro.nextreports.engine.band.ImageColumnBandElement;
import ro.nextreports.engine.util.ObjectCloner;
public class InsertImageColumnAction extends AbstractAction {
private static final String DEFAULT_TEXT = "?";
public InsertImageColumnAction() {
super();
putValue(Action.NAME, I18NSupport.getString("insert.db.image.column.action.name"));
}
public void actionPerformed(ActionEvent event) {
ReportGrid grid = Globals.getReportGrid();
SelectionModel selectionModel = grid.getSelectionModel();
int row = selectionModel.getSelectedCell().getRow();
int column = selectionModel.getSelectedCell().getColumn();
BandElement element = new ImageColumnBandElement(DEFAULT_TEXT);
BandUtil.copySettings(grid.getBandElement(selectionModel.getSelectedCell()), element);
grid.putClientProperty("layoutBeforeInsert", ObjectCloner.silenceDeepCopy(LayoutHelper.getReportLayout()));
BandUtil.insertElement(element, row, column);
grid.editCellAt(row, column, event);
}
}