org.hsqldb.util.CommonSwing Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hsqldb Show documentation
Show all versions of hsqldb Show documentation
HSQLDB - Lightweight 100% Java SQL Database Engine
/* Copyright (c) 2001-2021, The HSQL Development Group
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* Neither the name of the HSQL Development Group nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.hsqldb.util;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
// sqlbob@users 20020407 - patch 1.7.0 - reengineering
// weconsultants@users 20041109 - patch 1.8.0 - enhancements:
// Added Methods: setSwingLAF(), LookAndFeelInfo(), setFramePositon()
// errorMessage(String errorMessage),
// errorMessage(Exception exceptionMsg,
// Added: Ability to switch the current LAF while runing (Native,Java or Motif)
/**
* Common code in the Swing versions of DatabaseManager and Tranfer
*
* @author Bob Preston (sqlbob@users dot sourceforge.net)
* @version 1.7.2
* @since 1.7.0
*/
final class CommonSwing {
protected static final String messagerHeader =
"Database Manager Swing Error";
protected static final String Native = "Native";
protected static final String Java = "Java";
protected static final String Motif = "Motif";
protected static String plaf = "plaf";
protected static String GTK = "GTK";
// (ulrivo): An actual Image.
static Image getIcon(String target) {
if (target.equalsIgnoreCase("SystemCursor")) {
return (new ImageIcon(
CommonSwing.class.getResource("Hourglass.gif")).getImage());
} else if (target.equalsIgnoreCase("Frame")) {
return (new ImageIcon(
CommonSwing.class.getResource("hsqldb.png")).getImage());
} else if (target.equalsIgnoreCase("Execute")) {
return (new ImageIcon(
CommonSwing.class.getResource("run_exc.gif")).getImage());
} else if (target.equalsIgnoreCase("StatusRunning")) {
return (new ImageIcon(
CommonSwing.class.getResource("RedCircle.gif")).getImage());
} else if (target.equalsIgnoreCase("StatusReady")) {
return (new ImageIcon(
CommonSwing.class.getResource("GreenCircle.gif")).getImage());
} else if (target.equalsIgnoreCase("Clear")) {
return (new ImageIcon(
CommonSwing.class.getResource("Clear.png")).getImage());
} else if (target.equalsIgnoreCase("Problem")) {
return (new ImageIcon(
CommonSwing.class.getResource("problems.gif")).getImage());
} else if (target.equalsIgnoreCase("BoldFont")) {
return (new ImageIcon(
CommonSwing.class.getResource("Bold.gif")).getImage());
} else if (target.equalsIgnoreCase("ItalicFont")) {
return (new ImageIcon(
CommonSwing.class.getResource("Italic.gif")).getImage());
} else if (target.equalsIgnoreCase("ColorSelection")) {
return (new ImageIcon(
CommonSwing.class.getResource("Colors.png")).getImage());
} else if (target.equalsIgnoreCase("Close")) {
return (new ImageIcon(
CommonSwing.class.getResource("Close.png")).getImage());
} else {
return (null);
}
}
// (weconsultants@users: Callable errorMessage method
protected static void errorMessage(String errorMessage) {
/*
* Display Jpanel Error messages any text Errors. Overloads
* errorMessage(Exception exceptionMsg)
*/
Object[] options = { "OK" };
JOptionPane.showOptionDialog(null, errorMessage, messagerHeader,
JOptionPane.DEFAULT_OPTION,
JOptionPane.WARNING_MESSAGE, null,
options, options[0]);
// DatabaseManagerSwing.StatusMessage(READY_STATUS);
}
public static void errorMessage(Exception exceptionMsg) {
errorMessage(exceptionMsg, false);
}
// (weconsultants@users: Callable errorMessage method
public static void errorMessage(Exception exceptionMsg, boolean quiet) {
/*
* Display Jpanel Error messages any SQL Errors. Overloads
* errorMessage(String e)
*/
Object[] options = { "OK", };
JOptionPane.showOptionDialog(null, exceptionMsg, messagerHeader,
JOptionPane.DEFAULT_OPTION,
JOptionPane.ERROR_MESSAGE, null, options,
options[0]);
if (!quiet) {
exceptionMsg.printStackTrace();
}
// DatabaseManagerSwing.StatusMessage(READY_STATUS);
}
// (weconsultants@users: Callable setFramePositon method
static void setFramePositon(JFrame inTargetFrame) {
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
Dimension size = inTargetFrame.getSize();
// (ulrivo): full size on screen with less than 640 width
if (d.width >= 640) {
inTargetFrame.setLocation((d.width - size.width) / 2,
(d.height - size.height) / 2);
} else {
inTargetFrame.setLocation(0, 0);
inTargetFrame.setSize(d);
}
}
// (weconsultants@users: Commented out, Not need now. Was not being called anyway.. Could delete?
// static void setDefaultColor() {
//
// Color hsqlBlue = new Color(102, 153, 204);
// Color hsqlGreen = new Color(153, 204, 204);
// UIDefaults d = UIManager.getLookAndFeelDefaults();
//
// d.put("MenuBar.background", SystemColor.control);
// d.put("Menu.background", SystemColor.control);
// d.put("Menu.selectionBackground", hsqlBlue);
// d.put("MenuItem.background", SystemColor.menu);
// d.put("MenuItem.selectionBackground", hsqlBlue);
// d.put("Separator.foreground", SystemColor.controlDkShadow);
// d.put("Button.background", SystemColor.control);
// d.put("CheckBox.background", SystemColor.control);
// d.put("Label.background", SystemColor.control);
// d.put("Label.foreground", Color.black);
// d.put("Panel.background", SystemColor.control);
// d.put("PasswordField.selectionBackground", hsqlGreen);
// d.put("PasswordField.background", SystemColor.white);
// d.put("TextArea.selectionBackground", hsqlGreen);
// d.put("TextField.background", SystemColor.white);
// d.put("TextField.selectionBackground", hsqlGreen);
// d.put("TextField.background", SystemColor.white);
// d.put("ScrollBar.background", SystemColor.controlHighlight);
// d.put("ScrollBar.foreground", SystemColor.control);
// d.put("ScrollBar.track", SystemColor.controlHighlight);
// d.put("ScrollBar.trackHighlight", SystemColor.controlDkShadow);
// d.put("ScrollBar.thumb", SystemColor.control);
// d.put("ScrollBar.thumbHighlight", SystemColor.controlHighlight);
// d.put("ScrollBar.thumbDarkShadow", SystemColor.controlDkShadow);
// d.put("ScrollBar.thumbLightShadow", SystemColor.controlShadow);
// d.put("ComboBox.background", SystemColor.control);
// d.put("ComboBox.selectionBackground", hsqlBlue);
// d.put("Table.background", SystemColor.white);
// d.put("Table.selectionBackground", hsqlBlue);
// d.put("TableHeader.background", SystemColor.control);
//
// // This doesn't seem to work.
// d.put("SplitPane.background", SystemColor.control);
// d.put("Tree.selectionBackground", hsqlBlue);
// d.put("List.selectionBackground", hsqlBlue);
// }
// (weconsultants@users: Callable setSwingLAF method for changing LAF
static void setSwingLAF(java.awt.Component comp, String targetTheme) {
try {
if (targetTheme.equalsIgnoreCase(Native)) {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
} else if (targetTheme.equalsIgnoreCase(Java)) {
UIManager.setLookAndFeel(
UIManager.getCrossPlatformLookAndFeelClassName());
} else if (targetTheme.equalsIgnoreCase(Motif)) {
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.motif.MotifLookAndFeel");
}
// if (targetTheme.equalsIgnoreCase(plaf)){
// UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
// }
//
// if (targetTheme.equalsIgnoreCase(GTK)){
// UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
// }
SwingUtilities.updateComponentTreeUI(comp);
if (comp instanceof java.awt.Frame) {
((java.awt.Frame) comp).pack();
}
} catch (Exception e) {
errorMessage(e);
}
}
}