diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5156efe..3dd2a0c 100755
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/swingset2/TabbedPaneDemo.java b/swingset2/TabbedPaneDemo.java
index 722a683..9703f7b 100755
--- a/swingset2/TabbedPaneDemo.java
+++ b/swingset2/TabbedPaneDemo.java
@@ -38,6 +38,8 @@
*/
+import com.bulenkov.iconloader.util.UIUtil;
+
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
@@ -127,7 +129,11 @@ public class TabbedPaneDemo extends DemoModule implements ActionListener {
tabbedpane.add(name, pix);
name = getString("TabbedPaneDemo.bounce");
- spin = new HeadSpin();
+ if (UIUtil.isUnderDarcula()) {
+ name = name.replace("color=blue", "color='#589df6'");
+ }
+
+ spin = new HeadSpin();
tabbedpane.add(name, spin);
tabbedpane.getModel().addChangeListener(
diff --git a/swingset2/TableDemo.java b/swingset2/TableDemo.java
index a2aa27a..4ca9a31 100755
--- a/swingset2/TableDemo.java
+++ b/swingset2/TableDemo.java
@@ -38,6 +38,8 @@
*/
+import com.bulenkov.iconloader.util.DoubleColor;
+
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
@@ -401,23 +403,23 @@ public class TableDemo extends DemoModule {
NamedColor beige = new NamedColor(new Color(245, 245, 220), getString("TableDemo.beige"));
NamedColor black = new NamedColor(Color.black, getString("TableDemo.black"));
NamedColor blue = new NamedColor(new Color(0, 0, 222), getString("TableDemo.blue"));
- NamedColor eblue = new NamedColor(Color.blue, getString("TableDemo.eblue"));
+ NamedColor eblue = new NamedColor(DoubleColor.blue, getString("TableDemo.eblue"));
NamedColor jfcblue = new NamedColor(new Color(204, 204, 255), getString("TableDemo.jfcblue"));
NamedColor jfcblue2 = new NamedColor(new Color(153, 153, 204), getString("TableDemo.jfcblue2"));
- NamedColor cybergreen = new NamedColor(Color.green.darker().brighter(), getString("TableDemo.cybergreen"));
+ NamedColor cybergreen = new NamedColor(DoubleColor.green.darker().brighter(), getString("TableDemo.cybergreen"));
NamedColor darkgreen = new NamedColor(new Color(0, 100, 75), getString("TableDemo.darkgreen"));
- NamedColor forestgreen = new NamedColor(Color.green.darker(), getString("TableDemo.forestgreen"));
- NamedColor gray = new NamedColor(Color.gray, getString("TableDemo.gray"));
- NamedColor green = new NamedColor(Color.green, getString("TableDemo.green"));
+ NamedColor forestgreen = new NamedColor(DoubleColor.green.darker(), getString("TableDemo.forestgreen"));
+ NamedColor gray = new NamedColor(DoubleColor.gray, getString("TableDemo.gray"));
+ NamedColor green = new NamedColor(DoubleColor.green, getString("TableDemo.green"));
NamedColor orange = new NamedColor(new Color(255, 165, 0), getString("TableDemo.orange"));
NamedColor purple = new NamedColor(new Color(160, 32, 240), getString("TableDemo.purple"));
- NamedColor red = new NamedColor(Color.red, getString("TableDemo.red"));
- NamedColor rustred = new NamedColor(Color.red.darker(), getString("TableDemo.rustred"));
+ NamedColor red = new NamedColor(DoubleColor.red, getString("TableDemo.red"));
+ NamedColor rustred = new NamedColor(DoubleColor.red.darker(), getString("TableDemo.rustred"));
NamedColor sunpurple = new NamedColor(new Color(100, 100, 255), getString("TableDemo.sunpurple"));
NamedColor suspectpink = new NamedColor(new Color(255, 105, 180), getString("TableDemo.suspectpink"));
NamedColor turquoise = new NamedColor(new Color(0, 255, 255), getString("TableDemo.turquoise"));
NamedColor violet = new NamedColor(new Color(238, 130, 238), getString("TableDemo.violet"));
- NamedColor yellow = new NamedColor(Color.yellow, getString("TableDemo.yellow"));
+ NamedColor yellow = new NamedColor(DoubleColor.yellow, getString("TableDemo.yellow"));
// Create the dummy data (a few rows of names)
final Object[][] data = {
diff --git a/swingset2/resources/swingset.properties b/swingset2/resources/swingset.properties
index 8684bf6..151186d 100755
--- a/swingset2/resources/swingset.properties
+++ b/swingset2/resources/swingset.properties
@@ -499,7 +499,7 @@ TabbedPaneDemo.accessible_description=This demo shows an example of using the JT
TabbedPaneDemo.tooltip=JTabbedPane demo
TabbedPaneDemo.name=TabbedPane Demo
-TabbedPaneDemo.bounce=Bouncing Babies!
+TabbedPaneDemo.bounce=Bouncing Babies!
TabbedPaneDemo.stephen=Stephen
TabbedPaneDemo.david=David
TabbedPaneDemo.matthew=Matthew
diff --git a/swingset3/com/sun/swingset3/DemoPanel.java b/swingset3/com/sun/swingset3/DemoPanel.java
index cffb1a3..357bdc5 100644
--- a/swingset3/com/sun/swingset3/DemoPanel.java
+++ b/swingset3/com/sun/swingset3/DemoPanel.java
@@ -31,33 +31,19 @@
package com.sun.swingset3;
-import com.sun.swingset3.utilities.HTMLPanel;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.FontMetrics;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Insets;
-import java.awt.Rectangle;
-import java.awt.geom.Rectangle2D;
-import java.io.IOException;
-import java.net.URL;
-import javax.swing.JComponent;
-import javax.swing.JEditorPane;
-import javax.swing.UIManager;
-import javax.swing.border.Border;
-
+import com.sun.swingset3.utilities.*;
import org.jdesktop.animation.timing.Animator;
import org.jdesktop.animation.timing.interpolation.PropertySetter;
import org.jdesktop.animation.timing.triggers.TimingTrigger;
import org.jdesktop.animation.timing.triggers.TimingTriggerEvent;
import org.jdesktop.swingx.JXPanel;
-import com.sun.swingset3.utilities.RoundedBorder;
-import com.sun.swingset3.utilities.RoundedPanel;
-import com.sun.swingset3.utilities.RoundedTitleBorder;
-import com.sun.swingset3.utilities.Utilities;
+
+import javax.swing.*;
+import javax.swing.border.Border;
+import java.awt.*;
+import java.awt.geom.Rectangle2D;
+import java.io.IOException;
+import java.net.URL;
/**
*
@@ -123,7 +109,7 @@ public class DemoPanel extends JXPanel {
}
} // Fader
- private static class LoadAnimationPanel extends RoundedPanel {
+ public static class LoadAnimationPanel extends RoundedPanel {
private String message;
private int triState = 0;
private boolean animating = false;
diff --git a/swingset3/com/sun/swingset3/SwingSet3.java b/swingset3/com/sun/swingset3/SwingSet3.java
index 8339645..e2ba859 100644
--- a/swingset3/com/sun/swingset3/SwingSet3.java
+++ b/swingset3/com/sun/swingset3/SwingSet3.java
@@ -33,6 +33,7 @@ package com.sun.swingset3;
import com.bulenkov.darcula.DarculaLaf;
import com.bulenkov.darcula.DarculaLookAndFeelInfo;
+import com.bulenkov.iconloader.util.DoubleColor;
import com.sun.swingset3.codeview.CodeViewer;
import com.sun.swingset3.utilities.AnimatingSplitPane;
import com.sun.swingset3.utilities.RoundedBorder;
@@ -85,7 +86,7 @@ public class SwingSet3 extends SingleFrameApplication {
public static final int MAIN_FRAME_WIDTH = 880;
public static final int MAIN_FRAME_HEIGHT = 640;
- public static final int DEMO_SELECTOR_WIDTH = 186;
+ public static final int DEMO_SELECTOR_WIDTH = 230;
public static final int DEMO_PANEL_HEIGHT = 400;
public static final int DEMO_PANEL_WIDTH = MAIN_FRAME_WIDTH - DEMO_SELECTOR_WIDTH;
@@ -309,11 +310,11 @@ public class SwingSet3 extends SingleFrameApplication {
float hsb[] = Color.RGBtoHSB(
titleColor.getRed(), titleColor.getGreen(), titleColor.getBlue(), null);
UIManager.put(TITLE_GRADIENT_COLOR1_KEY,
- Color.getHSBColor(hsb[0]-.013f, .15f, .85f));
+ new DoubleColor(Color.getHSBColor(hsb[0]-.013f, .15f, .85f), new Color(0, 79, 114)));
UIManager.put(TITLE_GRADIENT_COLOR2_KEY,
- Color.getHSBColor(hsb[0]-.005f, .24f, .80f));
+ new DoubleColor(Color.getHSBColor(hsb[0]-.005f, .24f, .80f), new Color(49, 113, 164)));
UIManager.put(TITLE_FOREGROUND_KEY,
- Color.getHSBColor(hsb[0], .54f, .40f));
+ new DoubleColor(Color.getHSBColor(hsb[0], .54f, .40f), new Color(0xbbbbbb)));
// Calculate highlight color for code pane
UIManager.put(CODE_HIGHLIGHT_KEY,
diff --git a/swingset3/com/sun/swingset3/demos/JHyperlink.java b/swingset3/com/sun/swingset3/demos/JHyperlink.java
index 418f7a2..2e245b8 100644
--- a/swingset3/com/sun/swingset3/demos/JHyperlink.java
+++ b/swingset3/com/sun/swingset3/demos/JHyperlink.java
@@ -31,21 +31,13 @@
package com.sun.swingset3.demos;
-import java.awt.Color;
-import java.awt.Cursor;
-import java.awt.Graphics;
-import java.awt.Insets;
-import java.awt.Rectangle;
+import com.bulenkov.iconloader.util.DoubleColor;
+
+import javax.swing.*;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.net.URI;
import java.net.URISyntaxException;
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.ButtonModel;
-import javax.swing.Icon;
-import javax.swing.JButton;
-import javax.swing.SwingUtilities;
-import javax.swing.UIManager;
/**
@@ -71,8 +63,8 @@ public class JHyperlink extends JButton {
private boolean drawUnderline = true;
static {
- UIManager.put("Hyperlink.foreground", Color.blue);
- UIManager.put("Hyperlink.activeForeground", Color.red);
+ UIManager.put("Hyperlink.foreground", DoubleColor.blue);
+ UIManager.put("Hyperlink.activeForeground", DoubleColor.red);
UIManager.put("Hyperlink.visitedForeground", new Color(85, 145, 90));
}
diff --git a/swingset3/com/sun/swingset3/demos/frame/FrameDemo.java b/swingset3/com/sun/swingset3/demos/frame/FrameDemo.java
index fe9d369..b36f297 100644
--- a/swingset3/com/sun/swingset3/demos/frame/FrameDemo.java
+++ b/swingset3/com/sun/swingset3/demos/frame/FrameDemo.java
@@ -31,22 +31,19 @@
package com.sun.swingset3.demos.frame;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.EventQueue;
-import java.awt.Image;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.net.URL;
+import com.bulenkov.iconloader.util.DoubleColor;
+import com.sun.swingset3.DemoProperties;
+import com.sun.swingset3.demos.DemoUtilities;
+
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
-
-import com.sun.swingset3.DemoProperties;
-import com.sun.swingset3.demos.DemoUtilities;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.net.URL;
/**
* Demo for Swing's JFrame toplevel component.
@@ -166,7 +163,7 @@ public class FrameDemo extends JPanel {
JLabel label = new JLabel("I'm content but a little blue.");
label.setHorizontalAlignment(JLabel.CENTER);
label.setPreferredSize(new Dimension(300, 160));
- label.setBackground(new Color(197, 216, 236));
+ label.setBackground(new DoubleColor(new Color(197, 216, 236), new Color(102, 117, 136)));
label.setOpaque(true); // labels non-opaque by default
frame.add(label);
//snip
diff --git a/swingset3/com/sun/swingset3/demos/internalframe/InternalFrameDemo.java b/swingset3/com/sun/swingset3/demos/internalframe/InternalFrameDemo.java
index e2194cf..8afc313 100644
--- a/swingset3/com/sun/swingset3/demos/internalframe/InternalFrameDemo.java
+++ b/swingset3/com/sun/swingset3/demos/internalframe/InternalFrameDemo.java
@@ -31,18 +31,18 @@
package com.sun.swingset3.demos.internalframe;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import javax.swing.*;
-
-import javax.swing.border.EmptyBorder;
-
+import com.bulenkov.iconloader.util.DoubleColor;
+import com.bulenkov.iconloader.util.Gray;
+import com.bulenkov.iconloader.util.UIUtil;
import com.sun.swingset3.DemoProperties;
import com.sun.swingset3.demos.ResourceManager;
+import javax.swing.*;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.LineBorder;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+
/**
* Internal Frames Demo
@@ -297,7 +297,7 @@ public class InternalFrameDemo extends JPanel {
palette.getContentPane().add(p, BorderLayout.CENTER);
- // ************************************
+ // ************************************
// * Create Frame title textfield *
// ************************************
p = new JPanel();
@@ -314,8 +314,11 @@ public class InternalFrameDemo extends JPanel {
p.add(Box.createRigidArea(HGAP5));
palette.getContentPane().add(p, BorderLayout.SOUTH);
-
- palette.show();
+ final JComponent panel = (JComponent) palette.getContentPane();
+ if (UIUtil.isUnderDarcula()) {
+ panel.setBorder(new LineBorder(Gray._80));
+ }
+ palette.show();
}
@@ -342,7 +345,7 @@ public class InternalFrameDemo extends JPanel {
public ImageScroller(Icon icon) {
super();
JPanel p = new JPanel();
- p.setBackground(Color.white);
+ p.setBackground(new DoubleColor(Color.white, Gray._80));
p.setLayout(new BorderLayout());
p.add(new JLabel(icon), BorderLayout.CENTER);
diff --git a/swingset3/com/sun/swingset3/demos/tabbedpane/TabbedPaneDemo.java b/swingset3/com/sun/swingset3/demos/tabbedpane/TabbedPaneDemo.java
index 88f84ba..57c996a 100644
--- a/swingset3/com/sun/swingset3/demos/tabbedpane/TabbedPaneDemo.java
+++ b/swingset3/com/sun/swingset3/demos/tabbedpane/TabbedPaneDemo.java
@@ -39,6 +39,7 @@ import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
+import com.bulenkov.iconloader.util.UIUtil;
import com.sun.swingset3.DemoProperties;
import com.sun.swingset3.demos.ResourceManager;
@@ -142,6 +143,9 @@ public class TabbedPaneDemo extends JPanel implements ActionListener {
tabbedpane.add(name, pix);
name = resourceManager.getString("TabbedPaneDemo.bounce");
+ if (UIUtil.isUnderDarcula()) {
+ name = name.replace("color=blue", "color='#589df6'");
+ }
spin = new HeadSpin();
tabbedpane.add(name, spin);
diff --git a/swingset3/com/sun/swingset3/utilities/ArrowIcon.java b/swingset3/com/sun/swingset3/utilities/ArrowIcon.java
index e5ac088..62e8c9c 100644
--- a/swingset3/com/sun/swingset3/utilities/ArrowIcon.java
+++ b/swingset3/com/sun/swingset3/utilities/ArrowIcon.java
@@ -31,19 +31,12 @@
package com.sun.swingset3.utilities;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Image;
+import com.bulenkov.iconloader.util.DoubleColor;
+
+import javax.swing.*;
+import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
-import javax.swing.Icon;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.SwingConstants;
-import javax.swing.UIManager;
/**
*
@@ -168,7 +161,7 @@ public class ArrowIcon implements Icon, SwingConstants {
panel.add(new JLabel("west", new ArrowIcon(ArrowIcon.WEST), JLabel.CENTER));
panel.add(new JLabel("south", new ArrowIcon(ArrowIcon.SOUTH), JLabel.CENTER));
panel.add(new JLabel("east", new ArrowIcon(ArrowIcon.EAST), JLabel.CENTER));
- panel.add(new JLabel("east-20", new ArrowIcon(ArrowIcon.EAST, 20, Color.blue), JLabel.CENTER));
+ panel.add(new JLabel("east-20", new ArrowIcon(ArrowIcon.EAST, 20, DoubleColor.blue), JLabel.CENTER));
frame.pack();
frame.setVisible(true);
diff --git a/swingset3/com/sun/swingset3/utilities/RoundedPanel.java b/swingset3/com/sun/swingset3/utilities/RoundedPanel.java
index 9b1276b..10f37fc 100644
--- a/swingset3/com/sun/swingset3/utilities/RoundedPanel.java
+++ b/swingset3/com/sun/swingset3/utilities/RoundedPanel.java
@@ -31,18 +31,13 @@
package com.sun.swingset3.utilities;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.LayoutManager;
-import java.awt.geom.RoundRectangle2D;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
+import com.bulenkov.iconloader.util.DoubleColor;
import org.jdesktop.swingx.JXPanel;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.geom.RoundRectangle2D;
+
/**
*
* @author Administrator
@@ -99,7 +94,7 @@ public class RoundedPanel extends JXPanel {
JFrame frame = new JFrame();
RoundedPanel p = new RoundedPanel(new BorderLayout(), 16);
JPanel p2 = new JPanel();
- p2.setBackground(Color.blue);
+ p2.setBackground(DoubleColor.blue);
p.add(p2);
frame.add(p);
frame.setSize(200, 200);
diff --git a/swingset3/org/jdesktop/swingx/JXPanel.java b/swingset3/org/jdesktop/swingx/JXPanel.java
index 19cd51a..1eba666 100644
--- a/swingset3/org/jdesktop/swingx/JXPanel.java
+++ b/swingset3/org/jdesktop/swingx/JXPanel.java
@@ -21,21 +21,11 @@
package org.jdesktop.swingx;
-import java.awt.AlphaComposite;
-import java.awt.Composite;
-import java.awt.Dimension;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.LayoutManager;
-import java.awt.Rectangle;
+import org.jdesktop.swingx.graphics.GraphicsUtilities;
+import javax.swing.*;
+import java.awt.*;
import java.awt.image.BufferedImage;
-import javax.swing.JPanel;
-import javax.swing.RepaintManager;
-import javax.swing.Scrollable;
-import org.jdesktop.swingx.RepaintManagerX;
-import org.jdesktop.swingx.TranslucentRepaintManager;
-import org.jdesktop.swingx.graphics.GraphicsUtilities;
/**
* A simple JPanel extension that adds translucency support.
@@ -122,10 +112,10 @@ public class JXPanel extends JPanel implements Scrollable {
//replacing the repaint manager. In retrospect, I'd probably
//opt for making this a manual choice. There really isn't a clear
//win, no matter the approach.
- RepaintManager manager = RepaintManager.currentManager(this);
- if (!manager.getClass().isAnnotationPresent(TranslucentRepaintManager.class)) {
- RepaintManager.setCurrentManager(new RepaintManagerX());
- }
+// RepaintManager manager = RepaintManager.currentManager(this);
+// if (!manager.getClass().isAnnotationPresent(TranslucentRepaintManager.class)) {
+// RepaintManager.setCurrentManager(new RepaintManagerX());
+// }
} else if (alpha == 1) {
//restore the oldOpaque if it was true (since opaque is false now)
if (oldOpaque) {