/******************************************************************************* * Copyright (c) 2010 György Orosz. * 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: * György Orosz - initial API and implementation ******************************************************************************/ package org.erlide.wrangler.refactoring.ui; import java.util.HashMap; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseTrackListener; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Widget; import org.erlide.wrangler.refactoring.selection.IErlMemberSelection; import org.erlide.wrangler.refactoring.util.GlobalParameters; import org.erlide.wrangler.refactoring.util.IErlRange; import org.erlide.wrangler.refactoring.util.WranglerUtils; /** * For SelectionInputDialog every selectable element is connected with an object * from this class, to handle mouseover events * * @author Gyorgy Orosz * @version %I%, %G% */ public class ExpressionCheckButtonListener implements MouseTrackListener { private final IErlMemberSelection selection; private final HashMap<Button, IErlRange> checkButtons; /** * Constructor * * @param checkButtons * Elements which should be monitored */ public ExpressionCheckButtonListener(final HashMap<Button, IErlRange> checkButtons) { this.checkButtons = checkButtons; selection = (IErlMemberSelection) GlobalParameters.getWranglerSelection(); } @Override public void mouseEnter(final MouseEvent e) { setHighlight(e.widget); } @Override public void mouseExit(final MouseEvent e) { resetHighlight(); } @Override public void mouseHover(final MouseEvent e) { } private void setHighlight(final Widget w) { final int offset = checkButtons.get(w).getOffset(); final int length = checkButtons.get(w).getLength(); WranglerUtils.highlightSelection(offset, length, selection); } private void resetHighlight() { WranglerUtils.highlightSelection(selection.getSelectionRange().getOffset(), selection.getSelectionRange().getLength(), selection); } }