X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2Ftable%2FPasteDataCommandHandler.java;fp=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2Ftable%2FPasteDataCommandHandler.java;h=06e9fbd57ca3d795a008f4c6c5c9d999c45d4252;hb=af46ba24e2d2b6e68f62e5e215386166fa456d98;hp=0000000000000000000000000000000000000000;hpb=38cb4b0b42c4c35a696bb46ffcf8129ca8d89103;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/table/PasteDataCommandHandler.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/table/PasteDataCommandHandler.java new file mode 100644 index 00000000..06e9fbd5 --- /dev/null +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/table/PasteDataCommandHandler.java @@ -0,0 +1,47 @@ +package org.simantics.district.network.ui.table; + +import java.util.Collection; + +import org.eclipse.nebula.widgets.nattable.command.AbstractLayerCommandHandler; +import org.eclipse.nebula.widgets.nattable.layer.DataLayer; +import org.eclipse.nebula.widgets.nattable.layer.event.ColumnVisualUpdateEvent; +import org.eclipse.nebula.widgets.nattable.layer.event.StructuralRefreshEvent; +import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer; +import org.eclipse.swt.dnd.Clipboard; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class PasteDataCommandHandler extends AbstractLayerCommandHandler { + + private static final Logger LOGGER = LoggerFactory.getLogger(PasteDataCommandHandler.class); + + private final SelectionLayer selectionLayer; + private final DataLayer dataLayer; + private final Clipboard cpb; + private final TableDataProvider provider; + + public PasteDataCommandHandler(TableDataProvider provider, DataLayer dataLayer, SelectionLayer selectionLayer, Clipboard cpb) { + this.provider = provider; + this.dataLayer = dataLayer; + this.selectionLayer = selectionLayer; + this.cpb = cpb; + } + + @Override + public Class getCommandClass() { + return CustomPasteDataCommand.class; + } + + @Override + protected boolean doCommand(CustomPasteDataCommand command) { + String[][] fullData = command.data; + int pasteRow = command.pasteRow; + Collection pasteColumn = command.getColumnPositions(); + if (pasteRow > -1) { + provider.setDataValues(pasteColumn, pasteRow, fullData); + dataLayer.fireLayerEvent(new StructuralRefreshEvent(dataLayer)); + } + return true; + } +} +