Java Code Examples for org.pushingpixels.substance.internal.utils.SubstanceColorUtilities#getBackgroundFillColor()

The following examples show how to use org.pushingpixels.substance.internal.utils.SubstanceColorUtilities#getBackgroundFillColor() . 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: SubstanceCommandButtonPanelUI.java    From radiance with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
@Override
protected void paintGroupBackground(Graphics g, int groupIndex, int x,
        int y, int width, int height) {
    Color background = SubstanceColorUtilities.getBackgroundFillColor(this.buttonPanel);
    if (groupIndex % 2 == 1) {
        background = SubstanceColorUtilities.getDarkerColor(background, 0.06);
    }

    BackgroundPaintingUtils.fillAndWatermark(g, this.buttonPanel,
            background, new Rectangle(x, y, width, height));
}
 
Example 2
Source File: SubstanceViewportUI.java    From radiance with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
@Override
protected void installDefaults(JComponent c) {
	super.installDefaults(c);
	// support for per-window skins
	Color backgr = c.getBackground();
	if ((backgr == null) || (backgr instanceof UIResource)) {
		Color backgroundFillColor = SubstanceColorUtilities.getBackgroundFillColor(c);
		if (backgroundFillColor != null) {
			c.setBackground(new ColorUIResource(backgroundFillColor));
		}
	}
}
 
Example 3
Source File: SubstancePanelUI.java    From radiance with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
@Override
protected void installDefaults(JPanel p) {
	super.installDefaults(p);
	// support for per-window skins
	Color backgr = p.getBackground();
	if ((backgr == null) || (backgr instanceof UIResource)) {
		Color backgroundFillColor = SubstanceColorUtilities.getBackgroundFillColor(p);
		// fix for issue 436 - logic in getBackground() of
		// custom panels can result in null value
		if (backgroundFillColor != null) {
			p.setBackground(new ColorUIResource(backgroundFillColor));
		}
	}
}
 
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();
}