Java Code Examples for org.pushingpixels.substance.internal.utils.SubstanceCoreUtilities#isCurrentLookAndFeel()

The following examples show how to use org.pushingpixels.substance.internal.utils.SubstanceCoreUtilities#isCurrentLookAndFeel() . 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 File: SubstanceViewportUI.java    From radiance with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
@Override
public void update(Graphics g, JComponent c) {
	if (!SubstanceCoreUtilities.isCurrentLookAndFeel()) {
		return;
	}

	if (toPaintBackground(c)) {
		BackgroundPaintingUtils.update(g, c, false);
	}
	super.paint(g, c);
}
 
Example 2
Source File: SubstancePanelUI.java    From radiance with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
@Override
public void update(Graphics g, JComponent c) {
	if (!SubstanceCoreUtilities.isCurrentLookAndFeel()) {
		return;
	}

	if (toPaintBackground(c)) {
		BackgroundPaintingUtils.update(g, c, false);
	}
	super.paint(g, c);
	GhostPaintingUtils.paintGhostImages(c, g);
}
 
Example 3
Source File: BackgroundPaintingUtils.java    From radiance with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
/**
 * Updates the background of the specified component on the specified
 * graphic context in the specified rectangle.
 * 
 * @param g
 *            Graphic context.
 * @param c
 *            Component.
 * @param fillColor
 *            Fill color.
 * @param rect
 *            The rectangle to fill.
 */
public static void fillAndWatermark(Graphics g, JComponent c,
		Color fillColor, Rectangle rect) {
	// failsafe for LAF change
	if (!SubstanceCoreUtilities.isCurrentLookAndFeel()) {
		return;
	}

	boolean isInCellRenderer = (SwingUtilities.getAncestorOfClass(
			CellRendererPane.class, c) != null);
	if ((!c.isShowing()) && (!isInCellRenderer)) {
		return;
	}

	Graphics2D graphics = (Graphics2D) g.create();
	graphics.setComposite(WidgetUtilities.getAlphaComposite(c, g));
	graphics.setColor(fillColor);
	graphics.fillRect(rect.x, rect.y, rect.width, rect.height);
	graphics.setComposite(WidgetUtilities.getAlphaComposite(c, 1.0f, g));
	// stamp watermark
	SubstanceWatermark watermark = SubstanceCoreUtilities.getSkin(c).getWatermark();
	if ((watermark != null) && !isInCellRenderer && c.isShowing()
			&& SubstanceCoreUtilities.toDrawWatermark(c)) {
           watermark.drawWatermarkImage(graphics, c, rect.x, rect.y, rect.width, rect.height);
       }
	graphics.dispose();
}
 
Example 4
Source File: BackgroundPaintingUtils.java    From radiance with BSD 3-Clause "New" or "Revised" License 4 votes vote down vote up
/**
 * Updates the background of the specified component on the specified
 * graphic context. The background is not painted when the
 * <code>force</code> parameter is <code>false</code> and at least one of
 * the following conditions holds:
 * <ul>
 * <li>The component is in a cell renderer.</li>
 * <li>The component is not showing on the screen.</li>
 * <li>The component is in the preview mode.</li>
 * </ul>
 * 
 * @param g
 *            Graphic context.
 * @param c
 *            Component.
 * @param force
 *            If <code>true</code>, the painting of background is enforced.
 */
public static void update(Graphics g, JComponent c, boolean force) {
	// failsafe for LAF change
	if (!SubstanceCoreUtilities.isCurrentLookAndFeel()) {
		return;
	}

	boolean isInCellRenderer = (SwingUtilities.getAncestorOfClass(
			CellRendererPane.class, c) != null);
	boolean isPreviewMode = Boolean.TRUE.equals(
			c.getClientProperty(WidgetUtilities.PREVIEW_MODE));

	Graphics2D graphics = (Graphics2D) g.create();
	// optimization - do not call fillRect on graphics with anti-alias turned on
	graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
			RenderingHints.VALUE_ANTIALIAS_OFF);
	graphics.setComposite(WidgetUtilities.getAlphaComposite(c, g));

	DecorationAreaType decorationType = ComponentOrParentChainScope.getDecorationType(c);
	SubstanceSkin skin = SubstanceCoreUtilities.getSkin(c);
	boolean isShowing = c.isShowing();
	boolean showOverlays = true;
	if (c.getParent() instanceof JPopupMenu) {
		// Don't show any overlays on content in popup menus
		showOverlays = false;
	} else {
		if (c instanceof JMenuItem) {
			showOverlays = false;
			if (c instanceof JMenu) {
				// Show overlays on top-level menu content
				showOverlays = ((JMenu) c).isTopLevelMenu();
			}
		} else if (c instanceof JMenuBar) {
			// Show overlays on menu bar
			showOverlays = true;
		}
	}

	if (isShowing && (decorationType != DecorationAreaType.NONE)
			&& (skin.isRegisteredAsDecorationArea(decorationType))) {
		// use the decoration painter
		DecorationPainterUtils.paintDecorationBackground(graphics, c, force);
		if (showOverlays) {
			OverlayPainterUtils.paintOverlays(graphics, c, skin, decorationType);
		}
	} else {
		// fill the area with solid color
		Color backgr = SubstanceColorUtilities
				.getBackgroundFillColor(((c instanceof JTextComponent) || (c instanceof JSpinner)) 
						? c.getParent() : c);
		graphics.setColor(backgr);
		graphics.fillRect(0, 0, c.getWidth(), c.getHeight());

		if (isShowing) {
			if (showOverlays) {
				// add overlays
				OverlayPainterUtils.paintOverlays(graphics, c, skin, decorationType);
			}

			// and paint watermark
			SubstanceWatermark watermark = SubstanceCoreUtilities.getSkin(c).getWatermark();
			if ((watermark != null) && !isPreviewMode && !isInCellRenderer
					&& SubstanceCoreUtilities.toDrawWatermark(c)) {
				watermark.drawWatermarkImage(graphics, c, 0, 0, c.getWidth(), c.getHeight());
			}
		}
	}

	graphics.dispose();
}