Fuse/Swing Demo

Go take a look at Fuse's CVS, we just added a demo showing how to use Fuse with Swing. The demo shows custome components and lets you switch the UI theme at runtime. Better yet, you can edit the *.uitheme file yourself, click the buttons and see your changes. We have some performance glitches but we are working on that. You can also WebStart the demo. The demo requires full permissions but we'll try to fix that as well. Also, the web start demo does not let you edit the theme file but I'll update the demo one of these days :)

Black

Red

Green

All the injection/UI reloading is done that way in the code:

// loading/injecting
hive = new SwingHive();
hive.load("/swing/black.uitheme");
hive.inject(content);
hive.inject(header);
hive.inject(footer);
hive.inject(title);

// reloading the UI (load properties + repaints the UI)
hive.load("/swing/black.uitheme");

The Hive concept is still a work in progress but it basically keeps track of changes for you and call a default action, for instance repaint(). You can also create your own hive. Finally, the third screenshot was taken by editing the black.uitheme file. The edited version is here:

########################################################################
# Green UI Theme
# Fuse/Swing Demo
########################################################################

########################################################################
# COMMON
########################################################################
Common.shadowOpacity=0.1
Common.shadowColor=#000000
Common.shadowDirection=60

Common.lightColor=#235400
Common.darkColor=#002700

########################################################################
# HEADER
########################################################################
HeaderPanel.backgroundGradient=/swing/header-gradient.png

HeaderPanel.lightColor={Common.lightColor}
HeaderPanel.shadowColor={Common.shadowColor}

HeaderPanel.preferredHeight=32

########################################################################
# FOOTER
########################################################################
FooterPanel.preferredHeight=17

FooterPanel.backgroundGradient=0,0 | 0,15 | #236F00 | #002700

################################################################################
# CONTENT
################################################################################
ContentPanel.backgroundGradient=0,105 | 0,432 | #002700 | #239000

ContentPanel.light=/swing/content-light.png
ContentPanel.lightOpacity=0.5

################################################################################
# TITLE LABEL
################################################################################
TitleLabel.shadowOpacity={Common.shadowOpacity}
TitleLabel.shadowColor={Common.shadowColor}
TitleLabel.shadowDistance=2
TitleLabel.shadowDirection={Common.shadowDirection}

TitleLabel.titleFont=Helvetica Neue-BOLD-80
TitleLabel.titleColor=255, 255, 255, 127

Comments are closed.