/*******************************************************************************
* Copyright (c) 2012, 2015 Original authors and others.
* 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:
* Original authors and others - initial API and implementation
* Dirk Fauth <dirk.fauth@googlemail.com> - Bug 459029
******************************************************************************/
package org.eclipse.nebula.widgets.nattable.selection.action;
import org.eclipse.nebula.widgets.nattable.NatTable;
import org.eclipse.nebula.widgets.nattable.ui.action.IMouseAction;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
public class AbstractMouseSelectionAction implements IMouseAction {
private boolean withShiftMask;
private boolean withControlMask;
private int gridColumnPosition;
private int gridRowPosition;
@Override
public void run(NatTable natTable, MouseEvent event) {
this.withShiftMask = (event.stateMask & SWT.MOD2) != 0;
this.withControlMask = (event.stateMask & SWT.MOD1) != 0;
this.gridColumnPosition = natTable.getColumnPositionByX(event.x);
this.gridRowPosition = natTable.getRowPositionByY(event.y);
natTable.forceFocus();
}
public boolean isWithShiftMask() {
return this.withShiftMask;
}
public boolean isWithControlMask() {
return this.withControlMask;
}
public int getGridColumnPosition() {
return this.gridColumnPosition;
}
public int getGridRowPosition() {
return this.gridRowPosition;
}
}