Java Code Examples for org.eclipse.swt.graphics.Rectangle#isEmpty()

The following examples show how to use org.eclipse.swt.graphics.Rectangle#isEmpty() . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: nebula   File: CDateTime.java    License: Eclipse Public License 2.0 6 votes vote down vote up
@Override
protected void layout(VPanel panel, boolean flushCache) {
	Rectangle cRect = panel.getClientArea();
	if (cRect.isEmpty()) {
		return;
	}

	Point tSize = text.getControl().computeSize(SWT.DEFAULT,
			SWT.DEFAULT);
	tSize.y += textMarginHeight;

	spinner.setBounds(cRect.x, cRect.y, cRect.width, tSize.y);

	Rectangle sRect = spinner.getControl().computeTrim(0, 0, 0, 0);
	int sWidth = sRect.x + sRect.width
			- 2 * spinner.getControl().getBorderWidth() + 1;

	if (gtk && sWidth == 0) {
		sWidth = 67;
	}

	tSize.x = cRect.width - sWidth;

	text.setBounds(cRect.x, cRect.y + getBorderWidth(), tSize.x,
			tSize.y);
}
 
Example 2
/**
 * Resize the controls
 */
public void resizeControls() {
    Rectangle r = fTimeAlignedComposite.getClientArea();
    if (r.isEmpty()) {
        return;
    }

    if (fWeights != null) {
        setWeights(fWeights);
        fWeights = null;
    }
    int width = r.width;
    if (fNameWidth > width - fMinNameWidth) {
        fNameWidth = width - fMinNameWidth;
    }
    if (fNameWidth < fMinNameWidth) {
        fNameWidth = fMinNameWidth;
    }
    GridData gd = (GridData) fTree.getLayoutData();
    gd.widthHint = fNameWidth;
    if (fTree.getColumnCount() == 1) {
        fTree.getColumn(0).setWidth(fNameWidth);
    }
    adjustHorizontalScrollBar();
    adjustVerticalScrollBar();
}
 
Example 3
@Override
public void paintControl(PaintEvent e) {
    if (e.widget != this) {
        return;
    }

    // we will use advanced graphics, set now for consistent output
    e.gc.setAdvanced(true);

    fFontHeight = e.gc.getFontMetrics().getHeight();
    Rectangle bound = getClientArea();
    if (!bound.isEmpty()) {
        Color colBackup = e.gc.getBackground();
        paint(bound, e);
        e.gc.setBackground(colBackup);
    }
}
 
Example 4
Source Project: nebula   File: CTreeLayout.java    License: Eclipse Public License 2.0 5 votes vote down vote up
protected void layout(Composite composite, boolean flushCache) {
	Rectangle area = composite.getClientArea();
	if(area.isEmpty()) return;
	
	if(flushCache) computeSize(composite, -1, -1, flushCache);

	ctree.getHeader().setBounds(
			area.x,
			area.y,
			area.width,
			headerSize.y
		);

	Point origin = ctree.getScrollPosition();
	int height = area.height-headerSize.y;
	ctree.body.setBounds(
			area.x-origin.x,
			area.y+headerSize.y-origin.y,
			(gtk ? Math.max(area.width, headerSize.x) : area.width),
			(gtk ? Math.max(height, contentHeight) : height)
		);
	
	layoutHeader();
	
	layoutContent();
	
	updateScrollBars();
}
 
Example 5
Source Project: nebula   File: CTreeLayout.java    License: Eclipse Public License 2.0 5 votes vote down vote up
/**
 * Recalculate the correct state of the scrollbars and set their visibility accordingly.
 */
private void updateScrollBars() {
	Rectangle area = ctree.getClientArea();
	if(area.isEmpty()) return;
	
	if(ctree.hBar != null) {
		if(area.width < size.x) {
			ctree.hBar.setMaximum(size.x);
			ctree.hBar.setThumb(area.width);
			if(!ctree.hBar.getVisible()) {
				ctree.hBar.setVisible(true);
			}
		} else {
			ctree.hBar.setMaximum(1);
			if(ctree.hBar.getVisible()) {
				ctree.hBar.setVisible(false);
			}
		}
	}

	if(ctree.vBar != null) {
		if(area.height < size.y) {
			ctree.vBar.setMaximum(size.y);
			ctree.vBar.setThumb(area.height);
			if(!ctree.vBar.getVisible()) {
				ctree.vBar.setVisible(true);
			}
		} else {
			ctree.vBar.setMaximum(1);
			if(ctree.vBar.getVisible()) {
				ctree.vBar.setVisible(false);
			}
		}
	}
}
 
