///******************************************************************************* // * Copyright (c) 2000, 2005 IBM Corporation 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: // * IBM Corporation - initial API and implementation // *******************************************************************************/ //package org.eclipse.ui.internal.forms.widgets; // //import java.util.ArrayList; // //import org.eclipse.swt.SWT; //import org.eclipse.swt.events.MouseEvent; //import org.eclipse.swt.graphics.*; //import org.eclipse.swt.widgets.Display; // //public class SelectionData { // public Display display; // public Color bg; // public Color fg; // private Point start; // private Point stop; // private ArrayList segments; // private boolean newLineNeeded; // // public SelectionData(MouseEvent e) { // display = e.display; // segments = new ArrayList(); // start = new Point(e.x, e.y); // stop = new Point(e.x, e.y); // bg = e.display.getSystemColor(SWT.COLOR_LIST_SELECTION); // fg = e.display.getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT); // } // // public void markNewLine() { // newLineNeeded=true; // } // public void addSegment(String text) { // if (newLineNeeded) { // segments.add(System.getProperty("line.separator")); //$NON-NLS-1$ // newLineNeeded=false; // } // segments.add(text); // } // // public void update(MouseEvent e) { // //Control c = (Control)e.widget; // stop.x = e.x; // stop.y = e.y; // } // public void reset() { // segments.clear(); // } // public String getSelectionText() { // StringBuffer buf = new StringBuffer(); // for (int i=0; i<segments.size(); i++) { // buf.append((String)segments.get(i)); // } // return buf.toString(); // } // public boolean canCopy() { // return segments.size()>0; // } // // private int getTopOffset() { // return start.y<stop.y?start.y:stop.y; // } // private int getBottomOffset() { // return start.y>stop.y?start.y:stop.y; // } // public int getLeftOffset(Locator locator) { // return isInverted(locator)? stop.x:start.x; // } // public int getLeftOffset(int rowHeight) { // return isInverted(rowHeight) ? stop.x:start.x; // } // public int getRightOffset(Locator locator) { // return isInverted(locator)? start.x: stop.x; // } // public int getRightOffset(int rowHeight) { // return isInverted(rowHeight) ? start.x:stop.x; // } // private boolean isInverted(Locator locator) { // int rowHeight = ((int [])locator.heights.get(locator.rowCounter))[0]; // return isInverted(rowHeight); // } // private boolean isInverted(int rowHeight) { // int deltaY = start.y - stop.y; // if (Math.abs(deltaY) > rowHeight) { // // inter-row selection // return deltaY>0; // } // // intra-row selection // return start.x > stop.x; // } // public boolean isEnclosed() { // return !start.equals(stop); // } // // public boolean isSelectedRow(Locator locator) { // if (!isEnclosed()) // return false; // int rowHeight = ((int [])locator.heights.get(locator.rowCounter))[0]; // return isSelectedRow(locator.y, rowHeight); // } // public boolean isSelectedRow(int y, int rowHeight) { // if (!isEnclosed()) // return false; // return (y + rowHeight >= getTopOffset() && // y <= getBottomOffset()); // } // public boolean isFirstSelectionRow(Locator locator) { // if (!isEnclosed()) // return false; // int rowHeight = ((int [])locator.heights.get(locator.rowCounter))[0]; // return (locator.y + rowHeight >= getTopOffset() && // locator.y <= getTopOffset()); // } // public boolean isFirstSelectionRow(int y, int rowHeight) { // if (!isEnclosed()) // return false; // return (y + rowHeight >= getTopOffset() && // y <= getTopOffset()); // } // public boolean isLastSelectionRow(Locator locator) { // if (!isEnclosed()) // return false; // int rowHeight = ((int [])locator.heights.get(locator.rowCounter))[0]; // return (locator.y + rowHeight >=getBottomOffset() && // locator.y <= getBottomOffset()); // } // public boolean isLastSelectionRow(int y, int rowHeight) { // if (!isEnclosed()) // return false; // return (y + rowHeight >=getBottomOffset() && // y <= getBottomOffset()); // } //}