Example 6
Source Project: nebula   File: CTree.java    License: Eclipse Public License 2.0 5 votes vote down vote up
protected void paintItems(GC gc, Rectangle ebounds) {
	if(isEmpty()) {
		if (emptyMessage.length() > 0) {
			Point bSize = getSize();
			Point tSize = gc.textExtent(emptyMessage);
			gc.setForeground(colors.getItemForegroundNormal());
			gc.drawText(emptyMessage, (bSize.x - tSize.x) / 2 - ebounds.x,
					4 - ebounds.y);
		}
	} else {
		Image image = new Image(gc.getDevice(), ebounds);
		GC gc2 = new GC(image);
		for (Iterator iter = paintedItems.iterator(); iter.hasNext();) {
			CTreeItem item = (CTreeItem) iter.next();
			for(int i = 0; i < item.cells.length; i++) {
				CTreeCell cell = item.cells[i];
				cell.paint(gc, ebounds);
				Rectangle cb = cell.getClientArea();
				gc2.setBackground(getDisplay().getSystemColor(SWT.COLOR_CYAN));
				gc2.fillRectangle(ebounds);
				if(!cb.isEmpty() &&
						cell.paintClientArea(gc2, 
								new Rectangle(0,0,cb.width,cb.height))) {
					gc.drawImage(image,
						0,0,Math.min(ebounds.width, cb.width),Math.min(ebounds.height, cb.height),
						cb.x-ebounds.x,cb.y-ebounds.y,cb.width,cb.height
						);
				}
			}
		}
		gc2.dispose();
		image.dispose();
	}
}
 
Example 7
private int getVisibleLinesInViewport() {
    if (fCachedTextWidget != null) {
        Rectangle clArea= fCachedTextWidget.getClientArea();
        if (!clArea.isEmpty()) {
            int firstPixel= 0;
            // what about margins? don't take trims as they include scrollbars:
            int lastPixel= clArea.height - 1; 
            int first= JFaceTextUtil.getLineIndex(fCachedTextWidget, firstPixel);
            int last= JFaceTextUtil.getLineIndex(fCachedTextWidget, lastPixel);
            return last - first;
        }
    }
    return -1;
}
 
Example 8
/**
 * Returns the number of lines in the view port.
 *
 * @param textWidget the styled text widget
 * @return the number of lines visible in the view port <code>-1</code> if there's no client
 *         area
 * @deprecated this method should not be used - it relies on the widget using a uniform line
 *             height
 */
static int getVisibleLinesInViewport(StyledText textWidget) {
	if (textWidget != null) {
		Rectangle clArea= textWidget.getClientArea();
		if (!clArea.isEmpty()) {
			int firstPixel= 0;
			int lastPixel= clArea.height - 1; // XXX: what about margins? don't take trims as they include scrollbars
			int first= JFaceTextUtil.getLineIndex(textWidget, firstPixel);
			int last= JFaceTextUtil.getLineIndex(textWidget, lastPixel);
			return last - first;
		}
	}
	return -1;
}
 
Example 9
/**
 * Handle a mouseDown event.
 *
 * @param e
 *            the mouse event
 * @param bounds
 *            the bounds of the marker axis in the mouse event's coordinates
 * @param nameSpace
 *            the width of the marker name area
 */
public void mouseDown(MouseEvent e, Rectangle bounds, int nameSpace) {
    if (bounds.isEmpty()) {
        return;
    }
    if (fCollapsed || (e.x < bounds.x + Math.min(nameSpace, EXPANDED.getBounds().width))) {
        fCollapsed = !fCollapsed;
        getParent().layout();
        redraw();
        return;
    }
    if (e.x < bounds.x + nameSpace) {
        String category = getHiddenCategoryForEvent(e, bounds);
        if (category != null) {
            for (IMarkerAxisListener listener : fListeners) {
                listener.setMarkerCategoryVisible(category, false);
            }
        }
        return;
    }
    IMarkerEvent marker = getMarkerForEvent(e);
    if (marker != null) {
        if ((e.stateMask & SWT.MODIFIER_MASK) == SWT.SHIFT) {
            /* Extend current selection */
            long selectionBegin = fTimeProvider.getSelectionBegin();
            long selectionEnd = fTimeProvider.getSelectionEnd();
            long markerBegin = marker.getTime();
            long markerEnd = marker.getTime() + marker.getDuration();
            /* If marker end is outside selection, extend closest boundary */
            if (((markerEnd - selectionBegin) > 0) == ((markerEnd - selectionEnd) > 0)) {
                if (Math.abs(markerEnd - selectionBegin) < Math.abs(markerEnd - selectionEnd)) {
                    selectionBegin = markerEnd;
                } else {
                    selectionEnd = markerEnd;
                }
            }
            /* If marker begin is outside selection, extend closest boundary */
            if (((markerBegin - selectionBegin) > 0) == ((markerBegin - selectionEnd) > 0)) {
                if (Math.abs(markerBegin - selectionBegin) < Math.abs(markerBegin - selectionEnd)) {
                    selectionBegin = markerBegin;
                } else {
                    selectionEnd = markerBegin;
                }
            }
            fTimeProvider.setSelectionRangeNotify(selectionBegin, selectionEnd, false);
        } else {
            /* Replace current selection */
            fTimeProvider.setSelectionRangeNotify(marker.getTime(), marker.getTime() + marker.getDuration(), false);
        }
    }
}